On 11/1/19 10:08 PM, Rosen Penev wrote: > On Fri, Nov 1, 2019 at 1:55 PM Hauke Mehrtens <[email protected]> wrote: >> >> This decreases the binary size when PIE ASLR is activated by 8% on MIPS BE. > A small note on LTO: > > These packages do not generate libraries, but sometimes, LTO messes up > dynamic linking (static even more so). > > For example: > https://github.com/openwrt/packages/blob/master/libs/libwangle/Makefile#L31 > is missing -flto specifically because a package that depends on it > (openr, not in the packages feed yet) fails to link libwangle when > -flto is specified for libwangle (a specific function was optimized > out of the library).
I activated LTO globally and also saw multiple link problems, but I think it was mostly related to static linking. If a function is optimized out it was probably not correctly declared as needed. >> >> old: >> 202,020 /usr/sbin/dnsmasq >> >> new: >> 185,676 /usr/sbin/dnsmasq >> >> Signed-off-by: Hauke Mehrtens <[email protected]> >> --- >> package/network/services/dnsmasq/Makefile | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/package/network/services/dnsmasq/Makefile >> b/package/network/services/dnsmasq/Makefile >> index 5c114eb1c6..e86b031e3f 100644 >> --- a/package/network/services/dnsmasq/Makefile >> +++ b/package/network/services/dnsmasq/Makefile >> @@ -127,8 +127,8 @@ endef >> Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles) >> Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles) >> >> -TARGET_CFLAGS += -ffunction-sections -fdata-sections >> -TARGET_LDFLAGS += -Wl,--gc-sections > I am curious why these were removed. I saw no size differences. These options are also used to allow the linker to remove unused functions and data sections and with LTO the compiler does the same just more so this should not be needed any more. >> +TARGET_CFLAGS += -flto >> +TARGET_LDFLAGS += -flto=jobserver >> >> COPTS = -DHAVE_UBUS \ >> $(if $(CONFIG_IPV6),,-DNO_IPV6) >> -- >> 2.20.1
signature.asc
Description: OpenPGP digital signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
