diff options
| -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 | 
