Re: [RFC PATCH] x86: enable dead code and data elimination (LTO)

From: Nicolas Pitre
Date: Wed Jul 12 2017 - 13:41:21 EST


On Wed, 12 Jul 2017, Andi Kleen wrote:

> Nicholas Piggin <npiggin@xxxxxxxxx> writes:
> >>
> >> I think we should aim for gc-sections to be used by default and have LTO
> >> as a possible option only.
> >
> > I agree after it starts getting implemented and debugged by small
> > system users, we could make it default in the interest of sharing
> > testing and reducing combinations.
>
> From what i understand the main drawback in the past was
> is that various linker versions become very slow with thousands of
> sections.
>
> So it may cost you built time. For a special small build it's probably
> ok, but you wouldn't want to make it default.
>
> Also usually it's only useful without modules because if you
> use modules EXPORT_SYMBOL pulls in a lot of unused functions.

I created CONFIG_TRIM_UNUSED_KSYMS mainly to avoid that issue. It is
highly effective with either gc-sections and LTO.


Nicolas