This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.14-397-gd45c60c


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  d45c60c2feb38d95e7ad95af6edb39a6d5afba81 (commit)
      from  855d156018a701b3613eb4b14ab3bd09fd12f0a3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d45c60c2feb38d95e7ad95af6edb39a6d5afba81

commit d45c60c2feb38d95e7ad95af6edb39a6d5afba81
Author: Andreas Schwab <schwab@redhat.com>
Date:   Wed Oct 19 17:13:56 2011 +0200

    Preserve link time dependencies over relocation dependencies

diff --git a/ChangeLog b/ChangeLog
index ba2ff4c..c076b36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-10-20  Andreas Schwab  <schwab@redhat.com>
+
+	[BZ #12892]
+	* elf/dl-fini.c (_dl_sort_fini): Ignore relocation dependency if
+	it would create a cycle with a link time dependency.
+
 2011-10-19  Ulrich Drepper  <drepper@gmail.com>
 
 	* sysdeps/x86_64/multiarch/rawmemchr.S: Small optimization to safe an
diff --git a/NEWS b/NEWS
index a4b59f1..5e55ade 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2011-10-19
+GNU C Library NEWS -- history of user-visible changes.  2011-10-20
 Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -9,9 +9,9 @@ Version 2.15
 
 * The following bugs are resolved with this release:
 
-  6779, 6783, 9696, 11589, 12403, 12847, 12868, 12852, 12874, 12885, 12907,
-  12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114, 13118,
-  13123, 13134, 13138, 13150, 13179, 13192, 13268, 13291
+  6779, 6783, 9696, 11589, 12403, 12847, 12868, 12852, 12874, 12885, 12892,
+  12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114,
+  13118, 13123, 13134, 13138, 13150, 13179, 13192, 13268, 13291
 
 * New program pldd to list loaded object of a process
   Implemented by Ulrich Drepper.
diff --git a/elf/dl-fini.c b/elf/dl-fini.c
index bafc83a..6df80ef 100644
--- a/elf/dl-fini.c
+++ b/elf/dl-fini.c
@@ -100,7 +100,17 @@ _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns)
 	      /* Look through the relocation dependencies of the object.  */
 	      while (m-- > 0)
 		if (__builtin_expect (relmaps[m] == thisp, 0))
-		  goto move;
+		  {
+		    /* If a cycle exists with a link time dependency,
+		       preserve the latter.  */
+		    struct link_map **runp = thisp->l_initfini;
+		    if (runp != NULL)
+		      while (*runp != NULL)
+			if (__builtin_expect (*runp++ == maps[k], 0))
+			  goto ignore;
+		    goto move;
+		  }
+	    ignore:;
 	    }
 
 	  --k;

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog     |    6 ++++++
 NEWS          |    8 ++++----
 elf/dl-fini.c |   12 +++++++++++-
 3 files changed, 21 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]