From d8c570a1531035c3e26bcd94741e5f5b9c36b5d9 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 5 Mar 2012 00:51:01 +0000
Subject: [PATCH] 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
---
 .../4.6-linaro/870-ppc_no_crtsavres.patch     | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 toolchain/gcc/patches/4.6-linaro/870-ppc_no_crtsavres.patch

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
-- 
GitLab