Thread (9 messages) 9 messages, 4 authors, 2025-10-16

Re: [PATCH] arch/powerpc: Remove .interp section in vmlinux

From: Nathan Chancellor <nathan@kernel.org>
Date: 2025-10-15 18:27:58
Also in: lkml, llvm
Subsystem: linux for powerpc (32-bit and 64-bit), the rest · Maintainers: Madhavan Srinivasan, Michael Ellerman, Linus Torvalds

On Wed, Oct 15, 2025 at 09:07:54AM +0530, Vishal Chourasia wrote:
Hello Nathan,

On Tue, Oct 14, 2025 at 05:21:54PM -0700, Nathan Chancellor wrote:
quoted
In this bug report, you mention using LLVM=1. Does the issue happen if
you use GNU ld (ld.bfd) via LD (i.e., LD=powerpc64le-linux-gnu-ld or
equivalent) over ld.lld from LLVM=1? This sounds more likely to be a
linker difference rather than a compiler difference.
Thank you for the insight.

Yes, when using powerpc64le-linux-gnu-ld linker .interp section is not
emitted.

Command:
$ make LLVM=1 ARCH=powerpc LD=powerpc64le-linux-gnu-ld -j 8 zImage
$ llvm-readelf -p .comment vmlinux

String dump of section '.comment':
[     0] clang version 22.0.0git (https://github.com/llvm/llvm-project.git 7314565281ec28b745502c3f429fd431e16673eb)

$ llvm-readelf -p .interp vmlinux                                                                                    
llvm-readelf: warning: 'vmlinux': could not find section '.interp'
Thanks for confirming. Does this fix the issue for you? It appears to
work for me.

Cheers,
Nathan
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 = .;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help