mirror of https://github.com/OpenIPC/firmware.git
47 lines
1.9 KiB
Diff
47 lines
1.9 KiB
Diff
diff -drupN a/scripts/Makefile.kasan b/scripts/Makefile.kasan
|
|
--- a/scripts/Makefile.kasan 2018-08-06 17:23:04.000000000 +0300
|
|
+++ b/scripts/Makefile.kasan 2022-06-12 05:28:14.000000000 +0300
|
|
@@ -9,10 +9,7 @@ KASAN_SHADOW_OFFSET ?= $(CONFIG_KASAN_SH
|
|
|
|
CFLAGS_KASAN_MINIMAL := -fsanitize=kernel-address
|
|
|
|
-CFLAGS_KASAN := $(call cc-option, -fsanitize=kernel-address \
|
|
- -fasan-shadow-offset=$(KASAN_SHADOW_OFFSET) \
|
|
- --param asan-stack=1 --param asan-globals=1 \
|
|
- --param asan-instrumentation-with-call-threshold=$(call_threshold))
|
|
+cc-param = $(call cc-option, -mllvm -$(1), $(call cc-option, --param $(1)))
|
|
|
|
ifeq ($(call cc-option, $(CFLAGS_KASAN_MINIMAL) -Werror),)
|
|
ifneq ($(CONFIG_COMPILE_TEST),y)
|
|
@@ -20,12 +17,23 @@ ifeq ($(call cc-option, $(CFLAGS_KASAN_M
|
|
-fsanitize=kernel-address is not supported by compiler)
|
|
endif
|
|
else
|
|
- ifeq ($(CFLAGS_KASAN),)
|
|
- ifneq ($(CONFIG_COMPILE_TEST),y)
|
|
- $(warning CONFIG_KASAN: compiler does not support all options.\
|
|
- Trying minimal configuration)
|
|
- endif
|
|
- CFLAGS_KASAN := $(CFLAGS_KASAN_MINIMAL)
|
|
- endif
|
|
+ # -fasan-shadow-offset fails without -fsanitize
|
|
+ CFLAGS_KASAN_SHADOW := $(call cc-option, -fsanitize=kernel-address \
|
|
+ -fasan-shadow-offset=$(KASAN_SHADOW_OFFSET), \
|
|
+ $(call cc-option, -fsanitize=kernel-address \
|
|
+ -mllvm -asan-mapping-offset=$(KASAN_SHADOW_OFFSET)))
|
|
+
|
|
+ ifeq ($(strip $(CFLAGS_KASAN_SHADOW)),)
|
|
+ CFLAGS_KASAN := $(CFLAGS_KASAN_MINIMAL)
|
|
+ else
|
|
+ # Now add all the compiler specific options that are valid standalone
|
|
+ CFLAGS_KASAN := $(CFLAGS_KASAN_SHADOW) \
|
|
+ $(call cc-param,asan-globals=1) \
|
|
+ $(call cc-param,asan-instrumentation-with-call-threshold=$(call_threshold)) \
|
|
+ $(call cc-param,asan-stack=1) \
|
|
+ $(call cc-param,asan-use-after-scope=1) \
|
|
+ $(call cc-param,asan-instrument-allocas=1)
|
|
+ endif
|
|
+
|
|
endif
|
|
endif
|