From 1f1335ceebf9ca6d46e1ee38a4146b5b4c8ce1f9 Mon Sep 17 00:00:00 2001
From: Mathieu Chartier <mathieuc@google.com>
Date: Fri, 9 Mar 2018 18:03:16 -0800
Subject: [PATCH] Revert "Revert "For user and userdebug generate error if
 DEXPREOPT is not enabled""

Fixed the failing targets.

Bug: 74209329
Test: make

This reverts commit 0ecba4b139fc69d94549b612c8471c5f37fb536a.

Change-Id: I4f346b8107ffaf6afbd551d91574ed040372635e
---
 core/dex_preopt.mk | 10 ++++++++++
 core/product.mk    |  3 +--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index 83c4a9523..270e5f4fe 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -46,6 +46,16 @@ ifeq ($(HOST_OS),linux)
   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
 
 GLOBAL_DEXPREOPT_FLAGS :=
diff --git a/core/product.mk b/core/product.mk
index 6cccebf21..19ede82dd 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -317,8 +317,7 @@ _product_stash_var_list += \
 _product_stash_var_list += \
 	DEFAULT_SYSTEM_DEV_CERTIFICATE \
 	WITH_DEXPREOPT \
-	WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY \
-	WITH_DEXPREOPT_APP_IMAGE
+	WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY
 
 #
 # Mark the variables in _product_stash_var_list as readonly