From b285c46bbd68d5399c0d369c5667dddef1636b7d Mon Sep 17 00:00:00 2001 From: Vishwath Mohan Date: Wed, 29 Mar 2017 15:32:04 -0700 Subject: [PATCH] Refactor sanitized library on-disk layout - Make. This CL moves the location of ASAN-ified libraries on disk in the following manner: /data/lib* --> /data/asan/system/lib* /data/vendor/* --> /data/asan/vendor/* There are a couple of advantages to this, including better isolation from other components, and more transparent linker renaming and SELinux policies. Bug: 36574794 Bug: 36674745 Test: m -j40 && SANITIZE_TARGET="address" m -j40 and the device boots. All sanitized libraries are correctly located in /data/asan/*. Change-Id: Ic6ba8e43e31df2ea92b85fd60f572823b6883ba2 --- CleanSpec.mk | 4 ++++ core/envsetup.mk | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CleanSpec.mk b/CleanSpec.mk index acd5273c8a..791439b514 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -410,6 +410,10 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/lib*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor/lib*) +# Sanitized libraries now live in a different location. +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/lib*) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/vendor/lib*) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/envsetup.mk b/core/envsetup.mk index a5411d8beb..67ac7516fc 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -168,6 +168,7 @@ HOST_PREBUILT_TAG := $(BUILD_OS)-$(HOST_PREBUILT_ARCH) TARGET_COPY_OUT_SYSTEM := system TARGET_COPY_OUT_SYSTEM_OTHER := system_other TARGET_COPY_OUT_DATA := data +TARGET_COPY_OUT_ASAN := $(TARGET_COPY_OUT_DATA)/asan TARGET_COPY_OUT_OEM := oem TARGET_COPY_OUT_ODM := odm TARGET_COPY_OUT_ROOT := root @@ -393,7 +394,7 @@ TARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM) ifneq ($(filter address,$(SANITIZE_TARGET)),) -target_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA) +target_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/system else target_out_shared_libraries_base := $(TARGET_OUT) endif @@ -473,7 +474,7 @@ TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR) ifneq ($(filter address,$(SANITIZE_TARGET)),) -target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)/vendor +target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/vendor else target_out_vendor_shared_libraries_base := $(TARGET_OUT_VENDOR) endif