]> sourceware.org Git - glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 11 Dec 2003 22:18:39 +0000 (22:18 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 11 Dec 2003 22:18:39 +0000 (22:18 +0000)
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.

ChangeLog
linuxthreads/ChangeLog
linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
sysdeps/generic/dl-fptr.c

index 03647d797b046fb065de012b4f62417dc8deb3be..b58b6fa481196cb0ca9a51f3ff074b0883e85b4a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 296c56f10851cdd4d528f2c60bf8616db73c759e..ac281b8d358dd7d7ae4fb52d19ff65da5a5af6e5 100644 (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
index 17fde9da2cc17b13382e074f1b99cfb0cabd222e..387229a4667ef973f14bdb99acff7585d12042d7 100644 (file)
 # 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__
index 32cf28c0ef9deb9aeb88c9a3b2709835141ec10b..1ed463717d89180bf913e2174f37c60d9c6e32a6 100644 (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];
This page took 0.06023 seconds and 5 git commands to generate.