162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ciKASAN_SANITIZE := n 362306a36Sopenharmony_ciUBSAN_SANITIZE := n 462306a36Sopenharmony_ciKCOV_INSTRUMENT := n 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci# Disable ftrace to avoid recursion. 762306a36Sopenharmony_ciCFLAGS_REMOVE_common.o = $(CC_FLAGS_FTRACE) 862306a36Sopenharmony_ciCFLAGS_REMOVE_generic.o = $(CC_FLAGS_FTRACE) 962306a36Sopenharmony_ciCFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE) 1062306a36Sopenharmony_ciCFLAGS_REMOVE_quarantine.o = $(CC_FLAGS_FTRACE) 1162306a36Sopenharmony_ciCFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE) 1262306a36Sopenharmony_ciCFLAGS_REMOVE_report_generic.o = $(CC_FLAGS_FTRACE) 1362306a36Sopenharmony_ciCFLAGS_REMOVE_report_hw_tags.o = $(CC_FLAGS_FTRACE) 1462306a36Sopenharmony_ciCFLAGS_REMOVE_report_sw_tags.o = $(CC_FLAGS_FTRACE) 1562306a36Sopenharmony_ciCFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE) 1662306a36Sopenharmony_ciCFLAGS_REMOVE_hw_tags.o = $(CC_FLAGS_FTRACE) 1762306a36Sopenharmony_ciCFLAGS_REMOVE_sw_tags.o = $(CC_FLAGS_FTRACE) 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci# Function splitter causes unnecessary splits in __asan_load1/__asan_store1 2062306a36Sopenharmony_ci# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533 2162306a36Sopenharmony_ciCC_FLAGS_KASAN_RUNTIME := $(call cc-option, -fno-conserve-stack) 2262306a36Sopenharmony_ciCC_FLAGS_KASAN_RUNTIME += -fno-stack-protector 2362306a36Sopenharmony_ci# Disable branch tracing to avoid recursion. 2462306a36Sopenharmony_ciCC_FLAGS_KASAN_RUNTIME += -DDISABLE_BRANCH_PROFILING 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciCFLAGS_common.o := $(CC_FLAGS_KASAN_RUNTIME) 2762306a36Sopenharmony_ciCFLAGS_generic.o := $(CC_FLAGS_KASAN_RUNTIME) 2862306a36Sopenharmony_ciCFLAGS_init.o := $(CC_FLAGS_KASAN_RUNTIME) 2962306a36Sopenharmony_ciCFLAGS_quarantine.o := $(CC_FLAGS_KASAN_RUNTIME) 3062306a36Sopenharmony_ciCFLAGS_report.o := $(CC_FLAGS_KASAN_RUNTIME) 3162306a36Sopenharmony_ciCFLAGS_report_generic.o := $(CC_FLAGS_KASAN_RUNTIME) 3262306a36Sopenharmony_ciCFLAGS_report_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 3362306a36Sopenharmony_ciCFLAGS_report_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 3462306a36Sopenharmony_ciCFLAGS_shadow.o := $(CC_FLAGS_KASAN_RUNTIME) 3562306a36Sopenharmony_ciCFLAGS_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 3662306a36Sopenharmony_ciCFLAGS_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciCFLAGS_KASAN_TEST := $(CFLAGS_KASAN) $(call cc-disable-warning, vla) 3962306a36Sopenharmony_ciifndef CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX 4062306a36Sopenharmony_ci# If compiler instruments memintrinsics by prefixing them with __asan/__hwasan, 4162306a36Sopenharmony_ci# we need to treat them normally (as builtins), otherwise the compiler won't 4262306a36Sopenharmony_ci# recognize them as instrumentable. If it doesn't instrument them, we need to 4362306a36Sopenharmony_ci# pass -fno-builtin, so the compiler doesn't inline them. 4462306a36Sopenharmony_ciCFLAGS_KASAN_TEST += -fno-builtin 4562306a36Sopenharmony_ciendif 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciCFLAGS_kasan_test.o := $(CFLAGS_KASAN_TEST) 4862306a36Sopenharmony_ciCFLAGS_kasan_test_module.o := $(CFLAGS_KASAN_TEST) 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciobj-y := common.o report.o 5162306a36Sopenharmony_ciobj-$(CONFIG_KASAN_GENERIC) += init.o generic.o report_generic.o shadow.o quarantine.o 5262306a36Sopenharmony_ciobj-$(CONFIG_KASAN_HW_TAGS) += hw_tags.o report_hw_tags.o tags.o report_tags.o 5362306a36Sopenharmony_ciobj-$(CONFIG_KASAN_SW_TAGS) += init.o report_sw_tags.o shadow.o sw_tags.o tags.o report_tags.o 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciobj-$(CONFIG_KASAN_KUNIT_TEST) += kasan_test.o 5662306a36Sopenharmony_ciobj-$(CONFIG_KASAN_MODULE_TEST) += kasan_test_module.o 57