Add support for *_CPU_VARIANT_RUNTIME flags
Specified in the BoardConfig, and default to the value of the non _RUNTIME variants. These flags do not modify build-time compilation, but get written to system properties on /vendor and can be inspected at runtime to run/compile code for the specified cpu. Migrate the bionic and ART cpu variant flags to use the new variables, but leave the ART preopting using the non-_RUNTIME variants. Bug: 120773446 Test: boot downstream device specifying CPU_VARIANT_RUNTIME flags Test: grep dalvik.vm vendor/default.prop Change-Id: Idc81110172582f38f84cca87f2eff140c5b5f9ac
This commit is contained in:
parent
30851f2540
commit
71b7f7fbd0
3 changed files with 20 additions and 4 deletions
|
@ -183,18 +183,18 @@ FINAL_VENDOR_DEFAULT_PROPERTIES += \
|
|||
|
||||
# Add cpu properties for bionic and ART.
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += ro.bionic.arch=$(TARGET_ARCH)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += ro.bionic.cpu_variant=$(TARGET_CPU_VARIANT)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += ro.bionic.cpu_variant=$(TARGET_CPU_VARIANT_RUNTIME)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += ro.bionic.2nd_arch=$(TARGET_2ND_ARCH)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += ro.bionic.2nd_cpu_variant=$(TARGET_2ND_CPU_VARIANT)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += ro.bionic.2nd_cpu_variant=$(TARGET_2ND_CPU_VARIANT_RUNTIME)
|
||||
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += persist.sys.dalvik.vm.lib.2=libart.so
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).variant=$(DEX2OAT_TARGET_CPU_VARIANT)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).variant=$(DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
|
||||
ifneq ($(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).features=$(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
|
||||
endif
|
||||
|
||||
ifdef TARGET_2ND_ARCH
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).variant=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).variant=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
|
||||
ifneq ($($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
|
||||
FINAL_VENDOR_DEFAULT_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).features=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
|
||||
endif
|
||||
|
|
|
@ -298,12 +298,24 @@ TARGET_PRODUCT_KERNEL_HEADERS := $(patsubst %/,%,$(TARGET_PRODUCT_KERNEL_HEADERS
|
|||
$(call validate-kernel-headers,$(TARGET_PRODUCT_KERNEL_HEADERS))
|
||||
|
||||
# Clean up/verify variables defined by the board config file.
|
||||
# TODO: Move this to right after the BoardConfig parsing.
|
||||
TARGET_BOOTLOADER_BOARD_NAME := $(strip $(TARGET_BOOTLOADER_BOARD_NAME))
|
||||
TARGET_CPU_ABI := $(strip $(TARGET_CPU_ABI))
|
||||
ifeq ($(TARGET_CPU_ABI),)
|
||||
$(error No TARGET_CPU_ABI defined by board config: $(board_config_mk))
|
||||
endif
|
||||
TARGET_CPU_ABI2 := $(strip $(TARGET_CPU_ABI2))
|
||||
TARGET_CPU_VARIANT := $(strip $(TARGET_CPU_VARIANT))
|
||||
TARGET_CPU_VARIANT_RUNTIME := $(strip $(TARGET_CPU_VARIANT_RUNTIME))
|
||||
|
||||
TARGET_2ND_CPU_ABI := $(strip $(TARGET_2ND_CPU_ABI))
|
||||
TARGET_2ND_CPU_ABI2 := $(strip $(TARGET_2ND_CPU_ABI2))
|
||||
TARGET_2ND_CPU_VARIANT := $(strip $(TARGET_2ND_CPU_VARIANT))
|
||||
TARGET_2ND_CPU_VARIANT_RUNTIME := $(strip $(TARGET_2ND_CPU_VARIANT_RUNTIME))
|
||||
|
||||
# Default *_CPU_VARIANT_RUNTIME to CPU_VARIANT if unspecified.
|
||||
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))
|
||||
|
||||
BOARD_KERNEL_BASE := $(strip $(BOARD_KERNEL_BASE))
|
||||
BOARD_KERNEL_PAGESIZE := $(strip $(BOARD_KERNEL_PAGESIZE))
|
||||
|
@ -1135,11 +1147,13 @@ endif
|
|||
first_non_empty_of_three = $(if $(1),$(1),$(if $(2),$(2),$(3)))
|
||||
DEX2OAT_TARGET_ARCH := $(TARGET_ARCH)
|
||||
DEX2OAT_TARGET_CPU_VARIANT := $(call first_non_empty_of_three,$(TARGET_CPU_VARIANT),$(TARGET_ARCH_VARIANT),default)
|
||||
DEX2OAT_TARGET_CPU_VARIANT_RUNTIME := $(call first_non_empty_of_three,$(TARGET_CPU_VARIANT_RUNTIME),$(TARGET_ARCH_VARIANT),default)
|
||||
DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := default
|
||||
|
||||
ifdef TARGET_2ND_ARCH
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_ARCH := $(TARGET_2ND_ARCH)
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT := $(call first_non_empty_of_three,$(TARGET_2ND_CPU_VARIANT),$(TARGET_2ND_ARCH_VARIANT),default)
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT_RUNTIME := $(call first_non_empty_of_three,$(TARGET_2ND_CPU_VARIANT_RUNTIME),$(TARGET_2ND_ARCH_VARIANT),default)
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES := default
|
||||
endif
|
||||
|
||||
|
|
|
@ -375,11 +375,13 @@ _product_stash_var_list := $(_product_var_list) \
|
|||
TARGET_CPU_ABI \
|
||||
TARGET_CPU_ABI2 \
|
||||
TARGET_CPU_VARIANT \
|
||||
TARGET_CPU_VARIANT_RUNTIME \
|
||||
TARGET_2ND_ARCH \
|
||||
TARGET_2ND_ARCH_VARIANT \
|
||||
TARGET_2ND_CPU_ABI \
|
||||
TARGET_2ND_CPU_ABI2 \
|
||||
TARGET_2ND_CPU_VARIANT \
|
||||
TARGET_2ND_CPU_VARIANT_RUNTIME \
|
||||
TARGET_BOARD_PLATFORM \
|
||||
TARGET_BOARD_PLATFORM_GPU \
|
||||
TARGET_BOARD_KERNEL_HEADERS \
|
||||
|
|
Loading…
Reference in a new issue