diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 7 | ||||
-rw-r--r-- | nptl/sysdeps/alpha/elf/pt-initfini.c | 12 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h | 9 |
3 files changed, 15 insertions, 13 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 4fa3910bac..27926968bc 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,10 @@ +2003-07-05 Richard Henderson <rth@redhat.com> + + * 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. + 2003-07-07 Ulrich Drepper <drepper@redhat.com> * descr.h (struct pthread): Add pid field. diff --git a/nptl/sysdeps/alpha/elf/pt-initfini.c b/nptl/sysdeps/alpha/elf/pt-initfini.c index d48c571b7c..ba2e419d61 100644 --- a/nptl/sysdeps/alpha/elf/pt-initfini.c +++ b/nptl/sysdeps/alpha/elf/pt-initfini.c @@ -45,17 +45,15 @@ __asm__ (" \n\ /*@_init_PROLOG_BEGINS*/ \n\ .section .init, \"ax\", @progbits \n\ .globl _init \n\ - .ent _init \n\ + .type _init,@function \n\ + .usepv _init,std \n\ _init: \n\ ldgp $29, 0($27) \n\ subq $30, 16, $30 \n\ stq $26, 0($30) \n\ stq $29, 8($30) \n\ - .prologue 1 \n\ bsr $26, __pthread_initialize_minimal_internal !samegp \n\ .align 3 \n\ - .end _init \n\ - .size _init, 0 \n\ /*@_init_PROLOG_ENDS*/ \n\ \n\ /*@_init_EPILOG_BEGINS*/ \n\ @@ -69,16 +67,14 @@ _init: \n\ /*@_fini_PROLOG_BEGINS*/ \n\ .section .fini, \"ax\", @progbits \n\ .globl _fini \n\ - .ent _fini \n\ + .type _fini,@function \n\ + .usepv _fini,std \n\ _fini: \n\ ldgp $29, 0($27) \n\ subq $30, 16, $30 \n\ stq $26, 0($30) \n\ stq $29, 8($30) \n\ - .prologue 1 \n\ .align 3 \n\ - .end _fini \n\ - .size _fini, 0 \n\ /*@_fini_PROLOG_ENDS*/ \n\ \n\ /*@_fini_EPILOG_BEGINS*/ \n\ diff --git a/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h index e286ef36cb..cc054f9ef3 100644 --- a/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h @@ -39,7 +39,7 @@ long int __ret; \ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ (futexp), FUTEX_WAIT, (val), 0); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) #define lll_futex_timed_wait(futexp, val, timespec) \ @@ -48,7 +48,7 @@ long int __ret; \ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ (futexp), FUTEX_WAIT, (val), (timespec)); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) #define lll_futex_wake(futexp, nr) \ @@ -57,18 +57,17 @@ long int __ret; \ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ (futexp), FUTEX_WAKE, (nr), 0); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) #define lll_futex_requeue(futexp, nr_wake, nr_move, mutex) \ ({ \ INTERNAL_SYSCALL_DECL (__err); \ long int __ret; \ - \ __ret = INTERNAL_SYSCALL (futex, __err, 5, \ (futexp), FUTEX_REQUEUE, (nr_wake), (nr_move), \ (mutex)); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) /* Set *futex to 1 if it is 0, atomically. Returns the old value */ |