1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-09-01 05:02:03 +03:00
2003-12-11  Carlos O'Donell  <carlos@baldric.uwo.ca>

	* sysdeps/generic/dl-fptr.c (COMPARE_AND_SWAP): Pass new and old
	in the right order.
This commit is contained in:
Ulrich Drepper
2003-12-11 22:18:39 +00:00
parent 092eb73ca2
commit 1ce9631b86
4 changed files with 18 additions and 18 deletions

View File

@@ -1,3 +1,8 @@
2003-12-11 Carlos O'Donell <carlos@baldric.uwo.ca>
* sysdeps/generic/dl-fptr.c (COMPARE_AND_SWAP): Pass new and old
in the right order.
2003-12-01 Jes Sorensen <jes@wildopensource.com> 2003-12-01 Jes Sorensen <jes@wildopensource.com>
* rt/tst-clock.c (do_test): Print message when skipping * rt/tst-clock.c (do_test): Print message when skipping

View File

@@ -1,3 +1,8 @@
2003-12-04 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
(SINGLE_THREAD_P): Test using thread local p_multiple_threads field.
2003-12-10 David Mosberger <davidm@hpl.hp.com> 2003-12-10 David Mosberger <davidm@hpl.hp.com>
* sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Update copyright * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Update copyright

View File

@@ -89,22 +89,12 @@
# endif # endif
# ifndef __ASSEMBLER__ # ifndef __ASSEMBLER__
extern int __local_multiple_threads # define SINGLE_THREAD_P \
# if !defined NOT_IN_libc || defined IS_IN_libpthread __builtin_expect (THREAD_GETMEM (THREAD_SELF, p_multiple_threads) == 0, 1)
attribute_hidden;
# else
;
# endif
# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
# else # else
# define SINGLE_THREAD_P \ # define SINGLE_THREAD_P \
.section ".toc","aw"; \ lwz 10,MULTIPLE_THREADS_OFFSET(13); \
.LC__local_multiple_threads:; \ cmpwi 10,0
.tc __local_multiple_threads[TC],__local_multiple_threads; \
.previous; \
ld 10,.LC__local_multiple_threads@toc(2); \
ld 10,0(10); \
cmpdi 10,0
# endif # endif
#elif !defined __ASSEMBLER__ #elif !defined __ASSEMBLER__

View File

@@ -31,7 +31,7 @@
#ifndef ELF_MACHINE_BOOT_FPTR_TABLE_LEN #ifndef ELF_MACHINE_BOOT_FPTR_TABLE_LEN
/* ELF_MACHINE_BOOT_FPTR_TABLE_LEN should be greater than the number of /* ELF_MACHINE_BOOT_FPTR_TABLE_LEN should be greater than the number of
dynamic symbols in ld.so. */ dynamic symbols in ld.so. */
#define ELF_MACHINE_BOOT_FPTR_TABLE_LEN 256 # define ELF_MACHINE_BOOT_FPTR_TABLE_LEN 256
#endif #endif
#ifndef ELF_MACHINE_LOAD_ADDRESS #ifndef ELF_MACHINE_LOAD_ADDRESS
@@ -39,8 +39,8 @@
#endif #endif
#ifndef COMPARE_AND_SWAP #ifndef COMPARE_AND_SWAP
#define COMPARE_AND_SWAP(ptr,old,new) \ # define COMPARE_AND_SWAP(ptr, old, new) \
atomic_compare_and_exchange_bool_acq ((ptr), (old), (new)) (atomic_compare_and_exchange_bool_acq (ptr, new, old) == 0)
#endif #endif
ElfW(Addr) _dl_boot_fptr_table [ELF_MACHINE_BOOT_FPTR_TABLE_LEN]; ElfW(Addr) _dl_boot_fptr_table [ELF_MACHINE_BOOT_FPTR_TABLE_LEN];