summaryrefslogtreecommitdiffstats
path: root/toolchain/gcc
diff options
context:
space:
mode:
authorwbx <wbx@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-01-04 08:37:19 +0000
committerwbx <wbx@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-01-04 08:37:19 +0000
commit93a1cc78a58b1d0c95b81343e5e72910201352dd (patch)
tree2005252ef3db9de34d1b0b10656fae07bf82d55e /toolchain/gcc
parent25bfff5314a2f5ec3a5d216d6a26f4d01758328d (diff)
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/openwrt@2817 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'toolchain/gcc')
-rw-r--r--toolchain/gcc/Makefile10
1 files changed, 10 insertions, 0 deletions
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index dc7e02c7a..f6f4acaab 100644
--- a/toolchain/gcc/Makefile
+++ b/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