]> git.pld-linux.org Git - packages/binutils.git/commitdiff
- fix --start/end-group vs. --whole-archive gold failure.
authorPaweł Sikora <pluto@pld-linux.org>
Thu, 2 Jun 2011 20:24:34 +0000 (20:24 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    binutils-pr12163.patch -> 1.1
    binutils.spec -> 1.339

binutils-pr12163.patch [new file with mode: 0644]
binutils.spec

diff --git a/binutils-pr12163.patch b/binutils-pr12163.patch
new file mode 100644 (file)
index 0000000..70c0873
--- /dev/null
@@ -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
index 57ef48d636a4d70dd2bf4ed60edc6852af18cb39..5fc59affeb3ffae39998bf6addbd7dc783542646 100644 (file)
@@ -34,6 +34,7 @@ Patch6:               %{name}-absolute-gnu_debuglink-path.patch
 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
@@ -154,6 +155,7 @@ niektórych pakietów.
 %patch7 -p1
 %patch8 -p0
 %patch9 -p1
+%patch10 -p1
 
 # file contains hacks for ac 2.59 only
 %{__rm} config/override.m4
This page took 0.154601 seconds and 4 git commands to generate.