| # SPDX-License-Identifier: GPL-2.0 |
| # |
| # Makefile for KernelMemorySanitizer (KMSAN). |
| # |
| # |
| obj-y := core.o instrumentation.o init.o hooks.o report.o shadow.o |
| |
| KMSAN_SANITIZE := n |
| KCOV_INSTRUMENT := n |
| UBSAN_SANITIZE := n |
| |
| # Disable instrumentation of KMSAN runtime with other tools. |
| CC_FLAGS_KMSAN_RUNTIME := -fno-stack-protector |
| CC_FLAGS_KMSAN_RUNTIME += $(call cc-option,-fno-conserve-stack) |
| CC_FLAGS_KMSAN_RUNTIME += -DDISABLE_BRANCH_PROFILING |
| |
| # Disable ftrace to avoid recursion. |
| CFLAGS_REMOVE_core.o = $(CC_FLAGS_FTRACE) |
| CFLAGS_REMOVE_hooks.o = $(CC_FLAGS_FTRACE) |
| CFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE) |
| CFLAGS_REMOVE_instrumentation.o = $(CC_FLAGS_FTRACE) |
| CFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE) |
| CFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE) |
| |
| CFLAGS_core.o := $(CC_FLAGS_KMSAN_RUNTIME) |
| CFLAGS_hooks.o := $(CC_FLAGS_KMSAN_RUNTIME) |
| CFLAGS_init.o := $(CC_FLAGS_KMSAN_RUNTIME) |
| CFLAGS_instrumentation.o := $(CC_FLAGS_KMSAN_RUNTIME) |
| CFLAGS_report.o := $(CC_FLAGS_KMSAN_RUNTIME) |
| CFLAGS_shadow.o := $(CC_FLAGS_KMSAN_RUNTIME) |
| |
| obj-$(CONFIG_KMSAN_KUNIT_TEST) += kmsan_test.o |
| KMSAN_SANITIZE_kmsan_test.o := y |
| CFLAGS_kmsan_test.o += $(call cc-disable-warning, uninitialized) |