From 428236614abfa5353bb021d145bb555fa08a1efc Mon Sep 17 00:00:00 2001 From: Evgenii Stepanov Date: Thu, 12 May 2016 13:07:17 -0700 Subject: [PATCH] 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 --- core/clear_vars.mk | 1 + core/config_sanitizers.mk | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 9ca880b6f..7733a3e24 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 3573f0ae1..26dbb7334 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)),)