From bd4525f44b73dc92588263f1dd9686731c286213 Mon Sep 17 00:00:00 2001
From: wbx <wbx@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Wed, 4 Jan 2006 08:37:19 +0000
Subject: patch for spec file of gcc 3.4.4, so that libgss library is not
 automatically linked into every binary. explicitely link it into needed
 packages (kismet, nmap, samba) and add dependencies. idea and patch from
 sven-ola, thx. Saves 16 kb in the default squashfs images.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@2817 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 openwrt/toolchain/gcc/Makefile | 10 ++++++++++
 1 file changed, 10 insertions(+)

(limited to 'openwrt/toolchain/gcc')

diff --git a/openwrt/toolchain/gcc/Makefile b/openwrt/toolchain/gcc/Makefile
index dc7e02c7a..f6f4acaab 100644
--- a/openwrt/toolchain/gcc/Makefile
+++ b/openwrt/toolchain/gcc/Makefile
@@ -188,6 +188,16 @@ ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.)
 	cp ./$(GCC_VERSION)/specs-$(ARCH)-soft-float $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs
 endif
 endif
+# We do another ugly hack here because the standard behaviour is
+# 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 ; \
+	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 ; \
+	fi;
 
 source: $(DL_DIR)/$(GCC_SOURCE)
 prepare: $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc
-- 
cgit v1.2.3