Rafael Espindola <espind...@google.com> writes: > Which can also be fixed by explicitly ignoring > OPT_fuse_linker_plugin. The attached patch does that. Any preferences?
This version is OK with a ChangeLog entry if it bootstraps. Since there have been several comments, please give people 24 hours to suggest changes. Thanks. Ian > diff --git a/gcc/common.opt b/gcc/common.opt > index b57234a..77967f8 100644 > --- a/gcc/common.opt > +++ b/gcc/common.opt > @@ -1391,6 +1391,9 @@ funwind-tables > Common Report Var(flag_unwind_tables) Optimization > Just generate unwind tables for exception handling > > +fuse-linker-plugin > +Common Undocumented > + > fvar-tracking > Common Report Var(flag_var_tracking) VarExists Optimization > Perform variable tracking > diff --git a/gcc/gcc.c b/gcc/gcc.c > index 78e0ce8..b033d62 100644 > --- a/gcc/gcc.c > +++ b/gcc/gcc.c > @@ -770,7 +770,7 @@ proper position among the other output files. */ > #define LINK_COMMAND_SPEC "\ > %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ > %(linker) \ > - %{use-linker-plugin: \ > + %{fuse-linker-plugin: \ > -plugin %(linker_plugin_file) \ > -plugin-opt=%(lto_wrapper) \ > -plugin-opt=%(lto_gcc) \ > @@ -7513,7 +7513,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A > PARTICULAR PURPOSE.\n\n" > if (num_linker_inputs > 0 && error_count == 0 && print_subprocess_help < 2) > { > int tmp = execution_count; > - const char *use_linker_plugin = "use-linker-plugin"; > + const char *fuse_linker_plugin = "fuse-linker-plugin"; > > /* We'll use ld if we can't find collect2. */ > if (! strcmp (linker_name_spec, "collect2")) > @@ -7523,14 +7523,14 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR > A PARTICULAR PURPOSE.\n\n" > linker_name_spec = "ld"; > } > > - if (switch_matches (use_linker_plugin, > - use_linker_plugin + strlen (use_linker_plugin), 0)) > + if (switch_matches (fuse_linker_plugin, > + fuse_linker_plugin + strlen (fuse_linker_plugin), 0)) > { > linker_plugin_file_spec = find_a_file (&exec_prefixes, > "liblto_plugin.so", X_OK, > false); > if (!linker_plugin_file_spec) > - fatal ("-use-linker-plugin, but liblto_plugin.so not found"); > + fatal ("-fuse-linker-plugin, but liblto_plugin.so not found"); > > lto_libgcc_spec = find_a_file (&startfile_prefixes, "libgcc.a", > R_OK, true); > diff --git a/gcc/opts.c b/gcc/opts.c > index 51a0cb9..72411b6 100644 > --- a/gcc/opts.c > +++ b/gcc/opts.c > @@ -2102,6 +2102,10 @@ common_handle_option (size_t scode, const char *arg, > int value, > /* These are no-ops, preserved for backward compatibility. */ > break; > > + case OPT_fuse_linker_plugin: > + /* No-op. Used by the driver and passed to us because it starts with > f.*/ > + break; > + > default: > /* If the flag was handled in a standard way, assume the lack of > processing here is intentional. */