--- a/src/gcc/config/arm/linux-elf.h	2011-10-05 02:39:23.000000000 +0000
+++ b/src/gcc/config/arm/linux-elf.h	2011-10-05 02:49:12.000000000 +0000
@@ -63,13 +63,20 @@
 #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
 
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define SPEC_EL "!mhard-float"
+#define SPEC_HF "mhard-float"
+#define GLIBC_DYNAMIC_LINKEREL "/lib/arm-linux-gnueabi/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_LINKEREL "} \
+   %{mfloat-abi=soft*:-dynamic-linker " GLIBC_DYNAMIC_LINKEREL "} \
+   %{mhard-float:-dynamic-linker " GLIBC_DYNAMIC_LINKERHF "} \
+   %{mfloat-abi=hard:-dynamic-linker " GLIBC_DYNAMIC_LINKERHF "} \
    -X \
    --hash-style=gnu \
    %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
