]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
powerpc/vmlinux.lds: Drop .interp description
authorNathan Chancellor <nathan@kernel.org>
Sat, 18 Oct 2025 17:52:40 +0000 (18:52 +0100)
committerMadhavan Srinivasan <maddy@linux.ibm.com>
Tue, 11 Nov 2025 08:53:27 +0000 (14:23 +0530)
commitd2be62d5858312f3e6c36dbfc43faa1f287d5249
tree40185058191d6204074aca7c211140711f3352e0
parent1e4b207ffe54cf33a4b7a2912c4110f89c73bf3f
powerpc/vmlinux.lds: Drop .interp description

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
Link: https://github.com/ClangBuiltLinux/linux/issues/2137
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>
Tested-by: Vishal Chourasia <vishalc@linux.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20251018-ppc-fix-lld-interp-v1-1-a083de6dccc9@kernel.org
arch/powerpc/kernel/vmlinux.lds.S