From 4a0ad4ac61081f56c4aab50a2aed3001e51f9126 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Mon, 12 Jun 2017 15:19:16 +0100 Subject: [PATCH] Add a new PRODUCT variable for forcing 'speed' preopt. bug: 35872915 Test: build Change-Id: Idfea3c379a2b1dab30ee94a58ffe86d508f8522f --- core/dex_preopt.mk | 2 +- core/dex_preopt_odex_install.mk | 4 ++-- core/product.mk | 1 + core/product_config.mk | 1 + target/product/core.mk | 3 +++ target/product/core_tiny.mk | 3 +++ 6 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk index f940c72e8b..0606c83bc9 100644 --- a/core/dex_preopt.mk +++ b/core/dex_preopt.mk @@ -24,7 +24,7 @@ DEX_PREOPT_DEFAULT ?= true SYSTEM_OTHER_ODEX_FILTER ?= app/% priv-app/% # Method returning whether the install path $(1) should be for system_other. -install-on-system-other = $(filter-out $(PRODUCT_SYSTEM_SERVER_APPS),$(basename $(notdir $(filter $(foreach f,$(SYSTEM_OTHER_ODEX_FILTER),$(TARGET_OUT)/$(f)),$(1))))) +install-on-system-other = $(filter-out $(PRODUCT_DEXPREOPT_SPEED_APPS) $(PRODUCT_SYSTEM_SERVER_APPS),$(basename $(notdir $(filter $(foreach f,$(SYSTEM_OTHER_ODEX_FILTER),$(TARGET_OUT)/$(f)),$(1))))) # The default values for pre-opting: always preopt PIC. # Conditional to building on linux, as dex2oat currently does not work on darwin. diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk index a3fb410f97..b9c0fc60b1 100644 --- a/core/dex_preopt_odex_install.mk +++ b/core/dex_preopt_odex_install.mk @@ -152,8 +152,8 @@ LOCAL_DEX_PREOPT_FLAGS := $(PRODUCT_DEX_PREOPT_DEFAULT_FLAGS) endif endif -ifneq (,$(filter $(PRODUCT_SYSTEM_SERVER_JARS) $(PRODUCT_SYSTEM_SERVER_APPS),$(LOCAL_MODULE))) - # Jars of system server, and apps loaded into system server should be +ifneq (,$(filter $(PRODUCT_SYSTEM_SERVER_JARS) $(PRODUCT_DEXPREOPT_SPEED_APPS) $(PRODUCT_SYSTEM_SERVER_APPS),$(LOCAL_MODULE))) + # Jars of system server, apps loaded into system server, and apps the product wants to be # compiled with the 'speed' compiler filter. LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=speed else diff --git a/core/product.mk b/core/product.mk index 7742cc3b9a..34cd21ca6a 100644 --- a/core/product.mk +++ b/core/product.mk @@ -114,6 +114,7 @@ _product_var_list := \ PRODUCT_SYSTEM_PROPERTY_BLACKLIST \ PRODUCT_SYSTEM_SERVER_APPS \ PRODUCT_SYSTEM_SERVER_JARS \ + PRODUCT_DEXPREOPT_SPEED_APPS \ PRODUCT_VBOOT_SIGNING_KEY \ PRODUCT_VBOOT_SIGNING_SUBKEY \ PRODUCT_VERITY_SIGNING_KEY \ diff --git a/core/product_config.mk b/core/product_config.mk index 3623aa6b2b..2b2d7b369d 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -258,6 +258,7 @@ all_product_configs := PRODUCT_BOOT_JARS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_BOOT_JARS)) PRODUCT_SYSTEM_SERVER_JARS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_SERVER_JARS)) PRODUCT_SYSTEM_SERVER_APPS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_SERVER_APPS)) +PRODUCT_DEXPREOPT_SPEED_APPS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEXPREOPT_SPEED_APPS)) # Find the device that this product maps to. TARGET_DEVICE := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEVICE) diff --git a/target/product/core.mk b/target/product/core.mk index 72a7e8d6b4..5a0195e50d 100644 --- a/target/product/core.mk +++ b/target/product/core.mk @@ -68,4 +68,7 @@ PRODUCT_SYSTEM_SERVER_APPS += \ KeyChain \ Telecom \ +# The set of packages we want to force 'speed' compilation on. +PRODUCT_DEXPREOPT_SPEED_APPS += \ + $(call inherit-product, $(SRC_TARGET_DIR)/product/core_base.mk) diff --git a/target/product/core_tiny.mk b/target/product/core_tiny.mk index 2fb450ddef..3139cb7df2 100644 --- a/target/product/core_tiny.mk +++ b/target/product/core_tiny.mk @@ -112,6 +112,9 @@ PRODUCT_SYSTEM_SERVER_APPS += \ SettingsProvider \ WallpaperBackup \ +# The set of packages we want to force 'speed' compilation on. +PRODUCT_DEXPREOPT_SPEED_APPS := \ + PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ ro.zygote=zygote32 PRODUCT_COPY_FILES += \