arm: Define with_float to hard when target name ends with hf
authorChristophe Lyon <christophe.lyon@arm.com>
Wed, 17 Aug 2022 08:06:24 +0000 (10:06 +0200)
committerChristophe Lyon <christophe.lyon@arm.com>
Wed, 17 Aug 2022 11:49:12 +0000 (13:49 +0200)
On arm, the --with-float= configure option is used to define include
files search path (among other things).  However, when targeting
arm-linux-gnueabihf, one would expect to automatically default to the
hard-float ABI, but this is not the case. As a consequence, GCC
bootstrap fails on an arm-linux-gnueabihf target if --with-float=hard
is not used.

This patch checks if the target name ends with 'hf' and defines
with_float to hard if not already defined.  This is achieved in
gcc/config.gcc, just before selecting the default CPU depending on the
$with_float value.

2022-08-17  Christophe Lyon  <christophe.lyon@arm.com>

gcc/
* config.gcc (arm): Define with_float to hard if target name ends
with 'hf'.

gcc/config.gcc

index 4e3b15b..02f5897 100644 (file)
@@ -1314,6 +1314,13 @@ arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
            tm_file="$tm_file arm/uclinuxfdpiceabi.h"
            ;;
        esac
+       # Define with_float to "hard" if not already defined and
+       # target name ends with "hf"
+       case $target:$with_float in
+       arm*-*-*hf:)
+           with_float=hard
+           ;;
+       esac
        # Generation of floating-point instructions requires at least ARMv5te.
        if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
            target_cpu_cname="arm10e"