Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[linux-block.git] / mm / kasan / Makefile
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
0b24becc 2KASAN_SANITIZE := n
8a16c09e 3UBSAN_SANITIZE := n
5c9a8750 4KCOV_INSTRUMENT := n
0b24becc 5
8a16c09e 6# Disable ftrace to avoid recursion.
e2092740
TD
7CFLAGS_REMOVE_common.o = $(CC_FLAGS_FTRACE)
8CFLAGS_REMOVE_generic.o = $(CC_FLAGS_FTRACE)
8a16c09e
AK
9CFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE)
10CFLAGS_REMOVE_quarantine.o = $(CC_FLAGS_FTRACE)
11CFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE)
59fd51b2 12CFLAGS_REMOVE_report_generic.o = $(CC_FLAGS_FTRACE)
2e903b91 13CFLAGS_REMOVE_report_hw_tags.o = $(CC_FLAGS_FTRACE)
59fd51b2 14CFLAGS_REMOVE_report_sw_tags.o = $(CC_FLAGS_FTRACE)
bb359dbc 15CFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE)
2e903b91 16CFLAGS_REMOVE_hw_tags.o = $(CC_FLAGS_FTRACE)
59fd51b2 17CFLAGS_REMOVE_sw_tags.o = $(CC_FLAGS_FTRACE)
dc15a8a2 18
0b24becc
AR
19# Function splitter causes unnecessary splits in __asan_load1/__asan_store1
20# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533
ca734cc6 21CC_FLAGS_KASAN_RUNTIME := $(call cc-option, -fno-conserve-stack)
893ab004 22CC_FLAGS_KASAN_RUNTIME += -fno-stack-protector
ca734cc6
AK
23# Disable branch tracing to avoid recursion.
24CC_FLAGS_KASAN_RUNTIME += -DDISABLE_BRANCH_PROFILING
25
26CFLAGS_common.o := $(CC_FLAGS_KASAN_RUNTIME)
27CFLAGS_generic.o := $(CC_FLAGS_KASAN_RUNTIME)
ca734cc6
AK
28CFLAGS_init.o := $(CC_FLAGS_KASAN_RUNTIME)
29CFLAGS_quarantine.o := $(CC_FLAGS_KASAN_RUNTIME)
30CFLAGS_report.o := $(CC_FLAGS_KASAN_RUNTIME)
59fd51b2 31CFLAGS_report_generic.o := $(CC_FLAGS_KASAN_RUNTIME)
2e903b91 32CFLAGS_report_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
59fd51b2 33CFLAGS_report_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
bb359dbc 34CFLAGS_shadow.o := $(CC_FLAGS_KASAN_RUNTIME)
2e903b91 35CFLAGS_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
59fd51b2 36CFLAGS_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME)
0b24becc 37
85f195b1
ME
38CFLAGS_KASAN_TEST := $(CFLAGS_KASAN) $(call cc-disable-warning, vla)
39ifndef 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.
44CFLAGS_KASAN_TEST += -fno-builtin
45endif
f7e01ab8
AK
46
47CFLAGS_kasan_test.o := $(CFLAGS_KASAN_TEST)
48CFLAGS_kasan_test_module.o := $(CFLAGS_KASAN_TEST)
49
09eb911d 50obj-y := common.o report.o
59fd51b2 51obj-$(CONFIG_KASAN_GENERIC) += init.o generic.o report_generic.o shadow.o quarantine.o
a0503b8a
KYL
52obj-$(CONFIG_KASAN_HW_TAGS) += hw_tags.o report_hw_tags.o tags.o report_tags.o
53obj-$(CONFIG_KASAN_SW_TAGS) += init.o report_sw_tags.o shadow.o sw_tags.o tags.o report_tags.o
f7e01ab8
AK
54
55obj-$(CONFIG_KASAN_KUNIT_TEST) += kasan_test.o
56obj-$(CONFIG_KASAN_MODULE_TEST) += kasan_test_module.o