emulator: Build emulator platform images as ARMv7-A
Backport from AOSP master.
Now that the emulator supports proper ARMv7 emulation, switch to
building all emulator-specific platform images using this instruction
set, in order to benefit from the noticeable speed boost provided by
Thumb-2 instructions.
Note that we don't build with NEON support because emulated NEON
instructions are currently slow, though they work.
IMPORTANT: You need to have the following emulator patch in your tree
in order to start these platform builds easily:
https://review.source.android.com//#change,23798
Otherwise, the alternative is to do these things:
1/ Telling the emulator to emulate an ARMv7-A CPU, instead of
an ARMv5TE one. This is normally done with "-qemu cortex-a8"
2/ Using an ARMv7-A capable kernel image, which is available and
usable with -kernel prebuilt/android-arm/kernel-qemu-armv7
Note that the emulator has a special hack that automatically enables
1/ if 2/ is being used (i.e. if the kernel image name ends with -armv7,
then emulate an ARMv7-A CPU automatically).
So in reality, only 2/ is required.
Change-Id: Id3ac7cdbda892e519af98aff1f02136f344406b8
Orig-Change-Id: I5c0245ba5e6a2bc34d0d49b2c024fffd317a5eed
diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk
index 9e52d25..1e8f9e4 100644
--- a/target/board/generic/BoardConfig.mk
+++ b/target/board/generic/BoardConfig.mk
@@ -6,7 +6,22 @@
# The generic product target doesn't have any hardware-specific pieces.
TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
-TARGET_CPU_ABI := armeabi
+
+# Note: we build the platform images for ARMv7-A _without_ NEON.
+#
+# Technically, the emulator supports ARMv7-A _and_ NEON instructions, but
+# emulated NEON code paths typically ends up 2x slower than the normal C code
+# it is supposed to replace (unlike on real devices where it is 2x to 3x
+# faster).
+#
+# What this means is that the platform image will not use NEON code paths
+# that are slower to emulate. On the other hand, it is possible to emulate
+# application code generated with the NDK that uses NEON in the emulator.
+#
+TARGET_ARCH_VARIANT := armv7-a
+TARGET_CPU_ABI := armeabi-v7a
+TARGET_CPU_ABI2 := armeabi
+
HAVE_HTC_AUDIO_DRIVER := true
BOARD_USES_GENERIC_AUDIO := true