# HG changeset patch # User "Yann E. MORIN" # Date 1357773077 -3600 # Node ID 1161ea79915bb4920b518b3c33ac9c127bac3113 # Parent 2a773bd38e7117e76c8727314c42094cab468648 arch/arm: add option to use *eabihf tuples Toolchains that use the hard-float ABI now are to be denoted by a tuple ending in *eabihf, while the prevbious *eabi is now an indication that the toolchain uses the softfloat ABI. This is purely a cosmetic thing, for distros to differentiate their hardfloat-ABI ports from their softfloat-ABI ports. (note: softfloat ABI does not mean that it is using softfloats; it can be using hardfloat instructions, but using the softfloat ABI). Signed-off-by: "Yann E. MORIN" diff -r 2a773bd38e71 -r 1161ea79915b config/arch/arm.in.2 --- a/config/arch/arm.in.2 Wed Jan 09 18:52:15 2013 +0100 +++ b/config/arch/arm.in.2 Thu Jan 10 00:11:17 2013 +0100 @@ -46,6 +46,37 @@ help Set up the toolchain so that it generates EABI-compliant binaries. +config ARCH_ARM_TUPLE_USE_EABIHF + bool + prompt "append 'hf' to the tuple (EXPERIMENTAL)" + depends on ARCH_FLOAT_HW + depends on ARCH_ARM_EABI # Until we only support that... + depends on EXPERIMENTAL + help + Is you say 'y' here, then the tuple for the toolchain will end + up with *eabihf, instead of the usual *eabi. + + *eabihf is used to denote that the toolchain *is* using the + hard-float ABI, while *eabi is just an indication of using the + soft-float ABI. + + Ie. all one can say is: *eabihf ⊢ hard-float ABI + + Saying 'n' here does *not* impact the ability of the toolchain to + generate hard-float instructions with the hard-float ABI. It is a + purely cosmetic thing, used by distros to differentiate their + hard-float-ABI-using ports from their soft-float-ABI-using ports. + (eg. Debian Wheezy and above). + + This is an option, as not all versions of gcc/binutils do support + such tuple, and fail to build with *eabihf. Stock gcc version up + to, and including 4.7.2 have an issue or another with *eabihf. + + This option is here for the future. + + Say 'n', unless you are trying to fix gcc to properly recognise + the *eabihf tuples. + config ARCH_ARM_ABI_OK bool default y diff -r 2a773bd38e71 -r 1161ea79915b scripts/build/arch/arm.sh --- a/scripts/build/arch/arm.sh Wed Jan 09 18:52:15 2013 +0100 +++ b/scripts/build/arch/arm.sh Thu Jan 10 00:11:17 2013 +0100 @@ -24,4 +24,8 @@ if [ "${CT_ARCH_ARM_INTERWORKING}" = "y" ]; then CT_ARCH_TARGET_CFLAGS+=" -mthumb-interwork" fi + + if [ "${CT_ARCH_ARM_TUPLE_USE_EABIHF}" = "y" ]; then + CT_TARGET_SYS="${CT_TARGET_SYS}hf" + fi }