This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Enale -fno-fat-lto-objects by default


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]