From: Kees Cook <kees@kernel.org>
To: Rong Xu <xur@google.com>
Cc: Alice Ryhl <aliceryhl@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Arnd Bergmann <arnd@arndb.de>, Bill Wendling <morbo@google.com>,
Borislav Petkov <bp@alien8.de>, Breno Leitao <leitao@debian.org>,
Brian Gerst <brgerst@gmail.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
David Li <davidxl@google.com>, Han Shen <shenhan@google.com>,
Heiko Carstens <hca@linux.ibm.com>,
"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
Jann Horn <jannh@google.com>, Jonathan Corbet <corbet@lwn.net>,
Josh Poimboeuf <jpoimboe@kernel.org>,
Juergen Gross <jgross@suse.com>,
Justin Stitt <justinstitt@google.com>,
Masahiro Yamada <masahiroy@kernel.org>,
"Mike Rapoport (IBM)" <rppt@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Nicolas Schier <nicolas@fjasle.eu>,
"Paul E. McKenney" <paulmck@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Sami Tolvanen <samitolvanen@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Wei Yang <richard.weiyang@gmail.com>,
workflows@vger.kernel.org,
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>,
Maksim Panchenko <max4bolt@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Andreas Larsson <andreas@gaisler.com>,
Yonghong Song <yonghong.song@linux.dev>,
Yabin Cui <yabinc@google.com>,
Krzysztof Pszeniczny <kpszeniczny@google.com>,
Sriraman Tallam <tmsriram@google.com>,
Stephane Eranian <eranian@google.com>,
x86@kernel.org, linux-arch@vger.kernel.org,
sparclinux@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
llvm@lists.linux.dev
Subject: Re: [PATCH v6 2/7] objtool: Fix unreachable instruction warnings for weak functions
Date: Mon, 28 Oct 2024 17:16:44 -0700 [thread overview]
Message-ID: <202410281716.0C8F383@keescook> (raw)
In-Reply-To: <20241026051410.2819338-3-xur@google.com>
On Fri, Oct 25, 2024 at 10:14:04PM -0700, Rong Xu wrote:
> In the presence of both weak and strong function definitions, the
> linker drops the weak symbol in favor of a strong symbol, but
> leaves the code in place. Code in ignore_unreachable_insn() has
> some heuristics to suppress the warning, but it does not work when
> -ffunction-sections is enabled.
>
> Suppose function foo has both strong and weak definitions.
> Case 1: The strong definition has an annotated section name,
> like .init.text. Only the weak definition will be placed into
> .text.foo. But since the section has no symbols, there will be no
> "hole" in the section.
>
> Case 2: Both sections are without an annotated section name.
> Both will be placed into .text.foo section, but there will be only one
> symbol (the strong one). If the weak code is before the strong code,
> there is no "hole" as it fails to find the right-most symbol before
> the offset.
>
> The fix is to use the first node to compute the hole if hole.sym
> is empty. If there is no symbol in the section, the first node
> will be NULL, in which case, -1 is returned to skip the whole
> section.
>
> Co-developed-by: Han Shen <shenhan@google.com>
> Signed-off-by: Han Shen <shenhan@google.com>
This seems logically correct to me, but I'd love to see review from Josh
and/or Peter Z on this change too.
Reviewed-by: Kees Cook <kees@kernel.org>
--
Kees Cook
next prev parent reply other threads:[~2024-10-29 0:16 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-26 5:14 [PATCH v6 0/7] Add AutoFDO and Propeller support for Clang build Rong Xu
2024-10-26 5:14 ` [PATCH v6 1/7] Add AutoFDO " Rong Xu
2024-10-29 0:08 ` Kees Cook
2024-10-26 5:14 ` [PATCH v6 2/7] objtool: Fix unreachable instruction warnings for weak functions Rong Xu
2024-10-29 0:16 ` Kees Cook [this message]
2024-10-29 0:18 ` H. Peter Anvin
2024-10-29 5:51 ` Rong Xu
2024-10-29 0:43 ` Josh Poimboeuf
2024-10-26 5:14 ` [PATCH v6 3/7] Adjust symbol ordering in text output section Rong Xu
2024-10-29 0:05 ` Kees Cook
2024-11-01 18:05 ` Masahiro Yamada
2024-11-01 18:37 ` Rong Xu
2024-11-01 22:03 ` Masahiro Yamada
2024-11-09 15:38 ` Klara Modin
2024-11-11 20:43 ` Rong Xu
2024-11-11 21:32 ` Klara Modin
2024-11-11 22:39 ` Rong Xu
2024-11-12 5:38 ` Rong Xu
2024-11-12 7:45 ` Klara Modin
2024-11-12 20:13 ` Rong Xu
2024-10-26 5:14 ` [PATCH v6 4/7] Add markers for text_unlikely and text_hot sections Rong Xu
2024-10-28 23:56 ` Kees Cook
2024-10-29 0:05 ` Kees Cook
2024-10-26 5:14 ` [PATCH v6 5/7] AutoFDO: Enable -ffunction-sections for the AutoFDO build Rong Xu
2024-10-29 0:10 ` Kees Cook
2024-10-26 5:14 ` [PATCH v6 6/7] AutoFDO: Enable machine function split optimization for AutoFDO Rong Xu
2024-10-29 0:13 ` Kees Cook
2024-10-26 5:14 ` [PATCH v6 7/7] Add Propeller configuration for kernel build Rong Xu
2024-10-29 0:14 ` Kees Cook
2024-10-27 22:17 ` [PATCH v6 0/7] Add AutoFDO and Propeller support for Clang build Nathan Chancellor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202410281716.0C8F383@keescook \
--to=kees@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=aliceryhl@google.com \
--cc=andreas@gaisler.com \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=davidxl@google.com \
--cc=eranian@google.com \
--cc=hca@linux.ibm.com \
--cc=hpa@zytor.com \
--cc=jannh@google.com \
--cc=jgross@suse.com \
--cc=jpoimboe@kernel.org \
--cc=justinstitt@google.com \
--cc=kpszeniczny@google.com \
--cc=leitao@debian.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=masahiroy@kernel.org \
--cc=max4bolt@gmail.com \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=mingo@redhat.com \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=nicolas@fjasle.eu \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=richard.weiyang@gmail.com \
--cc=rppt@kernel.org \
--cc=samitolvanen@google.com \
--cc=shenhan@google.com \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tmsriram@google.com \
--cc=workflows@vger.kernel.org \
--cc=x86@kernel.org \
--cc=xur@google.com \
--cc=yabinc@google.com \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.