summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2014-12-09 23:44:32 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-12-09 23:44:32 +0000
commit827967b69654ebc6e31942025cb00714f840cc9b (patch)
tree5f44badb8b999be0fdbf6e14d5efccca2bd2b9ff /core
parent565f87011df3278c285f4e4000de809bbed571de (diff)
parent023fd1fca8b200d73d0b2628180a602750ae59ee (diff)
downloadbuild-827967b69654ebc6e31942025cb00714f840cc9b.zip
build-827967b69654ebc6e31942025cb00714f840cc9b.tar.gz
build-827967b69654ebc6e31942025cb00714f840cc9b.tar.bz2
am 023fd1fc: am e98755f9: Merge "Add a SANITIZE_HOST flag."
* commit '023fd1fca8b200d73d0b2628180a602750ae59ee': Add a SANITIZE_HOST flag.
Diffstat (limited to 'core')
-rw-r--r--core/binary.mk14
-rw-r--r--core/config_sanitizers.mk32
2 files changed, 33 insertions, 13 deletions
diff --git a/core/binary.mk b/core/binary.mk
index e471814..5f85fef 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -191,19 +191,7 @@ $(foreach lib, $(LOCAL_HAL_STATIC_LIBRARIES), \
b_lib :=
endif
-ifeq ($(strip $(LOCAL_ADDRESS_SANITIZER)),true)
- my_clang := true
- # Frame pointer based unwinder in ASan requires ARM frame setup.
- LOCAL_ARM_MODE := arm
- my_cflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS)
- my_ldflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS)
- ifdef LOCAL_IS_HOST_MODULE
- my_ldflags += -fsanitize=address
- else
- my_shared_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES)
- my_static_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES)
- endif
-endif
+include $(BUILD_SYSTEM)/config_sanitizers.mk
ifeq ($(strip $($(LOCAL_2ND_ARCH_VAR_PREFIX)WITHOUT_$(my_prefix)CLANG)),true)
my_clang :=
diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk
new file mode 100644
index 0000000..a1964a9
--- /dev/null
+++ b/core/config_sanitizers.mk
@@ -0,0 +1,32 @@
+##############################################
+## Perform configuration steps for sanitizers.
+##############################################
+
+# Configure SANITIZE_HOST.
+ifdef LOCAL_IS_HOST_MODULE
+ifeq ($(SANITIZE_HOST),true)
+ifneq ($(strip $(LOCAL_CLANG)),false)
+ifneq ($(strip $(LOCAL_ADDRESS_SANITIZER)),false)
+ LOCAL_ADDRESS_SANITIZER := true
+endif
+endif
+endif
+endif
+
+# Configure address sanitizer.
+ifeq ($(strip $(LOCAL_ADDRESS_SANITIZER)),true)
+ my_clang := true
+ # Frame pointer based unwinder in ASan requires ARM frame setup.
+ LOCAL_ARM_MODE := arm
+ my_cflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS)
+ my_ldflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS)
+ ifdef LOCAL_IS_HOST_MODULE
+ my_ldflags += -fsanitize=address
+ # -nodefaultlibs (provided with libc++) prevents the driver from linking
+ # libraries needed with -fsanitize=address. http://b/18650275
+ my_ldlibs += -ldl -lpthread
+ else
+ my_shared_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES)
+ my_static_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES)
+ endif
+endif