--- a/src/gcc/config.gcc	2011-10-11 14:09:49.000000000 +0100
+++ b/src/gcc/config.gcc	2011-10-21 16:57:49.001155009 +0100
@@ -823,6 +823,9 @@
 	    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
+	    *-gnueabihf)
+		tm_file="$tm_file arm/linux-eabihf.h"
+		;;
 	    *-androideabi)
 		tmake_file="$tmake_file arm/t-linux-androideabi"
 		;;
--- a/src/gcc/config/arm/linux-eabihf.h	1970-01-01 01:00:00.000000000 +0100
+++ b/src/gcc/config/arm/linux-eabihf.h	2011-10-21 16:59:51.271435163 +0100
@@ -0,0 +1,23 @@
+/* Configuration file for ARM GNU/Linux EABI targets.
+   Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2011
+   Free Software Foundation, Inc.
+   Contributed by Linaro.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 3, or (at your
+   option) any later version.
+
+   GCC is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
+
+#undef  GLIBC_DYNAMIC_LINKER
+#define GLIBC_DYNAMIC_LINKER "/lib/arm-linux-gnueabihf/ld-linux.so.3"
--- a/src/gcc/config/arm/linux-elf.h	2011-10-11 14:09:49.000000000 +0100
+++ b/src/gcc/config/arm/linux-elf.h	2011-10-21 17:02:25.401788062 +0100
@@ -64,12 +64,20 @@
 
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
+#define SPEC_EL "!mhard-float"
+#define SPEC_HF "mhard-float"
+#define GLIBC_DYNAMIC_LINKERSF "/lib/ld-linux.so.3"
+#define GLIBC_DYNAMIC_LINKERHF "/lib/arm-linux-gnueabihf/ld-linux.so.3"
+
 #define LINUX_TARGET_LINK_SPEC  "%{h*} \
    %{static:-Bstatic} \
    %{shared:-shared} \
    %{symbolic:-Bsymbolic} \
    %{rdynamic:-export-dynamic} \
-   -dynamic-linker " LINUX_DYNAMIC_LINKER " \
+   %{msoft-float:-dynamic-linker " GLIBC_DYNAMIC_LINKERSF "} \
+   %{mfloat-abi=soft*:-dynamic-linker " GLIBC_DYNAMIC_LINKERSF "} \
+   %{mhard-float:-dynamic-linker " GLIBC_DYNAMIC_LINKERHF "} \
+   %{mfloat-abi=hard:-dynamic-linker " GLIBC_DYNAMIC_LINKERHF "} \
    -X \
    %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
    SUBTARGET_EXTRA_LINK_SPEC
