summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2004-09-16 23:23:25 +0000
committerRoland McGrath <roland@gnu.org>2004-09-16 23:23:25 +0000
commitae9e6b36d2e03cea249de3a6c592bbab1be01174 (patch)
treed132efef1c54a14e7d7d819996fea8bd3cdc56fd /nptl
parent3d6ce23a90fea094d77b5e2f5574d10e5ecb9d61 (diff)
downloadglibc-ae9e6b36d2e03cea249de3a6c592bbab1be01174.tar.gz
glibc-ae9e6b36d2e03cea249de3a6c592bbab1be01174.tar.xz
glibc-ae9e6b36d2e03cea249de3a6c592bbab1be01174.zip
* configure.in (--with-headers): Let argument contain a : separated
	list of directories to use, not just one.
	* configure: Regenerated.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog7
-rw-r--r--nptl/allocatestack.c17
-rw-r--r--nptl/pthread_create.c2
3 files changed, 9 insertions, 17 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 85ff61f171..6cd9b0dbd8 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-10  Roland McGrath  <roland@redhat.com>
+
+	[BZ #379]
+	* allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
+	code, since we don't try to use the broken CLONE_STOPPED any more.
+	* pthread_create.c (start_thread): Likewise.
+
 2004-09-15  Richard Henderson  <rth@redhat.com>
 
 	* sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index 59f00d9231..6dd2621d99 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -342,11 +342,6 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
       /* The first TSD block is included in the TCB.  */
       pd->specific[0] = pd->specific_1stblock;
 
-#if defined __ASSUME_CLONE_STOPPED && LLL_LOCK_INITIALIZER != 0
-      /* Initialize the lock.  */
-      pd->lock = LLL_LOCK_INITIALIZER;
-#endif
-
       /* Remember the stack-related values.  */
       pd->stackblock = (char *) attr->stackaddr - size;
       pd->stackblock_size = size;
@@ -485,11 +480,6 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 	     descriptor.  */
 	  pd->specific[0] = pd->specific_1stblock;
 
-#if defined __ASSUME_CLONE_STOPPED && LLL_LOCK_INITIALIZER != 0
-	  /* Initialize the lock.  */
-	  pd->lock = LLL_LOCK_INITIALIZER;
-#endif
-
 	  /* This is at least the second thread.  */
 	  pd->header.multiple_threads = 1;
 #ifndef TLS_MULTIPLE_THREADS_IN_TCB
@@ -623,12 +613,9 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
       pd->reported_guardsize = guardsize;
     }
 
-#ifndef __ASSUME_CLONE_STOPPED
-  /* Initialize the lock.  We have to do this unconditionally if the
-     CLONE_STOPPED flag is not available since then the stillborn
-     thread could be canceled while the lock is taken.  */
+  /* Initialize the lock.  We have to do this unconditionally since the
+     stillborn thread could be canceled while the lock is taken.  */
   pd->lock = LLL_LOCK_INITIALIZER;
-#endif
 
   /* We place the thread descriptor at the end of the stack.  */
   *pdp = pd;
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 34edee498f..160656863d 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -227,12 +227,10 @@ start_thread (void *arg)
 
   struct pthread *pd = (struct pthread *) arg;
 
-#ifndef __ASSUME_CLONE_STOPPED
   /* Get the lock the parent locked to force synchronization.  */
   lll_lock (pd->lock);
   /* And give it up right away.  */
   lll_unlock (pd->lock);
-#endif
 
 #if HP_TIMING_AVAIL
   /* Remember the time when the thread was started.  */