packages: binutils/binutils.spec, binutils/binutils-pr12163.patch (NEW) - f...

pluto pluto at pld-linux.org
Thu Jun 2 22:24:39 CEST 2011


Author: pluto                        Date: Thu Jun  2 20:24:39 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fix --start/end-group vs. --whole-archive gold failure.

---- Files affected:
packages/binutils:
   binutils.spec (1.338 -> 1.339) , binutils-pr12163.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/binutils/binutils.spec
diff -u packages/binutils/binutils.spec:1.338 packages/binutils/binutils.spec:1.339
--- packages/binutils/binutils.spec:1.338	Thu Jun  2 21:21:58 2011
+++ packages/binutils/binutils.spec	Thu Jun  2 22:24:34 2011
@@ -35,6 +35,7 @@
 Patch7:		%{name}-libtool-m.patch
 Patch8:		%{name}-build-id.patch
 Patch9:		%{name}-tooldir.patch
+Patch10:	%{name}-pr12163.patch
 URL:		http://sources.redhat.com/binutils/
 BuildRequires:	autoconf >= 2.64
 BuildRequires:	automake >= 1:1.11
@@ -155,6 +156,7 @@
 %patch7 -p1
 %patch8 -p0
 %patch9 -p1
+%patch10 -p1
 
 # file contains hacks for ac 2.59 only
 %{__rm} config/override.m4
@@ -350,6 +352,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.339  2011/06/02 20:24:34  pluto
+- fix --start/end-group vs. --whole-archive gold failure.
+
 Revision 1.338  2011/06/02 19:21:58  arekm
 - default ld for now (we will switch to gold by default at the same time when we switch to gcc 4.6.1)
 

================================================================
Index: packages/binutils/binutils-pr12163.patch
diff -u /dev/null packages/binutils/binutils-pr12163.patch:1.1
--- /dev/null	Thu Jun  2 22:24:39 2011
+++ packages/binutils/binutils-pr12163.patch	Thu Jun  2 22:24:34 2011
@@ -0,0 +1,37 @@
+--- a/gold/archive.cc	
++++ a/gold/archive.cc	
+@@ -179,7 +179,8 @@ Archive::Archive(const std::string& name, Input_file* input_file,
+   : Library_base(task), name_(name), input_file_(input_file), armap_(),
+     armap_names_(), extended_names_(), armap_checked_(), seen_offsets_(),
+     members_(), is_thin_archive_(is_thin_archive), included_member_(false),
+-    nested_archives_(), dirpath_(dirpath), num_members_(0)
++    nested_archives_(), dirpath_(dirpath), num_members_(0),
++    included_all_members_(false)
+ {
+   this->no_export_ =
+     parameters->options().check_excluded_libs(input_file->found_name());
+@@ -847,6 +848,13 @@ bool
+ Archive::include_all_members(Symbol_table* symtab, Layout* layout,
+                              Input_objects* input_objects, Mapfile* mapfile)
+ {
++  // Don't include the same archive twice.  This can happen if
++  // --whole-archive is nested inside --start-group (PR gold/12163).
++  if (this->included_all_members_)
++    return true;
++
++  this->included_all_members_ = true;
++
+   input_objects->archive_start(this);
+ 
+   if (this->members_.size() > 0)
+--- a/gold/archive.h	
++++ a/gold/archive.h	
+@@ -405,6 +405,8 @@ class Archive : public Library_base
+   unsigned int num_members_;
+   // True if we exclude this library archive from automatic export.
+   bool no_export_;
++  // True if this library has been included as a --whole-archive.
++  bool included_all_members_;
+ };
+ 
+ // This class is used to read an archive and pick out the desired
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/binutils/binutils.spec?r1=1.338&r2=1.339&f=u



More information about the pld-cvs-commit mailing list