diff options
| author | wbx <wbx@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-01-04 08:37:19 +0000 | 
|---|---|---|
| committer | wbx <wbx@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-01-04 08:37:19 +0000 | 
| commit | 93a1cc78a58b1d0c95b81343e5e72910201352dd (patch) | |
| tree | 2005252ef3db9de34d1b0b10656fae07bf82d55e | |
| parent | 25bfff5314a2f5ec3a5d216d6a26f4d01758328d (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
| -rw-r--r-- | package/Config.in | 1 | ||||
| -rw-r--r-- | package/base-files/Makefile | 12 | ||||
| -rw-r--r-- | package/base-files/ipkg/uclibc.control | 2 | ||||
| -rw-r--r-- | package/kismet/Makefile | 4 | ||||
| -rw-r--r-- | package/kismet/ipkg/kismet.control | 2 | ||||
| -rw-r--r-- | package/nmap/Makefile | 2 | ||||
| -rw-r--r-- | package/nmap/ipkg/nmap.control | 2 | ||||
| -rw-r--r-- | package/samba/Makefile | 2 | ||||
| -rw-r--r-- | package/samba/ipkg/samba.control | 2 | ||||
| -rw-r--r-- | toolchain/gcc/Makefile | 10 | 
10 files changed, 29 insertions, 10 deletions
| diff --git a/package/Config.in b/package/Config.in index 53b10b630..47bddeb28 100644 --- a/package/Config.in +++ b/package/Config.in @@ -183,6 +183,7 @@ source "package/libevent/Config.in"  source "package/expat/Config.in" # libexpat  source "package/flac/Config.in"  # libflac  source "package/freetype/Config.in"  # libfreetype +source "package/base-files/Config.in" # libgcc  source "package/libgcrypt/Config.in"  source "package/libgd/Config.in"  source "package/libgdbm/Config.in" diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 8b74ee0d9..7601de2ad 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -29,7 +29,15 @@ LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version}  IDIR_LIBGCC:=$(PKG_BUILD_DIR)/libgcc  IPKG_LIBGCC:=$(PACKAGE_DIR)/libgcc_$(LIBGCC_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk -PACKAGES:=$(IPKG_BASE) $(IPKG_UCLIBC) $(IPKG_LIBGCC) +PACKAGES:=$(IPKG_BASE) $(IPKG_UCLIBC)  +PACKAGES_INSTALL:=$(IPKG_BASE) $(IPKG_UCLIBC)  + +ifeq ($(BR2_PACKAGE_LIBGCC),y) +PACKAGES_INSTALL+=$(IPKG_LIBGCC) +endif +ifeq ($(BR2_PACKAGE_LIBGCC),m) +PACKAGES+=$(IPKG_LIBGCC) +endif  $(PKG_BUILD_DIR)/.prepared:  	mkdir -p $(PKG_BUILD_DIR) $(PACKAGE_DIR) @@ -88,4 +96,4 @@ prepare:  compile-targets: $(PACKAGES)  install-targets: compile  	mkdir -p $(TARGET_DIR) -	$(IPKG) install $(PACKAGES) +	$(IPKG) install $(PACKAGES_INSTALL) diff --git a/package/base-files/ipkg/uclibc.control b/package/base-files/ipkg/uclibc.control index d07ed9068..1cdfe157c 100644 --- a/package/base-files/ipkg/uclibc.control +++ b/package/base-files/ipkg/uclibc.control @@ -1,5 +1,5 @@  Package: uclibc  Priority: optional  Section: net -Depends: base-files, libgcc +Depends: base-files  Description: Standard C library for embedded Linux systems diff --git a/package/kismet/Makefile b/package/kismet/Makefile index 366fddddb..58e3f501a 100644 --- a/package/kismet/Makefile +++ b/package/kismet/Makefile @@ -28,7 +28,7 @@ $(PKG_BUILD_DIR)/.configured:  		CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti -nostdinc++"  \  		CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include -I$(LINUX_DIR)/include" \  		LDFLAGS="-nodefaultlibs -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ -		LIBS="-luClibc++ -lc -lm" \ +		LIBS="-luClibc++ -lc -lm -lgcc" \  		./configure \  			--target=$(GNU_TARGET_NAME) \  			--host=$(GNU_TARGET_NAME) \ @@ -58,7 +58,7 @@ $(PKG_BUILD_DIR)/.configured:  $(PKG_BUILD_DIR)/.built:  	$(MAKE) -C $(PKG_BUILD_DIR) \ -		LIBS="-luClibc++ -lc -lm" \ +		LIBS="-luClibc++ -lc -lm -lgcc" \  		all  	touch $@ diff --git a/package/kismet/ipkg/kismet.control b/package/kismet/ipkg/kismet.control index ef77d815f..193328563 100644 --- a/package/kismet/ipkg/kismet.control +++ b/package/kismet/ipkg/kismet.control @@ -1,7 +1,7 @@  Package: kismet  Priority: optional  Section: net -Depends: kismet-client, kismet-server  +Depends: libgcc, kismet-client, kismet-server   Description: kismet   Kismet is an 802.11 layer2 wireless network detector,   sniffer, and intrusion detection system. Kismet will work with any diff --git a/package/nmap/Makefile b/package/nmap/Makefile index 1aa8bed4c..659bff958 100644 --- a/package/nmap/Makefile +++ b/package/nmap/Makefile @@ -26,7 +26,7 @@ $(PKG_BUILD_DIR)/.configured:  		CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti -nostdinc++" \  		CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \  		LDFLAGS="-nodefaultlibs -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ -		LIBS="-luClibc++ -lc -lm" \ +		LIBS="-luClibc++ -lc -lm -lgcc" \  		ac_cv_prog_CXX="$(TARGET_CXX)" \  		./configure \  		  --target=$(GNU_TARGET_NAME) \ diff --git a/package/nmap/ipkg/nmap.control b/package/nmap/ipkg/nmap.control index ad2a984d1..56253fda0 100644 --- a/package/nmap/ipkg/nmap.control +++ b/package/nmap/ipkg/nmap.control @@ -1,5 +1,5 @@  Package: nmap  Priority: optional  Section: net -Depends: libpcap, libpcre, uclibc++ +Depends: libgcc, libpcap, libpcre, uclibc++  Description: Nmap is a free open source utility for network exploration or security auditing. diff --git a/package/samba/Makefile b/package/samba/Makefile index 566e604a0..584ed9a04 100644 --- a/package/samba/Makefile +++ b/package/samba/Makefile @@ -58,7 +58,7 @@ $(PKG_BUILD_DIR)/.built:  		$(TARGET_CONFIGURE_OPTS) \  		CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE -DNDEBUG -DSHMEM_SIZE=524288 -Dfcntl=fcntl64" \  		CPPFLAGS="-I$(STAGING_DIR)/usr/include" \ -		LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \ +		LDFLAGS="-lgcc_s -L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \  		ac_cv_lib_cups_httpConnect=no \  		ac_cv_sizeof_int=4 \  		ac_cv_sizeof_long=4 \ diff --git a/package/samba/ipkg/samba.control b/package/samba/ipkg/samba.control index 503ce7240..c1cf603c4 100644 --- a/package/samba/ipkg/samba.control +++ b/package/samba/ipkg/samba.control @@ -1,5 +1,5 @@  Package: samba  Priority: optional  Section: net -Depends: +Depends: libgcc  Description: NetBIOS/SMB file and print server 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 | 
