From e3bb089d5f7f4d615c3cf71acacbb89a89287a8e Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@google.com>
Date: Tue, 25 Jan 2011 15:29:02 +0000
Subject: [PATCH] lto-plugin.c (gold_version): New static variable.

	* 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    |  7 +++++++
 lto-plugin/lto-plugin.c | 10 +++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index 4b1200289ede..bda47ec471fe 100644
--- a/lto-plugin/ChangeLog
+++ b/lto-plugin/ChangeLog
@@ -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
diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
index 2f422a3dd70d..64a0164da3cf 100644
--- a/lto-plugin/lto-plugin.c
+++ b/lto-plugin/lto-plugin.c
@@ -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;
 	}
-- 
GitLab