2016-11-07 02:20:02 +01:00
|
|
|
comment "Linaro toolchains available for Cortex-A + EABIhf"
|
|
|
|
depends on BR2_arm
|
|
|
|
depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
|
|
|
|
depends on !BR2_STATIC_LIBS
|
|
|
|
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
|
2017-02-19 14:51:24 +01:00
|
|
|
bool "Linaro ARM 2017.02"
|
2016-11-07 02:20:02 +01:00
|
|
|
depends on BR2_arm
|
toolchain-external-linaro-{arm,armeb}: allow on ARMv8
The Linaro toolchains are currently only available on ARMv7-A, but can
in fact also be used to generate 32 bits code for ARMv8 platforms. This
commit therefore adjusts their architecture dependency.
Example, a 32 bits ARM build produces a 32 bits busybox binary:
$ file output/target/bin/busybox
output/target/bin/busybox: setuid ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=16a7a70eb9cac08759e52a260478b9c287f59238, stripped
Which was built for Cortex-A72:
$ ./output/host/usr/bin/arm-linux-gnueabihf-readelf -A output/target/bin/busybox
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "Cortex-A72"
Tag_CPU_arch: v8
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: FP for ARMv8
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_rounding: Needed
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, except leaf SP
Tag_ABI_enum_size: int
Tag_ABI_VFP_args: VFP registers
Tag_CPU_unaligned_access: v6
Tag_MPextension_use: Allowed
Tag_Virtualization_use: TrustZone and Virtualization Extensions
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-05 23:15:43 +01:00
|
|
|
depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8
|
2016-11-07 02:20:02 +01:00
|
|
|
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
|
|
|
depends on BR2_ARM_EABIHF
|
|
|
|
depends on !BR2_STATIC_LIBS
|
|
|
|
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
|
|
|
select BR2_TOOLCHAIN_HAS_SSP
|
|
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
|
|
|
select BR2_INSTALL_LIBSTDCPP
|
2016-11-29 22:42:59 +01:00
|
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
2016-11-07 02:20:02 +01:00
|
|
|
select BR2_TOOLCHAIN_HAS_FORTRAN
|
|
|
|
help
|
|
|
|
Linaro toolchain for the ARM architecture. It uses Linaro
|
2017-02-19 14:51:24 +01:00
|
|
|
GCC 2017.02 (based on gcc 6.3.1), Linaro GDB 2017.02 (based on
|
|
|
|
GDB 7.12), glibc 2.23, Binutils 2017.02 (based on 2.27). It
|
2016-11-07 02:20:02 +01:00
|
|
|
generates code that runs on all Cortex-A profile devices,
|
|
|
|
but tuned for the Cortex-A9. The code generated is Thumb 2,
|
|
|
|
with the hard floating point calling convention, and uses
|
|
|
|
the VFPv3-D16 FPU instructions.
|