revert ARM to oabi by default, add some eabi patches for fixing up the toolchain...
[openwrt/openwrt.git] / toolchain / gcc / patches / 4.2.3 / 930-eabi_fixes.patch
diff --git a/toolchain/gcc/patches/4.2.3/930-eabi_fixes.patch b/toolchain/gcc/patches/4.2.3/930-eabi_fixes.patch
new file mode 100644 (file)
index 0000000..52b5689
--- /dev/null
@@ -0,0 +1,36 @@
+Index: gcc-4.2.0/gcc/config.gcc
+===================================================================
+--- gcc-4.2.0.orig/gcc/config.gcc      2008-02-13 00:19:06.507477329 +0100
++++ gcc-4.2.0/gcc/config.gcc   2008-02-13 00:19:42.239640606 +0100
+@@ -701,7 +701,7 @@
+       extra_parts=""
+       use_collect2=yes
+       ;;
+-arm*-*-linux*)                        # ARM GNU/Linux with ELF
++arm*-linux*)                  # ARM GNU/Linux with ELF
+       tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
+       tmake_file="${tmake_file} t-linux arm/t-arm"
+       case ${target} in
+@@ -710,7 +710,7 @@
+               ;;
+       esac
+       case ${target} in
+-      arm*-*-linux-*eabi)
++      arm*-linux-*eabi)
+           tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
+           tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
+           # The BPABI long long divmod functions return a 128-bit value in
+Index: gcc-4.2.0/gcc/config/arm/linux-eabi.h
+===================================================================
+--- gcc-4.2.0.orig/gcc/config/arm/linux-eabi.h 2008-02-13 00:18:31.343062422 +0100
++++ gcc-4.2.0/gcc/config/arm/linux-eabi.h      2008-02-13 00:19:11.825120518 +0100
+@@ -48,7 +48,8 @@
+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
+ #undef SUBTARGET_EXTRA_LINK_SPEC
+-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
++#define SUBTARGET_EXTRA_LINK_SPEC \
++      " %{mbig-endian:-m armelfb_linux_eabi} %{mlittle-endian:-m armelf_linux_eabi} "
+ /* Use ld-linux.so.3 so that it will be possible to run "classic"
+    GNU/Linux binaries on an EABI system.  */