From: Vishal Chourasia <vishalc@linux.ibm.com>
To: Nathan Chancellor <nathan@kernel.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
llvm@lists.linux.dev
Subject: Re: [PATCH] powerpc/vmlinux.lds: Drop .interp description
Date: Tue, 21 Oct 2025 13:48:31 +0530 [thread overview]
Message-ID: <aPdBpqhm3JHvKIWJ@linux.ibm.com> (raw)
In-Reply-To: <20251018-ppc-fix-lld-interp-v1-1-a083de6dccc9@kernel.org>
On Sat, Oct 18, 2025 at 06:52:40PM +0100, Nathan Chancellor wrote:
> Commit da30705c4621 ("arch/powerpc: Remove .interp section in vmlinux")
> intended to drop the .interp section from vmlinux but even with this
> change, relocatable kernels linked with ld.lld contain an empty .interp
> section, which ends up causing crashes in GDB [1].
>
> $ make -skj"$(nproc)" ARCH=powerpc LLVM=1 clean pseries_le_defconfig vmlinux
>
> $ llvm-readelf -S vmlinux | grep interp
> [44] .interp PROGBITS c0000000021ddb34 21edb34 000000 00 A 0 0 1
>
> There appears to be a subtle difference between GNU ld and ld.lld when
> it comes to discarding sections that specify load addresses [2].
>
> Since '--no-dynamic-linker' prevents emission of the .interp section,
> there is no need to describe it in the output sections of the vmlinux
> linker script. Drop the .interp section description from vmlinux.lds.S
> to avoid this issue altogether.
>
> Link: https://sourceware.org/bugzilla/show_bug.cgi?id=33481 [1]
> Link: https://github.com/ClangBuiltLinux/linux/issues/2137 [2]
> Reported-by: Vishal Chourasia <vishalc@linux.ibm.com>
> Closes: https://lore.kernel.org/20251013040148.560439-1-vishalc@linux.ibm.com/
> Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> ---
> arch/powerpc/kernel/vmlinux.lds.S | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
> index de6ee7d35cff..15850296c0a9 100644
> --- a/arch/powerpc/kernel/vmlinux.lds.S
> +++ b/arch/powerpc/kernel/vmlinux.lds.S
> @@ -330,7 +330,6 @@ SECTIONS
> }
> .hash : AT(ADDR(.hash) - LOAD_OFFSET) { *(.hash) }
> .gnu.hash : AT(ADDR(.gnu.hash) - LOAD_OFFSET) { *(.gnu.hash) }
> - .interp : AT(ADDR(.interp) - LOAD_OFFSET) { *(.interp) }
> .rela.dyn : AT(ADDR(.rela.dyn) - LOAD_OFFSET)
> {
> __rela_dyn_start = .;
>
> ---
> base-commit: 3a8660878839faadb4f1a6dd72c3179c1df56787
> change-id: 20251018-ppc-fix-lld-interp-1a78c361cd42
>
With this patch, I don't see .interp section being emitted the final
vmlinux binary.
```
(i) ❯ make LLVM=1 vmlinux
(i) ❯ llvm-readelf -p .comment vmlinux
String dump of section '.comment':
[ 1] clang version 22.0.0git (https://github.com/llvm/llvm-project.git 7314565281ec28b745502c3f429fd431e16673eb)
[ 6d] Linker: LLD 22.0.0 (https://github.com/llvm/llvm-project.git 7314565281ec28b745502c3f429fd431e16673eb)
(i) ❯ llvm-readelf -p .interp vmlinux
llvm-readelf: warning: 'vmlinux': could not find section '.interp'
```
Tested-by: Vishal Chourasia <vishalc@linux.ibm.com>
next prev parent reply other threads:[~2025-10-21 8:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-18 17:52 [PATCH] powerpc/vmlinux.lds: Drop .interp description Nathan Chancellor
2025-10-21 8:18 ` Vishal Chourasia [this message]
2025-10-27 7:46 ` Vishal Chourasia
2025-10-28 8:58 ` Madhavan Srinivasan
2025-11-21 2:53 ` Madhavan Srinivasan
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=aPdBpqhm3JHvKIWJ@linux.ibm.com \
--to=vishalc@linux.ibm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=justinstitt@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=llvm@lists.linux.dev \
--cc=maddy@linux.ibm.com \
--cc=morbo@google.com \
--cc=mpe@ellerman.id.au \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=npiggin@gmail.com \
/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.