Skip to content

Commit d2be62d

Browse files
nathanchancemaddy-kerneldev
authored andcommitted
powerpc/vmlinux.lds: Drop .interp description
Commit da30705 ("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: ClangBuiltLinux/linux#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> 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
1 parent 1e4b207 commit d2be62d

1 file changed

Lines changed: 0 additions & 1 deletion

File tree

arch/powerpc/kernel/vmlinux.lds.S

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,6 @@ SECTIONS
330330
}
331331
.hash : AT(ADDR(.hash) - LOAD_OFFSET) { *(.hash) }
332332
.gnu.hash : AT(ADDR(.gnu.hash) - LOAD_OFFSET) { *(.gnu.hash) }
333-
.interp : AT(ADDR(.interp) - LOAD_OFFSET) { *(.interp) }
334333
.rela.dyn : AT(ADDR(.rela.dyn) - LOAD_OFFSET)
335334
{
336335
__rela_dyn_start = .;

0 commit comments

Comments
 (0)