Merge changes from topic "disable-dexpreopt-dexopt" into main am: fc9ebd2684
Original change: https://android-review.googlesource.com/c/platform/build/+/2817440 Change-Id: I3d4007a6aea280118df9cb0073478a497d01590e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
84d00a4ff6
5 changed files with 44 additions and 43 deletions
|
@ -202,7 +202,7 @@ _board_strip_readonly_list += $(_build_broken_var_list) \
|
|||
|
||||
# Conditional to building on linux, as dex2oat currently does not work on darwin.
|
||||
ifeq ($(HOST_OS),linux)
|
||||
WITH_DEXPREOPT := true
|
||||
WITH_DEXPREOPT ?= true
|
||||
endif
|
||||
|
||||
# ###############################################################
|
||||
|
|
|
@ -58,25 +58,10 @@ DEX_PREOPT_WITH_UPDATABLE_BCP := true
|
|||
|
||||
# Conditional to building on linux, as dex2oat currently does not work on darwin.
|
||||
ifeq ($(HOST_OS),linux)
|
||||
ifeq (eng,$(TARGET_BUILD_VARIANT))
|
||||
# For an eng build only pre-opt the boot image and system server. This gives reasonable performance
|
||||
# and still allows a simple workflow: building in frameworks/base and syncing.
|
||||
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= true
|
||||
endif
|
||||
# Add mini-debug-info to the boot classpath unless explicitly asked not to.
|
||||
ifneq (false,$(WITH_DEXPREOPT_DEBUG_INFO))
|
||||
PRODUCT_DEX_PREOPT_BOOT_FLAGS += --generate-mini-debug-info
|
||||
endif
|
||||
|
||||
# Non eng linux builds must have preopt enabled so that system server doesn't run as interpreter
|
||||
# only. b/74209329
|
||||
ifeq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
ifneq (true,$(WITH_DEXPREOPT))
|
||||
ifneq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))
|
||||
$(call pretty-error, DEXPREOPT must be enabled for user and userdebug builds)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Get value of a property. It is first searched from PRODUCT_VENDOR_PROPERTIES
|
||||
|
@ -100,7 +85,7 @@ ifeq ($(WRITE_SOONG_VARIABLES),true)
|
|||
$(call add_json_bool, DisablePreopt, $(call invert_bool,$(ENABLE_PREOPT)))
|
||||
$(call add_json_bool, DisablePreoptBootImages, $(call invert_bool,$(ENABLE_PREOPT_BOOT_IMAGES)))
|
||||
$(call add_json_list, DisablePreoptModules, $(DEXPREOPT_DISABLED_MODULES))
|
||||
$(call add_json_bool, OnlyPreoptBootImageAndSystemServer, $(filter true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY)))
|
||||
$(call add_json_bool, OnlyPreoptArtBootImage , $(filter true,$(WITH_DEXPREOPT_ART_BOOT_IMG_ONLY)))
|
||||
$(call add_json_bool, PreoptWithUpdatableBcp, $(filter true,$(DEX_PREOPT_WITH_UPDATABLE_BCP)))
|
||||
$(call add_json_bool, DontUncompressPrivAppsDex, $(filter true,$(DONT_UNCOMPRESS_PRIV_APPS_DEXS)))
|
||||
$(call add_json_list, ModulesLoadedByPrivilegedModules, $(PRODUCT_LOADED_BY_PRIVILEGED_MODULES))
|
||||
|
|
|
@ -60,17 +60,9 @@ ifeq (,$(strip $(built_dex)$(my_prebuilt_src_file)$(LOCAL_SOONG_DEX_JAR)))
|
|||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
|
||||
# if WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true and module is not in boot class path skip
|
||||
# Also preopt system server jars since selinux prevents system server from loading anything from
|
||||
# /data. If we don't do this they will need to be extracted which is not favorable for RAM usage
|
||||
# or performance. If my_preopt_for_extracted_apk is true, we ignore the only preopt boot image
|
||||
# options.
|
||||
system_server_jars := $(foreach m,$(PRODUCT_SYSTEM_SERVER_JARS),$(call word-colon,2,$(m)))
|
||||
ifneq (true,$(my_preopt_for_extracted_apk))
|
||||
ifeq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))
|
||||
ifeq ($(filter $(system_server_jars) $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)),)
|
||||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
ifeq (true,$(WITH_DEXPREOPT_ART_BOOT_IMG_ONLY))
|
||||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -226,7 +218,7 @@ endif
|
|||
# as a failure to get manifest from an APK).
|
||||
ifneq (true,$(WITH_DEXPREOPT))
|
||||
LOCAL_ENFORCE_USES_LIBRARIES := false
|
||||
else ifeq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))
|
||||
else ifeq (true,$(WITH_DEXPREOPT_ART_BOOT_IMG_ONLY))
|
||||
LOCAL_ENFORCE_USES_LIBRARIES := false
|
||||
endif
|
||||
|
||||
|
|
|
@ -548,7 +548,7 @@ endef
|
|||
# be cleaned up to not be product variables.
|
||||
_readonly_late_variables := \
|
||||
DEVICE_PACKAGE_OVERLAYS \
|
||||
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY \
|
||||
WITH_DEXPREOPT_ART_BOOT_IMG_ONLY \
|
||||
|
||||
# Modified internally in the build system
|
||||
_readonly_late_variables += \
|
||||
|
|
|
@ -102,39 +102,63 @@ PRODUCT_SYSTEM_PROPERTIES += \
|
|||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
ro.dalvik.vm.native.bridge?=0
|
||||
|
||||
# Different dexopt types for different package update/install times.
|
||||
# On eng builds, make "boot" reasons only extract for faster turnaround.
|
||||
ifeq (eng,$(TARGET_BUILD_VARIANT))
|
||||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
pm.dexopt.first-boot?=extract \
|
||||
pm.dexopt.boot-after-ota?=extract
|
||||
else
|
||||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
pm.dexopt.first-boot?=verify \
|
||||
pm.dexopt.boot-after-ota?=verify
|
||||
endif
|
||||
|
||||
# The install filter is speed-profile in order to enable the use of
|
||||
# profiles from the dex metadata files. Note that if a profile is not provided
|
||||
# or if it is empty speed-profile is equivalent to (quicken + empty app image).
|
||||
# Note that `cmdline` is not strictly needed but it simplifies the management
|
||||
# of compilation reason in the platform (as we have a unified, single path,
|
||||
# without exceptions).
|
||||
# TODO(b/243646876): Remove `pm.dexopt.post-boot`.
|
||||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
pm.dexopt.post-boot?=extract \
|
||||
pm.dexopt.post-boot?=verify \
|
||||
pm.dexopt.first-boot?=verify \
|
||||
pm.dexopt.boot-after-ota?=verify \
|
||||
pm.dexopt.boot-after-mainline-update?=verify \
|
||||
pm.dexopt.install?=speed-profile \
|
||||
pm.dexopt.install-fast?=skip \
|
||||
pm.dexopt.install-bulk?=speed-profile \
|
||||
pm.dexopt.install-bulk-secondary?=verify \
|
||||
pm.dexopt.install-bulk-downgraded?=verify \
|
||||
pm.dexopt.install-bulk-secondary-downgraded?=extract \
|
||||
pm.dexopt.install-bulk-secondary-downgraded?=verify \
|
||||
pm.dexopt.bg-dexopt?=speed-profile \
|
||||
pm.dexopt.ab-ota?=speed-profile \
|
||||
pm.dexopt.inactive?=verify \
|
||||
pm.dexopt.cmdline?=verify \
|
||||
pm.dexopt.shared?=speed
|
||||
|
||||
ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
|
||||
OVERRIDE_DISABLE_DEXOPT_ALL ?= true
|
||||
endif
|
||||
|
||||
# OVERRIDE_DISABLE_DEXOPT_ALL disables all dexpreopt (build-time) and dexopt (on-device) activities.
|
||||
# This option is for faster iteration during development and should never be enabled for production.
|
||||
ifneq (,$(filter true,$(OVERRIDE_DISABLE_DEXOPT_ALL)))
|
||||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
pm.dexopt.post-boot=skip \
|
||||
pm.dexopt.first-boot=skip \
|
||||
pm.dexopt.boot-after-ota=skip \
|
||||
pm.dexopt.boot-after-mainline-update=skip \
|
||||
pm.dexopt.install=skip \
|
||||
pm.dexopt.install-fast=skip \
|
||||
pm.dexopt.install-bulk=skip \
|
||||
pm.dexopt.install-bulk-secondary=skip \
|
||||
pm.dexopt.install-bulk-downgraded=skip \
|
||||
pm.dexopt.install-bulk-secondary-downgraded=skip \
|
||||
pm.dexopt.bg-dexopt=skip \
|
||||
pm.dexopt.ab-ota=skip \
|
||||
pm.dexopt.inactive=skip \
|
||||
pm.dexopt.cmdline=skip \
|
||||
pm.dexopt.shared=skip
|
||||
|
||||
PRODUCT_SYSTEM_PROPERTIES += dalvik.vm.disable-odrefresh=true
|
||||
|
||||
# Disable all dexpreopt activities except for the ART boot image.
|
||||
# We have to dexpreopt the ART boot image because they are used by ART tests. This should not
|
||||
# be too much of a problem for platform developers because a change to framework code should not
|
||||
# trigger dexpreopt for the ART boot image.
|
||||
WITH_DEXPREOPT_ART_BOOT_IMG_ONLY := true
|
||||
endif
|
||||
|
||||
# Enable resolution of startup const strings.
|
||||
PRODUCT_SYSTEM_PROPERTIES += \
|
||||
dalvik.vm.dex2oat-resolve-startup-strings=true
|
||||
|
|
Loading…
Reference in a new issue