162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Makefile for KernelMemorySanitizer (KMSAN).
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci#
662306a36Sopenharmony_ciobj-y := core.o instrumentation.o init.o hooks.o report.o shadow.o
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciKMSAN_SANITIZE := n
962306a36Sopenharmony_ciKCOV_INSTRUMENT := n
1062306a36Sopenharmony_ciUBSAN_SANITIZE := n
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci# Disable instrumentation of KMSAN runtime with other tools.
1362306a36Sopenharmony_ciCC_FLAGS_KMSAN_RUNTIME := -fno-stack-protector
1462306a36Sopenharmony_ciCC_FLAGS_KMSAN_RUNTIME += $(call cc-option,-fno-conserve-stack)
1562306a36Sopenharmony_ciCC_FLAGS_KMSAN_RUNTIME += -DDISABLE_BRANCH_PROFILING
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci# Disable ftrace to avoid recursion.
1862306a36Sopenharmony_ciCFLAGS_REMOVE_core.o = $(CC_FLAGS_FTRACE)
1962306a36Sopenharmony_ciCFLAGS_REMOVE_hooks.o = $(CC_FLAGS_FTRACE)
2062306a36Sopenharmony_ciCFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE)
2162306a36Sopenharmony_ciCFLAGS_REMOVE_instrumentation.o = $(CC_FLAGS_FTRACE)
2262306a36Sopenharmony_ciCFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE)
2362306a36Sopenharmony_ciCFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE)
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciCFLAGS_core.o := $(CC_FLAGS_KMSAN_RUNTIME)
2662306a36Sopenharmony_ciCFLAGS_hooks.o := $(CC_FLAGS_KMSAN_RUNTIME)
2762306a36Sopenharmony_ciCFLAGS_init.o := $(CC_FLAGS_KMSAN_RUNTIME)
2862306a36Sopenharmony_ciCFLAGS_instrumentation.o := $(CC_FLAGS_KMSAN_RUNTIME)
2962306a36Sopenharmony_ciCFLAGS_report.o := $(CC_FLAGS_KMSAN_RUNTIME)
3062306a36Sopenharmony_ciCFLAGS_shadow.o := $(CC_FLAGS_KMSAN_RUNTIME)
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciobj-$(CONFIG_KMSAN_KUNIT_TEST) += kmsan_test.o
3362306a36Sopenharmony_ciKMSAN_SANITIZE_kmsan_test.o := y
3462306a36Sopenharmony_ciCFLAGS_kmsan_test.o += $(call cc-disable-warning, uninitialized)
35