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 <richard dot guenther at gmail dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Andreas Schwab <schwab at suse dot de>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 20 Nov 2013 15:23:38 +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> <mvmli0ji8wd dot fsf at hawking dot suse dot de> <20131120121256 dot GA12236 at kam dot mff dot cuni dot cz> <20131120123033 dot GB10503 at kam dot mff dot cuni dot cz> <20131120131205 dot GA5535 at kam dot mff dot cuni dot cz> <CAFiYyc2G43HHvMqzRWrG+C7Af=tZOmYhw-rbJ7gJ8MknZOUPXA at mail dot gmail dot com>
> On Wed, Nov 20, 2013 at 2:12 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
> > Hi,
> > this is version I commited - we need to intrdocue var for -fuse-linker-plugin
> > to be able to check it.
> >
> > I apologize for the breakage.
> > Honza
> >
> > * opts.c (finish_options): Imply -ffat-lto-objects with -fno-use-linker-plugin.
> > * common.opt (fuse-linker-plugin): Add var.
> > Index: opts.c
>
> Hmm, but that won't help for
>
> gcc -c t.c -flto
> gcc t.o -flto -fno-use-linker-plugin
>
> Isn't that the style how we invoke LTO tests? (ok we put in useless
> -fno-use-linker-plugin in compile stage, too)
We put -fno-use-linker-plugin everywhere and I think it is what I would expect
people would do, too - just drop -flto -fno-use-linker-plugin as new optimization
option.
>
> So in the end it'll be too fragile for users IMHO. I think we should
> disallow -fno-use-linker-plugin (if we decided to enable it by default
> then it won't fall back to no linker plugin but errors if we replace ld
> with something too old or remove plugin, right?).
On plugin enabled setups, I think only value of -fno-use-linker-plugin
is to allow us to test the other code path.
Perhaps we can declare it undocumented and for internal use only?
Honza
>
> Richard.
>
> >===================================================================
> > --- opts.c (revision 205108)
> > +++ opts.c (working copy)
> > @@ -809,10 +809,13 @@ finish_options (struct gcc_options *opts
> > #else
> > error_at (loc, "LTO support has not been enabled in this configuration");
> > #endif
> > - if (!opts->x_flag_fat_lto_objects && !HAVE_LTO_PLUGIN)
> > + if (!opts->x_flag_fat_lto_objects
> > + && (!HAVE_LTO_PLUGIN
> > + || (opts_set->x_flag_use_linker_plugin
> > + && !opts->x_flag_use_linker_plugin)))
> > {
> > if (opts_set->x_flag_fat_lto_objects)
> > - error_at (loc, "-fno-fat-lto-objects are supported only with linker plugin.");
> > + error_at (loc, "-fno-fat-lto-objects are supported only with linker plugin");
> > opts->x_flag_fat_lto_objects = 1;
> > }
> > }
> > Index: common.opt
> > ===================================================================
> > --- common.opt (revision 205108)
> > +++ common.opt (working copy)
> > @@ -2247,7 +2247,7 @@ Common Negative(fuse-ld=bfd)
> > Use the gold linker instead of the default linker
> >
> > fuse-linker-plugin
> > -Common Undocumented
> > +Common Undocumented Var(flag_use_linker_plugin)
> >
> > ; Positive if we should track variables, negative if we should run
> > ; the var-tracking pass only to discard debug annotations, zero if