Pass the right dex files to dex preopt.
We currently pass the boot dex files installed on /system, but these may be eg stripped. That's currently OK as dex2oat is looking at the dex files in boot.oat, but dex2oat could look at them for various reasons. Test: m Change-Id: I85915c979cf94ec29751b10a0d8a5957b6cea956
This commit is contained in:
@@ -9,7 +9,8 @@ PRODUCT_BOOTCLASSPATH := $(subst $(space),:,$(ALL_BOOT_LOCATIONS))
|
||||
|
||||
DEXPREOPT_BOOT_JARS_MODULES := $(NON_UPDATABLE_BOOT_MODULES)
|
||||
DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS := $(NON_UPDATABLE_BOOT_LOCATIONS)
|
||||
DEXPREOPT_BOOTCLASSPATH_DEX_FILES := $(foreach jar,$(DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS),$(PRODUCT_OUT)$(jar))
|
||||
DEXPREOPT_BOOT_JARS_INPUT_PATH := $(PRODUCT_OUT)/dex_bootjars_input
|
||||
DEXPREOPT_BOOTCLASSPATH_DEX_FILES := $(foreach m,$(NON_UPDATABLE_BOOT_MODULES),$(DEXPREOPT_BOOT_JARS_INPUT_PATH)/$(m).jar)
|
||||
|
||||
# Create paths for boot image.
|
||||
DEXPREOPT_BUILD_DIR := $(OUT_DIR)
|
||||
|
@@ -10,6 +10,9 @@ LIBART_TARGET_BOOT_JARS := $(DEXPREOPT_BOOT_JARS_MODULES)
|
||||
LIBART_TARGET_BOOT_DEX_LOCATIONS := $(DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS)
|
||||
LIBART_TARGET_BOOT_DEX_FILES := $(foreach mod,$(NON_UPDATABLE_BOOT_MODULES),$(call intermediates-dir-for,JAVA_LIBRARIES,$(mod),,COMMON)/javalib.jar)
|
||||
|
||||
# Copy the files to a location Soong dex preopt will look at.
|
||||
$(foreach mod,$(LIBART_TARGET_BOOT_JARS),$(eval $(call copy-one-file,$(call intermediates-dir-for,JAVA_LIBRARIES,$(mod),,COMMON)/javalib.jar,$(DEXPREOPT_BOOT_JARS_INPUT_PATH)/$(mod).jar)))
|
||||
|
||||
# dex preopt on the bootclasspath produces multiple files. The first dex file
|
||||
# is converted into to boot.art (to match the legacy assumption that boot.art
|
||||
# exists), and the rest are converted to boot-<name>.art.
|
||||
|
Reference in New Issue
Block a user