diff options
author | Andre Heider <a.heider@gmail.com> | 2023-02-02 21:33:38 +0100 |
---|---|---|
committer | Christian Marangi <ansuelsmth@gmail.com> | 2023-03-21 18:28:22 +0100 |
commit | 07730ff3465d3cede3026cdd1c17453930f055ce (patch) | |
tree | 71c8f06b42de3b1ff0d1c02c0068d718c3a08a62 /package/system | |
parent | da3700988d9e34e380bae21ee23d5458a7e972b4 (diff) | |
download | upstream-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/system')
-rw-r--r-- | package/system/mtd/Makefile | 4 | ||||
-rw-r--r-- | package/system/procd/Makefile | 4 | ||||
-rw-r--r-- | package/system/ubus/Makefile | 4 | ||||
-rw-r--r-- | package/system/usign/Makefile | 5 |
4 files changed, 6 insertions, 11 deletions
diff --git a/package/system/mtd/Makefile b/package/system/mtd/Makefile index 1a70a64b7d..d45f06fc43 100644 --- a/package/system/mtd/Makefile +++ b/package/system/mtd/Makefile @@ -18,6 +18,7 @@ PKG_LICENSE:=GPL-2.0+ PKG_LICENSE_FILES:= PKG_FLAGS:=nonshared +PKG_BUILD_FLAGS:=lto include $(INCLUDE_DIR)/package.mk @@ -36,8 +37,7 @@ endef target=$(firstword $(subst -, ,$(BOARD))) MAKE_FLAGS += TARGET="$(target)" -TARGET_CFLAGS += -Dtarget_$(target)=1 -Wall -flto -TARGET_LDFLAGS += -flto=jobserver +TARGET_CFLAGS += -Dtarget_$(target)=1 -Wall ifdef CONFIG_MTD_REDBOOT_PARTS MAKE_FLAGS += FIS_SUPPORT=1 diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile index 56aa9e0b35..2d51b51ad7 100644 --- a/package/system/procd/Makefile +++ b/package/system/procd/Makefile @@ -22,6 +22,7 @@ PKG_LICENSE_FILES:= PKG_MAINTAINER:=John Crispin <john@phrozen.org> +PKG_BUILD_FLAGS:=lto PKG_ASLR_PIE_REGULAR:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_TARGET_INIT_PATH CONFIG_KERNEL_SECCOMP CONFIG_PROCD_SHOW_BOOT \ @@ -36,9 +37,6 @@ endif CMAKE_OPTIONS += -DEARLY_PATH="$(TARGET_INIT_PATH)" -TARGET_CFLAGS += -flto -TARGET_LDFLAGS += -flto - define Package/procd/Default SECTION:=base CATEGORY:=Base system diff --git a/package/system/ubus/Makefile b/package/system/ubus/Makefile index 4c72780703..5a951ac249 100644 --- a/package/system/ubus/Makefile +++ b/package/system/ubus/Makefile @@ -15,6 +15,7 @@ PKG_LICENSE:=LGPL-2.1 PKG_LICENSE_FILES:= PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> +PKG_BUILD_FLAGS:=lto PKG_ASLR_PIE_REGULAR:=1 include $(INCLUDE_DIR)/package.mk @@ -50,8 +51,7 @@ define Package/libubus-lua TITLE:=Lua binding for the OpenWrt RPC client endef -TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include -flto -TARGET_LDFLAGS += -flto +TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include CMAKE_OPTIONS += \ -DLUAPATH=/usr/lib/lua \ diff --git a/package/system/usign/Makefile b/package/system/usign/Makefile index 0d2d07017c..3c28318028 100644 --- a/package/system/usign/Makefile +++ b/package/system/usign/Makefile @@ -10,7 +10,7 @@ PKG_SOURCE_VERSION:=f1f65026a94137c91b5466b149ef3ea3f20091e9 PKG_MIRROR_HASH:=3f6569a5e63fdfd032976ac0f79d736d3935101ac1b97fb370514b013c5e6bb6 CMAKE_INSTALL:=1 PKG_CHECK_FORMAT_SECURITY:=1 -PKG_BUILD_FLAGS:=no-mips16 +PKG_BUILD_FLAGS:=no-mips16 lto PKG_LICENSE:=ISC PKG_LICENSE_FILES:= @@ -30,9 +30,6 @@ define Package/usign TITLE:=OpenWrt signature verification utility endef -TARGET_CFLAGS += -flto -TARGET_LDFLAGS += -flto=jobserver - CMAKE_OPTIONS += \ -DUSE_LIBUBOX=on |