+http://gcc.gnu.org/ml/gcc/2011-02/msg00390.html
+
+Triplet for ARM Linux HardFP ABI, again
+
+ * From: Guillem Jover <guillem at debian dot org>
+ * To: gcc at gcc dot gnu dot org
+ * Date: Mon, 21 Feb 2011 11:12:09 +0100
+ * Subject: Triplet for ARM Linux HardFP ABI, again
+
+
+diff --git a/configure b/configure
+index 501c6ff..43ff04f 100755
+--- a/configure
++++ b/configure
+diff --git a/configure b/configure
+index 501c6ff..43ff04f 100755
+--- a/configure
++++ b/configure
+@@ -3236,7 +3236,7 @@ case "${target}" in
+ noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+ libgloss_dir=arm
+ ;;
+- arm*-*-linux-gnueabi)
++ arm*-*-linux-*eabi*)
+ noconfigdirs="$noconfigdirs target-qthreads"
+ case ${with_newlib} in
+ no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+diff --git a/configure.ac b/configure.ac
+index 9121d65..e1a42e0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -682,7 +682,7 @@ case "${target}" in
+ noconfigdirs="$noconfigdirs target-libffi target-qthreads"
+ libgloss_dir=arm
+ ;;
+- arm*-*-linux-gnueabi)
++ arm*-*-linux-*eabi*)
+ noconfigdirs="$noconfigdirs target-qthreads"
+ case ${with_newlib} in
+ no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
+index b64ba55..cbe6b70 100644
+--- a/gcc/ada/gcc-interface/Makefile.in
++++ b/gcc/ada/gcc-interface/Makefile.in
+@@ -1841,7 +1841,7 @@ ifeq ($(strip $(filter-out powerpc% 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%,$(arch) $(osys))),)
+ 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 54b822e..1a47343 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -820,13 +820,13 @@ arm*-*-linux*) # ARM GNU/Linux with ELF
+ esac
+ tmake_file="${tmake_file} t-linux arm/t-arm"
+ case ${target} in
+- arm*-*-linux-*eabi)
++ arm*-*-linux-*eabi*)
+ tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
+ tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h"
+ tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
+ # Define multilib configuration for arm-linux-androideabi.
+ case ${target} in
+- *-androideabi)
++ *-androideabi*)
+ tmake_file="$tmake_file arm/t-linux-androideabi"
+ ;;
+ esac
+@@ -848,7 +848,7 @@ arm*-*-uclinux*) # ARM ucLinux
+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
+ tmake_file="arm/t-arm arm/t-arm-elf"
+ case ${target} in
+- arm*-*-uclinux*eabi)
++ arm*-*-uclinux*eabi*)
+ tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
+ tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h"
+ tmake_file="$tmake_file arm/t-bpabi"
+diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
+index 02cb7ac..885c0e0 100644
+--- a/gcc/testsuite/lib/target-supports.exp
++++ b/gcc/testsuite/lib/target-supports.exp
+@@ -3219,7 +3219,7 @@ proc check_effective_target_sync_int_long { } {
+ || [istarget i?86-*-*]
+ || [istarget x86_64-*-*]
+ || [istarget alpha*-*-*]
+- || [istarget arm*-*-linux-gnueabi]
++ || [istarget arm*-*-linux-*eabi*]
+ || [istarget bfin*-*linux*]
+ || [istarget hppa*-*linux*]
+ || [istarget s390*-*-*]
+@@ -3250,7 +3250,7 @@ proc check_effective_target_sync_char_short { } {
+ || [istarget i?86-*-*]
+ || [istarget x86_64-*-*]
+ || [istarget alpha*-*-*]
+- || [istarget arm*-*-linux-gnueabi]
++ || [istarget arm*-*-linux-*eabi*]
+ || [istarget hppa*-*linux*]
+ || [istarget s390*-*-*]
+ || [istarget powerpc*-*-*]
+diff --git a/libjava/configure b/libjava/configure
+index f79e53b..47e3f23 100755
+--- a/libjava/configure
++++ b/libjava/configure
+@@ -20527,7 +20527,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 8187eec..b59abb3 100644
+--- a/libjava/configure.ac
++++ b/libjava/configure.ac
+@@ -919,7 +919,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 e29404c..a2e58a9 100644
+--- a/libstdc++-v3/configure.host
++++ b/libstdc++-v3/configure.host
+@@ -322,7 +322,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
+diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
+index cb40b7b..6147d66 100644
+--- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
++++ b/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>
+ //
+diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
+index d71c012..1086a18 100644
+--- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
++++ b/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>
+ //
+