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
This commit is contained in:
Ulya Trafimovich
2021-11-24 15:31:36 +00:00
parent 9680501cc8
commit 00496c1683
2 changed files with 7 additions and 1 deletions

View File

@@ -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

View File

@@ -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 \