[OpenWrt-Devel] [PATCH 1/4] dnsmasq: Activate LTO

Rosen Penev rosenp at gmail.com
Fri Nov 1 17:08:16 EDT 2019


On Fri, Nov 1, 2019 at 1:55 PM Hauke Mehrtens <hauke at hauke-m.de> 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).
>
> old:
> 202,020 /usr/sbin/dnsmasq
>
> new:
> 185,676 /usr/sbin/dnsmasq
>
> Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
> ---
>  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.
> +TARGET_CFLAGS += -flto
> +TARGET_LDFLAGS += -flto=jobserver
>
>  COPTS = -DHAVE_UBUS \
>         $(if $(CONFIG_IPV6),,-DNO_IPV6)
> --
> 2.20.1
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list