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>
* 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>
* sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Update copyright

View File

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

View File

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