module.lds,codetag: force 0 sh_addr for sections
Commitmaster1ba9f89794("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related macros") added .text and made .data, .bss, and .rodata sections unconditional in the module linker script, but without an explicit address like the other sections in the same file. 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 .ko. Relocatable objects are expected to have sh_addr=0 for these sections and these non-zero addresses confuse elfutils and have been reported to cause segmentation faults in SystemTap [1]. Add the 0 address specifier to all sections in module.lds, including the .codetag.* sections via MOD_SEPARATE_CODETAG_SECTIONS macro. Link: https://sourceware.org/bugzilla/show_bug.cgi?id=33958 Fixes:1ba9f89794("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related macros") Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com> Reviewed-by: Petr Pavlu <petr.pavlu@suse.com> Acked-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
parent
f338e77383
commit
4afc71bba8
|
|
@ -18,7 +18,7 @@
|
|||
IF_MEM_ALLOC_PROFILING(SECTION_WITH_BOUNDARIES(alloc_tags))
|
||||
|
||||
#define MOD_SEPARATE_CODETAG_SECTION(_name) \
|
||||
.codetag.##_name : { \
|
||||
.codetag.##_name 0 : { \
|
||||
SECTION_WITH_BOUNDARIES(_name) \
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,30 +32,30 @@ SECTIONS {
|
|||
__jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) }
|
||||
__ex_table 0 : ALIGN(4) { KEEP(*(__ex_table)) }
|
||||
|
||||
__patchable_function_entries : { *(__patchable_function_entries) }
|
||||
__patchable_function_entries 0 : { *(__patchable_function_entries) }
|
||||
|
||||
.init.klp_funcs 0 : ALIGN(8) { KEEP(*(.init.klp_funcs)) }
|
||||
.init.klp_objects 0 : ALIGN(8) { KEEP(*(.init.klp_objects)) }
|
||||
|
||||
#ifdef CONFIG_ARCH_USES_CFI_TRAPS
|
||||
__kcfi_traps : { KEEP(*(.kcfi_traps)) }
|
||||
__kcfi_traps 0 : { KEEP(*(.kcfi_traps)) }
|
||||
#endif
|
||||
|
||||
.text : {
|
||||
.text 0 : {
|
||||
*(.text .text.[0-9a-zA-Z_]*)
|
||||
}
|
||||
|
||||
.bss : {
|
||||
.bss 0 : {
|
||||
*(.bss .bss.[0-9a-zA-Z_]*)
|
||||
*(.bss..L*)
|
||||
}
|
||||
|
||||
.data : {
|
||||
.data 0 : {
|
||||
*(.data .data.[0-9a-zA-Z_]*)
|
||||
*(.data..L*)
|
||||
}
|
||||
|
||||
.rodata : {
|
||||
.rodata 0 : {
|
||||
*(.rodata .rodata.[0-9a-zA-Z_]*)
|
||||
*(.rodata..L*)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue