aboutsummaryrefslogtreecommitdiffstats
path: root/package/network
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/network
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/network')
-rw-r--r--package/network/config/firewall/Makefile4
-rw-r--r--package/network/config/netifd/Makefile7
-rw-r--r--package/network/config/swconfig/Makefile5
-rw-r--r--package/network/services/dnsmasq/Makefile4
-rw-r--r--package/network/services/dropbear/Makefile5
-rw-r--r--package/network/services/hostapd/Makefile5
-rw-r--r--package/network/services/lldpd/Makefile4
-rw-r--r--package/network/services/ppp/Makefile5
-rw-r--r--package/network/services/ustp/Makefile5
-rw-r--r--package/network/utils/iproute2/Makefile3
-rw-r--r--package/network/utils/iw/Makefile7
-rw-r--r--package/network/utils/nftables/Makefile5
12 files changed, 23 insertions, 36 deletions
diff --git a/package/network/config/firewall/Makefile b/package/network/config/firewall/Makefile
index 95e2ae4b67..0e00f38689 100644
--- a/package/network/config/firewall/Makefile
+++ b/package/network/config/firewall/Makefile
@@ -21,7 +21,7 @@ PKG_LICENSE:=ISC
PKG_CONFIG_DEPENDS := CONFIG_IPV6
-PKG_BUILD_FLAGS:=gc-sections
+PKG_BUILD_FLAGS:=gc-sections lto
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -44,8 +44,6 @@ define Package/firewall/conffiles
/etc/firewall.user
endef
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto
CMAKE_OPTIONS += $(if $(CONFIG_IPV6),,-DDISABLE_IPV6=1)
define Package/firewall/install
diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index d9d1bce26f..9b5fb08ab0 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -13,6 +13,8 @@ PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=
+PKG_BUILD_FLAGS:=lto
+
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -30,10 +32,7 @@ endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include/libnl-tiny \
- -I$(STAGING_DIR)/usr/include \
- -flto
-
-TARGET_LDFLAGS += -flto -fuse-linker-plugin
+ -I$(STAGING_DIR)/usr/include
CMAKE_OPTIONS += \
-DLIBNL_LIBS=-lnl-tiny \
diff --git a/package/network/config/swconfig/Makefile b/package/network/config/swconfig/Makefile
index 4d3e572d82..6549075e5c 100644
--- a/package/network/config/swconfig/Makefile
+++ b/package/network/config/swconfig/Makefile
@@ -13,6 +13,8 @@ PKG_RELEASE:=12
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0
+PKG_BUILD_FLAGS:=lto
+
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/kernel.mk
@@ -23,9 +25,6 @@ define Package/swconfig
TITLE:=Switch configuration utility
endef
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto=jobserver
-
TARGET_CPPFLAGS := \
-D_GNU_SOURCE \
-I$(STAGING_DIR)/usr/include/libnl-tiny \
diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index f555712a7f..d8e2e29a87 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -24,6 +24,7 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_UPSTR
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
+PKG_BUILD_FLAGS:=lto
PKG_ASLR_PIE_REGULAR:=1
PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcp \
CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcpv6 \
@@ -133,9 +134,6 @@ endef
Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles)
Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles)
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto=jobserver
-
COPTS = -DHAVE_UBUS -DHAVE_POLL_H \
$(if $(CONFIG_IPV6),,-DNO_IPV6)
diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile
index 1b3fdad067..f05248054e 100644
--- a/package/network/services/dropbear/Makefile
+++ b/package/network/services/dropbear/Makefile
@@ -23,7 +23,7 @@ PKG_CPE_ID:=cpe:/a:matt_johnston:dropbear_ssh_server
PKG_BUILD_PARALLEL:=1
PKG_ASLR_PIE_REGULAR:=1
-PKG_BUILD_FLAGS:=no-mips16 gc-sections
+PKG_BUILD_FLAGS:=no-mips16 gc-sections lto
PKG_FIXUP:=autoreconf
PKG_FLAGS:=nonshared
@@ -142,8 +142,7 @@ DB_OPT_CONFIG = \
DROPBEAR_SVR_AGENTFWD|CONFIG_DROPBEAR_AGENTFORWARD|1|0 \
-TARGET_CFLAGS += -DARGTYPE=3 -flto
-TARGET_LDFLAGS += -flto=jobserver
+TARGET_CFLAGS += -DARGTYPE=3
db_opt_add =echo '\#define $(1) $(2)' >> $(PKG_BUILD_DIR)/localoptions.h
db_opt_replace =$(ESED) 's,^(\#define $(1)) .*$$$$,\1 $(2),g' $(PKG_BUILD_DIR)/sysoptions.h
diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile
index 1b077530e1..f184830be3 100644
--- a/package/network/services/hostapd/Makefile
+++ b/package/network/services/hostapd/Makefile
@@ -32,7 +32,7 @@ PKG_CONFIG_DEPENDS:= \
CONFIG_DRIVER_11AX_SUPPORT \
CONFIG_WPA_ENABLE_WEP
-PKG_BUILD_FLAGS:=gc-sections
+PKG_BUILD_FLAGS:=gc-sections lto
EAPOL_TEST_PROVIDERS:=eapol-test eapol-test-openssl eapol-test-wolfssl
@@ -587,8 +587,7 @@ TARGET_CPPFLAGS := \
-D_GNU_SOURCE \
$(if $(CONFIG_WPA_MSG_MIN_PRIORITY),-DCONFIG_MSG_MIN_PRIORITY=$(CONFIG_WPA_MSG_MIN_PRIORITY))
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto=jobserver -fuse-linker-plugin -lubox -lubus
+TARGET_LDFLAGS += -lubox -lubus
ifdef CONFIG_PACKAGE_kmod-cfg80211
TARGET_LDFLAGS += -lm -lnl-tiny
diff --git a/package/network/services/lldpd/Makefile b/package/network/services/lldpd/Makefile
index a08626366f..c3753534a6 100644
--- a/package/network/services/lldpd/Makefile
+++ b/package/network/services/lldpd/Makefile
@@ -21,6 +21,7 @@ PKG_CPE_ID:=cpe:/a:lldpd_project:lldpd
PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
+PKG_BUILD_FLAGS:=lto
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
@@ -111,7 +112,6 @@ CONFIGURE_ARGS += \
$(if $(CONFIG_LLDPD_WITH_SNMP),--with-snmp,) \
$(if $(CONFIG_USE_GLIBC),,--without-libbsd)
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto -Wl,--gc-sections,--as-needed
+TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
$(eval $(call BuildPackage,lldpd))
diff --git a/package/network/services/ppp/Makefile b/package/network/services/ppp/Makefile
index 48f2091a1f..80d5e46c34 100644
--- a/package/network/services/ppp/Makefile
+++ b/package/network/services/ppp/Makefile
@@ -26,7 +26,7 @@ PKG_VERSION:=$(PKG_RELEASE_VERSION).git-$(PKG_SOURCE_DATE)
PKG_BUILD_DEPENDS:=libpcap
PKG_ASLR_PIE_REGULAR:=1
-PKG_BUILD_FLAGS:=gc-sections
+PKG_BUILD_FLAGS:=gc-sections lto
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
@@ -193,9 +193,6 @@ $(call Build/Configure/Default,, \
$(PKG_BUILD_DIR)/pppd/plugins/pppoatm/linux/
endef
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto -fuse-linker-plugin
-
MAKE_FLAGS += COPTS="$(TARGET_CFLAGS)" \
PRECOMPILED_FILTER=1 \
STAGING_DIR="$(STAGING_DIR)"
diff --git a/package/network/services/ustp/Makefile b/package/network/services/ustp/Makefile
index 88bc993bb6..2cdd033754 100644
--- a/package/network/services/ustp/Makefile
+++ b/package/network/services/ustp/Makefile
@@ -19,6 +19,8 @@ PKG_MIRROR_HASH:=0e96edc983cf437b95874e5715d743f30bb826d8757dc3771ff872ab9cf18f3
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0
+PKG_BUILD_FLAGS:=lto
+
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -29,8 +31,7 @@ define Package/ustp
DEPENDS:=+libubox +libubus
endef
-TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include -flto
-TARGET_LDFLAGS += -flto -fuse-linker-plugin
+TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
define Package/ustp/install
$(INSTALL_DIR) $(1)/sbin $(1)/etc/init.d
diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile
index b3a809e0b5..2cd14fe83d 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -19,7 +19,7 @@ PKG_BUILD_DEPENDS:=iptables
PKG_LICENSE:=GPL-2.0
PKG_CPE_ID:=cpe:/a:iproute2_project:iproute2
-PKG_BUILD_FLAGS:=gc-sections
+PKG_BUILD_FLAGS:=gc-sections lto
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
@@ -173,7 +173,6 @@ define Build/Configure
> $(PKG_BUILD_DIR)/include/SNAPSHOT.h
endef
-TARGET_CFLAGS += -flto
TARGET_LDFLAGS += -Wl,--as-needed
TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
diff --git a/package/network/utils/iw/Makefile b/package/network/utils/iw/Makefile
index 1eb3cd721a..746c2c3c12 100644
--- a/package/network/utils/iw/Makefile
+++ b/package/network/utils/iw/Makefile
@@ -18,7 +18,7 @@ PKG_HASH:=f167bbe947dd53bb9ebc0c1dcef5db6ad73ac1d6084f2c6f9376c5c360cc4d4e
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0
-PKG_BUILD_FLAGS:=gc-sections
+PKG_BUILD_FLAGS:=gc-sections lto
include $(INCLUDE_DIR)/package.mk
@@ -48,8 +48,7 @@ TARGET_CPPFLAGS:= \
-I$(STAGING_DIR)/usr/include/libnl-tiny \
$(TARGET_CPPFLAGS) \
-DCONFIG_LIBNL20 \
- -D_GNU_SOURCE \
- -flto
+ -D_GNU_SOURCE
ifeq ($(BUILD_VARIANT),full)
TARGET_CPPFLAGS += -DIW_FULL
@@ -58,7 +57,7 @@ endif
MAKE_FLAGS += \
CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
- LDFLAGS="$(TARGET_LDFLAGS) -flto" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
NL1FOUND="" NL2FOUND=Y \
NLLIBNAME="libnl-tiny" \
LIBS="-lm -lnl-tiny" \
diff --git a/package/network/utils/nftables/Makefile b/package/network/utils/nftables/Makefile
index 9a180a0953..55a6a4bcf6 100644
--- a/package/network/utils/nftables/Makefile
+++ b/package/network/utils/nftables/Makefile
@@ -20,6 +20,8 @@ PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
+PKG_BUILD_FLAGS:=lto
+
include $(INCLUDE_DIR)/package.mk
DISABLE_NLS:=
@@ -60,9 +62,6 @@ ifeq ($(BUILD_VARIANT),json)
CONFIGURE_ARGS += --with-json
endif
-TARGET_CFLAGS += -flto
-TARGET_LDFLAGS += -flto
-
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/