From ae9f10544d19d653f7ef47f8d133690d35c2961e Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Tue, 2 Oct 2018 13:16:05 +0100 Subject: [PATCH] Change install paths of libs in sanitize builds This changes the paths for partitions modules inside the 'asan' subdirectory to match those used when not making sanitized builds. This fixes get_non_asan_path macro, which just strips the 'asan' dir from the lib paths. For example, on a device without a product partition, previously libraries would install install in: - out/target/product/x/asan/product/lib[64]/y.so (with SANITIZE_TARGET) - out/target/product/x/system/product/lib[64]/y.so (no SANITIZE TARGET) Stripping the asan dir would look for the lib in out/...//product/, which didn't exist. The new path for SANITIZE_TARGET builds is now out/target/product/asan/system/product/lib[64]/.so Bug: 117089649 Test: m; SANITIZE_TARGET=address m (for a device without /product) Change-Id: Id663c5f284e3b4fc65ed8cb8c2da6bcf6542e034 --- core/envsetup.mk | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/envsetup.mk b/core/envsetup.mk index 56d8e2956..03fbc9c04 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -792,11 +792,11 @@ TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR) .KATI_READONLY := TARGET_OUT_VENDOR ifneq ($(filter address,$(SANITIZE_TARGET)),) -target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/vendor +target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR) ifeq ($(SANITIZE_LITE),true) # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. -target_out_vendor_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/vendor +target_out_vendor_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_VENDOR) else target_out_vendor_app_base := $(TARGET_OUT_VENDOR) endif @@ -875,11 +875,11 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM_APPS) TARGET_OUT_ODM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ODM) ifneq ($(filter address,$(SANITIZE_TARGET)),) -target_out_odm_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/odm +target_out_odm_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM) ifeq ($(SANITIZE_LITE),true) # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. -target_out_odm_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/odm +target_out_odm_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_OEM) else target_out_odm_app_base := $(TARGET_OUT_ODM) endif @@ -931,11 +931,11 @@ TARGET_OUT_PRODUCT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_PRODUCT) TARGET_OUT_PRODUCT_EXECUTABLES := $(TARGET_OUT_PRODUCT)/bin .KATI_READONLY := TARGET_OUT_PRODUCT ifneq ($(filter address,$(SANITIZE_TARGET)),) -target_out_product_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/product +target_out_product_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT) ifeq ($(SANITIZE_LITE),true) # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. -target_out_product_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/product +target_out_product_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT) else target_out_product_app_base := $(TARGET_OUT_PRODUCT) endif @@ -977,11 +977,11 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_PRODUCT_APPS_PRIVILEGED := $(TARGET_OUT_ TARGET_OUT_PRODUCT_SERVICES := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_PRODUCT_SERVICES) ifneq ($(filter address,$(SANITIZE_TARGET)),) -target_out_product_services_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/product_services +target_out_product_services_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT_SERVICES) ifeq ($(SANITIZE_LITE),true) # When using SANITIZE_LITE, APKs must not be packaged with sanitized libraries, as they will not # work with unsanitized app_process. For simplicity, generate APKs into /data/asan/. -target_out_product_services_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/product_services +target_out_product_services_app_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ASAN)/$(TARGET_COPY_OUT_PRODUCT_SERVICES) else target_out_product_services_app_base := $(TARGET_OUT_PRODUCT_SERVICES) endif