1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for KernelMemorySanitizer (KMSAN).
6 obj-y
:= core.o instrumentation.o init.o hooks.o report.o shadow.o
12 # Disable instrumentation of KMSAN runtime with other tools.
13 CC_FLAGS_KMSAN_RUNTIME
:= -fno-stack-protector
14 CC_FLAGS_KMSAN_RUNTIME
+= $(call cc-option
,-fno-conserve-stack
)
15 CC_FLAGS_KMSAN_RUNTIME
+= -DDISABLE_BRANCH_PROFILING
17 # Disable ftrace to avoid recursion.
18 CFLAGS_REMOVE_core.o
= $(CC_FLAGS_FTRACE
)
19 CFLAGS_REMOVE_hooks.o
= $(CC_FLAGS_FTRACE
)
20 CFLAGS_REMOVE_init.o
= $(CC_FLAGS_FTRACE
)
21 CFLAGS_REMOVE_instrumentation.o
= $(CC_FLAGS_FTRACE
)
22 CFLAGS_REMOVE_report.o
= $(CC_FLAGS_FTRACE
)
23 CFLAGS_REMOVE_shadow.o
= $(CC_FLAGS_FTRACE
)
25 CFLAGS_core.o
:= $(CC_FLAGS_KMSAN_RUNTIME
)
26 CFLAGS_hooks.o
:= $(CC_FLAGS_KMSAN_RUNTIME
)
27 CFLAGS_init.o
:= $(CC_FLAGS_KMSAN_RUNTIME
)
28 CFLAGS_instrumentation.o
:= $(CC_FLAGS_KMSAN_RUNTIME
)
29 CFLAGS_report.o
:= $(CC_FLAGS_KMSAN_RUNTIME
)
30 CFLAGS_shadow.o
:= $(CC_FLAGS_KMSAN_RUNTIME
)
32 obj-
$(CONFIG_KMSAN_KUNIT_TEST
) += kmsan_test.o
33 KMSAN_SANITIZE_kmsan_test.o
:= y
34 CFLAGS_kmsan_test.o
+= $(call cc-disable-warning
, uninitialized
)