diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-01-07 00:42:43 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-01-07 00:42:43 +0000 |
commit | 52f3d213311e34285c4809f043a5cf3a5876b897 (patch) | |
tree | b785902a0af0ab92aabf9e3f155ca1728a607fac /nptl | |
parent | a841816e175f7f7faeb5a019578b6b536ea336b6 (diff) | |
download | glibc-52f3d213311e34285c4809f043a5cf3a5876b897.tar.gz glibc-52f3d213311e34285c4809f043a5cf3a5876b897.tar.xz glibc-52f3d213311e34285c4809f043a5cf3a5876b897.zip |
Update.
2003-01-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/powerpc/powerpc32/sysdep.h (PSEUDO_RET): Add branch hint. * sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S: Add cancellation support. * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Remove ftruncate64, truncate64, pread64 and pwrite64 entries. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INLINE_SYSCALL): Add __builtin_expect. (LOADARGS_n): Add argument size safety checks. * sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: New file. 2003-01-06 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Define. * sysdeps/generic/creat.c: Include sysdep-cancel.h. (LIBC_CANCEL_HANDLED): Add. * sysdeps/unix/sysv/linux/alpha/sysdep.h (inline_syscall_r0_constraint): Rename to... (inline_syscall_r0_out_constraint): ... this. Add =. (inline_syscall[0-6]): Use inline_syscall_r0_out_constraint.
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/pt-system.c | 5 | ||||
-rw-r--r-- | nptl/pthreadP.h | 7 | ||||
-rw-r--r-- | nptl/tst-cancel-wrappers.sh | 3 |
3 files changed, 12 insertions, 3 deletions
diff --git a/nptl/pt-system.c b/nptl/pt-system.c index f638a6ae32..b3b45ab938 100644 --- a/nptl/pt-system.c +++ b/nptl/pt-system.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -28,3 +28,6 @@ system (const char *line) { return __libc_system (line); } + +/* __libc_system in libc.so handles cancellation. */ +LIBC_CANCEL_HANDLED (); diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index e4851288fb..b298524245 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -92,12 +92,19 @@ extern int __pthread_debug attribute_hidden; /* Same as CANCEL_RESET, but for use in libc.so. */ # define LIBC_CANCEL_RESET(oldtype) \ __libc_disable_asynccancel (oldtype) +# define LIBC_CANCEL_HANDLED() \ + __asm (".globl " __SYMBOL_PREFIX "__libc_enable_asynccancel"); \ + __asm (".globl " __SYMBOL_PREFIX "__libc_disable_asynccancel") #elif defined NOT_IN_libc && defined IS_IN_libpthread # define LIBC_CANCEL_ASYNC() CANCEL_ASYNC () # define LIBC_CANCEL_RESET(val) CANCEL_RESET (val) +# define LIBC_CANCEL_HANDLED() \ + __asm (".globl " __SYMBOL_PREFIX "__pthread_enable_asynccancel"); \ + __asm (".globl " __SYMBOL_PREFIX "__pthread_disable_asynccancel") #else # define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */ # define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */ +# define LIBC_CANCEL_HANDLED() /* Nothing. */ #endif diff --git a/nptl/tst-cancel-wrappers.sh b/nptl/tst-cancel-wrappers.sh index 5b3944bab7..4561c02ae8 100644 --- a/nptl/tst-cancel-wrappers.sh +++ b/nptl/tst-cancel-wrappers.sh @@ -67,8 +67,7 @@ C["__xpg_sigpause"]=1 /:$/ { if (seen) { - # pt-system.o* in NPTL calls __libc_system directly. - if ((!seen_enable || !seen_disable) && !(object ~ /^pt-system.o/)) + if (!seen_enable || !seen_disable) { printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen ret = 1 |