aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils
diff options
context:
space:
mode:
authorAndre Heider <a.heider@gmail.com>2023-02-02 21:16:21 +0100
committerChristian Marangi <ansuelsmth@gmail.com>2023-03-21 18:28:22 +0100
commitda3700988d9e34e380bae21ee23d5458a7e972b4 (patch)
tree20d82e514ac77f4f0de8deb7f1274a8f409646df /package/network/utils
parent5c545bdb365a78b8995ddfa441a6018f7ff3c011 (diff)
downloadupstream-da3700988d9e34e380bae21ee23d5458a7e972b4.tar.gz
upstream-da3700988d9e34e380bae21ee23d5458a7e972b4.tar.bz2
upstream-da3700988d9e34e380bae21ee23d5458a7e972b4.zip
treewide: add support for "gc-sections" in PKG_BUILD_FLAGS
This reduces open coding and allows to easily add a knob to enable it treewide, where chosen packages can still opt-out via "no-gc-sections". Note: libnl, mbedtls and opkg only used the CFLAGS part without the LDFLAGS counterpart. That doesn't help at all if the goal is to produce smaller binaries. I consider that an accident, and this fixes it. Note: there are also packages using only the LDFLAGS part. I didn't touch those, as gc might have been disabled via CFLAGS intentionally. Signed-off-by: Andre Heider <a.heider@gmail.com>
Diffstat (limited to 'package/network/utils')
-rw-r--r--package/network/utils/iproute2/Makefile6
-rw-r--r--package/network/utils/iptables/Makefile5
-rw-r--r--package/network/utils/iw/Makefile6
-rw-r--r--package/network/utils/tcpdump/Makefile4
-rw-r--r--package/network/utils/umbim/Makefile5
-rw-r--r--package/network/utils/uqmi/Makefile5
6 files changed, 13 insertions, 18 deletions
diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile
index 302d57bf8b..b3a809e0b5 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -19,6 +19,8 @@ PKG_BUILD_DEPENDS:=iptables
PKG_LICENSE:=GPL-2.0
PKG_CPE_ID:=cpe:/a:iproute2_project:iproute2
+PKG_BUILD_FLAGS:=gc-sections
+
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
@@ -171,8 +173,8 @@ define Build/Configure
> $(PKG_BUILD_DIR)/include/SNAPSHOT.h
endef
-TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
-TARGET_LDFLAGS += -Wl,--gc-sections -Wl,--as-needed
+TARGET_CFLAGS += -flto
+TARGET_LDFLAGS += -Wl,--as-needed
TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
MAKE_FLAGS += \
diff --git a/package/network/utils/iptables/Makefile b/package/network/utils/iptables/Makefile
index e96cfa0b16..0d6d76fc08 100644
--- a/package/network/utils/iptables/Makefile
+++ b/package/network/utils/iptables/Makefile
@@ -20,6 +20,7 @@ PKG_FIXUP:=autoreconf
PKG_FLAGS:=nonshared
PKG_INSTALL:=1
+PKG_BUILD_FLAGS:=gc-sections
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=GPL-2.0
PKG_CPE_ID:=cpe:/a:netfilter_core_team:iptables
@@ -591,12 +592,8 @@ TARGET_CPPFLAGS := \
TARGET_CFLAGS += \
-I$(PKG_BUILD_DIR)/include \
-I$(LINUX_DIR)/user_headers/include \
- -ffunction-sections -fdata-sections \
-DNO_LEGACY
-TARGET_LDFLAGS += \
- -Wl,--gc-sections
-
CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
diff --git a/package/network/utils/iw/Makefile b/package/network/utils/iw/Makefile
index eb3a9ba091..1eb3cd721a 100644
--- a/package/network/utils/iw/Makefile
+++ b/package/network/utils/iw/Makefile
@@ -18,6 +18,8 @@ PKG_HASH:=f167bbe947dd53bb9ebc0c1dcef5db6ad73ac1d6084f2c6f9376c5c360cc4d4e
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0
+PKG_BUILD_FLAGS:=gc-sections
+
include $(INCLUDE_DIR)/package.mk
define Package/iw
@@ -55,8 +57,8 @@ ifeq ($(BUILD_VARIANT),full)
endif
MAKE_FLAGS += \
- CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -ffunction-sections -fdata-sections" \
- LDFLAGS="$(TARGET_LDFLAGS) -Wl,--gc-sections -flto" \
+ CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS) -flto" \
NL1FOUND="" NL2FOUND=Y \
NLLIBNAME="libnl-tiny" \
LIBS="-lm -lnl-tiny" \
diff --git a/package/network/utils/tcpdump/Makefile b/package/network/utils/tcpdump/Makefile
index 827a66e860..e07e9feb6d 100644
--- a/package/network/utils/tcpdump/Makefile
+++ b/package/network/utils/tcpdump/Makefile
@@ -20,6 +20,7 @@ PKG_LICENSE:=BSD-3-Clause
PKG_CPE_ID:=cpe:/a:tcpdump:tcpdump
PKG_INSTALL:=1
+PKG_BUILD_FLAGS:=gc-sections
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
@@ -48,9 +49,6 @@ CONFIGURE_ARGS += \
--without-crypto \
$(call autoconf_bool,CONFIG_IPV6,ipv6)
-TARGET_CFLAGS += -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -Wl,--gc-sections
-
ifeq ($(BUILD_VARIANT),mini)
TARGET_CFLAGS += -DTCPDUMP_MINI
CONFIGURE_ARGS += --disable-smb
diff --git a/package/network/utils/umbim/Makefile b/package/network/utils/umbim/Makefile
index 3563949c67..1a09984a43 100644
--- a/package/network/utils/umbim/Makefile
+++ b/package/network/utils/umbim/Makefile
@@ -14,6 +14,7 @@ PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=
PKG_FLAGS:=nonshared
+PKG_BUILD_FLAGS:=gc-sections
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -32,9 +33,7 @@ define Package/umbim/description
endef
TARGET_CFLAGS += \
- -I$(STAGING_DIR)/usr/include -ffunction-sections -fdata-sections
-
-TARGET_LDFLAGS += -Wl,--gc-sections
+ -I$(STAGING_DIR)/usr/include
define Package/umbim/install
$(INSTALL_DIR) $(1)/sbin
diff --git a/package/network/utils/uqmi/Makefile b/package/network/utils/uqmi/Makefile
index 02265d400c..989e7c11b6 100644
--- a/package/network/utils/uqmi/Makefile
+++ b/package/network/utils/uqmi/Makefile
@@ -14,6 +14,7 @@ PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=
PKG_FLAGS:=nonshared
+PKG_BUILD_FLAGS:=gc-sections
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -33,13 +34,9 @@ endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
- -ffunction-sections \
- -fdata-sections \
-Wno-error=dangling-pointer \
-Wno-error=maybe-uninitialized
-TARGET_LDFLAGS += -Wl,--gc-sections
-
CMAKE_OPTIONS += \
-DDEBUG=1