summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-03-05 00:51:01 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-03-05 00:51:01 +0000
commit88093cf36c375d29a3447b7286ecf88dac407239 (patch)
tree3d261a215e2858639091a3026884f806dd4c1747
parent7485bf2113972b43a86011f12ef120b65c08b044 (diff)
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
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30814 3c298f89-4303-0410-b956-a3cf2f4a3e73
-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