aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-03-05 00:51:01 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-03-05 00:51:01 +0000
commitd8c570a1531035c3e26bcd94741e5f5b9c36b5d9 (patch)
tree25374a136ec66edad39b9af7579de2bb03929888 /toolchain/gcc
parente308da91e77087e943e0d48a83534cbc68bc03de (diff)
downloadupstream-d8c570a1531035c3e26bcd94741e5f5b9c36b5d9.tar.gz
upstream-d8c570a1531035c3e26bcd94741e5f5b9c36b5d9.tar.bz2
upstream-d8c570a1531035c3e26bcd94741e5f5b9c36b5d9.zip
gcc: do not emit references to _savegpr_* and _restgpr_* on powerpc, as they are tricky to deal with wrt. libgcc. they cannot be linked dynamically
SVN-Revision: 30814
Diffstat (limited to 'toolchain/gcc')
-rw-r--r--toolchain/gcc/patches/4.6-linaro/870-ppc_no_crtsavres.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/4.6-linaro/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches/4.6-linaro/870-ppc_no_crtsavres.patch
new file mode 100644
index 0000000000..8747743486
--- /dev/null
+++ b/toolchain/gcc/patches/4.6-linaro/870-ppc_no_crtsavres.patch
@@ -0,0 +1,20 @@
+--- a/gcc/config/rs6000/sysv4.h
++++ b/gcc/config/rs6000/sysv4.h
+@@ -248,13 +248,13 @@
+
+ /* Define cutoff for using external functions to save floating point.
+ When optimizing for size, use external functions when profitable. */
+-#define FP_SAVE_INLINE(FIRST_REG) (optimize_size \
++#define FP_SAVE_INLINE(FIRST_REG) (1 || (optimize_size \
+ ? ((FIRST_REG) == 62 \
+ || (FIRST_REG) == 63) \
+- : (FIRST_REG) < 64)
++ : (FIRST_REG) < 64))
+ /* And similarly for general purpose registers. */
+-#define GP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 32 \
+- && !optimize_size)
++#define GP_SAVE_INLINE(FIRST_REG) (1 || ((FIRST_REG) < 32 \
++ && !optimize_size))
+
+ /* Put jump tables in read-only memory, rather than in .text. */
+ #define JUMP_TABLES_IN_TEXT_SECTION 0