From: Mike Frysinger Date: Sat, 13 Feb 2016 03:12:47 +0000 (-0500) Subject: build: add a sanitizer debug option X-Git-Tag: 1_25_0~126 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=43e56639c6739953d5a6686823bcd0d256512ea5;p=oweals%2Fbusybox.git 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 --- diff --git a/Config.in b/Config.in index 07b4bf36b..0a0b5d7cb 100644 --- a/Config.in +++ b/Config.in @@ -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