From f15ac81113b64c85ad17a58d1d6fa5e771daa0b5 Mon Sep 17 00:00:00 2001
From: kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sat, 28 Jan 2006 15:34:33 +0000
Subject: fix libgcc handling for gcc 3.4.5 and 4.0.2

git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@3063 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 toolchain/gcc/3.4.5/static-libgcc.patch.conditional | 11 +++++++++++
 toolchain/gcc/4.0.2/static-libgcc.patch.conditional | 11 +++++++++++
 toolchain/gcc/Makefile                              |  4 ++--
 3 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 toolchain/gcc/3.4.5/static-libgcc.patch.conditional
 create mode 100644 toolchain/gcc/4.0.2/static-libgcc.patch.conditional

(limited to 'toolchain')

diff --git a/toolchain/gcc/3.4.5/static-libgcc.patch.conditional b/toolchain/gcc/3.4.5/static-libgcc.patch.conditional
new file mode 100644
index 000000000..c8c1d849c
--- /dev/null
+++ b/toolchain/gcc/3.4.5/static-libgcc.patch.conditional
@@ -0,0 +1,11 @@
+--- specs~	2005-11-21 17:22:08.000000000 +0100
++++ specs	2005-11-21 17:22:08.000000000 +0100
+@@ -51,7 +51,7 @@
+ %{shared: -lc} %{!static:-rpath-link %R/lib:%R/usr/lib} %{!shared: %{pthread:-lpthread}   %{profile:-lc_p} %{!profile: -lc}}
+ 
+ *libgcc:
+-%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --as-needed -lgcc_s%M --no-as-needed}%{shared-libgcc:-lgcc_s%M%{!shared: -lgcc}}}}
++%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared:%{!shared-libgcc:-lgcc -lgcc_eh}%{shared-libgcc:-lgcc_s%M -lgcc}}%{shared:%{shared-libgcc:-lgcc_s%M}%{!shared-libgcc:-lgcc}}}}
+ 
+ *startfile:
+ %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}
diff --git a/toolchain/gcc/4.0.2/static-libgcc.patch.conditional b/toolchain/gcc/4.0.2/static-libgcc.patch.conditional
new file mode 100644
index 000000000..6bb5c5004
--- /dev/null
+++ b/toolchain/gcc/4.0.2/static-libgcc.patch.conditional
@@ -0,0 +1,11 @@
+--- specs~		2006-01-27 11:44:50.000000000 +0100
++++ specs		2006-01-27 12:00:41.000000000 +0100
+@@ -57,7 +57,7 @@
+ %{fmudflap|fmudflapth: -export-dynamic}
+ 
+ *libgcc:
+-%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --as-needed -lgcc_s --no-as-needed}%{shared-libgcc:-lgcc_s%{!shared: -lgcc}}}}
++%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared:%{!shared-libgcc:-lgcc -lgcc_eh}%{shared-libgcc:-lgcc_s -lgcc}}%{shared:%{shared-libgcc:-lgcc_s%{!shared-libgcc: -lgcc}}}}}
+ 
+ *startfile:
+ %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 57debe12b..642662e8f 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -194,8 +194,8 @@ endif
 # to include a reference to libgcc.so.1 in all binaries. For flash space
 # saving, we change the specs file to link in a static libgcc here. 
 	if [ ! -f $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \
-		echo staging dir specs file is missing ; \
-		/bin/false ; \
+		echo staging dir specs file is missing, assuming GCC 4.x ; \
+		$(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc -dumpspecs > $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs; \
 	fi;
 	if grep -q as-needed $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs; then \
 		patch -d $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/ -p0 < ./$(GCC_VERSION)/static-libgcc.patch.conditional ; \
-- 
cgit v1.2.3