1153486Sphk# SPDX-License-Identifier: GPL-2.0
2153486Sphk#
3153486Sphk# Makefile for KernelMemorySanitizer (KMSAN).
4153486Sphk#
5153486Sphk#
6153486Sphkobj-y := core.o instrumentation.o init.o hooks.o report.o shadow.o
7153486Sphk
8153486SphkKMSAN_SANITIZE := n
9153486SphkKCOV_INSTRUMENT := n
10153486SphkUBSAN_SANITIZE := n
11153486Sphk
12153486Sphk# Disable instrumentation of KMSAN runtime with other tools.
13153486SphkCC_FLAGS_KMSAN_RUNTIME := -fno-stack-protector
14153486SphkCC_FLAGS_KMSAN_RUNTIME += $(call cc-option,-fno-conserve-stack)
15153486SphkCC_FLAGS_KMSAN_RUNTIME += -DDISABLE_BRANCH_PROFILING
16153486Sphk
17153486Sphk# Disable ftrace to avoid recursion.
18153486SphkCFLAGS_REMOVE_core.o = $(CC_FLAGS_FTRACE)
19153486SphkCFLAGS_REMOVE_hooks.o = $(CC_FLAGS_FTRACE)
20153486SphkCFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE)
21153486SphkCFLAGS_REMOVE_instrumentation.o = $(CC_FLAGS_FTRACE)
22153486SphkCFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE)
23153486SphkCFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE)
24153486Sphk
25153486SphkCFLAGS_core.o := $(CC_FLAGS_KMSAN_RUNTIME)
26153486SphkCFLAGS_hooks.o := $(CC_FLAGS_KMSAN_RUNTIME)
27153486SphkCFLAGS_init.o := $(CC_FLAGS_KMSAN_RUNTIME)
28153486SphkCFLAGS_instrumentation.o := $(CC_FLAGS_KMSAN_RUNTIME)
29153486SphkCFLAGS_report.o := $(CC_FLAGS_KMSAN_RUNTIME)
30153486SphkCFLAGS_shadow.o := $(CC_FLAGS_KMSAN_RUNTIME)
31153486Sphk
32219343Spjdobj-$(CONFIG_KMSAN_KUNIT_TEST) += kmsan_test.o
33156208SphkKMSAN_SANITIZE_kmsan_test.o := y
34156208SphkCFLAGS_kmsan_test.o += $(call cc-disable-warning, uninitialized)
35153486Sphk