63 lines · plain
1# SPDX-License-Identifier: GPL-2.02KASAN_SANITIZE := n3UBSAN_SANITIZE := n4KCOV_INSTRUMENT := n5 6# Disable ftrace to avoid recursion.7CFLAGS_REMOVE_common.o = $(CC_FLAGS_FTRACE)8CFLAGS_REMOVE_generic.o = $(CC_FLAGS_FTRACE)9CFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE)10CFLAGS_REMOVE_quarantine.o = $(CC_FLAGS_FTRACE)11CFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE)12CFLAGS_REMOVE_report_generic.o = $(CC_FLAGS_FTRACE)13CFLAGS_REMOVE_report_hw_tags.o = $(CC_FLAGS_FTRACE)14CFLAGS_REMOVE_report_sw_tags.o = $(CC_FLAGS_FTRACE)15CFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE)16CFLAGS_REMOVE_hw_tags.o = $(CC_FLAGS_FTRACE)17CFLAGS_REMOVE_sw_tags.o = $(CC_FLAGS_FTRACE)18 19# Function splitter causes unnecessary splits in __asan_load1/__asan_store120# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6353321CC_FLAGS_KASAN_RUNTIME := $(call cc-option, -fno-conserve-stack)22CC_FLAGS_KASAN_RUNTIME += -fno-stack-protector23# Disable branch tracing to avoid recursion.24CC_FLAGS_KASAN_RUNTIME += -DDISABLE_BRANCH_PROFILING25 26CFLAGS_common.o := $(CC_FLAGS_KASAN_RUNTIME)27CFLAGS_generic.o := $(CC_FLAGS_KASAN_RUNTIME)28CFLAGS_init.o := $(CC_FLAGS_KASAN_RUNTIME)29CFLAGS_quarantine.o := $(CC_FLAGS_KASAN_RUNTIME)30CFLAGS_report.o := $(CC_FLAGS_KASAN_RUNTIME)31CFLAGS_report_generic.o := $(CC_FLAGS_KASAN_RUNTIME)32CFLAGS_report_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)33CFLAGS_report_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)34CFLAGS_shadow.o := $(CC_FLAGS_KASAN_RUNTIME)35CFLAGS_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)36CFLAGS_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)37 38CFLAGS_KASAN_TEST := $(CFLAGS_KASAN) $(call cc-disable-warning, vla)39ifndef CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX40# If compiler instruments memintrinsics by prefixing them with __asan/__hwasan,41# we need to treat them normally (as builtins), otherwise the compiler won't42# recognize them as instrumentable. If it doesn't instrument them, we need to43# pass -fno-builtin, so the compiler doesn't inline them.44CFLAGS_KASAN_TEST += -fno-builtin45endif46 47CFLAGS_kasan_test_c.o := $(CFLAGS_KASAN_TEST)48RUSTFLAGS_kasan_test_rust.o := $(RUSTFLAGS_KASAN)49CFLAGS_kasan_test_module.o := $(CFLAGS_KASAN_TEST)50 51obj-y := common.o report.o52obj-$(CONFIG_KASAN_GENERIC) += init.o generic.o report_generic.o shadow.o quarantine.o53obj-$(CONFIG_KASAN_HW_TAGS) += hw_tags.o report_hw_tags.o tags.o report_tags.o54obj-$(CONFIG_KASAN_SW_TAGS) += init.o report_sw_tags.o shadow.o sw_tags.o tags.o report_tags.o55 56kasan_test-objs := kasan_test_c.o57ifdef CONFIG_RUST58 kasan_test-objs += kasan_test_rust.o59endif60 61obj-$(CONFIG_KASAN_KUNIT_TEST) += kasan_test.o62obj-$(CONFIG_KASAN_MODULE_TEST) += kasan_test_module.o63