]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
* sysdeps/unix/sysv/linux/powerpc/libc-start.c: Include <sysdep.h>.
authorUlrich Drepper <drepper@redhat.com>
Sat, 26 May 2007 20:13:27 +0000 (20:13 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 26 May 2007 20:13:27 +0000 (20:13 +0000)
ChangeLog
nptl/ChangeLog
nptl/allocatestack.c
nptl/descr.h
nptl/init.c
nptl/sysdeps/i386/tls.h
nptl/sysdeps/powerpc/tcb-offsets.sym
nptl/sysdeps/unix/sysv/linux/sem_timedwait.c
nptl/sysdeps/unix/sysv/linux/sem_wait.c
nptl/sysdeps/x86_64/tls.h
sysdeps/unix/sysv/linux/powerpc/libc-start.c

index 58622d2f0ada61440c45d2e63ca7058c4d37736a..b7586ef06f71771213bbc39e6a2072804d28e34e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-05-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/powerpc/libc-start.c: Include <sysdep.h>.
+
 2007-05-25  Jakub Jelinek  <jakub@redhat.com>
 
        * io/bits/fcntl2.h (__open_2): Add nonnull attribute.
index 02a83c81bba1ab982cceaadf9b1794cdb6fe3f1e..0cd8193452b466e6456ec8f84b9c2f50e3762b33 100644 (file)
@@ -1,5 +1,17 @@
 2007-05-26  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
+       * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
+       duplication of __sem_wait_cleanup.
+
+       * allocatestack.c: Revert last change.
+       * init.c: Likewise.
+       * sysdeps/i386/tls.h: Likewise.
+       * sysdeps/x86_64/tls.h: Likewise.
+       * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
+       header structure.
+       * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
+
        * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
        Add private field.
        * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
index 4ac04dbfa1d01b025b3196431b95328e42f6f708..aad157a9f95e5d1e0a7c639397f5994e6e32a608 100644 (file)
@@ -376,9 +376,10 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
       __pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
 #endif
 
-#ifdef THREAD_COPY_PRIVATE_FUTEX
+#ifndef __ASSUME_PRIVATE_FUTEX
       /* The thread must know when private futexes are supported.  */
-      THREAD_COPY_PRIVATE_FUTEX (pd);
+      pd->header.private_futex = THREAD_GETMEM (THREAD_SELF,
+                                               header.private_futex);
 #endif
 
 #ifdef NEED_DL_SYSINFO
index 00cad1aa83a65342071187282e7b84c3ac164a6a..203b62a2bffca9a273d9635915d77a846032de73 100644 (file)
@@ -37,6 +37,7 @@
 #endif
 #define __need_res_state
 #include <resolv.h>
+#include <kernel-features.h>
 
 #ifndef TCB_ALIGNMENT
 # define TCB_ALIGNMENT sizeof (double)
@@ -131,6 +132,9 @@ struct pthread
     struct
     {
       int multiple_threads;
+# ifndef __ASSUME_PRIVATE_FUTEX
+      int private_futex;
+# endif
     } header;
 #endif
 
index d7c74d4e1cab6ce6a7b2ca23d03d99c7035af79a..212b835a0d991932730010fde6dce83cb0227789 100644 (file)
@@ -284,7 +284,7 @@ __pthread_initialize_minimal_internal (void)
     res = INTERNAL_SYSCALL (futex, err, 3, &word,
                            FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1);
     if (!INTERNAL_SYSCALL_ERROR_P (res, err))
-      THREAD_SET_PRIVATE_FUTEX (FUTEX_PRIVATE_FLAG);
+      pd->header.private_futex = FUTEX_PRIVATE_FLAG;
   }
 #endif
 
index 90a8b50dad8453199ff16ad23be183ece31c4d0d..64eab45c01beb511905656d49cd5b38d1559f254 100644 (file)
@@ -458,16 +458,6 @@ union user_desc_init
 #define THREAD_GSCOPE_WAIT() \
   GL(dl_wait_lookup_done) ()
 
-
-#ifndef __ASSUME_PRIVATE_FUTEX
-# define THREAD_SET_PRIVATE_FUTEX(value) \
-  THREAD_SETMEM (THREAD_SELF, header.private_futex, value)
-# define THREAD_COPY_PRIVATE_FUTEX(descr) \
-  ((descr)->header.private_futex                                             \
-   = THREAD_GETMEM (THREAD_SELF, header.private_futex))
-#endif
-
-
 #endif /* __ASSEMBLER__ */
 
 #endif /* tls.h */
index 4a8671e802fae17ffa8bbeda89fce59b76b636a9..eda43dce8e70f058c49b4617ab4697129a9d2318 100644 (file)
@@ -15,3 +15,4 @@ MULTIPLE_THREADS_OFFSET               thread_offsetof (header.multiple_threads)
 PID                            thread_offsetof (pid)
 TID                            thread_offsetof (tid)
 POINTER_GUARD                  (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
+PRIVATE_FUTEX_OFFSET           thread_offsetof (header.private_futex)
index 30f6a87df421c231fe23a91a6ef41ae4fa9b692d..4c8acd093843caa83b5aae820d7b1a27dbc8d7e3 100644 (file)
 extern void __sem_wait_cleanup (void *arg) attribute_hidden;
 
 
-void
-attribute_hidden
-__sem_wait_cleanup (void *arg)
-{
-  struct new_sem *isem = (struct new_sem *) arg;
-
-  atomic_decrement (&isem->nwaiters);
-}
-
-
 int
 sem_timedwait (sem_t *sem, const struct timespec *abstime)
 {
index e35b6480f2410ce0ac27a46b9aed62df39361f21..05114c9704c2b1c43c68b403fbea69685ae9914b 100644 (file)
@@ -65,6 +65,7 @@ __new_sem_wait (sem_t *sem)
        {
          __set_errno (-err);
          err = -1;
+         break;
        }
 
       if (atomic_decrement_if_positive (&isem->value) > 0)
index cb3b474f97f77f6d865d89d67bb39833c96406c0..c3afb3f03c2aa1b2aa10000e3d42531052271ffd 100644 (file)
@@ -364,14 +364,6 @@ typedef struct
 #define THREAD_GSCOPE_WAIT() \
   GL(dl_wait_lookup_done) ()
 
-#ifndef __ASSUME_PRIVATE_FUTEX
-# define THREAD_SET_PRIVATE_FUTEX(value) \
-  THREAD_SETMEM (THREAD_SELF, header.private_futex, value)
-# define THREAD_COPY_PRIVATE_FUTEX(descr) \
-  ((descr)->header.private_futex                                             \
-   = THREAD_GETMEM (THREAD_SELF, header.private_futex))
-#endif
-
 #endif /* __ASSEMBLER__ */
 
 #endif /* tls.h */
index 923eab99efb4ef114b802095402aa5da2dc391c8..a71cfa5b068f5f23c6893e7c0bd96c0581855000 100644 (file)
@@ -20,6 +20,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <ldsodefs.h>
+#include <sysdep.h>
 #include <bp-start.h>
 #include <bp-sym.h>