aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgenii Stepanov <eugenis@google.com>2016-05-12 13:07:17 -0700
committerEvgenii Stepanov <eugenis@google.com>2016-06-30 22:49:17 +0000
commit428236614abfa5353bb021d145bb555fa08a1efc (patch)
tree8c353694e4254863eb2bc43590a5be09ce2048ef
parent55d4a46f6da08b248a467097d56a2762d47d7043 (diff)
downloadbuild-428236614abfa5353bb021d145bb555fa08a1efc.tar.gz
Add LOCAL_NOSANITIZE.
This can be used to selectively disable individual sanitizers on a target. For example, some parts of libc should be built with SafeStack (when requested with SANITIZE_TARGET), but never with AddressSanitizer. Current build rules specify LOCAL_SANITIZE := never to disable AddressSanitizer; the idea is to change that to LOCAL_NOSANITIZE := address thread. Bug: 27729263 Change-Id: I2b770f2ce3faf6ad6798792327e96adb86fe4a4f
-rw-r--r--core/clear_vars.mk1
-rw-r--r--core/config_sanitizers.mk5
2 files changed, 6 insertions, 0 deletions
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index 9ca880b6fb..7733a3e24c 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -189,6 +189,7 @@ LOCAL_DPI_VARIANTS:=
LOCAL_DPI_FILE_STEM:=
LOCAL_SANITIZE:=
LOCAL_SANITIZE_RECOVER:=
+LOCAL_NOSANITIZE:=
LOCAL_DBUS_PROXY_PREFIX:=
LOCAL_INIT_RC:=
LOCAL_MODULE_HOST_OS:=
diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk
index 3573f0ae11..26dbb7334f 100644
--- a/core/config_sanitizers.mk
+++ b/core/config_sanitizers.mk
@@ -34,6 +34,11 @@ ifeq ($(LOCAL_SANITIZE),never)
my_sanitize :=
endif
+my_nosanitize = $(strip $(LOCAL_NOSANITIZE))
+ifneq ($(my_nosanitize),)
+ my_sanitize := $(filter-out $(my_nosanitize),$(my_sanitize))
+endif
+
# TSAN is not supported on 32-bit architectures. For non-multilib cases, make
# its use an error. For multilib cases, don't use it for the 32-bit case.
ifneq ($(filter thread,$(my_sanitize)),)