OSDN Git Service

Build: Support for compiled-classes file
authorAndreas Gampe <agampe@google.com>
Tue, 18 Nov 2014 19:45:10 +0000 (11:45 -0800)
committerAndreas Gampe <agampe@google.com>
Tue, 18 Nov 2014 22:41:26 +0000 (14:41 -0800)
Allow a compiled-classes file for pre-opting.

Bug: 18410571
Change-Id: I8c69dd0fb8c04aaae0c4f062049cc9cce7d755c7

core/dex_preopt_libart.mk
core/dex_preopt_libart_boot.mk
target/product/base.mk

index 811062a..cfbf221 100644 (file)
@@ -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))))
+
 # start of image reserved address space
 LIBART_IMG_HOST_BASE_ADDRESS   := 0x60000000
 LIBART_IMG_TARGET_BASE_ADDRESS := 0x70000000
index 0714c73..6c6e0ad 100644 (file)
@@ -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)
@@ -59,4 +65,4 @@ $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGE
                --instruction-set=$($(PRIVATE_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_ARCH) \
                --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)
index 6387fda..0d052b5 100644 (file)
@@ -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)