1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 20b24beccSAndrey RyabininKASAN_SANITIZE := n 38a16c09eSAndrey KonovalovUBSAN_SANITIZE := n 45c9a8750SDmitry VyukovKCOV_INSTRUMENT := n 50b24beccSAndrey Ryabinin 68a16c09eSAndrey Konovalov# Disable ftrace to avoid recursion. 7e2092740STorsten DuweCFLAGS_REMOVE_common.o = $(CC_FLAGS_FTRACE) 8e2092740STorsten DuweCFLAGS_REMOVE_generic.o = $(CC_FLAGS_FTRACE) 98a16c09eSAndrey KonovalovCFLAGS_REMOVE_init.o = $(CC_FLAGS_FTRACE) 108a16c09eSAndrey KonovalovCFLAGS_REMOVE_quarantine.o = $(CC_FLAGS_FTRACE) 118a16c09eSAndrey KonovalovCFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE) 1259fd51b2SAndrey KonovalovCFLAGS_REMOVE_report_generic.o = $(CC_FLAGS_FTRACE) 132e903b91SAndrey KonovalovCFLAGS_REMOVE_report_hw_tags.o = $(CC_FLAGS_FTRACE) 1459fd51b2SAndrey KonovalovCFLAGS_REMOVE_report_sw_tags.o = $(CC_FLAGS_FTRACE) 15bb359dbcSAndrey KonovalovCFLAGS_REMOVE_shadow.o = $(CC_FLAGS_FTRACE) 162e903b91SAndrey KonovalovCFLAGS_REMOVE_hw_tags.o = $(CC_FLAGS_FTRACE) 1759fd51b2SAndrey KonovalovCFLAGS_REMOVE_sw_tags.o = $(CC_FLAGS_FTRACE) 18dc15a8a2SAndrey Konovalov 190b24beccSAndrey Ryabinin# Function splitter causes unnecessary splits in __asan_load1/__asan_store1 200b24beccSAndrey Ryabinin# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533 21ca734cc6SAndrey KonovalovCC_FLAGS_KASAN_RUNTIME := $(call cc-option, -fno-conserve-stack) 22893ab004SMasahiro YamadaCC_FLAGS_KASAN_RUNTIME += -fno-stack-protector 23ca734cc6SAndrey Konovalov# Disable branch tracing to avoid recursion. 24ca734cc6SAndrey KonovalovCC_FLAGS_KASAN_RUNTIME += -DDISABLE_BRANCH_PROFILING 25ca734cc6SAndrey Konovalov 26ca734cc6SAndrey KonovalovCFLAGS_common.o := $(CC_FLAGS_KASAN_RUNTIME) 27ca734cc6SAndrey KonovalovCFLAGS_generic.o := $(CC_FLAGS_KASAN_RUNTIME) 28ca734cc6SAndrey KonovalovCFLAGS_init.o := $(CC_FLAGS_KASAN_RUNTIME) 29ca734cc6SAndrey KonovalovCFLAGS_quarantine.o := $(CC_FLAGS_KASAN_RUNTIME) 30ca734cc6SAndrey KonovalovCFLAGS_report.o := $(CC_FLAGS_KASAN_RUNTIME) 3159fd51b2SAndrey KonovalovCFLAGS_report_generic.o := $(CC_FLAGS_KASAN_RUNTIME) 322e903b91SAndrey KonovalovCFLAGS_report_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 3359fd51b2SAndrey KonovalovCFLAGS_report_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 34bb359dbcSAndrey KonovalovCFLAGS_shadow.o := $(CC_FLAGS_KASAN_RUNTIME) 352e903b91SAndrey KonovalovCFLAGS_hw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 3659fd51b2SAndrey KonovalovCFLAGS_sw_tags.o := $(CC_FLAGS_KASAN_RUNTIME) 370b24beccSAndrey Ryabinin 3885f195b1SMarco ElverCFLAGS_KASAN_TEST := $(CFLAGS_KASAN) $(call cc-disable-warning, vla) 3985f195b1SMarco Elverifndef CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX 4085f195b1SMarco Elver# If compiler instruments memintrinsics by prefixing them with __asan/__hwasan, 4185f195b1SMarco Elver# we need to treat them normally (as builtins), otherwise the compiler won't 4285f195b1SMarco Elver# recognize them as instrumentable. If it doesn't instrument them, we need to 4385f195b1SMarco Elver# pass -fno-builtin, so the compiler doesn't inline them. 4485f195b1SMarco ElverCFLAGS_KASAN_TEST += -fno-builtin 4585f195b1SMarco Elverendif 46f7e01ab8SAndrey Konovalov 47*a2f11547SMatthew MaurerCFLAGS_kasan_test_c.o := $(CFLAGS_KASAN_TEST) 48*a2f11547SMatthew MaurerRUSTFLAGS_kasan_test_rust.o := $(RUSTFLAGS_KASAN) 49f7e01ab8SAndrey KonovalovCFLAGS_kasan_test_module.o := $(CFLAGS_KASAN_TEST) 50f7e01ab8SAndrey Konovalov 5109eb911dStangmengobj-y := common.o report.o 5259fd51b2SAndrey Konovalovobj-$(CONFIG_KASAN_GENERIC) += init.o generic.o report_generic.o shadow.o quarantine.o 53a0503b8aSKuan-Ying Leeobj-$(CONFIG_KASAN_HW_TAGS) += hw_tags.o report_hw_tags.o tags.o report_tags.o 54a0503b8aSKuan-Ying Leeobj-$(CONFIG_KASAN_SW_TAGS) += init.o report_sw_tags.o shadow.o sw_tags.o tags.o report_tags.o 55f7e01ab8SAndrey Konovalov 56*a2f11547SMatthew Maurerkasan_test-objs := kasan_test_c.o 57*a2f11547SMatthew Maurerifdef CONFIG_RUST 58*a2f11547SMatthew Maurer kasan_test-objs += kasan_test_rust.o 59*a2f11547SMatthew Maurerendif 60*a2f11547SMatthew Maurer 61f7e01ab8SAndrey Konovalovobj-$(CONFIG_KASAN_KUNIT_TEST) += kasan_test.o 62f7e01ab8SAndrey Konovalovobj-$(CONFIG_KASAN_MODULE_TEST) += kasan_test_module.o 63