mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
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 [1] Signed-off-by: Petr Pavlu <petr.pavlu@suse.com> Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
28 lines
845 B
C
28 lines
845 B
C
SECTIONS {
|
|
.plt 0 : { BYTE(0) }
|
|
.init.plt 0 : { BYTE(0) }
|
|
.text.ftrace_trampoline 0 : { BYTE(0) }
|
|
.init.text.ftrace_trampoline 0 : { BYTE(0) }
|
|
|
|
#ifdef CONFIG_KASAN_SW_TAGS
|
|
/*
|
|
* Outlined checks go into comdat-deduplicated sections named .text.hot.
|
|
* Because they are in comdats they are not combined by the linker and
|
|
* we otherwise end up with multiple sections with the same .text.hot
|
|
* name in the .ko file. The kernel module loader warns if it sees
|
|
* multiple sections with the same name so we use this sections
|
|
* directive to force them into a single section and silence the
|
|
* warning.
|
|
*/
|
|
.text.hot 0 : { *(.text.hot) }
|
|
#endif
|
|
|
|
#ifdef CONFIG_UNWIND_TABLES
|
|
/*
|
|
* Currently, we only use unwind info at module load time, so we can
|
|
* put it into the .init allocation.
|
|
*/
|
|
.init.eh_frame 0 : { *(.eh_frame) }
|
|
#endif
|
|
}
|