From c5bb0d736e6d7bc2b067fd2e4d6c3ca3efb4c77c Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Thu, 27 Apr 2017 14:05:49 -0700 Subject: [PATCH 1/3] Build: Disable leak sanitizer for aapt Temporary workaround. Bug: 37750224 Test: SANITIZE_HOST=address m Change-Id: If83e1df25890717d18b841fa65635427ba2ee36a --- core/definitions.mk | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index e058bc1002..f61bbe723a 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2000,6 +2000,9 @@ else APPS_DEFAULT_VERSION_NAME := $(PLATFORM_VERSION) endif +# b/37750224 +AAPT_ASAN_OPTIONS := ASAN_OPTIONS=detect_leaks=0 + # TODO: Right now we generate the asset resources twice, first as part # of generating the Java classes, then at the end when packaging the final # assets. This should be changed to do one of two things: (1) Don't generate @@ -2014,7 +2017,7 @@ endif define create-resource-java-files @mkdir -p $(PRIVATE_SOURCE_INTERMEDIATES_DIR) @mkdir -p $(dir $(PRIVATE_RESOURCE_PUBLICS_OUTPUT)) -$(hide) $(AAPT) package $(PRIVATE_AAPT_FLAGS) -m \ +$(hide) $(AAPT_ASAN_OPTIONS) $(AAPT) package $(PRIVATE_AAPT_FLAGS) -m \ $(eval # PRIVATE_PRODUCT_AAPT_CONFIG is intentionally missing-- see comment.) \ $(addprefix -J , $(PRIVATE_SOURCE_INTERMEDIATES_DIR)) \ $(addprefix -M , $(PRIVATE_ANDROID_MANIFEST)) \ @@ -2590,7 +2593,7 @@ endef #values; applications can override these by explicitly stating #them in their manifest. define add-assets-to-package -$(hide) $(AAPT) package -u $(PRIVATE_AAPT_FLAGS) \ +$(hide) $(AAPT_ASAN_OPTIONS) $(AAPT) package -u $(PRIVATE_AAPT_FLAGS) \ $(addprefix -c , $(PRIVATE_PRODUCT_AAPT_CONFIG)) \ $(addprefix --preferred-density , $(PRIVATE_PRODUCT_AAPT_PREF_CONFIG)) \ $(addprefix -M , $(PRIVATE_ANDROID_MANIFEST)) \ From 83c5c474b88238a70535db84ef16eb46cf7d8abb Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Thu, 27 Apr 2017 18:25:50 -0700 Subject: [PATCH 2/3] Build: Disable leak sanitizer for llvm-rs-cc Temporary workaround. Disable leak detection and container overflow. Bug: 37755219 Test: ASAN_OPTIONS= SANITIZE_HOST=address m Change-Id: Id2a72fe7170123f8652f96a0fed29d03f99ae03b --- core/definitions.mk | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index f61bbe723a..293866fc16 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1017,12 +1017,15 @@ $(foreach d,$1, \ $(hide) echo >> $2 endef +# b/37755219 +RS_CC_ASAN_OPTIONS := ASAN_OPTIONS=detect_leaks=0:detect_container_overflow=0 + define transform-renderscripts-to-java-and-bc @echo "RenderScript: $(PRIVATE_MODULE) <= $(PRIVATE_RS_SOURCE_FILES)" $(hide) rm -rf $(PRIVATE_RS_OUTPUT_DIR) $(hide) mkdir -p $(PRIVATE_RS_OUTPUT_DIR)/res/raw $(hide) mkdir -p $(PRIVATE_RS_OUTPUT_DIR)/src -$(hide) $(PRIVATE_RS_CC) \ +$(hide) $(RS_CC_ASAN_OPTIONS) $(PRIVATE_RS_CC) \ -o $(PRIVATE_RS_OUTPUT_DIR)/res/raw \ -p $(PRIVATE_RS_OUTPUT_DIR)/src \ -d $(PRIVATE_RS_OUTPUT_DIR) \ @@ -1058,7 +1061,7 @@ define transform-renderscripts-to-cpp-and-bc @echo "RenderScript: $(PRIVATE_MODULE) <= $(PRIVATE_RS_SOURCE_FILES)" $(hide) rm -rf $(PRIVATE_RS_OUTPUT_DIR) $(hide) mkdir -p $(PRIVATE_RS_OUTPUT_DIR)/ -$(hide) $(PRIVATE_RS_CC) \ +$(hide) $(RS_CC_ASAN_OPTIONS) $(PRIVATE_RS_CC) \ -o $(PRIVATE_RS_OUTPUT_DIR)/ \ -d $(PRIVATE_RS_OUTPUT_DIR) \ -a $@ -MD \ From 48d9a5c80b75e87620987cd5648956ab28f121a4 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Thu, 27 Apr 2017 18:26:36 -0700 Subject: [PATCH 3/3] Build: Disable leak sanitizer for ijar Temporary workaround. Bug: 37756495 Test: ASAN_OPTIONS= SANITIZE_HOST=address mm Change-Id: Idf48f45f0c33fc57af29574c8591a532144d4623 --- core/definitions.mk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/definitions.mk b/core/definitions.mk index 293866fc16..8572df0b08 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2393,13 +2393,16 @@ else \ fi endef +# b/37756495 +IJAR_ASAN_OPTIONS := ASAN_OPTIONS=detect_leaks=0 + ## Rule to create a table of contents from a .jar file. ## Must be called with $(eval). # $(1): A .jar file define _transform-jar-to-toc $1.toc: $1 | $(IJAR) @echo Generating TOC: $$@ - $(hide) $(IJAR) $$< $$@.tmp + $(hide) $(IJAR_ASAN_OPTIONS) $(IJAR) $$< $$@.tmp $$(call commit-change-for-toc,$$@) endef