lto-plugin.c (gold_version): New static variable.
authorIan Lance Taylor <iant@google.com>
Tue, 25 Jan 2011 15:29:02 +0000 (15:29 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 25 Jan 2011 15:29:02 +0000 (15:29 +0000)
* lto-plugin.c (gold_version): New static variable.
(all_symbols_read_handler): Don't check pass_through_items if
using gold 1.11 or later.
(onload): Set gold_version if we see LDPT_GOLD_VERSION.

From-SVN: r169237

lto-plugin/ChangeLog
lto-plugin/lto-plugin.c

index 4b1200289ede012c2ef2e2c67114d46a279fc5c7..bda47ec471fed3000d0a4029664afb1f45d5d1ce 100644 (file)
@@ -1,3 +1,10 @@
+2011-01-25  Ian Lance Taylor  <iant@google.com>
+
+       * lto-plugin.c (gold_version): New static variable.
+       (all_symbols_read_handler): Don't check pass_through_items if
+       using gold 1.11 or later.
+       (onload): Set gold_version if we see LDPT_GOLD_VERSION.
+
 2011-01-12  Richard Guenther  <rguenther@suse.de>
 
        PR lto/47264
index 2f422a3dd70d8aadf4b0bed7ce21b198778c1649..64a0164da3cf1766d03633eb475605ba5d348040 100644 (file)
@@ -152,6 +152,10 @@ static char debug;
 static char nop;
 static char *resolution_file = NULL;
 
+/* The version of gold being used, or -1 if not gold.  The number is
+   MAJOR * 100 + MINOR.  */
+static int gold_version = -1;
+
 /* Not used by default, but can be overridden at runtime
    by using -plugin-opt=-sym-style={none,win32,underscore|uscore}
    (in fact, only first letter of style arg is checked.)  */
@@ -622,7 +626,8 @@ all_symbols_read_handler (void)
 
   free (lto_argv);
 
-  if (pass_through_items)
+  /* --pass-through is not needed when using gold 1.11 or later.  */
+  if (pass_through_items && gold_version < 111)
     {
       unsigned int i;
       for (i = 0; i < num_pass_through_items; i++)
@@ -998,6 +1003,9 @@ onload (struct ld_plugin_tv *tv)
        case LDPT_OPTION:
          process_option (p->tv_u.tv_string);
          break;
+       case LDPT_GOLD_VERSION:
+         gold_version = p->tv_u.tv_val;
+         break;
        default:
          break;
        }