From 2edfb71d01bff3632598e66eae7a32d656af8447 Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Fri, 6 Nov 2009 15:12:00 -0800 Subject: [PATCH] Support secondary CPU ABI in build.prop BoardConfig.mk typically defines TARGET_CPU_ABI to the name of the native machine code CPU ABI supported by the target device. For example, existing devices today use the value 'armeabi' corresponding to an ARMv5TE instruction set with soft-float implementation. This patch allows this file to also define TARGET_CPU_ABI2 to name a secondary (minor) CPU ABI also supported by the device. This is useful when the main ABI is ARMv7-A (identified as 'armeabi-v7a') which also supports ARMv5TE. Such devices should have TARGET_CPU_ABI defined to 'armeabi-v7a' and TARGET_CPU_ABI2 defined to 'armeabi'. TARGET_CPU_ABI2 will be translated into the ro.product.cpu.abi2 property in build.prop. This value will be used by the PackageManager to handle "fat-binaries" generated with the NDK. --- core/Makefile | 1 + core/config.mk | 1 + tools/buildinfo.sh | 3 +++ 3 files changed, 5 insertions(+) diff --git a/core/Makefile b/core/Makefile index e70474809..54b12ff31 100644 --- a/core/Makefile +++ b/core/Makefile @@ -133,6 +133,7 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) BUILD_FINGERPRINT="$(BUILD_FINGERPRINT)" \ TARGET_BOARD_PLATFORM="$(TARGET_BOARD_PLATFORM)" \ TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \ + TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \ bash $(BUILDINFO_SH) > $@ $(hide) if [ -f $(TARGET_DEVICE_DIR)/system.prop ]; then \ cat $(TARGET_DEVICE_DIR)/system.prop >> $@; \ diff --git a/core/config.mk b/core/config.mk index 37ca40469..e574124b1 100644 --- a/core/config.mk +++ b/core/config.mk @@ -136,6 +136,7 @@ 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)) # $(1): os/arch define select-android-config-h diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index af5aa47a1..6c851492e 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -21,6 +21,9 @@ echo "ro.product.name=$PRODUCT_NAME" echo "ro.product.device=$TARGET_DEVICE" echo "ro.product.board=$TARGET_BOOTLOADER_BOARD_NAME" echo "ro.product.cpu.abi=$TARGET_CPU_ABI" +if [ -n "$TARGET_CPU_ABI2" ] ; then + echo "ro.product.cpu.abi2=$TARGET_CPU_ABI2" +fi echo "ro.product.manufacturer=$PRODUCT_MANUFACTURER" echo "ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE" echo "ro.product.locale.region=$PRODUCT_DEFAULT_REGION"