This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Enale -fno-fat-lto-objects by default
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Richard Biener <rguenther at suse dot de>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Markus Trippelsdorf <markus at trippelsdorf dot de>, Paolo Bonzini <bonzini at gnu dot org>, gcc-patches at gcc dot gnu dot org, dj at redhat dot com
- Date: Tue, 19 Nov 2013 14:54:50 +0100
- Subject: Re: Enale -fno-fat-lto-objects by default
- Authentication-results: sourceware.org; auth=none
- References: <20131118180458 dot GH11338 at kam dot mff dot cuni dot cz> <20131118184331 dot GA10148 at x4> <20131118190940 dot GA26530 at kam dot mff dot cuni dot cz> <528B24D5 dot 4020504 at gnu dot org> <20131119100506 dot GB10148 at x4> <20131119102148 dot GJ26530 at kam dot mff dot cuni dot cz> <20131119123529 dot GD10148 at x4> <20131119125109 dot GK26530 at kam dot mff dot cuni dot cz> <alpine dot LNX dot 2 dot 00 dot 1311191358470 dot 4261 at zhemvz dot fhfr dot qr>
> On Tue, 19 Nov 2013, Jan Hubicka wrote:
>
> > > Hmm, gcc/gcc.c still reads:
> > >
> > > 690 /* Conditional to test whether the LTO plugin is used or not.
> > > 691 FIXME: For slim LTO we will need to enable plugin unconditionally. This
> > > 692 still cause problems with PLUGIN_LD != LD and when plugin is built but
> > > 693 not useable. For GCC 4.6 we don't support slim LTO and thus we can enable
> > > 694 plugin only when LTO is enabled. We still honor explicit
> > > 695 -fuse-linker-plugin if the linker used understands -plugin. */
> > > 696
> > > 697 /* The linker has some plugin support. */
> > > 698 #if HAVE_LTO_PLUGIN > 0
> > > 699 /* The linker used has full plugin support, use LTO plugin by default. */
> > > 700 #if HAVE_LTO_PLUGIN == 2
> >
> > Hmm, I see, your problem is that there is no -flto?
>
> The 4.6 consideration is irrelevant, I don't understand your question ...
> for disabled LTO you can't run bootstrap-lto ...
The problem is that you have .a library consisting of slim LTO objects and you link
with it during configure check without -flto.
In this case we do not run plugin and never notice that LTO objects are involved.
I think in linger run we should do it.
>
> > I guess you need to add that one then (rather than -fuse-linker-plugin).
> > Yep, we ought to enable plugin for default to make split LTO happy and probably can
> > drop LTO_PLUGIN versioning. Richi?
>
> I'd like to remove -fuse-linker-plugin and decide on its use at build
> time (like we decide on its default now). We should print a big fat
> warning when we disable its use (for whatever reason) - it's probably
> too late (or early ...) to remove non-linker-plugin LTO.
I would be also happy to see -fuse-linker-plugin and non-plugin path to go.
I think non-plugin needs to stay until darwin gets plugin support though
and the decisions depends on linker in use. At compile time we do not know
if user will choose or not to use linker enabled LD.
Honza