This patch add two new flags to disable all sanitizers (UBSAN and KASAN): o SANITIZE_xx.o - disable all sanitizers for a single file. o SANITIZE - disable all sanitizers for current directory. Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx> --- Documentation/dev-tools/kasan.rst | 12 ++++++++++++ scripts/Makefile.lib | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Documentation/dev-tools/kasan.rst b/Documentation/dev-tools/kasan.rst index e4d66e7c50de..f59fc5fb2cd8 100644 --- a/Documentation/dev-tools/kasan.rst +++ b/Documentation/dev-tools/kasan.rst @@ -55,6 +55,18 @@ similar to the following to the respective kernel Makefile: KASAN_SANITIZE := n +Similarly, to disable all sanitizers (KASAN, UBSAN) for specific files or +directories, add a line similar to the following to the respective kernel +Makefile: + +- For a single file (e.g. main.o):: + + SANITIZE_main.o := n + +- For all files in one directory:: + + SANITIZE := n + Error reports ~~~~~~~~~~~~~ diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 3fa32f83b2d7..9b7d784e3252 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -122,13 +122,13 @@ endif # ifeq ($(CONFIG_KASAN),y) _c_flags += $(if $(patsubst n%,, \ - $(KASAN_SANITIZE_$(basetarget).o)$(KASAN_SANITIZE)y), \ + $(SANITIZE_$(basetarget).o)$(SANITIZE)$(KASAN_SANITIZE_$(basetarget).o)$(KASAN_SANITIZE)y), \ $(CFLAGS_KASAN), $(CFLAGS_KASAN_NOSANITIZE)) endif ifeq ($(CONFIG_UBSAN),y) _c_flags += $(if $(patsubst n%,, \ - $(UBSAN_SANITIZE_$(basetarget).o)$(UBSAN_SANITIZE)$(CONFIG_UBSAN_SANITIZE_ALL)), \ + $(SANITIZE_$(basetarget).o)$(SANITIZE)$(UBSAN_SANITIZE_$(basetarget).o)$(UBSAN_SANITIZE)$(CONFIG_UBSAN_SANITIZE_ALL)), \ $(CFLAGS_UBSAN)) endif -- 2.24.0