From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18635 invoked by alias); 27 Dec 2005 11:31:33 -0000 Received: (qmail 18619 invoked by uid 22791); 27 Dec 2005 11:31:32 -0000 X-Spam-Check-By: sourceware.org Received: from sunsite.ms.mff.cuni.cz (HELO sunsite.mff.cuni.cz) (195.113.15.26) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 27 Dec 2005 11:31:31 +0000 Received: from sunsite.mff.cuni.cz (sunsite.mff.cuni.cz [127.0.0.1]) by sunsite.mff.cuni.cz (8.13.1/8.13.1) with ESMTP id jBRBUjeo016279; Tue, 27 Dec 2005 12:30:45 +0100 Received: (from jakub@localhost) by sunsite.mff.cuni.cz (8.13.1/8.13.1/Submit) id jBRBUjLe016278; Tue, 27 Dec 2005 12:30:45 +0100 Date: Tue, 27 Dec 2005 11:31:00 -0000 From: Jakub Jelinek To: Ulrich Drepper , "David S. Miller" Cc: libc-hacker@sources.redhat.com Subject: [PATCH] updates Message-ID: <20051227113045.GD4625@sunsite.mff.cuni.cz> Reply-To: Jakub Jelinek References: <43B09996.5080402@redhat.com> <20051226.222048.07641650.davem@davemloft.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20051226.222048.07641650.davem@davemloft.net> User-Agent: Mutt/1.4.1i Mailing-List: contact libc-hacker-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sourceware.org X-SW-Source: 2005-12/txt/msg00050.txt.bz2 On Mon, Dec 26, 2005 at 10:20:48PM -0800, David S. Miller wrote: > From: Ulrich Drepper > Date: Mon, 26 Dec 2005 17:32:06 -0800 > > > The patches I checked in work fine on x86. I couldn't test x86-64 > > because I experience some mysterious build problems. I think they > > existed before the set of patches got checked in. Other archs need > > adjustment of the pthread_mutex_t type definition. > > This should take care of Sparc. > @@ -60,7 +60,7 @@ > > /* Data structures for mutex handling. The structure of the attribute > type is deliberately not exposed. */ > -typedef union > +typedef union __pthread_mutex_u > { > struct > { > @@ -76,7 +76,11 @@ > #if __WORDSIZE != 64 > unsigned int __nusers; > #endif > - int __spins; > + union > + { > + int __spins; > + union __pthread_mutex_u *__next; > + }; > } __data; > char __size[__SIZEOF_PTHREAD_MUTEX_T]; > long int __align; This is only correct for SPARC 32-bit. The actual changes should look following way, will test it later on today. BTW, Uli, can you please sed -i -e 's,\* nptl/,* ,;s/cpoyright/copyright/' nptl/ChangeLog && ci -m . nptl/ChangeLog ? 2005-12-27 Jakub Jelinek * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next and __prev field to pthread_mutex_t. * 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/sparc/bits/pthreadtypes.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field to pthread_mutex_t. --- libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h.jj 2005-07-20 10:32:46.000000000 +0200 +++ libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h 2005-12-27 12:13:43.000000000 +0100 @@ -45,7 +45,7 @@ typedef union /* Data structures for mutex handling. The structure of the attribute type is deliberately not exposed. */ -typedef union +typedef union __pthread_mutex_u { struct { @@ -57,6 +57,9 @@ typedef union binary compatibility. */ int __kind; int __spins; + union __pthread_mutex_u *__next; + union __pthread_mutex_u *__prev; +#define __PTHREAD_MUTEX_HAVE_PREV 1 } __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align; --- libc/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h.jj 2004-09-30 00:50:04.000000000 +0200 +++ libc/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h 2005-12-27 12:21:49.000000000 +0100 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Martin Schwidefsky , 2003. @@ -59,7 +59,7 @@ typedef union /* Data structures for mutex handling. The structure of the attribute type is not exposed on purpose. */ -typedef union +typedef union __pthread_mutex_u { struct { @@ -72,10 +72,19 @@ typedef union /* KIND must stay at this position in the structure to maintain binary compatibility. */ int __kind; -#if __WORDSIZE != 64 +#if __WORDSIZE == 64 + int __spins; + union __pthread_mutex_u *__next; + union __pthread_mutex_u *__prev; +# define __PTHREAD_MUTEX_HAVE_PREV 1 +#else unsigned int __nusers; + union + { + int __spins; + union __pthread_mutex_u *__next; + }; #endif - int __spins; } __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align; --- libc/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h.jj 2004-09-30 00:50:04.000000000 +0200 +++ libc/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h 2005-12-27 12:19:37.000000000 +0100 @@ -1,5 +1,5 @@ /* Machine-specific pthread type layouts. PowerPC version. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Mackerras , 2003. @@ -60,7 +60,7 @@ typedef union /* Data structures for mutex handling. The structure of the attribute type is deliberately not exposed. */ -typedef union +typedef union __pthread_mutex_u { struct { @@ -73,10 +73,19 @@ typedef union /* KIND must stay at this position in the structure to maintain binary compatibility. */ int __kind; -#if __WORDSIZE != 64 +#if __WORDSIZE == 64 + int __spins; + union __pthread_mutex_u *__next; + union __pthread_mutex_u *__prev; +# define __PTHREAD_MUTEX_HAVE_PREV 1 +#else unsigned int __nusers; + union + { + int __spins; + union __pthread_mutex_u *__next; + }; #endif - int __spins; } __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align; --- libc/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h.jj 2004-09-30 00:50:04.000000000 +0200 +++ libc/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h 2005-12-27 12:24:13.000000000 +0100 @@ -1,5 +1,5 @@ /* Machine-specific pthread type layouts. SPARC version. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -60,7 +60,7 @@ typedef union /* Data structures for mutex handling. The structure of the attribute type is deliberately not exposed. */ -typedef union +typedef union __pthread_mutex_u { struct { @@ -73,10 +73,19 @@ typedef union /* KIND must stay at this position in the structure to maintain binary compatibility. */ int __kind; -#if __WORDSIZE != 64 +#if __WORDSIZE == 64 + int __spins; + union __pthread_mutex_u *__next; + union __pthread_mutex_u *__prev; +# define __PTHREAD_MUTEX_HAVE_PREV 1 +#else unsigned int __nusers; + union + { + int __spins; + union __pthread_mutex_u *__next; + }; #endif - int __spins; } __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align; --- libc/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h.jj 2005-07-20 10:37:43.000000000 +0200 +++ libc/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h 2005-12-27 12:23:08.000000000 +0100 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -46,7 +46,7 @@ typedef union /* Data structures for mutex handling. The structure of the attribute type is not exposed on purpose. */ -typedef union +typedef union __pthread_mutex_u { struct { @@ -57,7 +57,11 @@ typedef union binary compatibility. */ int __kind; unsigned int __nusers; - int __spins; + union + { + int __spins; + union __pthread_mutex_u *__next; + }; } __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align; --- libc/nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h.jj 2004-09-30 00:50:04.000000000 +0200 +++ libc/nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h 2005-12-27 12:16:36.000000000 +0100 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -45,7 +45,7 @@ typedef union /* Data structures for mutex handling. The structure of the attribute type is not exposed on purpose. */ -typedef union +typedef union __pthread_mutex_u { struct { @@ -57,6 +57,9 @@ typedef union binary compatibility. */ int __kind; int __spins; + union __pthread_mutex_u *__next; + union __pthread_mutex_u *__prev; +#define __PTHREAD_MUTEX_HAVE_PREV 1 } __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align; Jakub