mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
The linker script scripts/module.lds.S contains an unused DISCARD_EH_FRAME definition introduced by commit68c76ad4a9("arm64: unwind: add asynchronous unwind tables to kernel and modules"). As shown in an earlier version of that patch [1], DISCARD_EH_FRAME was meant to be used by SANITIZER_DISCARDS in the same file, as follows: -# define SANITIZER_DISCARDS *(.eh_frame) +# define SANITIZER_DISCARDS DISCARD_EH_FRAME However, in the meantime, SANITIZER_DISCARDS was removed entirely from module.lds.S by commit8924560094("cfi: Switch to -fsanitize=kcfi"). Eventually, the mentioned commit68c76ad4a9only added the new DISCARD_EH_FRAME definition to this file without actually using it. The file include/asm-generic/vmlinux.lds.h contains a similar DISCARD_EH_FRAME definition for vmlinux to discard .eh_frame sections that may be present when CONFIG_GCOV_KERNEL, CONFIG_KASAN_GENERIC or CONFIG_KCSAN is enabled. Testing these options on arm64 with LLVM 19.1 did not show any unexpected .eh_frame sections in modules. Remove the unused DISCARD_EH_FRAME definition from scripts/module.lds.S. Link: https://lore.kernel.org/linux-arm-kernel/20220701152724.3343599-2-ardb@kernel.org/ [1] Reviewed-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
64 lines
1.5 KiB
ArmAsm
64 lines
1.5 KiB
ArmAsm
/*
|
|
* Common module linker script, always used when linking a module.
|
|
* Archs are free to supply their own linker scripts. ld will
|
|
* combine them automatically.
|
|
*/
|
|
|
|
#include <asm-generic/codetag.lds.h>
|
|
|
|
SECTIONS {
|
|
/DISCARD/ : {
|
|
*(.discard)
|
|
*(.discard.*)
|
|
*(.export_symbol)
|
|
*(.no_trim_symbol)
|
|
}
|
|
|
|
__ksymtab 0 : ALIGN(8) { *(SORT(___ksymtab+*)) }
|
|
__kcrctab 0 : ALIGN(4) { *(SORT(___kcrctab+*)) }
|
|
__kflagstab 0 : ALIGN(1) { *(SORT(___kflagstab+*)) }
|
|
|
|
.ctors 0 : ALIGN(8) { *(SORT(.ctors.*)) *(.ctors) }
|
|
.init_array 0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) }
|
|
|
|
.altinstructions 0 : ALIGN(8) { KEEP(*(.altinstructions)) }
|
|
__bug_table 0 : ALIGN(8) { KEEP(*(__bug_table)) }
|
|
__jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) }
|
|
__ex_table 0 : ALIGN(4) { KEEP(*(__ex_table)) }
|
|
|
|
__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 0 : { KEEP(*(.kcfi_traps)) }
|
|
#endif
|
|
|
|
#ifndef CONFIG_ARCH_WANTS_MODULES_TEXT_SECTIONS
|
|
.text 0 : {
|
|
*(.text .text.[0-9a-zA-Z_]*)
|
|
}
|
|
#endif
|
|
|
|
.bss 0 : {
|
|
*(.bss .bss.[0-9a-zA-Z_]*)
|
|
*(.bss..L*)
|
|
}
|
|
|
|
.data 0 : {
|
|
*(.data .data.[0-9a-zA-Z_]*)
|
|
*(.data..L*)
|
|
}
|
|
|
|
.rodata 0 : {
|
|
*(.rodata .rodata.[0-9a-zA-Z_]*)
|
|
*(.rodata..L*)
|
|
}
|
|
|
|
MOD_SEPARATE_CODETAG_SECTIONS()
|
|
}
|
|
|
|
/* bring in arch-specific sections */
|
|
#include <asm/module.lds.h>
|