aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs
diff options
context:
space:
mode:
authorAndre Heider <a.heider@gmail.com>2023-02-02 21:33:38 +0100
committerChristian Marangi <ansuelsmth@gmail.com>2023-03-21 18:28:22 +0100
commit07730ff3465d3cede3026cdd1c17453930f055ce (patch)
tree71c8f06b42de3b1ff0d1c02c0068d718c3a08a62 /package/libs
parentda3700988d9e34e380bae21ee23d5458a7e972b4 (diff)
downloadupstream-07730ff3465d3cede3026cdd1c17453930f055ce.tar.gz
upstream-07730ff3465d3cede3026cdd1c17453930f055ce.tar.bz2
upstream-07730ff3465d3cede3026cdd1c17453930f055ce.zip
treewide: add support for "lto" 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-lto". Some packages used LTO, but not the linker plugin. This unifies 'em all to attempt to produce better code. Quoting man gcc(1): "This improves the quality of optimization by exposing more code to the link-time optimizer." Also use -flto=auto instead of -flto=jobserver, as it's not guaranteed that every buildsystem uses +$(MAKE) correctly. Signed-off-by: Andre Heider <a.heider@gmail.com>
Diffstat (limited to 'package/libs')
-rw-r--r--package/libs/jansson/Makefile5
-rw-r--r--package/libs/libevent2/Makefile6
-rw-r--r--package/libs/libnftnl/Makefile4
-rw-r--r--package/libs/wolfssl/Makefile5
4 files changed, 8 insertions, 12 deletions
diff --git a/package/libs/jansson/Makefile b/package/libs/jansson/Makefile
index d8567ed79a..e2b5206acb 100644
--- a/package/libs/jansson/Makefile
+++ b/package/libs/jansson/Makefile
@@ -19,6 +19,8 @@ PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:jansson_project:jansson
+PKG_BUILD_FLAGS:=lto
+
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -41,9 +43,6 @@ define Package/jansson/description
Jansson is a C library for encoding, decoding and manipulating JSON data
endef
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto
-
define Package/jansson/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libjansson*so.* $(1)/usr/lib/
diff --git a/package/libs/libevent2/Makefile b/package/libs/libevent2/Makefile
index 50dd19bf00..92602607ae 100644
--- a/package/libs/libevent2/Makefile
+++ b/package/libs/libevent2/Makefile
@@ -26,7 +26,7 @@ PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_libevent2-pthreads \
CONFIG_PACKAGE_libevent2-mbedtls
-PKG_BUILD_FLAGS:=gc-sections
+PKG_BUILD_FLAGS:=gc-sections lto
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -114,8 +114,8 @@ define Package/libevent2-pthreads/description
threading & locking.
endef
-TARGET_CFLAGS += $(FPIC) -flto
-TARGET_LDFLAGS += -Wl,--as-needed -flto
+TARGET_CFLAGS += $(FPIC)
+TARGET_LDFLAGS += -Wl,--as-needed
CMAKE_OPTIONS += \
-DEVENT__DISABLE_BENCHMARK:BOOL=ON \
diff --git a/package/libs/libnftnl/Makefile b/package/libs/libnftnl/Makefile
index f92fb91eea..8d8c8c25e3 100644
--- a/package/libs/libnftnl/Makefile
+++ b/package/libs/libnftnl/Makefile
@@ -22,6 +22,7 @@ PKG_LICENSE_FILES:=COPYING
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
+PKG_BUILD_FLAGS:=lto
include $(INCLUDE_DIR)/package.mk
@@ -41,8 +42,7 @@ define Package/libnftnl/description
programming interface (API) to the in-kernel nf_tables subsystem.
endef
-TARGET_CFLAGS += $(FPIC) -flto
-TARGET_LDFLAGS += -flto
+TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--enable-static \
diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile
index 48e85b0bce..04d9d3ef66 100644
--- a/package/libs/wolfssl/Makefile
+++ b/package/libs/wolfssl/Makefile
@@ -17,7 +17,7 @@ PKG_HASH:=b7ee150e49def77c765bc02aac92ddeb0bebefd4cb12aa263d8f95e405221fb8
PKG_FIXUP:=libtool libtool-abiver
PKG_INSTALL:=1
-PKG_BUILD_FLAGS:=no-mips16
+PKG_BUILD_FLAGS:=no-mips16 lto
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=LICENSING COPYING
@@ -118,12 +118,9 @@ endef
TARGET_CFLAGS += \
$(FPIC) \
-fomit-frame-pointer \
- -flto \
-DFP_MAX_BITS=8192 \
$(if $(CONFIG_WOLFSSL_ALT_NAMES),-DWOLFSSL_ALT_NAMES)
-TARGET_LDFLAGS += -flto
-
# --enable-stunnel needed for OpenSSL API compatibility bits
CONFIGURE_ARGS += \
--enable-reproducible-build \