summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2014-11-18 11:45:10 -0800
committerAndreas Gampe <agampe@google.com>2014-11-18 15:09:51 -0800
commit96a522037ff7079cbf48625c3cfb5ec49b7e6db6 (patch)
treebf55a563599be3f37417b5f1b925f1934543fc74
parent8bde98733bb974253203ecbd5e62e32ef62e66ba (diff)
downloadbuild-96a522037ff7079cbf48625c3cfb5ec49b7e6db6.zip
build-96a522037ff7079cbf48625c3cfb5ec49b7e6db6.tar.gz
build-96a522037ff7079cbf48625c3cfb5ec49b7e6db6.tar.bz2
Build: Support for compiled-classes file
Allow a compiled-classes file for pre-opting. Bug: 18410571 (cherry picked from commit 4fec0bb265ac8cdbe883b8868abfcb56713db170) Change-Id: I8c69dd0fb8c04aaae0c4f062049cc9cce7d755c7
-rw-r--r--core/dex_preopt_libart.mk4
-rw-r--r--core/dex_preopt_libart_boot.mk8
-rw-r--r--target/product/base.mk5
3 files changed, 16 insertions, 1 deletions
diff --git a/core/dex_preopt_libart.mk b/core/dex_preopt_libart.mk
index ae2c586..62ad170 100644
--- a/core/dex_preopt_libart.mk
+++ b/core/dex_preopt_libart.mk
@@ -20,6 +20,10 @@ DEX2OATD_DEPENDENCY += $(DEX2OATD)
PRELOADED_CLASSES := $(call word-colon,1,$(firstword \
$(filter %system/etc/preloaded-classes,$(PRODUCT_COPY_FILES))))
+# Use the first compiled-classes file in PRODUCT_COPY_FILES.
+COMPILED_CLASSES := $(call word-colon,1,$(firstword \
+ $(filter %system/etc/compiled-classes,$(PRODUCT_COPY_FILES))))
+
# Default to debug version to help find bugs.
# Set USE_DEX2OAT_DEBUG to false for only building non-debug versions.
ifneq ($(USE_DEX2OAT_DEBUG), false)
diff --git a/core/dex_preopt_libart_boot.mk b/core/dex_preopt_libart_boot.mk
index aa4a1de..826075f 100644
--- a/core/dex_preopt_libart_boot.mk
+++ b/core/dex_preopt_libart_boot.mk
@@ -37,6 +37,12 @@ ifeq (true,$(WITH_DEXPREOPT_PIC))
PRODUCT_DEX_PREOPT_BOOT_FLAGS += --compile-pic
endif
+# If we have a compiled-classes file, create a parameter.
+COMPILED_CLASSES_FLAGS :=
+ifneq ($(COMPILED_CLASSES),)
+ COMPILED_CLASSES_FLAGS := --compiled-classes=$(COMPILED_CLASSES)
+endif
+
# The rule to install boot.art and boot.oat
$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_INSTALLED_IMAGE) : $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) | $(ACP)
$(call copy-file-to-target)
@@ -60,4 +66,4 @@ $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGE
--instruction-set-variant=$($(PRIVATE_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT) \
--instruction-set-features=$($(PRIVATE_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES) \
--android-root=$(PRODUCT_OUT)/system --include-patch-information --runtime-arg -Xnorelocate --no-include-debug-symbols \
- $(PRODUCT_DEX_PREOPT_BOOT_FLAGS)
+ $(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(COMPILED_CLASSES_FLAGS)
diff --git a/target/product/base.mk b/target/product/base.mk
index 6387fda..0d052b5 100644
--- a/target/product/base.mk
+++ b/target/product/base.mk
@@ -118,5 +118,10 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES := $(call add-to-product-copy-files-if-exists,\
frameworks/base/preloaded-classes:system/etc/preloaded-classes)
+# Note: it is acceptable to not have a compiled-classes file. In that case, all boot classpath
+# classes will be compiled.
+PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
+ frameworks/base/compiled-classes:system/etc/compiled-classes)
+
$(call inherit-product, $(SRC_TARGET_DIR)/product/embedded.mk)