xref: /OK3568_Linux_fs/device/rockchip/common/linux-kbuild/armhf/linux-kbuild-4.4/scripts/Makefile.kasan (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunifdef CONFIG_KASAN
2*4882a593Smuzhiyunifdef CONFIG_KASAN_INLINE
3*4882a593Smuzhiyun	call_threshold := 10000
4*4882a593Smuzhiyunelse
5*4882a593Smuzhiyun	call_threshold := 0
6*4882a593Smuzhiyunendif
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunKASAN_SHADOW_OFFSET ?= $(CONFIG_KASAN_SHADOW_OFFSET)
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunCFLAGS_KASAN_MINIMAL := -fsanitize=kernel-address
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunCFLAGS_KASAN := $(call cc-option, -fsanitize=kernel-address \
13*4882a593Smuzhiyun		-fasan-shadow-offset=$(KASAN_SHADOW_OFFSET) \
14*4882a593Smuzhiyun		--param asan-stack=1 --param asan-globals=1 \
15*4882a593Smuzhiyun		--param asan-instrumentation-with-call-threshold=$(call_threshold))
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunifeq ($(call cc-option, $(CFLAGS_KASAN_MINIMAL) -Werror),)
18*4882a593Smuzhiyun   ifneq ($(CONFIG_COMPILE_TEST),y)
19*4882a593Smuzhiyun        $(warning Cannot use CONFIG_KASAN: \
20*4882a593Smuzhiyun            -fsanitize=kernel-address is not supported by compiler)
21*4882a593Smuzhiyun   endif
22*4882a593Smuzhiyunelse
23*4882a593Smuzhiyun    ifeq ($(CFLAGS_KASAN),)
24*4882a593Smuzhiyun        ifneq ($(CONFIG_COMPILE_TEST),y)
25*4882a593Smuzhiyun            $(warning CONFIG_KASAN: compiler does not support all options.\
26*4882a593Smuzhiyun                Trying minimal configuration)
27*4882a593Smuzhiyun        endif
28*4882a593Smuzhiyun        CFLAGS_KASAN := $(CFLAGS_KASAN_MINIMAL)
29*4882a593Smuzhiyun    endif
30*4882a593Smuzhiyunendif
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunCFLAGS_KASAN_NOSANITIZE := -fno-builtin
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunendif
35