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

Matthias Klose <[email protected]>
Newsgroups gmane.comp.gcc.libstdc++.devel,gmane.comp.gcc.patches,gmane.comp.gcc.java.patches
Message-ID <[email protected]>
On 26.06.2012 11:10, Richard Earnshaw wrote:
> 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.

Updated patch to just match arm*-*-linux*, searched for additional files with
grep -r 'arm[^_]*linux[^_]*eabi' . |egrep -v 'ChangeLog|\.svn/'

  Matthias
arm-linux-triplet.diff (text/plain, 11.4 KB)
2012-10-15  Matthias Klose  <[email protected]>

gcc/

	* config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
	* doc/install.texi:

gcc/testsuite/
2012-10-15  Matthias Klose  <[email protected]>

	* lib/target-supports.exp (check_profiling_available): Match
	arm*-*-linux-* for ARM Linux/GNU.
	* g++.dg/torture/predcom-1.C: Match arm*-*-linux-* for ARM Linux/GNU.
	* gfortran.dg/enum_10.f90: Likewise.
	* gfortran.dg/enum_9.f90: Likewise.
	* gcc.target/arm/synchronize.c: Likewise.
	* g++.old-deja/g++.jason/enum6.C: Likewise.
	* g++.old-deja/g++.other/enum4.C: Likewise.
	* g++.old-deja/g++.law/enum9.C: Likewise.

gcc/ada/
2012-10-15  Matthias Klose  <[email protected]>

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

libgcc/
2012-10-15  Matthias Klose  <[email protected]>

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

libstdc++-v3/
2012-10-15  Matthias Klose  <[email protected]>

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

libjava/
2012-10-15  Matthias Klose  <[email protected]>

	* configure.ac: Match arm*-*-linux-* for ARM Linux/GNU.
	* configure: Regenerate.

Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(revision 192459)
+++ libgcc/config.host	(working copy)
@@ -316,7 +316,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-*)
 	  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
Index: libjava/configure.ac
===================================================================
--- libjava/configure.ac	(revision 192459)
+++ libjava/configure.ac	(working copy)
@@ -931,7 +931,7 @@
     # on Darwin -single_module speeds up loading of the dynamic libraries.
     extra_ldflags_libjava=-Wl,-single_module
     ;;
-arm*linux*eabi)
+arm*-*-linux-*)
     # 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++.
Index: gcc/testsuite/gfortran.dg/enum_10.f90
===================================================================
--- gcc/testsuite/gfortran.dg/enum_10.f90	(revision 192459)
+++ gcc/testsuite/gfortran.dg/enum_10.f90	(working copy)
@@ -1,7 +1,7 @@
 ! { dg-do run }
 ! { dg-additional-sources enum_10.c }
 ! { dg-options "-fshort-enums -w" }
-! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
+! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux* } }
 ! Make sure short enums are indeed interoperable with the
 ! corresponding C type.
 
Index: gcc/testsuite/gfortran.dg/enum_9.f90
===================================================================
--- gcc/testsuite/gfortran.dg/enum_9.f90	(revision 192459)
+++ gcc/testsuite/gfortran.dg/enum_9.f90	(working copy)
@@ -1,6 +1,6 @@
 ! { dg-do run }
 ! { dg-options "-fshort-enums" }
-! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
+! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux* } }
 ! Program to test enumerations when option -fshort-enums is given
 
 program main
Index: gcc/testsuite/gcc.target/arm/synchronize.c
===================================================================
--- gcc/testsuite/gcc.target/arm/synchronize.c	(revision 192459)
+++ gcc/testsuite/gcc.target/arm/synchronize.c	(working copy)
@@ -1,4 +1,4 @@
-/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-*eabi } } } */
+/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-* } } } */
 
 void *foo (void)
 {
Index: gcc/testsuite/g++.old-deja/g++.law/enum9.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.law/enum9.C	(revision 192459)
+++ gcc/testsuite/g++.old-deja/g++.law/enum9.C	(working copy)
@@ -7,10 +7,10 @@
 // enum-size attributes should only be emitted if there are values of
 // enum type that can escape the compilation unit, gcc cannot currently
 // detect this; if this facility is added then this linker option should
-// not be needed.  arm-*-linux*eabi should be a good approximation to
+// not be needed.  arm-*-linux* should be a good approximation to
 // those platforms where the EABI supplement defines enum values to be
 // 32 bits wide.
-// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
+// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux* } }
 
 // GROUPS passed enums
   extern "C" int printf (const char *, ...);
Index: gcc/testsuite/g++.old-deja/g++.jason/enum6.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.jason/enum6.C	(revision 192459)
+++ gcc/testsuite/g++.old-deja/g++.jason/enum6.C	(working copy)
@@ -7,10 +7,10 @@
 // enum-size attributes should only be emitted if there are values of
 // enum type that can escape the compilation unit, gcc cannot currently
 // detect this; if this facility is added then this linker option should
-// not be needed.  arm-*-linux*eabi should be a good approximation to
+// not be needed.  arm-*-linux* should be a good approximation to
 // those platforms where the EABI supplement defines enum values to be
 // 32 bits wide.
-// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
+// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux* } }
 
 #include <limits.h>
 
Index: gcc/testsuite/g++.old-deja/g++.other/enum4.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.other/enum4.C	(revision 192459)
+++ gcc/testsuite/g++.old-deja/g++.other/enum4.C	(working copy)
@@ -9,10 +9,10 @@
 // enum-size attributes should only be emitted if there are values of
 // enum type that can escape the compilation unit, gcc cannot currently
 // detect this; if this facility is added then this linker option should
-// not be needed.  arm-*-linux*eabi should be a good approximation to
+// not be needed.  arm-*-linux* should be a good approximation to
 // those platforms where the EABI supplement defines enum values to be
 // 32 bits wide.
-// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } }
+// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux* } }
 
 enum E { 
   a = -312
Index: gcc/testsuite/g++.dg/torture/predcom-1.C
===================================================================
--- gcc/testsuite/g++.dg/torture/predcom-1.C	(revision 192459)
+++ gcc/testsuite/g++.dg/torture/predcom-1.C	(working copy)
@@ -1,5 +1,5 @@
 /* Test for ICE in predictive commoning with empty loop header block
-   on arm-none-linux-gnueabi.  */
+   on arm-none-linux-*.  */
 
 struct Foo
 {
Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- gcc/testsuite/lib/target-supports.exp	(revision 192459)
+++ gcc/testsuite/lib/target-supports.exp	(working copy)
@@ -3924,7 +3924,7 @@
 		}
 	    } ""
 	}]
-    } elseif { [istarget arm*-*-linux-gnueabi] } {
+    } elseif { [istarget arm*-*-linux-*] } {
 	return [check_runtime sync_longlong_runtime {
 	    #include <stdlib.h>
 	    int main ()
@@ -3968,7 +3968,7 @@
 	     || [istarget i?86-*-*]
 	     || [istarget x86_64-*-*]
 	     || [istarget alpha*-*-*] 
-	     || [istarget arm*-*-linux-gnueabi] 
+	     || [istarget arm*-*-linux-*] 
 	     || [istarget bfin*-*linux*]
 	     || [istarget hppa*-*linux*]
 	     || [istarget s390*-*-*] 
@@ -3999,7 +3999,7 @@
 	     || [istarget i?86-*-*]
 	     || [istarget x86_64-*-*]
 	     || [istarget alpha*-*-*] 
-	     || [istarget arm*-*-linux-gnueabi] 
+	     || [istarget arm*-*-linux-*] 
 	     || [istarget hppa*-*linux*]
 	     || [istarget s390*-*-*] 
 	     || [istarget powerpc*-*-*]
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi	(revision 192459)
+++ gcc/doc/install.texi	(working copy)
@@ -3151,7 +3151,7 @@
 @heading @anchor{arm-x-eabi}arm-*-eabi
 ARM-family processors.  Subtargets that use the ELF object format
 require GNU binutils 2.13 or newer.  Such subtargets include:
-@code{arm-*-netbsdelf}, @code{arm-*-*linux-gnueabi}
+@code{arm-*-netbsdelf}, @code{arm-*-*linux-*}
 and @code{arm-*-rtemseabi}.
 
 @html
Index: gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc/ada/gcc-interface/Makefile.in	(revision 192459)
+++ gcc/ada/gcc-interface/Makefile.in	(working copy)
@@ -1850,7 +1850,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 \
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 192459)
+++ gcc/config.gcc	(working copy)
@@ -829,7 +829,7 @@
 	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
 	tmake_file="${tmake_file} arm/t-arm"
 	;;
-arm*-*-linux-*eabi*)			# ARM GNU/Linux with ELF
+arm*-*-linux-*)			# ARM GNU/Linux with ELF
 	tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
 	case $target in
 	arm*b-*-linux*)
Index: libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
===================================================================
--- libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc	(revision 192459)
+++ libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc	(working copy)
@@ -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-* } }
 
 // 2007-05-03  Benjamin Kosnik  <[email protected]>
 //
Index: libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
===================================================================
--- libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc	(revision 192459)
+++ libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc	(working copy)
@@ -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-* } }
 
 // 2007-05-03  Benjamin Kosnik  <[email protected]>
 //
Index: libstdc++-v3/configure.host
===================================================================
--- libstdc++-v3/configure.host	(revision 192459)
+++ libstdc++-v3/configure.host	(working copy)
@@ -348,7 +348,7 @@
         fi
     esac
     case "${host}" in
-      arm*-*-linux-*eabi)
+      arm*-*-linux-*)
 	port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"
 	;;
     esac
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.