diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-09-08 07:02:28 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-09-08 07:02:28 +0000 |
commit | 590b40f7ec801ea1b4be47112a016ed369041e64 (patch) | |
tree | 63d37abbae8a1046c88c4af07744f35830506ba5 /nptl | |
parent | 67254a97d98f73a35ab995e8afccb3ded433c8b1 (diff) | |
download | glibc-590b40f7ec801ea1b4be47112a016ed369041e64.zip glibc-590b40f7ec801ea1b4be47112a016ed369041e64.tar.gz glibc-590b40f7ec801ea1b4be47112a016ed369041e64.tar.bz2 |
Update.
2004-09-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/powerpc/powerpc64/configure.in: New file.
* config.h.in (USE_PPC64_OVERLAPPING_OPD): Add.
* configure.in (HAVE_ASM_GLOBAL_DOT_NAME): Remove.
* sysdeps/powerpc/powerpc64/sysdep.h: Formatting.
(OPD_ENT, BODY_LABEL, ENTRY_1, ENTRY_2, END_2, DOT_PREFIX,
BODY_PREFIX): Define.
(ENTRY, DOT_LABEL, END, TRACEBACK, END_GEN_TB, EALIGN): Support
HAVE_ASM_GLOBAL_DOT_NAME or no dot symbols,
USE_PPC64_OVERLAPPING_OPD or never overlapping .opd entries.
* sysdeps/powerpc/powerpc64/dl-machine.h: Include sysdep.h.
(TRAMPOLINE_TEMPLATE, RTLD_START): Use the new sysdep.h macros.
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 3 | ||||
-rw-r--r-- | nptl/DESIGN-barrier.txt | 2 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h | 14 |
3 files changed, 14 insertions, 5 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 6857273..f382a00 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,8 @@ 2004-09-07 Ulrich Drepper <drepper@redhat.com> + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow + PSEUDO to be used with . prefix. + * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once): Use atomic_increment instead of atomic_exchange_and_add. * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once): diff --git a/nptl/DESIGN-barrier.txt b/nptl/DESIGN-barrier.txt index b0fbf14..23463c6 100644 --- a/nptl/DESIGN-barrier.txt +++ b/nptl/DESIGN-barrier.txt @@ -37,7 +37,7 @@ pthread_barrier_wait(barrier_t *barrier) } while (event == barrier->curr_event); } - if (atomic_exchange_and_add (barrier->left, 1) == barrier->init_count - 1) + if (atomic_increment_val (barrier->left) == barrier->init_count) lll_unlock(barrier->lock); return result; diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h index aa993b9..226aaaf 100644 --- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h +++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h @@ -26,6 +26,12 @@ #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt +# ifdef HAVE_ASM_GLOBAL_DOT_NAME +# define DASHDASHPFX(str) .__##str +# else +# define DASHDASHPFX(str) __##str +# endif + # undef PSEUDO # define PSEUDO(name, syscall_name, args) \ .section ".text"; \ @@ -33,12 +39,12 @@ cfi_startproc; \ SINGLE_THREAD_P; \ bne- .Lpseudo_cancel; \ - .type .__##syscall_name##_nocancel,@function; \ - .globl .__##syscall_name##_nocancel; \ - .__##syscall_name##_nocancel: \ + .type DASHDASHPFX(syscall_name##_nocancel),@function; \ + .globl DASHDASHPFX(syscall_name##_nocancel); \ + DASHDASHPFX(syscall_name##_nocancel): \ DO_CALL (SYS_ify (syscall_name)); \ PSEUDO_RET; \ - .size .__##syscall_name##_nocancel,.-.__##syscall_name##_nocancel; \ + .size DASHDASHPFX(syscall_name##_nocancel),.-DASHDASHPFX(syscall_name##_nocancel); \ .Lpseudo_cancel: \ stdu 1,-128(1); \ cfi_adjust_cfa_offset (128); \ |