* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
authorUlrich Drepper <drepper@redhat.com>
Fri, 6 Jan 2006 21:40:51 +0000 (21:40 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 6 Jan 2006 21:40:51 +0000 (21:40 +0000)
Don't give the union a name because it changes the mangled name.
Instead name the struct for __data.
* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
* pthread_create.c (start_thread): Adjust robust mutex free loop.
* descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.

nptl/ChangeLog
nptl/pthread_create.c
nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h

index 0d00473..520e444 100644 (file)
@@ -1,3 +1,15 @@
+2006-01-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
+       Don't give the union a name because it changes the mangled name.
+       Instead name the struct for __data.
+       * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
+       * pthread_create.c (start_thread): Adjust robust mutex free loop.
+       * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
+
 2006-01-05  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
index 2dbe58d..94d424b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -311,25 +311,25 @@ start_thread (void *arg)
   atomic_bit_set (&pd->cancelhandling, EXITING_BIT);
 
   /* If this thread has any robust mutexes locked, handle them now.  */
-  pthread_mutex_t *robust = THREAD_GETMEM (pd, robust_list);
+  struct __pthread_mutex_s *robust = THREAD_GETMEM (pd, robust_list);
   if (__builtin_expect (robust != NULL, 0))
     {
       do
        {
-         pthread_mutex_t *this = robust;
-         robust = robust->__data.__next;
-
-         assert (lll_mutex_islocked (this->__data.__lock));
-         this->__data.__count = 0;
-         --this->__data.__nusers;
-         assert (this->__data.__owner != PTHREAD_MUTEX_NOTRECOVERABLE);
-         this->__data.__owner = PTHREAD_MUTEX_OWNERDEAD;
-         this->__data.__next = NULL;
+         struct __pthread_mutex_s *this = robust;
+         robust = robust->__next;
+
+         assert (lll_mutex_islocked (this->__lock));
+         this->__count = 0;
+         --this->__nusers;
+         assert (this->__owner != PTHREAD_MUTEX_NOTRECOVERABLE);
+         this->__owner = PTHREAD_MUTEX_OWNERDEAD;
+         this->__next = NULL;
 #ifdef __PTHREAD_MUTEX_HAVE_PREV
-         this->__data.__prev = NULL;
+         this->__prev = NULL;
 #endif
 
-         lll_mutex_unlock (this->__data.__lock);
+         lll_mutex_unlock (this->__lock);
        }
       while (robust != NULL);
 
index 3bd1019..2341a9c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005, 2006 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
@@ -45,9 +45,9 @@ typedef union
 
 /* Data structures for mutex handling.  The structure of the attribute
    type is not exposed on purpose.  */
-typedef union __pthread_mutex_u
+typedef union
 {
-  struct
+  struct __pthread_mutex_s
   {
     int __lock;
     unsigned int __count;
@@ -59,7 +59,7 @@ typedef union __pthread_mutex_u
     union
     {
       int __spins;
-      union __pthread_mutex_u *__next;
+      struct __pthread_mutex_s *__next;
     };
   } __data;
   char __size[__SIZEOF_PTHREAD_MUTEX_T];
index a932101..a13bb08 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
 
@@ -45,9 +45,9 @@ typedef union
 
 /* Data structures for mutex handling.  The structure of the attribute
    type is not exposed on purpose.  */
-typedef union __pthread_mutex_u
+typedef union
 {
-  struct
+  struct __pthread_mutex_s
   {
     int __lock;
     unsigned int __count;
@@ -57,8 +57,8 @@ typedef union __pthread_mutex_u
        binary compatibility.  */
     int __kind;
     int __spins;
-    union __pthread_mutex_u *__next;
-    union __pthread_mutex_u *__prev;
+    struct __pthread_mutex_s *__next;
+    struct __pthread_mutex_s *__prev;
 #define __PTHREAD_MUTEX_HAVE_PREV      1
   } __data;
   char __size[__SIZEOF_PTHREAD_MUTEX_T];
index c6f3452..56ffef3 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-specific pthread type layouts.  PowerPC version.
-   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
 
@@ -60,9 +60,9 @@ typedef union
 
 /* Data structures for mutex handling.  The structure of the attribute
    type is deliberately not exposed.  */
-typedef union __pthread_mutex_u
+typedef union
 {
-  struct
+  struct __pthread_mutex_s
   {
     int __lock;
     unsigned int __count;
@@ -75,15 +75,15 @@ typedef union __pthread_mutex_u
     int __kind;
 #if __WORDSIZE == 64
     int __spins;
-    union __pthread_mutex_u *__next;
-    union __pthread_mutex_u *__prev;
+    struct __pthread_mutex_s *__next;
+    struct __pthread_mutex_s *__prev;
 # define __PTHREAD_MUTEX_HAVE_PREV     1
 #else
     unsigned int __nusers;
     union
     {
       int __spins;
-      union __pthread_mutex_u *__next;
+      struct __pthread_mutex_s *__next;
     };
 #endif
   } __data;
index 63f7f01..a2ad05d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
 
@@ -59,9 +59,9 @@ typedef union
 
 /* Data structures for mutex handling.  The structure of the attribute
    type is not exposed on purpose.  */
-typedef union __pthread_mutex_u
+typedef union
 {
-  struct
+  struct __pthread_mutex_s
   {
     int __lock;
     unsigned int __count;
@@ -74,15 +74,15 @@ typedef union __pthread_mutex_u
     int __kind;
 #if __WORDSIZE == 64
     int __spins;
-    union __pthread_mutex_u *__next;
-    union __pthread_mutex_u *__prev;
+    struct __pthread_mutex_s *__next;
+    struct __pthread_mutex_s *__prev;
 # define __PTHREAD_MUTEX_HAVE_PREV     1
 #else
     unsigned int __nusers;
     union
     {
       int __spins;
-      union __pthread_mutex_u *__next;
+      struct __pthread_mutex_s *__next;
     };
 #endif
   } __data;
index 3eb33a8..ba940b3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -59,9 +59,9 @@ typedef union
 
 /* Data structures for mutex handling.  The structure of the attribute
    type is not exposed on purpose.  */
-typedef union __pthread_mutex_u
+typedef union
 {
-  struct
+  struct __pthread_mutex_s
   {
     int __lock;
     unsigned int __count;
@@ -74,15 +74,15 @@ typedef union __pthread_mutex_u
     int __kind;
 #if __WORDSIZE == 64
     int __spins;
-    union __pthread_mutex_u *__next;
-    union __pthread_mutex_u *__prev;
+    struct __pthread_mutex_s *__next;
+    struct __pthread_mutex_s *__prev;
 # define __PTHREAD_MUTEX_HAVE_PREV     1
 #else
     unsigned int __nusers;
     union
     {
       int __spins;
-      union __pthread_mutex_u *__next;
+      struct __pthread_mutex_s *__next;
     };
 #endif
   } __data;