GNU C Library master sources branch, fedora/master, updated. glibc-2.13-851-g630491d

schwab@sourceware.org schwab@sourceware.org
Mon Mar 7 16:53:00 GMT 2011


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, fedora/master has been updated
       via  630491da8ebd5291f94a39fe354738b940dcfea9 (commit)
       via  675155e9084e060fd0e1e637b843f14e82898aa5 (commit)
       via  3410712a0f8bc8e180f2888cf4615e681b1048fc (commit)
       via  6a5ee1029b3966c5ae9adaaa881e255b2880f511 (commit)
       via  7e4ba49cd365555ddaff2ae8bba7b912464ad6e5 (commit)
       via  13a804de8f3091e8ccd9b650f61becd6e1304227 (commit)
       via  9d25c392ba73065ac20f518d1cef1cdc96860545 (commit)
       via  a5543c6ad807f0b8ea793cb6d385f3dbeb0d98c5 (commit)
       via  012d35f7610b12b33d6c10a5159c55376f515993 (commit)
      from  265ac25612bee2df2459ccc403e82400377c28c6 (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=630491da8ebd5291f94a39fe354738b940dcfea9

commit 630491da8ebd5291f94a39fe354738b940dcfea9
Author: Andreas Schwab <schwab@redhat.com>
Date:   Mon Mar 7 12:02:00 2011 +0100

    2.13.90-6

diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 0ba78d4..f3487d0 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -21,7 +21,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: %{glibcversion}
-Release: 5
+Release: 6
 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
 # Things that are linked directly into dynamically linked programs
 # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -1039,6 +1039,13 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Mon Mar  7 2011 Andreas Schwab <schwab@redhat.com> - 2.13.90-6
+- Update from master
+  - Fix loading first object along a path when tracing
+  - Enable SSE2 memset for AMD'supcoming Orochi processor
+  - Don't read past end of buffer in fmemopen
+- Revert broken changes (#682307)
+
 * Wed Mar  2 2011 Andreas Schwab <schwab@redhat.com> - 2.13.90-5
 - Update from master
   - Fix memory leak in dlopen with RTLD_NOLOAD (BZ#12509)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=675155e9084e060fd0e1e637b843f14e82898aa5

commit 675155e9084e060fd0e1e637b843f14e82898aa5
Author: Andreas Schwab <schwab@redhat.com>
Date:   Wed Sep 22 12:06:30 2010 +0200

    Fix memory leak on init/fini dependency list

diff --git a/ChangeLog b/ChangeLog
index 17b9523..eb75e73 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -41,17 +41,10 @@
 	dependencies when there are none.
 
 2011-02-23  Andreas Schwab  <schwab@redhat.com>
-	    Ulrich Drepper  <drepper@gmail.com>
 
 	[BZ #12509]
-	* include/link.h (struct link_map): Add l_orig_initfini.
 	* elf/dl-load.c (_dl_map_object_from_fd): Free realname before
 	returning unsuccessfully.
-	* elf/dl-close.c (_dl_close_worker): If this is the last explicit
-	close of a file loaded at startup, restore the original l_initfini
-	list.
-	* elf/dl-deps.c (_dl_map_object_deps): Don't free old l_initfini
-	list, store the pointer.
 	* elf/Makefile ($(objpfx)noload-mem): New rule.
 	(noload-ENV): Define.
 	(tests): Add $(objpfx)noload-mem.
@@ -920,6 +913,13 @@
 
 2010-09-27  Andreas Schwab  <schwab@redhat.com>
 
+	* include/link.h (struct link_map): Add l_free_initfini.
+	* elf/dl-deps.c (_dl_map_object_deps): Set it when assigning
+	l_initfini.
+	* elf/rtld.c (dl_main): Clear it on all objects loaded on startup.
+	* elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is
+	set.
+
 	[BZ #11561]
 	* posix/regcomp.c (parse_bracket_exp): When looking up collating
 	elements compare against the byte sequence of it, not its name.
diff --git a/elf/dl-close.c b/elf/dl-close.c
index 73b2a2f..9bd91e3 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -1,5 +1,5 @@
 /* Close a shared object opened by `_dl_open'.
-   Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
   if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
       || dl_close_state != not_pending)
     {
-      if (map->l_direct_opencount == 0)
-	{
-	  if (map->l_type == lt_loaded)
-	    dl_close_state = rerun;
-	  else if (map->l_type == lt_library)
-	    {
-	      struct link_map **oldp = map->l_initfini;
-	      map->l_initfini = map->l_orig_initfini;
-	      _dl_scope_free (oldp);
-	    }
-	}
+      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
+	dl_close_state = rerun;
 
       /* There are still references to this object.  Do nothing more.  */
       if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 9e30594..3890d00 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
 		  nneeded * sizeof needed[0]);
 	  atomic_write_barrier ();
 	  l->l_initfini = l_initfini;
+	  l->l_free_initfini = 1;
 	}
 
       /* If we have no auxiliary objects just go on to the next map.  */
@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
   l_initfini[nlist] = NULL;
   atomic_write_barrier ();
   map->l_initfini = l_initfini;
+  map->l_free_initfini = 1;
   if (l_reldeps != NULL)
     {
       atomic_write_barrier ();
@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
       _dl_scope_free (old_l_reldeps);
     }
   if (old_l_initfini != NULL)
-      map->l_orig_initfini = old_l_initfini;
+    _dl_scope_free (old_l_initfini);
 }
diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index 7be9483..a13fce3 100644
--- a/elf/dl-libc.c
+++ b/elf/dl-libc.c
@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
 
   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
     {
-      /* Remove all additional names added to the objects.  */
       for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
 	{
 	  struct libname_list *lnp = l->l_libname->next;
 
 	  l->l_libname->next = NULL;
 
+	  /* Remove all additional names added to the objects.  */
 	  while (lnp != NULL)
 	    {
 	      struct libname_list *old = lnp;
@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
 	      if (! old->dont_free)
 		free (old);
 	    }
+
+	  /* Free the initfini dependency list.  */
+	  if (l->l_free_initfini)
+	    free (l->l_initfini);
 	}
 
       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
diff --git a/elf/rtld.c b/elf/rtld.c
index 4a9109e..617e30e 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
 	      lnp->dont_free = 1;
 	      lnp = lnp->next;
 	    }
+	  l->l_free_initfini = 0;
 
 	  if (l != &GL(dl_rtld_map))
 	    _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
diff --git a/include/link.h b/include/link.h
index e877104..051b99a 100644
--- a/include/link.h
+++ b/include/link.h
@@ -1,6 +1,6 @@
 /* Data structure for communication from the run-time dynamic linker for
    loaded ELF shared objects.
-   Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -192,6 +192,9 @@ struct link_map
 						 during LD_TRACE_PRELINKING=1
 						 contains any DT_SYMBOLIC
 						 libraries.  */
+    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
+				       freed, ie. not allocated with
+				       the dummy malloc in ld.so.  */
 
     /* Collected information about own RPATH directories.  */
     struct r_search_path_struct l_rpath_dirs;
@@ -240,9 +243,6 @@ struct link_map
 
     /* List of object in order of the init and fini calls.  */
     struct link_map **l_initfini;
-    /* The init and fini list generated at startup, saved when the
-       object is also loaded dynamically.  */
-    struct link_map **l_orig_initfini;
 
     /* List of the dependencies introduced through symbol binding.  */
     struct link_map_reldeps

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3410712a0f8bc8e180f2888cf4615e681b1048fc

commit 3410712a0f8bc8e180f2888cf4615e681b1048fc
Merge: 265ac25 6a5ee10
Author: Andreas Schwab <schwab@redhat.com>
Date:   Mon Mar 7 11:38:14 2011 +0100

    Merge remote-tracking branch 'origin/master' into fedora/master

diff --cc ChangeLog
index 727c7e5,f4750b1..17b9523
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,9 -1,39 +1,45 @@@
+ 2011-03-06  Ulrich Drepper  <drepper@gmail.com>
+ 
+ 	* elf/dl-load.c (_dl_map_object): If we are looking for the first
+ 	to-be-loaded object along a path to loader is ld.so.
+ 
+ 2011-03-02  Harsha Jagasia  <harsha.jagasia@amd.com>
+ 	    Ulrich Drepper  <drepper@gmail.com>
+ 
+ 	* sysdeps/x86_64/memset.S: After aligning destination, code
+ 	branches to different locations depending on the value of
+ 	misalignment, when multiarch is enabled. Fix this.
+ 
+ 2011-03-02  Harsha Jagasia  <harsha.jagasia@amd.com>
+ 
+ 	* sysdeps/x86_64/cacheinfo.c (init_cacheinfo):
+ 	Set _x86_64_preferred_memory_instruction for AMD processsors.
+ 	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+ 	Set bit_Prefer_SSE_for_memop for AMD processors.
+ 
+ 2011-03-04  Ulrich Drepper  <drepper@gmail.com>
+ 
+ 	* libio/fmemopen.c (fmemopen): Optimize a bit.
+ 
+ 2011-03-03  Andreas Schwab  <schwab@redhat.com>
+ 
+ 	* libio/fmemopen.c (fmemopen): Don't read past end of buffer.
+ 
+ 2011-03-03  Roland McGrath  <roland@redhat.com>
+ 
+ 	* setjmp/bits/setjmp2.h: Canonicalize comment formatting.
+ 
+ 2011-02-28  Aurelien Jarno  <aurelien@aurel32.net>
+ 
+ 	* sysdeps/sparc/sparc64/multiarch/memset.S(__bzero): Call
+ 	__bzero_ultra1 instead of __memset_ultra1.
+ 
 +2011-03-02  Andreas Schwab  <schwab@redhat.com>
 +
 +	[BZ #12454]
 +	* elf/dl-deps.c (_dl_map_object_deps): Don't try to sort
 +	dependencies when there are none.
 +
  2011-02-23  Andreas Schwab  <schwab@redhat.com>
  	    Ulrich Drepper  <drepper@gmail.com>
  

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

Summary of changes:
 ChangeLog                                |   50 +++++++++++++++++++---
 elf/dl-close.c                           |   15 +-----
 elf/dl-deps.c                            |    4 +-
 elf/dl-libc.c                            |    6 ++-
 elf/dl-load.c                            |    4 +-
 elf/rtld.c                               |    1 +
 fedora/glibc.spec.in                     |    9 ++++-
 include/link.h                           |    8 ++--
 libio/fmemopen.c                         |   13 +++---
 setjmp/bits/setjmp2.h                    |   34 +++++++-------
 sysdeps/sparc/sparc64/multiarch/memset.S |    4 +-
 sysdeps/x86_64/cacheinfo.c               |   49 +++++++++++++++-------
 sysdeps/x86_64/memset.S                  |   68 +++++++++++++++--------------
 sysdeps/x86_64/multiarch/init-arch.c     |   12 ++++-
 14 files changed, 175 insertions(+), 102 deletions(-)


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



More information about the Glibc-cvs mailing list