diff options
-rw-r--r-- | Config.in | 10 | ||||
-rw-r--r-- | Makefile.flags | 5 |
2 files changed, 15 insertions, 0 deletions
@@ -688,6 +688,16 @@ config DEBUG_PESSIMIZE | |||
688 | in a much bigger executable that more closely matches the source | 688 | in a much bigger executable that more closely matches the source |
689 | code. | 689 | code. |
690 | 690 | ||
691 | config DEBUG_SANITIZE | ||
692 | bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)" | ||
693 | default n | ||
694 | help | ||
695 | Say Y here if you want to enable runtime sanitizers. These help | ||
696 | catch bad memory accesses (e.g. buffer overflows), but will make | ||
697 | the executable larger and slow down runtime a bit. | ||
698 | |||
699 | If you aren't developing/testing busybox, say N here. | ||
700 | |||
691 | config UNIT_TEST | 701 | config UNIT_TEST |
692 | bool "Build unit tests" | 702 | bool "Build unit tests" |
693 | default n | 703 | default n |
diff --git a/Makefile.flags b/Makefile.flags index 9f77674ba..65021de25 100644 --- a/Makefile.flags +++ b/Makefile.flags | |||
@@ -75,6 +75,11 @@ else | |||
75 | CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,)) | 75 | CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,)) |
76 | endif | 76 | endif |
77 | endif | 77 | endif |
78 | ifeq ($(CONFIG_DEBUG_SANITIZE),y) | ||
79 | CFLAGS += $(call cc-option,-fsanitize=address,) | ||
80 | CFLAGS += $(call cc-option,-fsanitize=leak,) | ||
81 | CFLAGS += $(call cc-option,-fsanitize=undefined,) | ||
82 | endif | ||
78 | 83 | ||
79 | # If arch/$(ARCH)/Makefile did not override it (with, say, -fPIC)... | 84 | # If arch/$(ARCH)/Makefile did not override it (with, say, -fPIC)... |
80 | ARCH_FPIC ?= -fpic | 85 | ARCH_FPIC ?= -fpic |