mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-11-05 17:13:47 +01:00
vmlinux.lds.h: Avoid KASAN and KCSAN's unwanted sections
KASAN (-fsanitize=kernel-address) and KCSAN (-fsanitize=thread) produce unwanted[1] .eh_frame and .init_array.* sections. Add them to COMMON_DISCARDS, except with CONFIG_CONSTRUCTORS, which wants to keep .init_array.* sections. [1] https://bugs.llvm.org/show_bug.cgi?id=46478 Signed-off-by: Kees Cook <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Tested-by: Marco Elver <[email protected]> Cc: [email protected] Link: https://lore.kernel.org/r/[email protected]
This commit is contained in:
1 parent
dfbe69689b
commit
d812db7828
1 file changed
+20
@@ -954,7 +954,27 @@
|
||||
EXIT_DATA
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Clang's -fsanitize=kernel-address and -fsanitize=thread produce
|
||||
* unwanted sections (.eh_frame and .init_array.*), but
|
||||
* CONFIG_CONSTRUCTORS wants to keep any .init_array.* sections.
|
||||
* https://bugs.llvm.org/show_bug.cgi?id=46478
|
||||
*/
|
||||
#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KCSAN)
|
||||
# ifdef CONFIG_CONSTRUCTORS
|
||||
# define SANITIZER_DISCARDS \
|
||||
*(.eh_frame)
|
||||
# else
|
||||
# define SANITIZER_DISCARDS \
|
||||
*(.init_array) *(.init_array.*) \
|
||||
*(.eh_frame)
|
||||
# endif
|
||||
#else
|
||||
# define SANITIZER_DISCARDS
|
||||
#endif
|
||||
|
||||
#define COMMON_DISCARDS \
|
||||
SANITIZER_DISCARDS \
|
||||
*(.discard) \
|
||||
*(.discard.*) \
|
||||
*(.modinfo) \
|
||||
|
||||
Reference in new issue
Block a user