diff --git a/CleanSpec.mk b/CleanSpec.mk index f001da947b..ee85995534 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -214,6 +214,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) # Rename persist.sys.dalvik.vm.lib to allow new default $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) +# Add ro.product.cpu.abilist{32,64} to build.prop. +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/Makefile b/core/Makefile index 918a94f214..d223122893 100644 --- a/core/Makefile +++ b/core/Makefile @@ -192,6 +192,8 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $( BUILD_FINGERPRINT="$(BUILD_FINGERPRINT)" \ TARGET_BOARD_PLATFORM="$(TARGET_BOARD_PLATFORM)" \ TARGET_CPU_ABI_LIST="$(TARGET_CPU_ABI_LIST)" \ + TARGET_CPU_ABI_LIST_32_BIT="$(TARGET_CPU_ABI_LIST_32_BIT)" \ + TARGET_CPU_ABI_LIST_64_BIT="$(TARGET_CPU_ABI_LIST_64_BIT)" \ TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \ TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \ TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \ diff --git a/core/config.mk b/core/config.mk index 4b91e36653..653a9bc03f 100644 --- a/core/config.mk +++ b/core/config.mk @@ -231,6 +231,44 @@ combo_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX) include $(BUILD_SYSTEM)/combo/select.mk endif +# "ro.product.cpu.abilist" is a comma separated list of ABIs (in order +# of preference) that the target supports. If a TARGET_CPU_ABI_LIST +# is specified by the board configuration, we use that. If not, we +# build a list out of the TARGET_CPU_ABIs specified by the config. +ifeq (,$(TARGET_CPU_ABI_LIST)) + TARGET_CPU_ABI_LIST := $(TARGET_CPU_ABI) $(TARGET_CPU_ABI2) $(TARGET_2ND_CPU_ABI) $(TARGET_2ND_CPU_ABI2) +endif + +# "ro.product.cpu.abilist32" and "ro.product.cpu.abilist64" are +# comma separated lists of the 32 and 64 bit ABIs (in order of +# preference) that the target supports. If TARGET_CPU_ABI_LIST_{32,64}_BIT +# are defined by the board config, we use them. Else, we construct +# these lists based on whether TARGET_IS_64_BIT is set. +# +# Note that this assumes that the 2ND_CPU_ABI for a 64 bit target +# is always 32 bits. If this isn't the case, these variables should +# be overriden in the boarc configuration. +ifeq (,$(TARGET_CPU_ABI_LIST_64_BIT)) + ifeq (true,$(TARGET_IS_64_BIT)) + TARGET_CPU_ABI_LIST_64_BIT := $(TARGET_CPU_ABI) $(TARGET_CPU_ABI2) + endif +endif + +ifeq (,$(TARGET_CPU_ABI_LIST_32_BIT)) + ifneq (true,$(TARGET_IS_64_BIT)) + TARGET_CPU_ABI_LIST_32_BIT := $(TARGET_CPU_ABI) $(TARGET_CPU_ABI2) + else + # For a 64 bit target, assume that the 2ND_CPU_ABI + # is a 32 bit ABI. + TARGET_CPU_ABI_LIST_32_BIT := $(TARGET_2ND_CPU_ABI) $(TARGET_2ND_CPU_ABI2) + endif +endif + +# Strip whitespace from the ABI list string. +TARGET_CPU_ABI_LIST := $(subst $(space),$(comma),$(strip $(TARGET_CPU_ABI_LIST))) +TARGET_CPU_ABI_LIST_32_BIT := $(subst $(space),$(comma),$(strip $(TARGET_CPU_ABI_LIST_32_BIT))) +TARGET_CPU_ABI_LIST_64_BIT := $(subst $(space),$(comma),$(strip $(TARGET_CPU_ABI_LIST_64_BIT))) + # Compute TARGET_TOOLCHAIN_ROOT from TARGET_TOOLS_PREFIX # if only TARGET_TOOLS_PREFIX is passed to the make command. ifndef TARGET_TOOLCHAIN_ROOT diff --git a/core/envsetup.mk b/core/envsetup.mk index 628c95b262..4cb389bf4e 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -143,28 +143,6 @@ endif TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) board_config_mk := -# "ro.product.cpu.abilist" is a comma separated list of ABIs (in order -# of preference) that the target supports. If a TARGET_CPU_ABI_LIST -# is specified by the board configuration, we use that. If not, we -# build a list out of the TARGET_CPU_ABIs specified by the config. -ifeq (,$(TARGET_CPU_ABI_LIST)) - TARGET_CPU_ABI_LIST := $(TARGET_CPU_ABI) - ifneq (,$(TARGET_CPU_ABI2)) - TARGET_CPU_ABI_LIST += ,$(TARGET_CPU_ABI2) - endif - ifneq (,$(TARGET_2ND_CPU_ABI)) - TARGET_CPU_ABI_LIST += ,$(TARGET_2ND_CPU_ABI) - endif - ifneq (,$(TARGET_2ND_CPU_ABI2)) - TARGET_CPU_ABI_LIST += ,$(TARGET_2ND_CPU_ABI2) - endif - - # Strip whitespace from the ABI list string. - empty := - space := $(empty) $(empty) - TARGET_CPU_ABI_LIST := $(subst $(space),,$(TARGET_CPU_ABI_LIST)) -endif - # --------------------------------------------------------------- # Set up configuration for target machine. # The following must be set: diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index 39ddc668c1..46a73f8480 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -30,6 +30,8 @@ if [ -n "$TARGET_CPU_ABI2" ] ; then echo "ro.product.cpu.abi2=$TARGET_CPU_ABI2" fi echo "ro.product.cpu.abilist=$TARGET_CPU_ABI_LIST" +echo "ro.product.cpu.abilist32=$TARGET_CPU_ABI_LIST_32_BIT" +echo "ro.product.cpu.abilist64=$TARGET_CPU_ABI_LIST_64_BIT" echo "ro.product.manufacturer=$PRODUCT_MANUFACTURER" if [ -n "$PRODUCT_DEFAULT_LANGUAGE" ] ; then