aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-01-12 16:47:29 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2011-01-12 15:47:29 +0000
commit56e22cab21f64b500510118ae7705647bb56cce4 (patch)
tree854151fb4c00fe11201e919c9c91ad15f623500e /gcc/gcc.c
parentd559a7f87cb243acc9f80c716f3648186e2fe01f (diff)
downloadgcc-56e22cab21f64b500510118ae7705647bb56cce4.zip
gcc-56e22cab21f64b500510118ae7705647bb56cce4.tar.gz
gcc-56e22cab21f64b500510118ae7705647bb56cce4.tar.bz2
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
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 9532d7e..ea3403b 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -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\