From 2e55115ab362dbff12002d694b51c164b476df46 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 17 May 2023 10:56:44 -0700 Subject: [PATCH] Don't build automatic RROs for tests Automatic RROs don't make sense for tests, the tests can't rely on overlays being installed on product or vendor. Creating the RROs causes a race during builds that build both droid and device-tests goals, as the RROs may be installed to the vendor directory as a dependency of the device-tests goal before or after the vendor image is packaged as a dependency of the droid goal. If the RROs are installed first and the vendor image is low on space it may result in an out-of-space error. Bug: 282885159 Test: Rule to build $OUT/vendor/overlay/SystemUITests__*__auto_generated_rro_vendor.apk no longer exists Ignore-AOSP-First: high priority build fix Change-Id: I760355ffb1818e91c02a98473312f9f21c149361 --- core/package_internal.mk | 32 +++++++++++++++-------------- core/soong_app_prebuilt.mk | 42 ++++++++++++++++++++------------------ 2 files changed, 39 insertions(+), 35 deletions(-) diff --git a/core/package_internal.mk b/core/package_internal.mk index c7a173b71f..3e9106bd8e 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -111,24 +111,26 @@ include $(BUILD_SYSTEM)/support_libraries.mk # Determine whether auto-RRO is enabled for this package. enforce_rro_enabled := -ifneq (,$(filter *, $(PRODUCT_ENFORCE_RRO_TARGETS))) - # * means all system and system_ext APKs, so enable conditionally based on module path. +ifeq (,$(filter tests,$(LOCAL_MODULE_TAGS))) + ifneq (,$(filter *, $(PRODUCT_ENFORCE_RRO_TARGETS))) + # * means all system and system_ext APKs, so enable conditionally based on module path. - # Note that base_rules.mk has not yet been included, so it's likely that only - # one of LOCAL_MODULE_PATH and the LOCAL_X_MODULE flags has been set. - ifeq (,$(LOCAL_MODULE_PATH)) - non_rro_target_module := $(filter true,\ - $(LOCAL_ODM_MODULE) \ - $(LOCAL_OEM_MODULE) \ - $(LOCAL_PRODUCT_MODULE) \ - $(LOCAL_PROPRIETARY_MODULE) \ - $(LOCAL_VENDOR_MODULE)) - enforce_rro_enabled := $(if $(non_rro_target_module),,true) - else ifneq ($(filter $(TARGET_OUT)/%,$(LOCAL_MODULE_PATH)),) + # Note that base_rules.mk has not yet been included, so it's likely that only + # one of LOCAL_MODULE_PATH and the LOCAL_X_MODULE flags has been set. + ifeq (,$(LOCAL_MODULE_PATH)) + non_rro_target_module := $(filter true,\ + $(LOCAL_ODM_MODULE) \ + $(LOCAL_OEM_MODULE) \ + $(LOCAL_PRODUCT_MODULE) \ + $(LOCAL_PROPRIETARY_MODULE) \ + $(LOCAL_VENDOR_MODULE)) + enforce_rro_enabled := $(if $(non_rro_target_module),,true) + else ifneq ($(filter $(TARGET_OUT)/%,$(LOCAL_MODULE_PATH)),) + enforce_rro_enabled := true + endif + else ifneq (,$(filter $(LOCAL_PACKAGE_NAME), $(PRODUCT_ENFORCE_RRO_TARGETS))) enforce_rro_enabled := true endif -else ifneq (,$(filter $(LOCAL_PACKAGE_NAME), $(PRODUCT_ENFORCE_RRO_TARGETS))) - enforce_rro_enabled := true endif product_package_overlays := $(strip \ diff --git a/core/soong_app_prebuilt.mk b/core/soong_app_prebuilt.mk index dd550b5808..ccc54494f7 100644 --- a/core/soong_app_prebuilt.mk +++ b/core/soong_app_prebuilt.mk @@ -239,26 +239,28 @@ my_common := COMMON include $(BUILD_SYSTEM)/link_type.mk endif # !LOCAL_IS_HOST_MODULE -ifdef LOCAL_SOONG_DEVICE_RRO_DIRS - $(call append_enforce_rro_sources, \ - $(my_register_name), \ - false, \ - $(LOCAL_FULL_MANIFEST_FILE), \ - $(if $(LOCAL_EXPORT_PACKAGE_RESOURCES),true,false), \ - $(LOCAL_SOONG_DEVICE_RRO_DIRS), \ - vendor \ - ) -endif +ifeq (,$(filter tests,$(LOCAL_MODULE_TAGS))) + ifdef LOCAL_SOONG_DEVICE_RRO_DIRS + $(call append_enforce_rro_sources, \ + $(my_register_name), \ + false, \ + $(LOCAL_FULL_MANIFEST_FILE), \ + $(if $(LOCAL_EXPORT_PACKAGE_RESOURCES),true,false), \ + $(LOCAL_SOONG_DEVICE_RRO_DIRS), \ + vendor \ + ) + endif -ifdef LOCAL_SOONG_PRODUCT_RRO_DIRS - $(call append_enforce_rro_sources, \ - $(my_register_name), \ - false, \ - $(LOCAL_FULL_MANIFEST_FILE), \ - $(if $(LOCAL_EXPORT_PACKAGE_RESOURCES),true,false), \ - $(LOCAL_SOONG_PRODUCT_RRO_DIRS), \ - product \ - ) + ifdef LOCAL_SOONG_PRODUCT_RRO_DIRS + $(call append_enforce_rro_sources, \ + $(my_register_name), \ + false, \ + $(LOCAL_FULL_MANIFEST_FILE), \ + $(if $(LOCAL_EXPORT_PACKAGE_RESOURCES),true,false), \ + $(LOCAL_SOONG_PRODUCT_RRO_DIRS), \ + product \ + ) + endif endif ifdef LOCAL_PREBUILT_COVERAGE_ARCHIVE @@ -273,4 +275,4 @@ SOONG_ALREADY_CONV += $(LOCAL_MODULE) ########################################################### ## SBOM generation ########################################################### -include $(BUILD_SBOM_GEN) \ No newline at end of file +include $(BUILD_SBOM_GEN)