dd03762ab6
This patch enables KCSAN for arm64, with updates to build rules to not use KCSAN for several incompatible compilation units. Recent GCC version(at least GCC10) made outline-atomics as the default option(unlike Clang), which will cause linker errors for kernel/kcsan/core.o. Disables the out-of-line atomics by no-outline-atomics to fix the linker errors. Meanwhile, as Mark said[1], some latent issues are needed to be fixed which isn't just a KCSAN problem, we make the KCSAN depends on EXPERT for now. Tested selftest and kcsan_test(built with GCC11 and Clang 13), and all passed. [1] https://lkml.kernel.org/r/YadiUPpJ0gADbiHQ@FVFF77S0Q05N Acked-by: Marco Elver <elver@google.com> # kernel/kcsan Tested-by: Joey Gouly <joey.gouly@arm.com> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Link: https://lore.kernel.org/r/20211211131734.126874-1-wangkefeng.wang@huawei.com [catalin.marinas@arm.com: added comment to justify EXPERT] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
19 lines
570 B
Makefile
19 lines
570 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
KCSAN_SANITIZE := n
|
|
KCOV_INSTRUMENT := n
|
|
UBSAN_SANITIZE := n
|
|
|
|
CFLAGS_REMOVE_core.o = $(CC_FLAGS_FTRACE)
|
|
CFLAGS_REMOVE_debugfs.o = $(CC_FLAGS_FTRACE)
|
|
CFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE)
|
|
|
|
CFLAGS_core.o := $(call cc-option,-fno-conserve-stack) \
|
|
$(call cc-option,-mno-outline-atomics) \
|
|
-fno-stack-protector -DDISABLE_BRANCH_PROFILING
|
|
|
|
obj-y := core.o debugfs.o report.o
|
|
obj-$(CONFIG_KCSAN_SELFTEST) += selftest.o
|
|
|
|
CFLAGS_kcsan_test.o := $(CFLAGS_KCSAN) -g -fno-omit-frame-pointer
|
|
obj-$(CONFIG_KCSAN_KUNIT_TEST) += kcsan_test.o
|