Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / mm / kasan / Makefile
blob1a958e7c8a464a58d874cd6297541f35ff375eb9
1 # SPDX-License-Identifier: GPL-2.0
2 KASAN_SANITIZE := n
3 UBSAN_SANITIZE := n
4 KCOV_INSTRUMENT := n
6 # Disable ftrace to avoid recursion.
7 CFLAGS_REMOVE_common.o = $(CC_FLAGS_FTRACE)
8 CFLAGS_REMOVE_generic.o = $(CC_FLAGS_FTRACE)
9 CFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE)
10 CFLAGS_REMOVE_quarantine.o = $(CC_FLAGS_FTRACE)
11 CFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE)
12 CFLAGS_REMOVE_report_generic.o = $(CC_FLAGS_FTRACE)
13 CFLAGS_REMOVE_report_hw_tags.o = $(CC_FLAGS_FTRACE)
14 CFLAGS_REMOVE_report_sw_tags.o = $(CC_FLAGS_FTRACE)
15 CFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE)
16 CFLAGS_REMOVE_hw_tags.o = $(CC_FLAGS_FTRACE)
17 CFLAGS_REMOVE_sw_tags.o = $(CC_FLAGS_FTRACE)
19 # Function splitter causes unnecessary splits in __asan_load1/__asan_store1
20 # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533
21 CC_FLAGS_KASAN_RUNTIME := $(call cc-option, -fno-conserve-stack)
22 CC_FLAGS_KASAN_RUNTIME += -fno-stack-protector
23 # Disable branch tracing to avoid recursion.
24 CC_FLAGS_KASAN_RUNTIME += -DDISABLE_BRANCH_PROFILING
26 CFLAGS_common.o := $(CC_FLAGS_KASAN_RUNTIME)
27 CFLAGS_generic.o := $(CC_FLAGS_KASAN_RUNTIME)
28 CFLAGS_init.o := $(CC_FLAGS_KASAN_RUNTIME)
29 CFLAGS_quarantine.o := $(CC_FLAGS_KASAN_RUNTIME)
30 CFLAGS_report.o := $(CC_FLAGS_KASAN_RUNTIME)
31 CFLAGS_report_generic.o := $(CC_FLAGS_KASAN_RUNTIME)
32 CFLAGS_report_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
33 CFLAGS_report_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
34 CFLAGS_shadow.o := $(CC_FLAGS_KASAN_RUNTIME)
35 CFLAGS_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
36 CFLAGS_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
38 CFLAGS_KASAN_TEST := $(CFLAGS_KASAN) $(call cc-disable-warning, vla)
39 ifndef CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX
40 # If compiler instruments memintrinsics by prefixing them with __asan/__hwasan,
41 # we need to treat them normally (as builtins), otherwise the compiler won't
42 # recognize them as instrumentable. If it doesn't instrument them, we need to
43 # pass -fno-builtin, so the compiler doesn't inline them.
44 CFLAGS_KASAN_TEST += -fno-builtin
45 endif
47 CFLAGS_kasan_test_c.o := $(CFLAGS_KASAN_TEST)
48 RUSTFLAGS_kasan_test_rust.o := $(RUSTFLAGS_KASAN)
50 obj-y := common.o report.o
51 obj-$(CONFIG_KASAN_GENERIC) += init.o generic.o report_generic.o shadow.o quarantine.o
52 obj-$(CONFIG_KASAN_HW_TAGS) += hw_tags.o report_hw_tags.o tags.o report_tags.o
53 obj-$(CONFIG_KASAN_SW_TAGS) += init.o report_sw_tags.o shadow.o sw_tags.o tags.o report_tags.o
55 kasan_test-objs := kasan_test_c.o
56 ifdef CONFIG_RUST
57 kasan_test-objs += kasan_test_rust.o
58 endif
60 obj-$(CONFIG_KASAN_KUNIT_TEST) += kasan_test.o