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