From: Andre Heider Date: Sat, 28 Jan 2023 14:24:37 +0000 (+0100) Subject: build: add a config knob to enable LTO for all packages X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fnbd.git;a=commitdiff_plain;h=9ea7019ffd60ab3ef5a5654116fbc339f856482c build: add a config knob to enable LTO for all packages This enables LTO for all packages which haven't opted-out. Signed-off-by: Andre Heider --- diff --git a/config/Config-build.in b/config/Config-build.in index f93ad37586..df2d9101ca 100644 --- a/config/Config-build.in +++ b/config/Config-build.in @@ -152,6 +152,13 @@ menu "Global build settings" garbage collection capabilites. Packages can choose to opt-out via setting PKG_BUILD_FLAGS:=no-gc-sections + config USE_LTO + bool + prompt "Use the link-time optimizer for all packages (EXPERIMENTAL)" + help + Adds LTO flags to the CFLAGS and LDFLAGS. + Packages can choose to opt-out via setting PKG_BUILD_FLAGS:=no-lto + config IPV6 def_bool y diff --git a/include/package.mk b/include/package.mk index 687f74edc1..d80f3bce49 100644 --- a/include/package.mk +++ b/include/package.mk @@ -56,7 +56,7 @@ ifeq ($(call pkg_build_flag,gc-sections,$(if $(CONFIG_USE_GC_SECTIONS),1,0)),1) TARGET_CXXFLAGS+= -ffunction-sections -fdata-sections TARGET_LDFLAGS+= -Wl,--gc-sections endif -ifeq ($(call pkg_build_flag,lto,0),1) +ifeq ($(call pkg_build_flag,lto,$(if $(CONFIG_USE_LTO),1,0)),1) TARGET_CFLAGS+= -flto=auto -fno-fat-lto-objects TARGET_CXXFLAGS+= -flto=auto -fno-fat-lto-objects TARGET_LDFLAGS+= -flto=auto -fuse-linker-plugin