diff options
author | Florian Fainelli <florian@openwrt.org> | 2013-04-05 12:36:06 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2013-04-05 12:36:06 +0000 |
commit | 72fa8af64d66335e3905c6398cf7e2ecd631b6e6 (patch) | |
tree | a3914c590715c66aa35e0bc342db534af8bc1685 /toolchain/gcc | |
parent | 175a119a6aca8d9d1c35e0c23472ad6bc9e96878 (diff) | |
download | upstream-72fa8af64d66335e3905c6398cf7e2ecd631b6e6.tar.gz upstream-72fa8af64d66335e3905c6398cf7e2ecd631b6e6.tar.bz2 upstream-72fa8af64d66335e3905c6398cf7e2ecd631b6e6.zip |
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
Diffstat (limited to 'toolchain/gcc')
-rw-r--r-- | toolchain/gcc/patches/4.6-linaro/900-bad-mips16-crt | 9 |
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 0000000000..5bb2ffb488 --- /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 |