* [Buildroot] [PATCH] systemd: Build with LTO
@ 2018-10-09 19:33 Alexey Brodkin
2018-10-09 19:49 ` Thomas Petazzoni
0 siblings, 1 reply; 2+ messages in thread
From: Alexey Brodkin @ 2018-10-09 19:33 UTC (permalink / raw)
To: buildroot
Usage of LTO allows to shave off some size of the binaries.
For example libsystemd for Aarch64:
libsystemd.so.0.23.0-LTO - 467K
libsystemd.so.0.23.0-no-LTO - 523K
Build-tetsed for ARC and ARM, run-tested on ARC.
Prerequisite is fix for Meson:
https://patchwork.ozlabs.org/patch/981496/
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Romain Naour <romain.naour@gmail.com>
Cc: Jeremy Rosen <jeremy.rosen@smile.fr>
---
package/systemd/systemd.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 4813496670..ebd29c89b0 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -38,7 +38,8 @@ SYSTEMD_CONF_OPTS += \
-Dsulogin-path=/usr/sbin/sulogin \
-Dmount-path=/usr/bin/mount \
-Dumount-path=/usr/bin/umount \
- -Dnobody-group=nogroup
+ -Dnobody-group=nogroup \
+ -Db_lto=true
# disable unsupported features for non-glibc toolchains
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
--
2.16.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Buildroot] [PATCH] systemd: Build with LTO
2018-10-09 19:33 [Buildroot] [PATCH] systemd: Build with LTO Alexey Brodkin
@ 2018-10-09 19:49 ` Thomas Petazzoni
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni @ 2018-10-09 19:49 UTC (permalink / raw)
To: buildroot
Hello,
On Tue, 9 Oct 2018 22:33:40 +0300, Alexey Brodkin wrote:
> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> index 4813496670..ebd29c89b0 100644
> --- a/package/systemd/systemd.mk
> +++ b/package/systemd/systemd.mk
> @@ -38,7 +38,8 @@ SYSTEMD_CONF_OPTS += \
> -Dsulogin-path=/usr/sbin/sulogin \
> -Dmount-path=/usr/bin/mount \
> -Dumount-path=/usr/bin/umount \
> - -Dnobody-group=nogroup
> + -Dnobody-group=nogroup \
> + -Db_lto=true
I don't think we can do this unconditionally. We have a bunch of
options such as BR2_BINUTILS_ENABLE_LTO and BR2_GCC_ENABLE_LTO to
enable LTO support in the internal toolchain, and we don't today have a
way to know if the external toolchain provided supports LTO or not.
So this needs a much more generic solution:
- A global Config.in option to enable/disable usage of LTO. It will
have to interact with the toolchain LTO support.
- An option that tells whether the toolchain supports LTO. For
internal toolchains, it's simply selected by BR2_GCC_ENABLE_LTO. For
external toolchains, we need a check to verify that the toolchain is
LTO + a visible option for custom external toolchains.
So: yes for using LTO, but we need something more generic.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-10-09 19:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-09 19:33 [Buildroot] [PATCH] systemd: Build with LTO Alexey Brodkin
2018-10-09 19:49 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox