Patchwork [ARM] Add arm-linux-gnueabihf triplet support.

login
register
mail settings
Submitter Zhenqiang Chen
Date June 7, 2012, 8:12 a.m.
Message ID <CACgzC7BV+E_Xd5CuuLATNTkcTNOf9NpTvXz-q0Qdkd4GUkv8FQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/163513/
State New
Headers show

Comments

Zhenqiang Chen - June 7, 2012, 8:12 a.m.
Hi,

The patch adds arm-linux-gnueabihf triplet support.

No regression for arm-linux-gnueabi tests.

There are some differences between testsuite results on softfp Natty
builders and the new hard float Precise builders. But none are due to
the change in triplet.

Thanks!
-Zhenqiang

gcc/ada/ChangeLog:
2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* gcc-interface/Makefile.in: Update linux-gnueabi to linux-gnueabi%.

gcc/ChangeLog:
2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config.gcc: Update arm*-*-linux-*eabi to arm*-*-linux-*eabi*.
	Add hard-float as default for arm*-*-*eabihf.

libgcc/ChangeLog:
2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config.host: Update arm*-*-linux-*eabi to arm*-*-linux-*eabi*.

libjava/ChangeLog:
2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* configure: Update arm*linux*eabi to arm*linux*eabi*.
	* configure.ac: Likewise.

libstdc++-v3/ChangeLog:
2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* configure.host: Update arm*-*-linux-*eabi to arm*-*-linux-*eabi*.
Zhenqiang Chen - June 14, 2012, 4:44 a.m.
Ping. OK for trunk?

Thanks!
-Zhenqiang

On 7 June 2012 16:12, Zhenqiang Chen <zhenqiang.chen@linaro.org> wrote:
> Hi,
>
> The patch adds arm-linux-gnueabihf triplet support.
>
> No regression for arm-linux-gnueabi tests.
>
> There are some differences between testsuite results on softfp Natty
> builders and the new hard float Precise builders. But none are due to
> the change in triplet.
>
> Thanks!
> -Zhenqiang
>
> gcc/ada/ChangeLog:
> 2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
>
>        * gcc-interface/Makefile.in: Update linux-gnueabi to linux-gnueabi%.
>
> gcc/ChangeLog:
> 2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
>
>        * config.gcc: Update arm*-*-linux-*eabi to arm*-*-linux-*eabi*.
>        Add hard-float as default for arm*-*-*eabihf.
>
> libgcc/ChangeLog:
> 2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
>
>        * config.host: Update arm*-*-linux-*eabi to arm*-*-linux-*eabi*.
>
> libjava/ChangeLog:
> 2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
>
>        * configure: Update arm*linux*eabi to arm*linux*eabi*.
>        * configure.ac: Likewise.
>
> libstdc++-v3/ChangeLog:
> 2012-06-07  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
>
>        * configure.host: Update arm*-*-linux-*eabi to arm*-*-linux-*eabi*.
>
>
> diff --git a/gcc/ada/gcc-interface/Makefile.in
> b/gcc/ada/gcc-interface/Makefile.in
> index 21c2471..bae126d 100644
> --- a/gcc/ada/gcc-interface/Makefile.in
> +++ b/gcc/ada/gcc-interface/Makefile.in
> @@ -1828,7 +1828,7 @@ ifeq ($(strip $(filter-out powerpc% e500%
> linux%,$(arch) $(osys))),)
>   LIBRARY_VERSION := $(LIB_VERSION)
>  endif
>
> -ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word
> 4,$(targ)))),)
> +ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(arch) $(osys)-$(word
> 4,$(targ)))),)
>   LIBGNAT_TARGET_PAIRS = \
>   a-intnam.ads<a-intnam-linux.ads \
>   s-inmaop.adb<s-inmaop-posix.adb \
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index f2b0936..05d669f 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -835,7 +835,7 @@ arm*-*-linux*)                      # ARM GNU/Linux with ELF
>        esac
>        tmake_file="${tmake_file} arm/t-arm"
>        case ${target} in
> -       arm*-*-linux-*eabi)
> +       arm*-*-linux-*eabi*)
>            tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
>            tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
>            # Define multilib configuration for arm-linux-androideabi.
> @@ -844,6 +844,11 @@ arm*-*-linux*)                     # ARM GNU/Linux with ELF
>                tmake_file="$tmake_file arm/t-linux-androideabi"
>                ;;
>            esac
> +           case ${target} in
> +           arm*-*-*eabihf)
> +               with_float=${with_float:-hard}
> +               ;;
> +           esac
>            # The BPABI long long divmod functions return a 128-bit value in
>            # registers r0-r3.  Correctly modeling that requires the use of
>            # TImode.
> diff --git a/libgcc/config.host b/libgcc/config.host
> index 14c705b..fd952ff 100644
> --- a/libgcc/config.host
> +++ b/libgcc/config.host
> @@ -316,7 +316,7 @@ arm*-*-netbsdelf*)
>  arm*-*-linux*)                 # ARM GNU/Linux with ELF
>        tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix"
>        case ${host} in
> -       arm*-*-linux-*eabi)
> +       arm*-*-linux-*eabi*)
>          tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi
> t-slibgcc-libgcc"
>          tm_file="$tm_file arm/bpabi-lib.h"
>          unwind_header=config/arm/unwind-arm.h
> diff --git a/libjava/configure b/libjava/configure
> index 0bd423d..5067f3b 100755
> --- a/libjava/configure
> +++ b/libjava/configure
> @@ -20548,7 +20548,7 @@ case "${host}" in
>     # on Darwin -single_module speeds up loading of the dynamic libraries.
>     extra_ldflags_libjava=-Wl,-single_module
>     ;;
> -arm*linux*eabi)
> +arm*linux*eabi*)
>     # Some of the ARM unwinder code is actually in libstdc++.  We
>     # could in principle replicate it in libgcj, but it's better to
>     # have a dependency on libstdc++.
> diff --git a/libjava/configure.ac b/libjava/configure.ac
> index 62c5000..736608c 100644
> --- a/libjava/configure.ac
> +++ b/libjava/configure.ac
> @@ -931,7 +931,7 @@ case "${host}" in
>     # on Darwin -single_module speeds up loading of the dynamic libraries.
>     extra_ldflags_libjava=-Wl,-single_module
>     ;;
> -arm*linux*eabi)
> +arm*linux*eabi*)
>     # Some of the ARM unwinder code is actually in libstdc++.  We
>     # could in principle replicate it in libgcj, but it's better to
>     # have a dependency on libstdc++.
> diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
> index 8f29bc2..c29d9d4 100644
> --- a/libstdc++-v3/configure.host
> +++ b/libstdc++-v3/configure.host
> @@ -324,7 +324,7 @@ case "${host}" in
>         fi
>     esac
>     case "${host}" in
> -      arm*-*-linux-*eabi)
> +      arm*-*-linux-*eabi*)
>        port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"
>        ;;
>     esac

Patch

diff --git a/gcc/ada/gcc-interface/Makefile.in
b/gcc/ada/gcc-interface/Makefile.in
index 21c2471..bae126d 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -1828,7 +1828,7 @@  ifeq ($(strip $(filter-out powerpc% e500%
linux%,$(arch) $(osys))),)
   LIBRARY_VERSION := $(LIB_VERSION)
 endif

-ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word
4,$(targ)))),)
+ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(arch) $(osys)-$(word
4,$(targ)))),)
   LIBGNAT_TARGET_PAIRS = \
   a-intnam.ads<a-intnam-linux.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
diff --git a/gcc/config.gcc b/gcc/config.gcc
index f2b0936..05d669f 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -835,7 +835,7 @@  arm*-*-linux*)			# ARM GNU/Linux with ELF
 	esac
 	tmake_file="${tmake_file} arm/t-arm"
 	case ${target} in
-	arm*-*-linux-*eabi)
+	arm*-*-linux-*eabi*)
 	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
 	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
 	    # Define multilib configuration for arm-linux-androideabi.
@@ -844,6 +844,11 @@  arm*-*-linux*)			# ARM GNU/Linux with ELF
 		tmake_file="$tmake_file arm/t-linux-androideabi"
 		;;
 	    esac
+	    case ${target} in
+	    arm*-*-*eabihf)
+		with_float=${with_float:-hard}
+		;;
+	    esac
   	    # The BPABI long long divmod functions return a 128-bit value in
 	    # registers r0-r3.  Correctly modeling that requires the use of
 	    # TImode.
diff --git a/libgcc/config.host b/libgcc/config.host
index 14c705b..fd952ff 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -316,7 +316,7 @@  arm*-*-netbsdelf*)
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 	tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix"
 	case ${host} in
-	arm*-*-linux-*eabi)
+	arm*-*-linux-*eabi*)
 	  tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi
t-slibgcc-libgcc"
 	  tm_file="$tm_file arm/bpabi-lib.h"
 	  unwind_header=config/arm/unwind-arm.h
diff --git a/libjava/configure b/libjava/configure
index 0bd423d..5067f3b 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -20548,7 +20548,7 @@  case "${host}" in
     # on Darwin -single_module speeds up loading of the dynamic libraries.
     extra_ldflags_libjava=-Wl,-single_module
     ;;
-arm*linux*eabi)
+arm*linux*eabi*)
     # Some of the ARM unwinder code is actually in libstdc++.  We
     # could in principle replicate it in libgcj, but it's better to
     # have a dependency on libstdc++.
diff --git a/libjava/configure.ac b/libjava/configure.ac
index 62c5000..736608c 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -931,7 +931,7 @@  case "${host}" in
     # on Darwin -single_module speeds up loading of the dynamic libraries.
     extra_ldflags_libjava=-Wl,-single_module
     ;;
-arm*linux*eabi)
+arm*linux*eabi*)
     # Some of the ARM unwinder code is actually in libstdc++.  We
     # could in principle replicate it in libgcj, but it's better to
     # have a dependency on libstdc++.
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index 8f29bc2..c29d9d4 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -324,7 +324,7 @@  case "${host}" in
         fi
     esac
     case "${host}" in
-      arm*-*-linux-*eabi)
+      arm*-*-linux-*eabi*)
 	port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"
 	;;
     esac