aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs
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/libs
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/libs')
-rw-r--r--package/libs/libevent2/Makefile6
-rw-r--r--package/libs/libnl/Makefile4
-rw-r--r--package/libs/mbedtls/Makefile3
-rw-r--r--package/libs/openssl/Makefile5
4 files changed, 10 insertions, 8 deletions
diff --git a/package/libs/libevent2/Makefile b/package/libs/libevent2/Makefile
index 85c159c2a6..50dd19bf00 100644
--- a/package/libs/libevent2/Makefile
+++ b/package/libs/libevent2/Makefile
@@ -26,6 +26,8 @@ PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_libevent2-pthreads \
CONFIG_PACKAGE_libevent2-mbedtls
+PKG_BUILD_FLAGS:=gc-sections
+
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -112,8 +114,8 @@ define Package/libevent2-pthreads/description
threading & locking.
endef
-TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -flto
-TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -flto
+TARGET_CFLAGS += $(FPIC) -flto
+TARGET_LDFLAGS += -Wl,--as-needed -flto
CMAKE_OPTIONS += \
-DEVENT__DISABLE_BENCHMARK:BOOL=ON \
diff --git a/package/libs/libnl/Makefile b/package/libs/libnl/Makefile
index 71b043a9e5..56549dcc0a 100644
--- a/package/libs/libnl/Makefile
+++ b/package/libs/libnl/Makefile
@@ -20,6 +20,8 @@ PKG_CPE_ID:=cpe:/a:libnl_project:libnl
PKG_INSTALL:=1
PKG_FIXUP:=autoreconf
+PKG_BUILD_FLAGS:=gc-sections
+
include $(INCLUDE_DIR)/package.mk
define Package/libnl/default
@@ -80,7 +82,7 @@ define Package/libnl/description
message construction and parsing, object caching system, etc.
endef
-TARGET_CFLAGS += -ffunction-sections -fdata-sections $(FPIC)
+TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--disable-debug
diff --git a/package/libs/mbedtls/Makefile b/package/libs/mbedtls/Makefile
index 7c167e2296..f49bb24de6 100644
--- a/package/libs/mbedtls/Makefile
+++ b/package/libs/mbedtls/Makefile
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=mbedtls
PKG_VERSION:=2.28.2
PKG_RELEASE:=2
-PKG_BUILD_FLAGS:=no-mips16
+PKG_BUILD_FLAGS:=no-mips16 gc-sections
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/ARMmbed/mbedtls/tar.gz/v$(PKG_VERSION)?
@@ -121,7 +121,6 @@ This package contains mbedtls helper programs for private key and
CSR generation (gen_key, cert_req)
endef
-TARGET_CFLAGS += -ffunction-sections -fdata-sections
TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS))
CMAKE_OPTIONS += \
diff --git a/package/libs/openssl/Makefile b/package/libs/openssl/Makefile
index 7918d40347..9fe5da9dd3 100644
--- a/package/libs/openssl/Makefile
+++ b/package/libs/openssl/Makefile
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openssl
PKG_VERSION:=3.0.8
PKG_RELEASE:=4
-PKG_BUILD_FLAGS:=no-mips16
+PKG_BUILD_FLAGS:=no-mips16 gc-sections
PKG_BUILD_PARALLEL:=1
@@ -339,8 +339,7 @@ define Build/Configure
)
endef
-TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -Wl,--gc-sections
+TARGET_CFLAGS += $(FPIC)
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \