GNU C Library master sources branch, master, updated. glibc-2.12-160-g09fad1a

drepper@sourceware.org drepper@sourceware.org
Tue Sep 21 20:55:00 GMT 2010


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  09fad1a61127ab567b8a994314d19e0eefa2d283 (commit)
       via  56801c50d497685de85b1901193c9c79fadb513c (commit)
      from  dda51327baa01c8e5c188a9952317396bb5569b1 (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=09fad1a61127ab567b8a994314d19e0eefa2d283

commit 09fad1a61127ab567b8a994314d19e0eefa2d283
Author: Ulrich Drepper <drepper@gmail.com>
Date:   Tue Sep 21 13:53:31 2010 -0700

    Whitespace cleanup.

diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index 771c9c1..7be9483 100644
--- a/elf/dl-libc.c
+++ b/elf/dl-libc.c
@@ -299,7 +299,7 @@ libc_freeres_fn (free_mem)
 
 	  /* Now free the old map.  */
 	  free (old);
-	}      
+	}
     }
 
   if (USE___THREAD || GL(dl_tls_dtv_slotinfo_list) != NULL)

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

commit 56801c50d497685de85b1901193c9c79fadb513c
Author: Andreas Schwab <schwab@redhat.com>
Date:   Tue Sep 21 13:52:12 2010 -0700

    Move freeres function from ld.so to libc.so.

diff --git a/ChangeLog b/ChangeLog
index 34af34d..cd48489 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-16  Andreas Schwab  <schwab@redhat.com>
+
+	* elf/dl-close.c (free_slotinfo, free_mem): Move to...
+	* elf/dl-libc.c (free_slotinfo, free_mem): ... here.
+
 2010-09-21  Ulrich Drepper  <drepper@redhat.com>
 
 	[BZ #12037]
diff --git a/elf/dl-close.c b/elf/dl-close.c
index 286d67c..f6d8dd3 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -748,77 +748,3 @@ _dl_close (void *_map)
 
   __rtld_lock_unlock_recursive (GL(dl_load_lock));
 }
-
-
-static bool __libc_freeres_fn_section
-free_slotinfo (struct dtv_slotinfo_list **elemp)
-{
-  size_t cnt;
-
-  if (*elemp == NULL)
-    /* Nothing here, all is removed (or there never was anything).  */
-    return true;
-
-  if (!free_slotinfo (&(*elemp)->next))
-    /* We cannot free the entry.  */
-    return false;
-
-  /* That cleared our next pointer for us.  */
-
-  for (cnt = 0; cnt < (*elemp)->len; ++cnt)
-    if ((*elemp)->slotinfo[cnt].map != NULL)
-      /* Still used.  */
-      return false;
-
-  /* We can remove the list element.  */
-  free (*elemp);
-  *elemp = NULL;
-
-  return true;
-}
-
-
-libc_freeres_fn (free_mem)
-{
-  for (Lmid_t nsid = 0; nsid < GL(dl_nns); ++nsid)
-    if (__builtin_expect (GL(dl_ns)[nsid]._ns_global_scope_alloc, 0) != 0
-	&& (GL(dl_ns)[nsid]._ns_main_searchlist->r_nlist
-	    // XXX Check whether we need NS-specific initial_searchlist
-	    == GLRO(dl_initial_searchlist).r_nlist))
-      {
-	/* All object dynamically loaded by the program are unloaded.  Free
-	   the memory allocated for the global scope variable.  */
-	struct link_map **old = GL(dl_ns)[nsid]._ns_main_searchlist->r_list;
-
-	/* Put the old map in.  */
-	GL(dl_ns)[nsid]._ns_main_searchlist->r_list
-	  // XXX Check whether we need NS-specific initial_searchlist
-	  = GLRO(dl_initial_searchlist).r_list;
-	/* Signal that the original map is used.  */
-	GL(dl_ns)[nsid]._ns_global_scope_alloc = 0;
-
-	/* Now free the old map.  */
-	free (old);
-      }
-
-  if (USE___THREAD || GL(dl_tls_dtv_slotinfo_list) != NULL)
-    {
-      /* Free the memory allocated for the dtv slotinfo array.  We can do
-	 this only if all modules which used this memory are unloaded.  */
-#ifdef SHARED
-      if (GL(dl_initial_dtv) == NULL)
-	/* There was no initial TLS setup, it was set up later when
-	   it used the normal malloc.  */
-	free_slotinfo (&GL(dl_tls_dtv_slotinfo_list));
-      else
-#endif
-	/* The first element of the list does not have to be deallocated.
-	   It was allocated in the dynamic linker (i.e., with a different
-	   malloc), and in the static library it's in .bss space.  */
-	free_slotinfo (&GL(dl_tls_dtv_slotinfo_list)->next);
-    }
-
-  void *scope_free_list = GL(dl_scope_free_list);
-  GL(dl_scope_free_list) = NULL;
-  free (scope_free_list);
-}
diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index 5e303f2..771c9c1 100644
--- a/elf/dl-libc.c
+++ b/elf/dl-libc.c
@@ -1,5 +1,5 @@
 /* Handle loading and unloading shared objects for internal libc purposes.
-   Copyright (C) 1999-2002,2004,2005,2006,2009 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002,2004-2006,2009,2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Zack Weinberg <zack@rabi.columbia.edu>, 1999.
 
@@ -221,6 +221,34 @@ __libc_dlclose (void *map)
 libc_hidden_def (__libc_dlclose)
 
 
+static bool __libc_freeres_fn_section
+free_slotinfo (struct dtv_slotinfo_list **elemp)
+{
+  size_t cnt;
+
+  if (*elemp == NULL)
+    /* Nothing here, all is removed (or there never was anything).  */
+    return true;
+
+  if (!free_slotinfo (&(*elemp)->next))
+    /* We cannot free the entry.  */
+    return false;
+
+  /* That cleared our next pointer for us.  */
+
+  for (cnt = 0; cnt < (*elemp)->len; ++cnt)
+    if ((*elemp)->slotinfo[cnt].map != NULL)
+      /* Still used.  */
+      return false;
+
+  /* We can remove the list element.  */
+  free (*elemp);
+  *elemp = NULL;
+
+  return true;
+}
+
+
 libc_freeres_fn (free_mem)
 {
   struct link_map *l;
@@ -235,20 +263,63 @@ libc_freeres_fn (free_mem)
       free (old);
     }
 
-  /* Remove all additional names added to the objects.  */
   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
-    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;
-
-	while (lnp != NULL)
-	  {
-	    struct libname_list *old = lnp;
-	    lnp = lnp->next;
-	    if (! old->dont_free)
-	    free (old);
-	  }
-      }
+    {
+      /* 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;
+
+	  while (lnp != NULL)
+	    {
+	      struct libname_list *old = lnp;
+	      lnp = lnp->next;
+	      if (! old->dont_free)
+		free (old);
+	    }
+	}
+
+      if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+	  && (GL(dl_ns)[ns]._ns_main_searchlist->r_nlist
+	      // XXX Check whether we need NS-specific initial_searchlist
+	      == GLRO(dl_initial_searchlist).r_nlist))
+	{
+	  /* All object dynamically loaded by the program are unloaded.  Free
+	     the memory allocated for the global scope variable.  */
+	  struct link_map **old = GL(dl_ns)[ns]._ns_main_searchlist->r_list;
+
+	  /* Put the old map in.  */
+	  GL(dl_ns)[ns]._ns_main_searchlist->r_list
+	    // XXX Check whether we need NS-specific initial_searchlist
+	    = GLRO(dl_initial_searchlist).r_list;
+	  /* Signal that the original map is used.  */
+	  GL(dl_ns)[ns]._ns_global_scope_alloc = 0;
+
+	  /* Now free the old map.  */
+	  free (old);
+	}      
+    }
+
+  if (USE___THREAD || GL(dl_tls_dtv_slotinfo_list) != NULL)
+    {
+      /* Free the memory allocated for the dtv slotinfo array.  We can do
+	 this only if all modules which used this memory are unloaded.  */
+#ifdef SHARED
+      if (GL(dl_initial_dtv) == NULL)
+	/* There was no initial TLS setup, it was set up later when
+	   it used the normal malloc.  */
+	free_slotinfo (&GL(dl_tls_dtv_slotinfo_list));
+      else
+#endif
+	/* The first element of the list does not have to be deallocated.
+	   It was allocated in the dynamic linker (i.e., with a different
+	   malloc), and in the static library it's in .bss space.  */
+	free_slotinfo (&GL(dl_tls_dtv_slotinfo_list)->next);
+    }
+
+  void *scope_free_list = GL(dl_scope_free_list);
+  GL(dl_scope_free_list) = NULL;
+  free (scope_free_list);
 }

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

Summary of changes:
 ChangeLog      |    5 +++
 elf/dl-close.c |   74 ----------------------------------------
 elf/dl-libc.c  |  103 +++++++++++++++++++++++++++++++++++++++++++++++---------
 3 files changed, 92 insertions(+), 90 deletions(-)


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



More information about the Glibc-cvs mailing list