summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <mail@waldemar-brodkorb.de>2006-01-04 08:37:19 +0000
committerWaldemar Brodkorb <mail@waldemar-brodkorb.de>2006-01-04 08:37:19 +0000
commite74f05f29b3b0bc6e3e0cfb83a10a1a9cdcea2df (patch)
tree6b5fd954a8bceb44d8c0716b5017b18ae7a2292a
parent1c59bfaaf40a3da51600e2fbfff62cfd85012fd9 (diff)
downloadmtk-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.in1
-rw-r--r--openwrt/package/base-files/Makefile12
-rw-r--r--openwrt/package/base-files/ipkg/uclibc.control2
-rw-r--r--openwrt/package/kismet/Makefile4
-rw-r--r--openwrt/package/kismet/ipkg/kismet.control2
-rw-r--r--openwrt/package/nmap/Makefile2
-rw-r--r--openwrt/package/nmap/ipkg/nmap.control2
-rw-r--r--openwrt/package/samba/Makefile2
-rw-r--r--openwrt/package/samba/ipkg/samba.control2
-rw-r--r--openwrt/toolchain/gcc/Makefile10
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