forked from openkylin/platform_build
Merge "Build support for 32-bit armv8-a" am: 70fe80491c
am: ef1e443e14
am: 43b2504cd2
am: e5dd3915f7
Change-Id: Ib9ddb35eee30e8024b92515873b904cd0e30d89a
This commit is contained in:
commit
d9609dd5f1
|
@ -29,6 +29,26 @@
|
||||||
# include defines, and compiler settings for the given architecture
|
# include defines, and compiler settings for the given architecture
|
||||||
# version.
|
# version.
|
||||||
#
|
#
|
||||||
|
ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),)
|
||||||
|
TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT := generic
|
||||||
|
endif
|
||||||
|
|
||||||
|
KNOWN_ARMv8_CORES := cortex-a53 cortex-a53.a57 cortex-a73
|
||||||
|
KNOWN_ARMv8_CORES += kryo denver64 exynos-m1 exynos-m2
|
||||||
|
|
||||||
|
# Many devices (incorrectly) use armv7-a-neon as the 2nd architecture variant
|
||||||
|
# for cores that implement armv8-a ISAs. The following sets it to armv8-a.
|
||||||
|
ifneq (,$(filter $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT), $(KNOWN_ARMv8_CORES)))
|
||||||
|
ifneq ($(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT),armv8-a)
|
||||||
|
$(warning $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT) is armv8-a.)
|
||||||
|
ifneq (,$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT))
|
||||||
|
$(warning TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT, $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT), ignored! Use armv8-a instead.)
|
||||||
|
endif
|
||||||
|
# Overwrite TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT
|
||||||
|
TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv8-a
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)),)
|
ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)),)
|
||||||
TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv5te
|
TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv5te
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Configuration for Linux on ARM.
|
||||||
|
# Generating binaries for the ARMv8-a architecture
|
||||||
|
#
|
||||||
|
# Many libraries are not aware of armv8-a, and AArch32 is (almost) a superset
|
||||||
|
# of armv7-a-neon. So just let them think we are just like v7.
|
||||||
|
ARCH_ARM_HAVE_ARMV7A := true
|
||||||
|
ARCH_ARM_HAVE_VFP := true
|
||||||
|
ARCH_ARM_HAVE_VFP_D32 := true
|
||||||
|
ARCH_ARM_HAVE_NEON := true
|
|
@ -35,11 +35,11 @@ ifneq ($(TARGET_BUILD_APPS)$(filter cts,$(MAKECMDGOALS)),)
|
||||||
# platforms.
|
# platforms.
|
||||||
#
|
#
|
||||||
# If you're building a 64 bit platform (and not an application) the
|
# If you're building a 64 bit platform (and not an application) the
|
||||||
# ARM-v8 specification allows you to assume NEON and all the features
|
# ARM-v8 specification allows you to assume all the features available in an
|
||||||
# available in a cortex-A15 CPU. You should be able to set :
|
# armv7-a-neon CPU. You should set the following as 2nd arch/cpu variant:
|
||||||
#
|
#
|
||||||
# TARGET_2ND_ARCH_VARIANT := armv7-a-neon
|
# TARGET_2ND_ARCH_VARIANT := armv8-a
|
||||||
# TARGET_2ND_CPU_VARIANT := cortex-a15
|
# TARGET_2ND_CPU_VARIANT := generic
|
||||||
#
|
#
|
||||||
# DO NOT USE
|
# DO NOT USE
|
||||||
# DO NOT USE
|
# DO NOT USE
|
||||||
|
@ -50,8 +50,8 @@ TARGET_2ND_CPU_VARIANT := generic
|
||||||
# DO NOT USE
|
# DO NOT USE
|
||||||
# DO NOT USE
|
# DO NOT USE
|
||||||
else
|
else
|
||||||
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
|
TARGET_2ND_ARCH_VARIANT := armv8-a
|
||||||
TARGET_2ND_CPU_VARIANT := cortex-a15
|
TARGET_2ND_CPU_VARIANT := generic
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue