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 _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit