* -use-linker-plugin passed to ld @ 2009-10-23 15:02 Ian Lance Taylor 2009-10-23 15:45 ` Rafael Espindola 0 siblings, 1 reply; 17+ messages in thread From: Ian Lance Taylor @ 2009-10-23 15:02 UTC (permalink / raw) To: gcc; +Cc: espindola I noticed that the -use-linker-plugin option seems to be passed to the linker. This is because LINK_COMMAND_SPEC includes %{u*}. And that is because -uSYMBOL is a documented linker option. The effect is that the linker creates an undefined reference to the symbol "se-linker-plugin". Any user unfortunate enough to link against a library which contains a definition of that symbol may see an unexpected result. Admittedly unlikely, but still. I think we need to fix this option before the release to not overlap with any existing linker options. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-23 15:02 -use-linker-plugin passed to ld Ian Lance Taylor @ 2009-10-23 15:45 ` Rafael Espindola 2009-10-23 16:49 ` Rafael Espindola 0 siblings, 1 reply; 17+ messages in thread From: Rafael Espindola @ 2009-10-23 15:45 UTC (permalink / raw) To: Ian Lance Taylor; +Cc: gcc 2009/10/23 Ian Lance Taylor <iant@google.com>: > I noticed that the -use-linker-plugin option seems to be passed to the > linker. This is because LINK_COMMAND_SPEC includes %{u*}. And that > is because -uSYMBOL is a documented linker option. > > The effect is that the linker creates an undefined reference to the > symbol "se-linker-plugin". Any user unfortunate enough to link > against a library which contains a definition of that symbol may see > an unexpected result. Admittedly unlikely, but still. > > I think we need to fix this option before the release to not overlap > with any existing linker options. Working on it. > Ian > Cheers, -- Rafael Ávila de Espíndola ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-23 15:45 ` Rafael Espindola @ 2009-10-23 16:49 ` Rafael Espindola 2009-10-23 18:45 ` Ian Lance Taylor 0 siblings, 1 reply; 17+ messages in thread From: Rafael Espindola @ 2009-10-23 16:49 UTC (permalink / raw) To: Ian Lance Taylor; +Cc: gcc [-- Attachment #1: Type: text/plain, Size: 366 bytes --] > Working on it. The attached patch solves the problem. It is not very elegant to remove -use-linker-plugin from the command line, but it is not used after linking. 2009-10-23 Rafael Avila de Espindola <espindola@google.com> * gcc.c (LINK_COMMAND_SPEC): Remove -use-linker-plugin from the command line. Cheers, -- Rafael Ávila de Espíndola [-- Attachment #2: use-linker-plugin.patch --] [-- Type: text/x-diff, Size: 652 bytes --] diff --git a/gcc/gcc.c b/gcc/gcc.c index 78e0ce8..78ffb0d 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -782,7 +782,8 @@ proper position among the other output files. */ } \ %{flto} %{fwhopr} %l " LINK_PIE_SPEC \ "%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}\ - %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\ + %{s} %{t} %<use-linker-plugin \ + %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}} \ %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\ %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)} %(mflib)\ %{fprofile-arcs|fprofile-generate*|coverage:-lgcov}\ ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-23 16:49 ` Rafael Espindola @ 2009-10-23 18:45 ` Ian Lance Taylor 2009-10-23 19:00 ` Steven Bosscher 0 siblings, 1 reply; 17+ messages in thread From: Ian Lance Taylor @ 2009-10-23 18:45 UTC (permalink / raw) To: Rafael Espindola; +Cc: gcc Rafael Espindola <espindola@google.com> writes: > 2009-10-23 Rafael Avila de Espindola <espindola@google.com> > > * gcc.c (LINK_COMMAND_SPEC): Remove -use-linker-plugin from the command > line. This is OK if it passes bootstrap and if nobody objects in 24 hours. Thanks. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-23 18:45 ` Ian Lance Taylor @ 2009-10-23 19:00 ` Steven Bosscher 2009-10-23 19:07 ` Ian Lance Taylor 0 siblings, 1 reply; 17+ messages in thread From: Steven Bosscher @ 2009-10-23 19:00 UTC (permalink / raw) To: Ian Lance Taylor; +Cc: Rafael Espindola, gcc On Fri, Oct 23, 2009 at 8:21 PM, Ian Lance Taylor <iant@google.com> wrote: > Rafael Espindola <espindola@google.com> writes: > >> 2009-10-23 Rafael Avila de Espindola <espindola@google.com> >> >> * gcc.c (LINK_COMMAND_SPEC): Remove -use-linker-plugin from the command >> line. > > This is OK if it passes bootstrap and if nobody objects in 24 hours. I was just wondering why this is not a -f* flag, e.g. -fuse-linker-plugin? Ciao! Steven ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-23 19:00 ` Steven Bosscher @ 2009-10-23 19:07 ` Ian Lance Taylor 2009-10-24 4:26 ` Rafael Espindola 2009-10-26 23:27 ` Hans-Peter Nilsson 0 siblings, 2 replies; 17+ messages in thread From: Ian Lance Taylor @ 2009-10-23 19:07 UTC (permalink / raw) To: Steven Bosscher; +Cc: Rafael Espindola, gcc Steven Bosscher <stevenb.gcc@gmail.com> writes: > On Fri, Oct 23, 2009 at 8:21 PM, Ian Lance Taylor <iant@google.com> wrote: >> Rafael Espindola <espindola@google.com> writes: >> >>> 2009-10-23 Rafael Avila de Espindola <espindola@google.com> >>> >>> * gcc.c (LINK_COMMAND_SPEC): Remove -use-linker-plugin from the command >>> line. >> >> This is OK if it passes bootstrap and if nobody objects in 24 hours. > > > I was just wondering why this is not a -f* flag, e.g. -fuse-linker-plugin? I thought about that too, but a -f flag would be passed to the middle-end, where it does not make any sense. We could make it a -f flag anyhow, of course, and just explicitly ignore it in the middle-end. Any opinions on the best user interface for this? Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-23 19:07 ` Ian Lance Taylor @ 2009-10-24 4:26 ` Rafael Espindola 2009-10-26 23:27 ` Hans-Peter Nilsson 1 sibling, 0 replies; 17+ messages in thread From: Rafael Espindola @ 2009-10-24 4:26 UTC (permalink / raw) To: Ian Lance Taylor; +Cc: Steven Bosscher, gcc > I thought about that too, but a -f flag would be passed to the > middle-end, where it does not make any sense. We could make it a -f > flag anyhow, of course, and just explicitly ignore it in the > middle-end. > > Any opinions on the best user interface for this? From an user interface point of view I have no preferences for -fuse-linker-plugin or -use-linker-plugin. I don't like the idea of ignoring -fuse-linker-plugin on the compilers (cc1/cc1plus/...). We should probably filter it on the driver. From an implementation point of view it is easier to avoid -use-linker-plugin being passed to the linker than it is to avoid -fuse-linker-plugin being passed to the compilers. The reason is that we don't need the option after linking, so we can just use %< to filter it out. With -f I think we would have to record it in a variable and use that in the spec. BTW, a bootstrap with the original patch attached finished successfully. > Ian > Cheers, -- Rafael Ávila de Espíndola ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-23 19:07 ` Ian Lance Taylor 2009-10-24 4:26 ` Rafael Espindola @ 2009-10-26 23:27 ` Hans-Peter Nilsson 2009-10-27 6:09 ` Daniel Jacobowitz 1 sibling, 1 reply; 17+ messages in thread From: Hans-Peter Nilsson @ 2009-10-26 23:27 UTC (permalink / raw) To: Ian Lance Taylor; +Cc: Steven Bosscher, Rafael Espindola, gcc On Fri, 23 Oct 2009, Ian Lance Taylor wrote: > Steven Bosscher <stevenb.gcc@gmail.com> writes: > > I was just wondering why this is not a -f* flag, e.g. -fuse-linker-plugin? > Any opinions on the best user interface for this? The color that spells -fuse-linker-plugin seems better, in line with other options. How it's implemented, especially regarding having to ignore it in middle-end is unimportant wrt. spelling, IMVHO. brgds, H-P ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-26 23:27 ` Hans-Peter Nilsson @ 2009-10-27 6:09 ` Daniel Jacobowitz 2009-10-27 15:55 ` Rafael Espindola 0 siblings, 1 reply; 17+ messages in thread From: Daniel Jacobowitz @ 2009-10-27 6:09 UTC (permalink / raw) To: Hans-Peter Nilsson Cc: Ian Lance Taylor, Steven Bosscher, Rafael Espindola, gcc On Mon, Oct 26, 2009 at 06:10:06PM -0400, Hans-Peter Nilsson wrote: > On Fri, 23 Oct 2009, Ian Lance Taylor wrote: > > Steven Bosscher <stevenb.gcc@gmail.com> writes: > > > I was just wondering why this is not a -f* flag, e.g. -fuse-linker-plugin? > > Any opinions on the best user interface for this? > > The color that spells -fuse-linker-plugin seems better, in line > with other options. How it's implemented, especially regarding > having to ignore it in middle-end is unimportant wrt. spelling, > IMVHO. I agree with H-P. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 6:09 ` Daniel Jacobowitz @ 2009-10-27 15:55 ` Rafael Espindola 2009-10-27 16:45 ` Andreas Schwab 0 siblings, 1 reply; 17+ messages in thread From: Rafael Espindola @ 2009-10-27 15:55 UTC (permalink / raw) To: Hans-Peter Nilsson, Ian Lance Taylor, Steven Bosscher, Rafael Espindola, gcc [-- Attachment #1: Type: text/plain, Size: 263 bytes --] > I agree with H-P. The attached patch implements that. Tested that it is ignored by cc1 and not passed to the linker. OK with a CL entry if bootstrap finishes OK? > -- > Daniel Jacobowitz > CodeSourcery > Cheers, -- Rafael Ávila de Espíndola [-- Attachment #2: fuse-linker-plugin.patch --] [-- Type: text/x-diff, Size: 2112 bytes --] diff --git a/gcc/common.opt b/gcc/common.opt index b57234a..9e4cf12 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1391,6 +1391,11 @@ funwind-tables Common Report Var(flag_unwind_tables) Optimization Just generate unwind tables for exception handling +fuse-linker-plugin +Common Var(flag_use_linker_plugin) +Ignored. Is is used by the driver, but passed to the compiler because it starts +with an f. + 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); ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 15:55 ` Rafael Espindola @ 2009-10-27 16:45 ` Andreas Schwab 2009-10-27 17:01 ` Ian Lance Taylor 2009-10-27 17:22 ` Rafael Espindola 0 siblings, 2 replies; 17+ messages in thread From: Andreas Schwab @ 2009-10-27 16:45 UTC (permalink / raw) To: Rafael Espindola Cc: Hans-Peter Nilsson, Ian Lance Taylor, Steven Bosscher, gcc Rafael Espindola <espindola@google.com> writes: > diff --git a/gcc/common.opt b/gcc/common.opt > index b57234a..9e4cf12 100644 > --- a/gcc/common.opt > +++ b/gcc/common.opt > @@ -1391,6 +1391,11 @@ funwind-tables > Common Report Var(flag_unwind_tables) Optimization > Just generate unwind tables for exception handling > > +fuse-linker-plugin > +Common Var(flag_use_linker_plugin) > +Ignored. Is is used by the driver, but passed to the compiler because it starts > +with an f. Perhaps this should be an Undocumented option. I don't think you need a Var anyway. Andreas. -- Andreas Schwab, schwab@redhat.com GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84 5EC7 45C6 250E 6F00 984E "And now for something completely different." ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 16:45 ` Andreas Schwab @ 2009-10-27 17:01 ` Ian Lance Taylor 2009-10-27 17:22 ` Rafael Espindola 1 sibling, 0 replies; 17+ messages in thread From: Ian Lance Taylor @ 2009-10-27 17:01 UTC (permalink / raw) To: Andreas Schwab; +Cc: Rafael Espindola, Hans-Peter Nilsson, Steven Bosscher, gcc Andreas Schwab <schwab@redhat.com> writes: > Rafael Espindola <espindola@google.com> writes: > >> diff --git a/gcc/common.opt b/gcc/common.opt >> index b57234a..9e4cf12 100644 >> --- a/gcc/common.opt >> +++ b/gcc/common.opt >> @@ -1391,6 +1391,11 @@ funwind-tables >> Common Report Var(flag_unwind_tables) Optimization >> Just generate unwind tables for exception handling >> >> +fuse-linker-plugin >> +Common Var(flag_use_linker_plugin) >> +Ignored. Is is used by the driver, but passed to the compiler because it starts >> +with an f. > > Perhaps this should be an Undocumented option. I don't think you need a > Var anyway. Agreed on both counts. Ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 16:45 ` Andreas Schwab 2009-10-27 17:01 ` Ian Lance Taylor @ 2009-10-27 17:22 ` Rafael Espindola 2009-10-27 17:24 ` Rafael Espindola 2009-10-27 18:23 ` Andrew Pinski 1 sibling, 2 replies; 17+ messages in thread From: Rafael Espindola @ 2009-10-27 17:22 UTC (permalink / raw) To: Andreas Schwab; +Cc: Hans-Peter Nilsson, Ian Lance Taylor, Steven Bosscher, gcc [-- Attachment #1: Type: text/plain, Size: 318 bytes --] > Perhaps this should be an Undocumented option. I don't think you need a > Var anyway. Without the Var it fails with cc1: internal compiler error: in common_handle_option, at opts.c:2108 The attached patch changes the option to Undocumented. > Andreas. > Cheers, -- Rafael Ávila de Espíndola [-- Attachment #2: fuse-linker-plugin.patch --] [-- Type: text/x-diff, Size: 2031 bytes --] diff --git a/gcc/common.opt b/gcc/common.opt index b57234a..c2452b8 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 Var(flag_use_linker_plugin) + 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); ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 17:22 ` Rafael Espindola @ 2009-10-27 17:24 ` Rafael Espindola 2009-10-27 19:50 ` Ian Lance Taylor 2009-10-27 18:23 ` Andrew Pinski 1 sibling, 1 reply; 17+ messages in thread From: Rafael Espindola @ 2009-10-27 17:24 UTC (permalink / raw) To: Andreas Schwab; +Cc: Hans-Peter Nilsson, Ian Lance Taylor, Steven Bosscher, gcc [-- Attachment #1: Type: text/plain, Size: 276 bytes --] > Without the Var it fails with > > cc1: internal compiler error: in common_handle_option, at opts.c:2108 Which can also be fixed by explicitly ignoring OPT_fuse_linker_plugin. The attached patch does that. Any preferences? Cheers, -- Rafael Ávila de Espíndola [-- Attachment #2: fuse-linker-plugin.patch --] [-- Type: text/x-diff, Size: 2533 bytes --] 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. */ ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 17:24 ` Rafael Espindola @ 2009-10-27 19:50 ` Ian Lance Taylor 0 siblings, 0 replies; 17+ messages in thread From: Ian Lance Taylor @ 2009-10-27 19:50 UTC (permalink / raw) To: Rafael Espindola; +Cc: Andreas Schwab, Hans-Peter Nilsson, Steven Bosscher, gcc Rafael Espindola <espindola@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. */ ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 17:22 ` Rafael Espindola 2009-10-27 17:24 ` Rafael Espindola @ 2009-10-27 18:23 ` Andrew Pinski 2009-10-27 18:54 ` Rafael Espindola 1 sibling, 1 reply; 17+ messages in thread From: Andrew Pinski @ 2009-10-27 18:23 UTC (permalink / raw) To: Rafael Espindola Cc: Andreas Schwab, Hans-Peter Nilsson, Ian Lance Taylor, Steven Bosscher, gcc Sent from my iPhone On Oct 27, 2009, at 10:13 AM, Rafael Espindola <espindola@google.com> wrote: >> Perhaps this should be an Undocumented option. I don't think you >> need a >> Var anyway. > > Without the Var it fails with > > cc1: internal compiler error: in common_handle_option, at opts.c:2108 Then what about adding to that switch statement that it is already handled by the specs? > > The attached patch changes the option to Undocumented. > >> Andreas. >> > > Cheers, > -- > Rafael Ávila de Espíndola > <fuse-linker-plugin.patch> ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: -use-linker-plugin passed to ld 2009-10-27 18:23 ` Andrew Pinski @ 2009-10-27 18:54 ` Rafael Espindola 0 siblings, 0 replies; 17+ messages in thread From: Rafael Espindola @ 2009-10-27 18:54 UTC (permalink / raw) To: Andrew Pinski Cc: Andreas Schwab, Hans-Peter Nilsson, Ian Lance Taylor, Steven Bosscher, gcc > Then what about adding to that switch statement that it is already handled > by the specs? That is what the last version does. Cheers, -- Rafael Ávila de Espíndola ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2009-10-27 18:23 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-10-23 15:02 -use-linker-plugin passed to ld Ian Lance Taylor 2009-10-23 15:45 ` Rafael Espindola 2009-10-23 16:49 ` Rafael Espindola 2009-10-23 18:45 ` Ian Lance Taylor 2009-10-23 19:00 ` Steven Bosscher 2009-10-23 19:07 ` Ian Lance Taylor 2009-10-24 4:26 ` Rafael Espindola 2009-10-26 23:27 ` Hans-Peter Nilsson 2009-10-27 6:09 ` Daniel Jacobowitz 2009-10-27 15:55 ` Rafael Espindola 2009-10-27 16:45 ` Andreas Schwab 2009-10-27 17:01 ` Ian Lance Taylor 2009-10-27 17:22 ` Rafael Espindola 2009-10-27 17:24 ` Rafael Espindola 2009-10-27 19:50 ` Ian Lance Taylor 2009-10-27 18:23 ` Andrew Pinski 2009-10-27 18:54 ` Rafael Espindola
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).