Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fa2f42a authored by Jared Duke's avatar Jared Duke
Browse files

Tune R8 shrinking defaults for system_server

Disable R8 shrinking by default if there are additional
SYSTEM_SERVER_JARS that may be downstream from services.jar, or if
the jar ordering is unreliable.

The longer term solution will be to feed R8 the SYSTEM_SERVER_JARS
explicitly during the shrinking phase, but for now this avoids
potential issues with such dowstream jars. Note that specific
products or targets can still opt-in explicitly even if there may be
ordering issues in SYSTEM_SERVER_JARS.

Bug: 240588226,235484969
Test: m + lunch various Arc/Wear/Auto targets
Change-Id: I1d824e1e61de65604123b65b25b192a8a32fd0c1
Merged-In: I1d824e1e61de65604123b65b25b192a8a32fd0c1
parent 9780e330
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -150,9 +150,22 @@ endif
# TODO(b/203088572): Remove when Java optimizations enabled by default for
# SystemUI.
$(call add_soong_config_var,ANDROID,SYSTEMUI_OPTIMIZE_JAVA)
# Enable by default unless explicitly set or overridden.
# See frameworks/base/services/Android.bp for additional notes on side effects.

# Enable system_server optimizations by default unless explicitly set or if
# there may be dependent runtime jars.
# TODO(b/240588226): Remove the off-by-default exceptions after handling
# system_server jars automatically w/ R8.
ifeq (true,$(PRODUCT_BROKEN_SUBOPTIMAL_ORDER_OF_SYSTEM_SERVER_JARS))
  # If system_server jar ordering is broken, don't assume services.jar can be
  # safely optimized in isolation, as there may be dependent jars.
  SYSTEM_OPTIMIZE_JAVA ?= false
else ifneq (platform:services,$(lastword $(PRODUCT_SYSTEM_SERVER_JARS)))
  # If services is not the final jar in the dependency ordering, don't assume
  # it can be safely optimized in isolation, as there may be dependent jars.
  SYSTEM_OPTIMIZE_JAVA ?= false
else
  SYSTEM_OPTIMIZE_JAVA ?= true
endif
$(call add_soong_config_var,ANDROID,SYSTEM_OPTIMIZE_JAVA)

# Check for SupplementalApi module.