From f8d8aadb42c58849e16db16c43aecaa039e93354 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Sat, 4 May 2013 13:37:37 +0000
Subject: [PATCH] toolchain/gcc: forward port missing patches to gcc 4.8.0

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36544
---
 .../gcc/patches/4.8.0/820-libgcc_pic.patch    | 36 +++++++++++++++++++
 .../patches/4.8.0/870-ppc_no_crtsavres.patch  | 11 ++++++
 2 files changed, 47 insertions(+)
 create mode 100644 toolchain/gcc/patches/4.8.0/820-libgcc_pic.patch
 create mode 100644 toolchain/gcc/patches/4.8.0/870-ppc_no_crtsavres.patch

diff --git a/toolchain/gcc/patches/4.8.0/820-libgcc_pic.patch b/toolchain/gcc/patches/4.8.0/820-libgcc_pic.patch
new file mode 100644
index 0000000000..7a0ac7353e
--- /dev/null
+++ b/toolchain/gcc/patches/4.8.0/820-libgcc_pic.patch
@@ -0,0 +1,36 @@
+--- a/libgcc/Makefile.in
++++ b/libgcc/Makefile.in
+@@ -865,11 +865,12 @@ $(libgcov-objects): %$(objext): $(srcdir
+ 
+ # Static libraries.
+ libgcc.a: $(libgcc-objects)
++libgcc_pic.a: $(libgcc-s-objects)
+ libgcov.a: $(libgcov-objects)
+ libunwind.a: $(libunwind-objects)
+ libgcc_eh.a: $(libgcc-eh-objects)
+ 
+-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
++libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
+ 	-rm -f $@
+ 
+ 	objects="$(objects)";					\
+@@ -891,7 +892,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
+ endif
+ 
+ ifeq ($(enable_shared),yes)
+-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
++all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
+ ifneq ($(LIBUNWIND),)
+ all: libunwind$(SHLIB_EXT)
+ endif
+@@ -1058,6 +1059,10 @@ install-shared:
+ 	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ 	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ 
++	$(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
++	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
++	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
++
+ 	$(subst @multilib_dir@,$(MULTIDIR),$(subst \
+ 		@shlib_base_name@,libgcc_s,$(subst \
+ 		@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
diff --git a/toolchain/gcc/patches/4.8.0/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches/4.8.0/870-ppc_no_crtsavres.patch
new file mode 100644
index 0000000000..d8c460a92d
--- /dev/null
+++ b/toolchain/gcc/patches/4.8.0/870-ppc_no_crtsavres.patch
@@ -0,0 +1,11 @@
+--- a/gcc/config/rs6000/rs6000.c
++++ b/gcc/config/rs6000/rs6000.c
+@@ -17653,7 +17653,7 @@ rs6000_savres_strategy (rs6000_stack_t *
+   /* Define cutoff for using out-of-line functions to save registers.  */
+   if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
+     {
+-      if (!optimize_size)
++      if (1)
+ 	{
+ 	  strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
+ 	  strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;
-- 
GitLab