From 42d86dd6c0a12373cb1d10b49f7ad2fb6488d364 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 6 Sep 2004 01:12:02 +0000 Subject: [PATCH] * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P): Move definition inside libpthread, libc, librt check. Provide definition for rtld. 2005-09-05 Richard Henderson * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P): Move definition inside libpthread, libc, librt check. Provide definition for rtld. lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success return actual return value from the syscall, not 0. Add __mutex field. --- nptl/ChangeLog | 12 ++++++-- nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h | 35 ++++++++++++---------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 344e7fb..f7f3d29 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2005-09-05 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P): + Move definition inside libpthread, libc, librt check. Provide + definition for rtld. + 2004-09-02 Ulrich Drepper * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. @@ -2217,8 +2223,8 @@ * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end. * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait, - lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success - return actual return value from the syscall, not 0. + lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success + return actual return value from the syscall, not 0. 2003-07-07 Ulrich Drepper @@ -2830,7 +2836,7 @@ * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX. * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t): - Add __mutex field. + Add __mutex field. * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD): Define. (lll_futex_wait, lll_futex_wake): Define. diff --git a/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h index 794d7fc..f3f7718 100644 --- a/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h +++ b/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h @@ -137,28 +137,33 @@ __LABEL($syscall_error) \ # define CDISABLE jsr ra, __local_disable_asynccancel; ldgp ra, 0(gp) # endif -#endif - -#if defined IS_IN_libpthread || !defined NOT_IN_libc -# ifndef __ASSEMBLER__ +# if defined IS_IN_libpthread || !defined NOT_IN_libc +# ifndef __ASSEMBLER__ extern int __local_multiple_threads attribute_hidden; -# define SINGLE_THREAD_P \ +# define SINGLE_THREAD_P \ __builtin_expect (__local_multiple_threads == 0, 1) -# elif defined(PIC) -# define SINGLE_THREAD_P(reg) ldl reg, __local_multiple_threads(gp) !gprel -# else -# define SINGLE_THREAD_P(reg) \ +# elif defined(PIC) +# define SINGLE_THREAD_P(reg) ldl reg, __local_multiple_threads(gp) !gprel +# else +# define SINGLE_THREAD_P(reg) \ ldah reg, __local_multiple_threads(gp) !gprelhigh; \ ldl reg, __local_multiple_threads(reg) !gprellow -# endif -#else -# ifndef __ASSEMBLER__ -# define SINGLE_THREAD_P \ +# endif +# else +# ifndef __ASSEMBLER__ +# define SINGLE_THREAD_P \ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ header.multiple_threads) == 0, 1) -# else -# define SINGLE_THREAD_P(reg) \ +# else +# define SINGLE_THREAD_P(reg) \ call_pal PAL_rduniq; \ ldl reg, MULTIPLE_THREADS_OFFSET($0) +# endif # endif + +#else + +# define SINGLE_THREAD_P (1) +# define NO_CANCELLATION 1 + #endif -- 2.7.4