diff options
author | Mike Frysinger <vapier@gentoo.org> | 2016-02-12 22:12:47 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2016-02-12 22:12:47 -0500 |
commit | 43e56639c6739953d5a6686823bcd0d256512ea5 (patch) | |
tree | 65bf6cf13f2f366a7a8739cc3fb2f404dc473c07 | |
parent | 8efcc9589bd61171ec1fe4f71c33e9df62b6005b (diff) | |
download | busybox-43e56639c6739953d5a6686823bcd0d256512ea5.tar.gz |
build: add a sanitizer debug option
Building & running with ASAN is super helpful, so add a dedicated config
knob for it. This way people don't have to guess at the right compiler
settings in order to get a good build. We can just tell people to enable
this one option.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-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 in a much bigger executable that more closely matches the source code. +config DEBUG_SANITIZE + bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)" + default n + help + Say Y here if you want to enable runtime sanitizers. These help + catch bad memory accesses (e.g. buffer overflows), but will make + the executable larger and slow down runtime a bit. + + If you aren't developing/testing busybox, say N here. + config UNIT_TEST bool "Build unit tests" 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 CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,)) endif endif +ifeq ($(CONFIG_DEBUG_SANITIZE),y) +CFLAGS += $(call cc-option,-fsanitize=address,) +CFLAGS += $(call cc-option,-fsanitize=leak,) +CFLAGS += $(call cc-option,-fsanitize=undefined,) +endif # If arch/$(ARCH)/Makefile did not override it (with, say, -fPIC)... ARCH_FPIC ?= -fpic |