mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
vmlinux.lds.h: Handle clang's module.{c,d}tor sections
commit848378812eupstream. A recent change in LLVM causes module_{c,d}tor sections to appear when CONFIG_K{A,C}SAN are enabled, which results in orphan section warnings because these are not handled anywhere: ld.lld: warning: arch/x86/pci/built-in.a(legacy.o):(.text.asan.module_ctor) is being placed in '.text.asan.module_ctor' ld.lld: warning: arch/x86/pci/built-in.a(legacy.o):(.text.asan.module_dtor) is being placed in '.text.asan.module_dtor' ld.lld: warning: arch/x86/pci/built-in.a(legacy.o):(.text.tsan.module_ctor) is being placed in '.text.tsan.module_ctor' Fangrui explains: "the function asan.module_ctor has the SHF_GNU_RETAIN flag, so it is in a separate section even with -fno-function-sections (default)". Place them in the TEXT_TEXT section so that these technologies continue to work with the newer compiler versions. All of the KASAN and KCSAN KUnit tests continue to pass after this change. Cc: stable@vger.kernel.org Link: https://github.com/ClangBuiltLinux/linux/issues/1432 Link:7b78956224Signed-off-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-by: Fangrui Song <maskray@google.com> Acked-by: Marco Elver <elver@google.com> Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20210731023107.1932981-1-nathan@kernel.org [nc: Resolve conflict due to lack ofcf68fffb66] Signed-off-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2fe07584a6
commit
b5f05bdfda
@@ -599,6 +599,7 @@
|
|||||||
NOINSTR_TEXT \
|
NOINSTR_TEXT \
|
||||||
*(.text..refcount) \
|
*(.text..refcount) \
|
||||||
*(.ref.text) \
|
*(.ref.text) \
|
||||||
|
*(.text.asan.* .text.tsan.*) \
|
||||||
MEM_KEEP(init.text*) \
|
MEM_KEEP(init.text*) \
|
||||||
MEM_KEEP(exit.text*) \
|
MEM_KEEP(exit.text*) \
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user