re PR driver/47244 (plugin linker is used unconditionally)

PR driver/47244
	* gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
	(PLUGIN_COND_CLOSE): New macro.
	(LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.

From-SVN: r168717
This commit is contained in:
Jan Hubicka 2011-01-12 16:47:29 +01:00 committed by Jan Hubicka
parent d559a7f87c
commit 56e22cab21
2 changed files with 19 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2011-01-12 Jan Hubicka <jh@suse.cz>
PR driver/47244
* gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
(PLUGIN_COND_CLOSE): New macro.
(LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
2011-01-12 Richard Guenther <rguenther@suse.de>
PR lto/47259

View File

@ -621,11 +621,18 @@ proper position among the other output files. */
# endif
#endif
/* Conditional to test whether plugin is used or not. */
/* Conditional to test whether plugin is used or not.
FIXME: For slim LTO we will need to enable plugin unconditionally. This
still cause problems with PLUGIN_LD != LD and when plugin is built but
not useable. For GCC 4.6 we don't support slim LTO and thus we can enable
plugin only when LTO is enabled. We still honor explicit
-fuse-linker-plugin. */
#ifdef HAVE_LTO_PLUGIN
#define PLUGIN_COND "!fno-use-linker-plugin"
#define PLUGIN_COND "!fno-use-linker-plugin:%{flto|flto=*|fuse-linker-plugin"
#define PLUGIN_COND_CLOSE "}"
#else
#define PLUGIN_COND "fuse-linker-plugin"
#define PLUGIN_COND_CLOSE ""
#endif
@ -646,9 +653,9 @@ proper position among the other output files. */
-plugin-opt=%(lto_wrapper) \
-plugin-opt=-fresolution=%u.res \
%{!nostdlib:%{!nodefaultlibs:%:pass-through-libs(%(link_gcc_c_sequence))}} \
} \
%{flto*:%<fcompare-debug*} \
%{flto*} %l " LINK_PIE_SPEC \
}"PLUGIN_COND_CLOSE" \
%{flto|flto=*:%<fcompare-debug*} \
%{flto} %{flto=*} %l " LINK_PIE_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\
%{static:} %{L*} %(mfwrap) %(link_libgcc) %o\