From ef35bd89ffe1e107616b49a276a93e208344f93d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 27 Dec 2005 15:42:55 +0000 Subject: iMerge some more. --- ChangeLog | 21 +++++++++++++++++++++ iconv/gconv_trans.c | 10 ++++++++-- nptl/ChangeLog | 13 ++++++++++++- .../unix/sysv/linux/alpha/bits/pthreadtypes.h | 5 ++++- .../unix/sysv/linux/ia64/bits/pthreadtypes.h | 7 +++++-- .../unix/sysv/linux/powerpc/bits/pthreadtypes.h | 17 +++++++++++++---- .../unix/sysv/linux/s390/bits/pthreadtypes.h | 17 +++++++++++++---- nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h | 10 +++++++--- .../unix/sysv/linux/sparc/bits/pthreadtypes.h | 17 +++++++++++++---- sysdeps/unix/sysv/linux/alpha/Versions | 4 ++++ sysdeps/unix/sysv/linux/alpha/bits/errno.h | 8 +++++++- sysdeps/unix/sysv/linux/sparc/Versions | 7 +++++-- sysdeps/unix/sysv/linux/sparc/bits/errno.h | 8 +++++++- 13 files changed, 119 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 33a598ff07..4bc4bb12fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2005-12-27 Ulrich Drepper + + * sysdeps/unix/sysv/linux/sparc/bits/errno.h: Define EOWNERDEAD + and ENOTRECOVERABLE if not already defined. + * sysdeps/unix/sysv/linux/alpha/bits/errno.h: Likewise. + +2005-12-27 Jakub Jelinek + + * sysdeps/unix/sysv/linux/alpha/Versions: Add new errlist-compat + entry for up to 138 errnos. + +2005-12-27 Jakub Jelinek + + * iconv/gconv_trans.c (__gconv_transliterate): Demangle step __fct + before calling it. + +2005-12-27 David S. Miller + + * sysdeps/unix/sysv/linux/sparc/Versions: Add new errlist-compat + entry for up to 134 errnos. + 2005-12-26 Ulrich Drepper * Versions.def: Add GLIBC_2.4 for libpthread. diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c index e54c18490f..9e04e64ee2 100644 --- a/iconv/gconv_trans.c +++ b/iconv/gconv_trans.c @@ -54,6 +54,12 @@ __gconv_transliterate (struct __gconv_step *step, winbuf = (const uint32_t *) *inbufp; winbufend = (const uint32_t *) inbufend; + __gconv_fct fct = step->__fct; +#ifdef PTR_DEMANGLE + if (step->__shlib_handle != NULL) + PTR_DEMANGLE (fct); +#endif + /* If there is no transliteration information in the locale don't do anything and return the error. */ size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_TAB_SIZE); @@ -119,7 +125,7 @@ __gconv_transliterate (struct __gconv_step *step, /* Try this input text. */ toinptr = (const unsigned char *) &to_tbl[idx2]; outptr = *outbufstart; - res = DL_CALL_FCT (step->__fct, + res = DL_CALL_FCT (fct, (step, step_data, &toinptr, (const unsigned char *) &to_tbl[idx2 + len], &outptr, NULL, 0, 0)); @@ -204,7 +210,7 @@ __gconv_transliterate (struct __gconv_step *step, ? __GCONV_EMPTY_INPUT : __GCONV_INCOMPLETE_INPUT); outptr = *outbufstart; - res = DL_CALL_FCT (step->__fct, + res = DL_CALL_FCT (fct, (step, step_data, &toinptr, (const unsigned char *) (default_missing + len), &outptr, NULL, 0, 0)); diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 7c0030cd09..0b29a61e0d 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,14 @@ +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. + 2005-12-26 Ulrich Drepper * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP, @@ -56,7 +67,7 @@ * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break missing after last change. - * version.c: Update cpoyright year. + * version.c: Update copyright year. 2005-12-23 Ulrich Drepper diff --git a/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h index 86b47037e4..50049376b0 100644 --- a/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h +++ b/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h @@ -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; diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h index afb8800ac9..a932101743 100644 --- a/nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h +++ b/nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h @@ -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; diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h index 90c0695697..c6f345221b 100644 --- a/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h +++ b/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h @@ -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; diff --git a/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h index 6b3618cd57..63f7f01fa1 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h +++ b/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h @@ -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; diff --git a/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h index 5125408dcb..727ab811c0 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h +++ b/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h @@ -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; diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h index 3c5a289445..0f4691025e 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h +++ b/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h @@ -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; diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions index ca79c7e444..8709dd2a38 100644 --- a/sysdeps/unix/sysv/linux/alpha/Versions +++ b/sysdeps/unix/sysv/linux/alpha/Versions @@ -73,6 +73,10 @@ libc { #errlist-compat 132 _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; } + GLIBC_2.4 { + #errlist-compat 138 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } GLIBC_PRIVATE { __libc_alpha_cache_shape; } diff --git a/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/sysdeps/unix/sysv/linux/alpha/bits/errno.h index 9cdc167bf7..8b2f152a1c 100644 --- a/sysdeps/unix/sysv/linux/alpha/bits/errno.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/errno.h @@ -1,5 +1,5 @@ /* Error constants. Linux/Alpha specific version. - Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1996,1997,1998,1999,2002,2005 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 @@ -31,6 +31,12 @@ # define ECANCELED 131 # endif +/* Support for error codes to support robust mutexes was added later, too. */ +# ifndef EOWNERDEAD +# define EOWNERDEAD 136 +# define ENOTRECOVERABLE 137 +# endif + # ifndef __ASSEMBLER__ /* Function to get address of global `errno' variable. */ extern int *__errno_location (void) __THROW __attribute__ ((__const__)); diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions index 03d1d87176..be3d2b96c2 100644 --- a/sysdeps/unix/sysv/linux/sparc/Versions +++ b/sysdeps/unix/sysv/linux/sparc/Versions @@ -1,8 +1,7 @@ libc { # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. # When you get an error from errlist-compat.awk, you need to add a new - # version here. Don't do this blindly, since this means changing the ABI - # for all GNU/Linux configurations. + # version here. GLIBC_2.0 { #errlist-compat 127 @@ -16,6 +15,10 @@ libc { #errlist-compat 128 _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; } + GLIBC_2.4 { + #errlist-compat 134 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } } librt { GLIBC_2.3 { diff --git a/sysdeps/unix/sysv/linux/sparc/bits/errno.h b/sysdeps/unix/sysv/linux/sparc/bits/errno.h index 96b7372f19..02e200c088 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/errno.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/errno.h @@ -1,5 +1,5 @@ /* Error constants. Linux/Sparc specific version. - Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1996,1997,1998,1999,2002,2005 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 @@ -31,6 +31,12 @@ # define ECANCELED 127 # endif +/* Support for error codes to support robust mutexes was added later, too. */ +# ifndef EOWNERDEAD +# define EOWNERDEAD 132 +# define ENOTRECOVERABLE 133 +# endif + # ifndef __ASSEMBLER__ /* Function to get address of global `errno' variable. */ extern int *__errno_location (void) __THROW __attribute__ ((__const__)); -- cgit v1.2.3