Inform dex-preopt when the target device is a uniprocessor.
By default, dex-preopt optimizes for an SMP target.
Change-Id: Ib92552e55f5426b9b035ce862233752af090bb43
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index b036443..0e151bd 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -17,6 +17,14 @@
DEXPREOPT_BOOT_ODEXS := $(foreach b,$(DEXPREOPT_BOOT_JARS_MODULES),\
$(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(b).odex)
+# If the target is a uniprocessor, then explicitly tell the preoptimizer
+# that fact. (By default, it always optimizes for an SMP target.)
+ifeq ($(TARGET_CPU_SMP),true)
+DEXPREOPT_UNIPROCESSOR :=
+else
+DEXPREOPT_UNIPROCESSOR := --uniprocessor
+endif
+
# $(1): the .jar or .apk to remove classes.dex
define dexpreopt-remove-classes.dex
$(hide) $(AAPT) remove $(1) classes.dex
@@ -27,7 +35,7 @@
define dexpreopt-one-file
$(hide) $(DEXPREOPT) --dexopt=$(DEXPREOPT_DEXOPT) --build-dir=$(DEXPREOPT_BUILD_DIR) \
--product-dir=$(DEXPREOPT_PRODUCT_DIR) --boot-dir=$(DEXPREOPT_BOOT_JAR_DIR) \
- --boot-jars=$(DEXPREOPT_BOOT_JARS) \
+ --boot-jars=$(DEXPREOPT_BOOT_JARS) $(DEXPREOPT_UNIPROCESSOR) \
$(patsubst $(DEXPREOPT_BUILD_DIR)/%,%,$(1)) \
$(patsubst $(DEXPREOPT_BUILD_DIR)/%,%,$(2))
endef