Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 11 Dec 2003 04:52:17 +0000 (04:52 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 11 Dec 2003 04:52:17 +0000 (04:52 +0000)
2003-12-10  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
__rtld_lock_initialize for ld.so lock.
Patch in part by Adam Li <adam.li@intel.com>.

nptl/ChangeLog
nptl/sysdeps/pthread/bits/libc-lock.h
nptl/sysdeps/unix/sysv/linux/fork.c

index 776a258..441f0ba 100644 (file)
@@ -1,3 +1,10 @@
+2003-12-10  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
+       * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
+       __rtld_lock_initialize for ld.so lock.
+       Patch in part by Adam Li <adam.li@intel.com>.
+
 2003-12-02  David Mosberger  <davidm@hpl.hp.com>
 
        * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
index 327e383..0adf273 100644 (file)
@@ -131,6 +131,9 @@ typedef pthread_key_t __libc_key_t;
 #define _RTLD_LOCK_RECURSIVE_INITIALIZER \
   {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
 
+#define __rtld_lock_initialize(NAME) \
+  (void) ((NAME) = (__rtld_lock_recursive_t) _RTLD_LOCK_RECURSIVE_INITIALIZER)
+
 /* If we check for a weakly referenced symbol and then perform a
    normal jump to it te code generated for some platforms in case of
    PIC is unnecessarily slow.  What would happen is that the function
index 43e1b43..84bf379 100644 (file)
@@ -151,6 +151,9 @@ __libc_fork (void)
       /* Reset locks in the I/O code.  */
       _IO_list_resetlock ();
 
+      /* Reset the lock the dynamic loader uses to protect its data.  */
+      __rtld_lock_initialize (GL(dl_load_lock));
+
       /* Run the handlers registered for the child.  */
       while (allp != NULL)
        {