mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
kasan: fix clang compilation warning due to stack protector
KASAN uses a single cc-option invocation to disable both conserve-stack and stack-protector flags. The former flag is not present in Clang, which causes cc-option to fail, and results in stack-protector being enabled. Fix by using separate cc-option calls for each flag. Also collect all flags in a variable to avoid calling cc-option multiple times for different files. Reported-by: Qian Cai <cai@lca.pw> Signed-off-by: Andrey Konovalov <andreyknvl@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Marco Elver <elver@google.com> Link: http://lkml.kernel.org/r/c2f0c8e4048852ae014f4a391d96ca42d27e3255.1590779332.git.andreyknvl@google.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
7f0a002b5a
commit
ca734cc67e
@ -15,14 +15,19 @@ CFLAGS_REMOVE_tags_report.o = $(CC_FLAGS_FTRACE)
|
||||
|
||||
# Function splitter causes unnecessary splits in __asan_load1/__asan_store1
|
||||
# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533
|
||||
CFLAGS_common.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CFLAGS_generic.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CFLAGS_generic_report.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CFLAGS_init.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CFLAGS_quarantine.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CFLAGS_report.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CFLAGS_tags.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CFLAGS_tags_report.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -DDISABLE_BRANCH_PROFILING
|
||||
CC_FLAGS_KASAN_RUNTIME := $(call cc-option, -fno-conserve-stack)
|
||||
CC_FLAGS_KASAN_RUNTIME += $(call cc-option, -fno-stack-protector)
|
||||
# Disable branch tracing to avoid recursion.
|
||||
CC_FLAGS_KASAN_RUNTIME += -DDISABLE_BRANCH_PROFILING
|
||||
|
||||
CFLAGS_common.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
CFLAGS_generic.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
CFLAGS_generic_report.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
CFLAGS_init.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
CFLAGS_quarantine.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
CFLAGS_report.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
CFLAGS_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
CFLAGS_tags_report.o := $(CC_FLAGS_KASAN_RUNTIME)
|
||||
|
||||
obj-$(CONFIG_KASAN) := common.o init.o report.o
|
||||
obj-$(CONFIG_KASAN_GENERIC) += generic.o generic_report.o quarantine.o
|
||||
|
Loading…
Reference in New Issue
Block a user