[Buildroot] [PATCH 1/1] package/valgrind: Add a setting for LTO build

Gleb Mazovetskiy glex.spb at gmail.com
Mon Apr 19 02:01:29 UTC 2021


By the way, I should've mentioned that it's over 1 hour for MIPS32R2 with
uclibc


On Sun, Apr 18, 2021 at 10:59 PM Peter Seiderer <ps.report at gmx.net> wrote:

> Hello Gleb,
> On Sun, 18 Apr 2021 19:36:58 +0100, Gleb Mazovetskiy <glex.spb at gmail.com>
> wrote:
>
> > Valgrind LTO build takes over an hour on my Ryzen 3950x.
> >
>
> Can confirm a build time increase (AMD Ryzen 7 1800X):
>
> - without LTO:
>
> real    0m54,741s
> user    3m29,941s
> sys     0m10,949s
>
> - with LTO:
>
> real    5m48,009s
> user    6m23,040s
> sys     0m13,197s
>
> > This is not always worth it for the ~10% size reduction and a small
> > performance improvement it offers (see
> https://www.valgrind.org/docs/manual/dist.news.html)
> >
> > Adds a new `BR2_VALGRIND_ENABLE_LTO` setting to control LTO enablement
> > for Valgrind separately from the global BR2_GCC_ENABLE_LTO setting.
> >
> > Signed-off-by: Gleb Mazovetskiy <glex.spb at gmail.com>
> > ---
> >  package/valgrind/Config.in   | 10 ++++++++++
> >  package/valgrind/valgrind.mk |  2 +-
> >  2 files changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/package/valgrind/Config.in b/package/valgrind/Config.in
> > index 56e4af21fa..eff54e7949 100644
> > --- a/package/valgrind/Config.in
> > +++ b/package/valgrind/Config.in
> > @@ -84,4 +84,14 @@ config BR2_PACKAGE_VALGRIND_NULGRIND
> >       help
> >         This option allows to install the Nulgrind tool
> >
> > +if BR2_GCC_ENABLE_LTO
> > +
> > +config BR2_VALGRIND_ENABLE_LTO
> > +     bool "Build Valgrind with link-time optimization"
> > +     help
> > +       This produces a faster / smaller valgrind (up to 10%) at the cost
> > +       of massively increased build time (can be over an hour).
>
> Be careful with absolute times, depends strongly on the used hardware...
> (out of interest, what is your baseline compile time?)...
>
> Would move this section up-to/before the tools selection section...
>
> Regards,
> Peter
>
> > +
> > +endif
> > +
> >  endif
> > diff --git a/package/valgrind/valgrind.mk b/package/valgrind/valgrind.mk
> > index b87e1e518f..07fb1f7d42 100644
> > --- a/package/valgrind/valgrind.mk
> > +++ b/package/valgrind/valgrind.mk
> > @@ -50,7 +50,7 @@ VALGRIND_CONF_OPTS += \
> >       --host=$(patsubst arm-%,armv7-%,$(GNU_TARGET_NAME))
> >  endif
> >
> > -ifeq ($(BR2_GCC_ENABLE_LTO),y)
> > +ifeq ($(BR2_VALGRIND_ENABLE_LTO),y)
> >  VALGRIND_CONF_OPTS += --enable-lto
> >  else
> >  VALGRIND_CONF_OPTS += --disable-lto
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20210419/2b9346e5/attachment-0002.html>


More information about the buildroot mailing list