Patchwork [gcc/libgcc/ada/libstdc++] Match arm*-*-linux-*eabi* for ARM Linux/GNU EABI

login
register
mail settings
Submitter Matthias Klose
Date June 25, 2012, 12:08 p.m.
Message ID <4FE854B6.9070500@ubuntu.com>
Download mbox | patch
Permalink /patch/167062/
State New
Headers show

Comments

Matthias Klose - June 25, 2012, 12:08 p.m.
gcc/config.gcc now allows matching arm*-*-linux-*eabi* instead of
arm*-*-linux-*eabi for ARM Linux/GNU EABI.  This changes the matching in various
other places as well. arm-linux-gnueabihf is used as a triplet by some
distributions.

Ok for the trunk?

  Matthias

gcc/testsuite/
2012-06-25  Matthias Klose  <doko@ubuntu.com>

	* lib/target-supports.exp (check_profiling_available): Match
	arm*-*-linux-*eabi* for ARM Linux/GNU EABI.

gcc/ada/
2012-06-25  Matthias Klose  <doko@ubuntu.com>

	* gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for
	ARM Linux/GNU EABI.

libgcc/
2012-06-25  Matthias Klose  <doko@ubuntu.com>

	* config.host: Match arm*-*-linux-*eabi* for ARM Linux/GNU EABI.

libstdc++-v3/
2012-06-25  Matthias Klose  <doko@ubuntu.com>

	* configure.host: Match arm*-*-linux-*eabi* for ARM Linux/GNU EABI.
	* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.

libjava/
2012-06-25  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Match arm*-*-linux-*eabi* for ARM Linux/GNU EABI.
# DP: add support for arm-linux-*eabi* triplets; useful for armhf
Richard Earnshaw - June 25, 2012, 1:22 p.m.
On 25/06/12 13:08, Matthias Klose wrote:
> gcc/config.gcc now allows matching arm*-*-linux-*eabi* instead of
> arm*-*-linux-*eabi for ARM Linux/GNU EABI.  This changes the matching in various
> other places as well. arm-linux-gnueabihf is used as a triplet by some
> distributions.
> 
> Ok for the trunk?
> 

now that all arm-linux ports are EABI conforming, why can't this just become

	arm*-*-linux*
?

R.

>   Matthias
> 
> gcc/testsuite/
> 2012-06-25  Matthias Klose  <doko@ubuntu.com>
> 
> 	* lib/target-supports.exp (check_profiling_available): Match
> 	arm*-*-linux-*eabi* for ARM Linux/GNU EABI.
> 
> gcc/ada/
> 2012-06-25  Matthias Klose  <doko@ubuntu.com>
> 
> 	* gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for
> 	ARM Linux/GNU EABI.
> 
> libgcc/
> 2012-06-25  Matthias Klose  <doko@ubuntu.com>
> 
> 	* config.host: Match arm*-*-linux-*eabi* for ARM Linux/GNU EABI.
> 
> libstdc++-v3/
> 2012-06-25  Matthias Klose  <doko@ubuntu.com>
> 
> 	* configure.host: Match arm*-*-linux-*eabi* for ARM Linux/GNU EABI.
> 	* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
> 	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.
> 
> libjava/
> 2012-06-25  Matthias Klose  <doko@ubuntu.com>
> 
> 	* configure.ac: Match arm*-*-linux-*eabi* for ARM Linux/GNU EABI.
> 
> 
> armhf-triplet.diff
> 
> 
> # DP: add support for arm-linux-*eabi* triplets; useful for armhf
> 
> --- a/src/libjava/configure.ac.orig
> +++ b/src/libjava/configure.ac
> @@ -924,7 +924,7 @@
>      # 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++.
> --- a/src/gcc/testsuite/lib/target-supports.exp.orig
> +++ b/src/gcc/testsuite/lib/target-supports.exp
> @@ -3235,7 +3235,7 @@
>  	     || [istarget i?86-*-*]
>  	     || [istarget x86_64-*-*]
>  	     || [istarget alpha*-*-*] 
> -	     || [istarget arm*-*-linux-gnueabi] 
> +	     || [istarget arm*-*-linux-*eabi*] 
>  	     || [istarget bfin*-*linux*]
>  	     || [istarget hppa*-*linux*]
>  	     || [istarget s390*-*-*] 
> @@ -3266,7 +3266,7 @@
>  	     || [istarget i?86-*-*]
>  	     || [istarget x86_64-*-*]
>  	     || [istarget alpha*-*-*] 
> -	     || [istarget arm*-*-linux-gnueabi] 
> +	     || [istarget arm*-*-linux-*eabi*] 
>  	     || [istarget hppa*-*linux*]
>  	     || [istarget s390*-*-*] 
>  	     || [istarget powerpc*-*-*]
> --- a/src/gcc/ada/gcc-interface/Makefile.in.orig
> +++ b/src/gcc/ada/gcc-interface/Makefile.in
> @@ -1846,7 +1846,7 @@
>    LIBRARY_VERSION := $(LIB_VERSION)
>  endif
>  
> -ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),)
> +ifeq ($(strip $(filter-out arm%-linux,$(arch)-$(osys)) $(if $(findstring eabi,$(word 4,$(targ))),,$(word 4,$(targ)))),)
>    LIBGNAT_TARGET_PAIRS = \
>    a-intnam.ads<a-intnam-linux.ads \
>    s-inmaop.adb<s-inmaop-posix.adb \
> --- a/src/libstdc++-v3/configure.host.orig
> +++ b/src/libstdc++-v3/configure.host
> @@ -322,7 +322,7 @@
>          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
> --- a/src/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc.orig
> +++ b/src/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
> @@ -1,5 +1,5 @@
>  // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" }
> -// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
> +// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux-*eabi* } }
>  
>  // 2007-05-03  Benjamin Kosnik  <bkoz@redhat.com>
>  //
> --- a/src/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc.orig
> +++ b/src/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
> @@ -1,5 +1,5 @@
>  // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" }
> -// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
> +// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux-*eabi* } }
>  
>  // 2007-05-03  Benjamin Kosnik  <bkoz@redhat.com>
>  //
> --- a/src/libgcc/config.host
> +++ b/src/libgcc/config.host
> @@ -334,7 +334,7 @@
>  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
>
Matthias Klose - June 25, 2012, 4:21 p.m.
On 25.06.2012 15:22, Richard Earnshaw wrote:
> On 25/06/12 13:08, Matthias Klose wrote:
>> gcc/config.gcc now allows matching arm*-*-linux-*eabi* instead of
>> arm*-*-linux-*eabi for ARM Linux/GNU EABI.  This changes the matching in various
>> other places as well. arm-linux-gnueabihf is used as a triplet by some
>> distributions.
>>
>> Ok for the trunk?
>>
> 
> now that all arm-linux ports are EABI conforming, why can't this just become
> 
> 	arm*-*-linux*
> ?

I assume it could. But I didn't check for other places where this would be needed.
Matthias Klose - June 25, 2012, 9:30 p.m.
On 25.06.2012 18:21, Matthias Klose wrote:
> On 25.06.2012 15:22, Richard Earnshaw wrote:
>> On 25/06/12 13:08, Matthias Klose wrote:
>>> gcc/config.gcc now allows matching arm*-*-linux-*eabi* instead of
>>> arm*-*-linux-*eabi for ARM Linux/GNU EABI.  This changes the matching in various
>>> other places as well. arm-linux-gnueabihf is used as a triplet by some
>>> distributions.
>>>
>>> Ok for the trunk?
>>>
>>
>> now that all arm-linux ports are EABI conforming, why can't this just become
>>
>> 	arm*-*-linux*
>> ?
> 
> I assume it could. But I didn't check for other places where this would be needed.

$ grep -r 'arm[^_]*eabi' . |egrep -v 'ChangeLog|\.svn/'|wc -l
87

this seems to be a larger change, which should have been committed when the old
abi targets were deprecated.  I'd like to get the eabi* change in first.

  Matthias
Richard Earnshaw - June 26, 2012, 9:10 a.m.
On 25/06/12 22:30, Matthias Klose wrote:
> On 25.06.2012 18:21, Matthias Klose wrote:
>> On 25.06.2012 15:22, Richard Earnshaw wrote:
>>> On 25/06/12 13:08, Matthias Klose wrote:
>>>> gcc/config.gcc now allows matching arm*-*-linux-*eabi* instead of
>>>> arm*-*-linux-*eabi for ARM Linux/GNU EABI.  This changes the matching in various
>>>> other places as well. arm-linux-gnueabihf is used as a triplet by some
>>>> distributions.
>>>>
>>>> Ok for the trunk?
>>>>
>>>
>>> now that all arm-linux ports are EABI conforming, why can't this just become
>>>
>>> 	arm*-*-linux*
>>> ?
>>
>> I assume it could. But I didn't check for other places where this would be needed.
> 
> $ grep -r 'arm[^_]*eabi' . |egrep -v 'ChangeLog|\.svn/'|wc -l
> 87
> 
> this seems to be a larger change, which should have been committed when the old
> abi targets were deprecated.  I'd like to get the eabi* change in first.
> 
>   Matthias
> 
> 

Removal of the FPA support is still ongoing, but beware that it doesn't
mean that all supported ARM configurations will be EABI conforming (some
configurations did not use the FPA and are thus not affected by this
change); but all ARM Linux configurations will be.

R.

Patch

--- a/src/libjava/configure.ac.orig
+++ b/src/libjava/configure.ac
@@ -924,7 +924,7 @@ 
     # 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++.
--- a/src/gcc/testsuite/lib/target-supports.exp.orig
+++ b/src/gcc/testsuite/lib/target-supports.exp
@@ -3235,7 +3235,7 @@ 
 	     || [istarget i?86-*-*]
 	     || [istarget x86_64-*-*]
 	     || [istarget alpha*-*-*] 
-	     || [istarget arm*-*-linux-gnueabi] 
+	     || [istarget arm*-*-linux-*eabi*] 
 	     || [istarget bfin*-*linux*]
 	     || [istarget hppa*-*linux*]
 	     || [istarget s390*-*-*] 
@@ -3266,7 +3266,7 @@ 
 	     || [istarget i?86-*-*]
 	     || [istarget x86_64-*-*]
 	     || [istarget alpha*-*-*] 
-	     || [istarget arm*-*-linux-gnueabi] 
+	     || [istarget arm*-*-linux-*eabi*] 
 	     || [istarget hppa*-*linux*]
 	     || [istarget s390*-*-*] 
 	     || [istarget powerpc*-*-*]
--- a/src/gcc/ada/gcc-interface/Makefile.in.orig
+++ b/src/gcc/ada/gcc-interface/Makefile.in
@@ -1846,7 +1846,7 @@ 
   LIBRARY_VERSION := $(LIB_VERSION)
 endif
 
-ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),)
+ifeq ($(strip $(filter-out arm%-linux,$(arch)-$(osys)) $(if $(findstring eabi,$(word 4,$(targ))),,$(word 4,$(targ)))),)
   LIBGNAT_TARGET_PAIRS = \
   a-intnam.ads<a-intnam-linux.ads \
   s-inmaop.adb<s-inmaop-posix.adb \
--- a/src/libstdc++-v3/configure.host.orig
+++ b/src/libstdc++-v3/configure.host
@@ -322,7 +322,7 @@ 
         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
--- a/src/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc.orig
+++ b/src/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
@@ -1,5 +1,5 @@ 
 // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" }
-// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
+// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux-*eabi* } }
 
 // 2007-05-03  Benjamin Kosnik  <bkoz@redhat.com>
 //
--- a/src/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc.orig
+++ b/src/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
@@ -1,5 +1,5 @@ 
 // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" }
-// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
+// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux-*eabi* } }
 
 // 2007-05-03  Benjamin Kosnik  <bkoz@redhat.com>
 //
--- a/src/libgcc/config.host
+++ b/src/libgcc/config.host
@@ -334,7 +334,7 @@ 
 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