diff options
author | Evgenii Stepanov <eugenis@google.com> | 2016-05-12 13:07:17 -0700 |
---|---|---|
committer | Evgenii Stepanov <eugenis@google.com> | 2016-06-30 22:49:17 +0000 |
commit | 428236614abfa5353bb021d145bb555fa08a1efc (patch) | |
tree | 8c353694e4254863eb2bc43590a5be09ce2048ef | |
parent | 55d4a46f6da08b248a467097d56a2762d47d7043 (diff) | |
download | build-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.mk | 1 | ||||
-rw-r--r-- | core/config_sanitizers.mk | 5 |
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)),) |