From 41f9cc2c6b7531f58031c07bd7d4ebf9f351a4fe Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Fri, 27 Nov 2020 11:00:38 +0000 Subject: [PATCH] Make TARGET_ARCH optional in BoardConfig Not setting TARGET_ARCH is ok if TARGET_ARCH_SUITE is set instead. Skip certain TARGET_ARCH-specific steps of the config: - don't run the 'select' steps to figure out cpu flags - don't generate dexopt config for TARGET_ARCH Bug: 174315599 Test: lunch Change-Id: I74a9e71d0cc5c7f74d3b10b1c8bb89682c096d7c --- core/board_config.mk | 27 ++++++++++++++++++--------- core/dex_preopt_config.mk | 2 ++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/core/board_config.mk b/core/board_config.mk index c5582649a0..a6df09273e 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -174,10 +174,19 @@ else TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) .KATI_READONLY := TARGET_DEVICE_DIR endif + include $(board_config_mk) -ifeq ($(TARGET_ARCH),) - $(error TARGET_ARCH not defined by board config: $(board_config_mk)) + +ifneq (,$(and $(TARGET_ARCH),$(TARGET_ARCH_SUITE))) + $(error $(board_config_mk) erroneously sets both TARGET_ARCH and TARGET_ARCH_SUITE) endif +ifeq ($(TARGET_ARCH)$(TARGET_ARCH_SUITE),) + $(error Target architectures not defined by board config: $(board_config_mk)) +endif +ifeq ($(TARGET_CPU_ABI)$(TARGET_ARCH_SUITE),) + $(error TARGET_CPU_ABI not defined by board config: $(board_config_mk)) +endif + ifneq ($(MALLOC_IMPL),) $(warning *** Unsupported option MALLOC_IMPL defined by board config: $(board_config_mk).) $(error Use `MALLOC_SVELTE := true` to configure jemalloc for low-memory) @@ -194,10 +203,12 @@ $(foreach var,$(_board_true_false_vars), \ TARGET_CPU_VARIANT_RUNTIME := $(or $(TARGET_CPU_VARIANT_RUNTIME),$(TARGET_CPU_VARIANT)) TARGET_2ND_CPU_VARIANT_RUNTIME := $(or $(TARGET_2ND_CPU_VARIANT_RUNTIME),$(TARGET_2ND_CPU_VARIANT)) -# The combo makefiles check and set defaults for various CPU configuration -combo_target := TARGET_ -combo_2nd_arch_prefix := -include $(BUILD_SYSTEM)/combo/select.mk +ifdef TARGET_ARCH + # The combo makefiles check and set defaults for various CPU configuration + combo_target := TARGET_ + combo_2nd_arch_prefix := + include $(BUILD_SYSTEM)/combo/select.mk +endif ifdef TARGET_2ND_ARCH combo_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX) @@ -207,9 +218,7 @@ endif .KATI_READONLY := $(_board_strip_readonly_list) INTERNAL_KERNEL_CMDLINE := $(BOARD_KERNEL_CMDLINE) -ifeq ($(TARGET_CPU_ABI),) - $(error No TARGET_CPU_ABI defined by board config: $(board_config_mk)) -endif + ifneq ($(filter %64,$(TARGET_ARCH)),) TARGET_IS_64_BIT := true endif diff --git a/core/dex_preopt_config.mk b/core/dex_preopt_config.mk index 41a2be91bb..f72752c658 100644 --- a/core/dex_preopt_config.mk +++ b/core/dex_preopt_config.mk @@ -108,6 +108,7 @@ ifeq ($(WRITE_SOONG_VARIABLES),true) $(call add_json_str, Dex2oatXms, $(DEX2OAT_XMS)) $(call add_json_str, EmptyDirectory, $(OUT_DIR)/empty) +ifdef TARGET_ARCH $(call add_json_map, CpuVariant) $(call add_json_str, $(TARGET_ARCH), $(DEX2OAT_TARGET_CPU_VARIANT)) ifdef TARGET_2ND_ARCH @@ -121,6 +122,7 @@ ifeq ($(WRITE_SOONG_VARIABLES),true) $(call add_json_str, $(TARGET_2ND_ARCH), $($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)) endif $(call end_json_map) +endif $(call add_json_str, DirtyImageObjects, $(DIRTY_IMAGE_OBJECTS)) $(call add_json_list, BootImageProfiles, $(PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION))