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)