From 1cbe3d944a93fa3a0f0d7a444bb69c644c83f385 Mon Sep 17 00:00:00 2001 From: Evgenii Stepanov Date: Fri, 12 Jun 2015 15:42:20 -0700 Subject: [PATCH] SANITIZE_TARGET: set global ASAN_OPTIONS allow_user_segv_handler=1 is required to run ART under ASan detect_odr_violation=0 and alloc_dealloc_mismatch=0 suppress some of the existing bug reports during boot. Bug: 21951850, 21785137 Change-Id: I4d36967c6d8d936dacbfdf1b94b87fa94766bd3e --- rootdir/Android.mk | 6 ++++++ rootdir/init.environ.rc.in | 1 + 2 files changed, 7 insertions(+) diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 7ab76b871..05d8fe08c 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -30,6 +30,11 @@ LOCAL_POST_INSTALL_CMD := mkdir -p $(addprefix $(TARGET_ROOT_OUT)/, \ include $(BUILD_SYSTEM)/base_rules.mk +EXPORT_GLOBAL_ASAN_OPTIONS := +ifeq (address,$(strip $(SANITIZE_TARGET))) + EXPORT_GLOBAL_ASAN_OPTIONS := export ASAN_OPTIONS allow_user_segv_handler=1:detect_odr_violation=0:alloc_dealloc_mismatch=0 +endif + # Regenerate init.environ.rc if PRODUCT_BOOTCLASSPATH has changed. bcp_md5 := $(word 1, $(shell echo $(PRODUCT_BOOTCLASSPATH) $(PRODUCT_SYSTEM_SERVER_CLASSPATH) | $(MD5SUM))) bcp_dep := $(intermediates)/$(bcp_md5).bcp.dep @@ -41,6 +46,7 @@ $(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/init.environ.rc.in $(bcp_dep) @mkdir -p $(dir $@) $(hide) sed -e 's?%BOOTCLASSPATH%?$(PRODUCT_BOOTCLASSPATH)?g' $< >$@ $(hide) sed -i -e 's?%SYSTEMSERVERCLASSPATH%?$(PRODUCT_SYSTEM_SERVER_CLASSPATH)?g' $@ + $(hide) sed -i -e 's?%EXPORT_GLOBAL_ASAN_OPTIONS%?$(EXPORT_GLOBAL_ASAN_OPTIONS)?g' $@ bcp_md5 := bcp_dep := diff --git a/rootdir/init.environ.rc.in b/rootdir/init.environ.rc.in index 0064790ad..e8b46eb15 100644 --- a/rootdir/init.environ.rc.in +++ b/rootdir/init.environ.rc.in @@ -9,3 +9,4 @@ on init export LOOP_MOUNTPOINT /mnt/obb export BOOTCLASSPATH %BOOTCLASSPATH% export SYSTEMSERVERCLASSPATH %SYSTEMSERVERCLASSPATH% + %EXPORT_GLOBAL_ASAN_OPTIONS%