]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
module, arm64: force sh_addr=0 for arch-specific sections
authorPetr Pavlu <petr.pavlu@suse.com>
Fri, 27 Mar 2026 07:59:01 +0000 (08:59 +0100)
committerSami Tolvanen <samitolvanen@google.com>
Tue, 26 May 2026 20:45:59 +0000 (20:45 +0000)
When linking modules with 'ld.bfd -r', sections defined without an address
inherit the location counter, resulting in non-zero sh_addr values in the
resulting .ko files. Relocatable objects are expected to have sh_addr=0 for
all sections. Non-zero addresses are confusing in this context, typically
worse compressible, and may cause tools to misbehave [1].

Force sh_addr=0 for all arm64-specific module sections.

Link: https://sourceware.org/bugzilla/show_bug.cgi?id=33958
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
arch/arm64/include/asm/module.lds.h

index fb944b46846dae9d567973f754aedf71e195a911..0b3aacd22c590082d92512a6fbe0549a2a020f60 100644 (file)
@@ -14,7 +14,7 @@ SECTIONS {
         * directive to force them into a single section and silence the
         * warning.
         */
-       .text.hot : { *(.text.hot) }
+       .text.hot : { *(.text.hot) }
 #endif
 
 #ifdef CONFIG_UNWIND_TABLES
@@ -22,6 +22,6 @@ SECTIONS {
         * Currently, we only use unwind info at module load time, so we can
         * put it into the .init allocation.
         */
-       .init.eh_frame : { *(.eh_frame) }
+       .init.eh_frame : { *(.eh_frame) }
 #endif
 }