diff options
author | Waldemar Brodkorb <mail@waldemar-brodkorb.de> | 2006-01-04 08:37:19 +0000 |
---|---|---|
committer | Waldemar Brodkorb <mail@waldemar-brodkorb.de> | 2006-01-04 08:37:19 +0000 |
commit | e74f05f29b3b0bc6e3e0cfb83a10a1a9cdcea2df (patch) | |
tree | 6b5fd954a8bceb44d8c0716b5017b18ae7a2292a | |
parent | 1c59bfaaf40a3da51600e2fbfff62cfd85012fd9 (diff) | |
download | mtk-20170518-e74f05f29b3b0bc6e3e0cfb83a10a1a9cdcea2df.zip mtk-20170518-e74f05f29b3b0bc6e3e0cfb83a10a1a9cdcea2df.tar.gz mtk-20170518-e74f05f29b3b0bc6e3e0cfb83a10a1a9cdcea2df.tar.bz2 |
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.
SVN-Revision: 2817
-rw-r--r-- | openwrt/package/Config.in | 1 | ||||
-rw-r--r-- | openwrt/package/base-files/Makefile | 12 | ||||
-rw-r--r-- | openwrt/package/base-files/ipkg/uclibc.control | 2 | ||||
-rw-r--r-- | openwrt/package/kismet/Makefile | 4 | ||||
-rw-r--r-- | openwrt/package/kismet/ipkg/kismet.control | 2 | ||||
-rw-r--r-- | openwrt/package/nmap/Makefile | 2 | ||||
-rw-r--r-- | openwrt/package/nmap/ipkg/nmap.control | 2 | ||||
-rw-r--r-- | openwrt/package/samba/Makefile | 2 | ||||
-rw-r--r-- | openwrt/package/samba/ipkg/samba.control | 2 | ||||
-rw-r--r-- | openwrt/toolchain/gcc/Makefile | 10 |
10 files changed, 29 insertions, 10 deletions
diff --git a/openwrt/package/Config.in b/openwrt/package/Config.in index 53b10b6..47bddeb 100644 --- a/openwrt/package/Config.in +++ b/openwrt/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/openwrt/package/base-files/Makefile b/openwrt/package/base-files/Makefile index 8b74ee0..7601de2 100644 --- a/openwrt/package/base-files/Makefile +++ b/openwrt/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/openwrt/package/base-files/ipkg/uclibc.control b/openwrt/package/base-files/ipkg/uclibc.control index d07ed90..1cdfe15 100644 --- a/openwrt/package/base-files/ipkg/uclibc.control +++ b/openwrt/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/openwrt/package/kismet/Makefile b/openwrt/package/kismet/Makefile index 366fddd..58e3f50 100644 --- a/openwrt/package/kismet/Makefile +++ b/openwrt/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/openwrt/package/kismet/ipkg/kismet.control b/openwrt/package/kismet/ipkg/kismet.control index ef77d81..1933285 100644 --- a/openwrt/package/kismet/ipkg/kismet.control +++ b/openwrt/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/openwrt/package/nmap/Makefile b/openwrt/package/nmap/Makefile index 1aa8bed..659bff9 100644 --- a/openwrt/package/nmap/Makefile +++ b/openwrt/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/openwrt/package/nmap/ipkg/nmap.control b/openwrt/package/nmap/ipkg/nmap.control index ad2a984..56253fd 100644 --- a/openwrt/package/nmap/ipkg/nmap.control +++ b/openwrt/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/openwrt/package/samba/Makefile b/openwrt/package/samba/Makefile index 566e604..584ed9a 100644 --- a/openwrt/package/samba/Makefile +++ b/openwrt/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/openwrt/package/samba/ipkg/samba.control b/openwrt/package/samba/ipkg/samba.control index 503ce72..c1cf603 100644 --- a/openwrt/package/samba/ipkg/samba.control +++ b/openwrt/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/openwrt/toolchain/gcc/Makefile b/openwrt/toolchain/gcc/Makefile index dc7e02c..f6f4aca 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 |