From 00496c1683bb6ee2070e2633c52e23043c7644ea Mon Sep 17 00:00:00 2001 From: Ulya Trafimovich Date: Wed, 24 Nov 2021 15:31:36 +0000 Subject: [PATCH] Sort PRODUCT_APEX_SYSTEM_SERVER_JARS automatically. This is needed because product makefiles may need to add their own system server jars to this variable, and they cannot insert them in the correct alphabetical order on the list. So it needs to be sorted automatically. Do this after processing all product makefiles and populating the variable, but before passing it to Soong. Bug: 207474880 Test: atest art_standalone_dexpreopt_tests:art_standalone_dexpreopt_tests.DexpreoptTest#ForSystemServer Change-Id: I80dbf555c395c92539c506d3d8b1f2f101a58bce --- core/product_config.mk | 6 ++++++ target/product/default_art_config.mk | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/product_config.mk b/core/product_config.mk index 614dfa29ee..cf92924dfc 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -320,6 +320,12 @@ PRODUCT_SYSTEM_SERVER_JARS += $(PRODUCT_SYSTEM_SERVER_JARS_EXTRA) PRODUCT_SYSTEM_SERVER_JARS := $(call qualify-platform-jars,$(PRODUCT_SYSTEM_SERVER_JARS)) +# Sort APEX system server jars. We use deterministic alphabetical order when +# constructing SYSTEMSERVERCLASSPATH definition on device after a Mainline +# update. Enforce it in the build system as well to avoid recompiling everything +# after an update due a change in SYSTEMSERVERCLASSPATH order. +PRODUCT_APEX_SYSTEM_SERVER_JARS := $(sort $(PRODUCT_APEX_SYSTEM_SERVER_JARS)) + ifndef PRODUCT_SYSTEM_NAME PRODUCT_SYSTEM_NAME := $(PRODUCT_NAME) endif diff --git a/target/product/default_art_config.mk b/target/product/default_art_config.mk index e988d0067b..5e2021870d 100644 --- a/target/product/default_art_config.mk +++ b/target/product/default_art_config.mk @@ -65,7 +65,7 @@ PRODUCT_APEX_BOOT_JARS := \ com.android.tethering:framework-tethering \ com.android.wifi:framework-wifi -# APEX system server jars. Keep the list sorted by module names and then library names. +# APEX system server jars. The list will be sorted automatically. PRODUCT_APEX_SYSTEM_SERVER_JARS := \ com.android.appsearch:service-appsearch \ com.android.art:service-art \