From e29ef6470637f570919916670ed4d23d5861969e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 3 Sep 2003 02:58:30 +0000 Subject: Update. 2003-09-02 Jakub Jelinek * barrier.c (__pthread_barrierattr_getpshared): Always return PTHREAD_PROCESS_PRIVATE. (pthread_barrierattr_setpshared): Return EINVAL if pshared is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED. --- linuxthreads/ChangeLog | 7 +++++++ linuxthreads/barrier.c | 7 +++++-- nptl/Banner | 2 +- nptl/ChangeLog | 4 ++++ nptl/pthread_condattr_setpshared.c | 9 +++++++-- sysdeps/unix/sysv/linux/i386/sysdep.h | 3 --- sysdeps/unix/sysv/linux/powerpc/syscalls.list | 3 +++ sysdeps/unix/sysv/linux/sparc/syscalls.list | 3 +++ 8 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/powerpc/syscalls.list create mode 100644 sysdeps/unix/sysv/linux/sparc/syscalls.list diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index d8ec55c3b8..6c04e3df71 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,10 @@ +2003-09-02 Jakub Jelinek + + * barrier.c (__pthread_barrierattr_getpshared): Always + return PTHREAD_PROCESS_PRIVATE. + (pthread_barrierattr_setpshared): Return EINVAL if pshared + is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED. + 2003-09-02 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/dl-sysdep.h diff --git a/linuxthreads/barrier.c b/linuxthreads/barrier.c index ea09e77281..37d997cfc1 100644 --- a/linuxthreads/barrier.c +++ b/linuxthreads/barrier.c @@ -110,16 +110,19 @@ int __pthread_barrierattr_getpshared(const pthread_barrierattr_t *attr, int *pshared) { - *pshared = attr->__pshared; + *pshared = PTHREAD_PROCESS_PRIVATE; return 0; } int pthread_barrierattr_setpshared(pthread_barrierattr_t *attr, int pshared) { + if (pshared != PTHREAD_PROCESS_PRIVATE && pshared != PTHREAD_PROCESS_SHARED) + return EINVAL; + + /* For now it is not possible to shared a conditional variable. */ if (pshared != PTHREAD_PROCESS_PRIVATE) return ENOSYS; - attr->__pshared = pshared; return 0; } diff --git a/nptl/Banner b/nptl/Banner index 1c418c1698..be11d5b816 100644 --- a/nptl/Banner +++ b/nptl/Banner @@ -1 +1 @@ -NPTL 0.56 by Ulrich Drepper +NPTL 0.57 by Ulrich Drepper diff --git a/nptl/ChangeLog b/nptl/ChangeLog index a92ac5ad67..95c458bee6 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,9 @@ 2003-09-02 Jakub Jelinek + * pthread_condattr_setpshared.c: Include errno.h. + (pthread_condattr_setpshared): Return EINVAL if pshared + is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also defined symbol for entry point to avoid cancellation. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): diff --git a/nptl/pthread_condattr_setpshared.c b/nptl/pthread_condattr_setpshared.c index f47afccef0..f00858780b 100644 --- a/nptl/pthread_condattr_setpshared.c +++ b/nptl/pthread_condattr_setpshared.c @@ -17,16 +17,21 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include "pthreadP.h" +#include +#include int pthread_condattr_setpshared (attr, pshared) pthread_condattr_t *attr; int pshared; { + if (pshared != PTHREAD_PROCESS_PRIVATE + && __builtin_expect (pshared != PTHREAD_PROCESS_SHARED, 0)) + return EINVAL; + int *valuep = &((struct pthread_condattr *) attr)->value; - *valuep = (*valuep & ~1) | (pshared != 0); + *valuep = (*valuep & ~1) | (pshared != PTHREAD_PROCESS_PRIVATE); return 0; } diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h index 6b6770f797..79ad72abff 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.h +++ b/sysdeps/unix/sysv/linux/i386/sysdep.h @@ -68,9 +68,6 @@ #define PSEUDO(name, syscall_name, args) \ .text; \ ENTRY (name) \ - .type __##syscall_name##_nocancel,@function; \ - .globl __##syscall_name##_nocancel; \ - __##syscall_name##_nocancel: \ DO_CALL (syscall_name, args); \ cmpl $-4095, %eax; \ jae SYSCALL_ERROR_LABEL; \ diff --git a/sysdeps/unix/sysv/linux/powerpc/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/syscalls.list new file mode 100644 index 0000000000..a6665936e8 --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/syscalls.list @@ -0,0 +1,3 @@ +# File name Caller Syscall name # args Strong name Weak names + +waitpid - waitpid Ci:ipi __waitpid waitpid __libc_waitpid diff --git a/sysdeps/unix/sysv/linux/sparc/syscalls.list b/sysdeps/unix/sysv/linux/sparc/syscalls.list new file mode 100644 index 0000000000..a6665936e8 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/syscalls.list @@ -0,0 +1,3 @@ +# File name Caller Syscall name # args Strong name Weak names + +waitpid - waitpid Ci:ipi __waitpid waitpid __libc_waitpid -- cgit v1.2.3