Disable dexpreopt for aosp_riscv64

dex2oat isn't supported for riscv64 yet, disable dexpreopt.  For
aosp_riscv64-user and -userdebug builds it is also necessary to
relax the requirement that dexpreopt is enabled.

Test: trehugger
Change-Id: Ib84f1b40675783d286f4ff89d3c1daa9c7be710a
diff --git a/core/board_config.mk b/core/board_config.mk
index 70c91a8..bffaf2a 100644
--- a/core/board_config.mk
+++ b/core/board_config.mk
@@ -203,7 +203,7 @@
 
 # Conditional to building on linux, as dex2oat currently does not work on darwin.
 ifeq ($(HOST_OS),linux)
-  WITH_DEXPREOPT := true
+  WITH_DEXPREOPT ?= true
 endif
 
 # ###############################################################
diff --git a/core/dex_preopt_config.mk b/core/dex_preopt_config.mk
index e36e2eb..0bb47d1 100644
--- a/core/dex_preopt_config.mk
+++ b/core/dex_preopt_config.mk
@@ -65,9 +65,12 @@
   # 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)
+    # TODO(riscv64) add compiler support and enable dexpreopt on RISC-V.
+    ifeq (,$(filter riscv64, $(TARGET_ARCH)))
+      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