http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47244
--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-11 14:03:29 UTC --- testing the following patch. Index: gcc.c =================================================================== --- gcc.c (revision 168655) +++ gcc.c (working copy) @@ -621,11 +621,18 @@ # 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 @@ -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\