summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-05 12:36:06 +0000
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-05 12:36:06 +0000
commitd6821f8ca8c7e161dc91fa99d80e51e9fad00543 (patch)
treea3914c590715c66aa35e0bc342db534af8bc1685
parent844db21b95e8ae95ef4244ff8de2d4cd85450598 (diff)
toolchain/gcc: .init and .fini need to pick one ISA
The .init and .fini sections are built by concatenating code fragments. Putting mips16 code in the middle of a mips32 code block doesn't work. Make gcc built the magic crt stuff in no-mips16 mode. This is specific to 4.6-linaro but is probably portable to other gcc flavors. Adding this to the t-libgcc-mips16 makefile fragment is a hack not suitable for pushing upstream, but there is no mips/t-linux or mips/t-uclibc and I am not going to touch gcc/configure for two lines. Signed-off-by: Jay Carlson <nop@nop.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36200 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--toolchain/gcc/patches/4.6-linaro/900-bad-mips16-crt9
1 files changed, 9 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/4.6-linaro/900-bad-mips16-crt b/toolchain/gcc/patches/4.6-linaro/900-bad-mips16-crt
new file mode 100644
index 000000000..5bb2ffb48
--- /dev/null
+++ b/toolchain/gcc/patches/4.6-linaro/900-bad-mips16-crt
@@ -0,0 +1,9 @@
+--- gcc/gcc/config/mips/t-libgcc-mips16~ 2013-03-26 09:09:34.209077496 -0400
++++ gcc/gcc/config/mips/t-libgcc-mips16 2013-03-26 18:21:01.717303669 -0400
+@@ -43,3 +43,6 @@
+
+ # Version these symbols if building libgcc.so.
+ SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver
++
++CRTSTUFF_T_CFLAGS += -mno-mips16
++CRTSTUFF_T_CFLAGS_S += -mno-mips16