aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/unix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-02-17 20:46:52 +0000
committerUlrich Drepper <drepper@redhat.com>2003-02-17 20:46:52 +0000
commitb2740a3b0a55fa4eead5c952dabf435794d0dd7f (patch)
tree1db2f9b124652c3cf162f1a1d9c648ea224431f4 /linuxthreads/sysdeps/unix
parent81b5057288217437017b42780d7814eb7b0744d5 (diff)
downloadglibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.tar
glibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.tar.gz
glibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.tar.bz2
glibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.zip
Update.
2003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca> Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/powerpc/elf/libc-start.c: Handle NONTLS_INIT_TP. * sysdeps/powerpc/powerpc32/__longjmp.S: Remove R2 handling. * sysdeps/powerpc/powerpc32/setjmp.S: Likewise. * sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise. * sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
Diffstat (limited to 'linuxthreads/sysdeps/unix')
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h24
1 files changed, 6 insertions, 18 deletions
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
index 94da65fdb0..155ea47d84 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
@@ -18,6 +18,7 @@
02111-1307 USA. */
#include <sysdep.h>
+#include <tls.h>
#ifndef __ASSEMBLER__
# include <linuxthreads/internals.h>
#endif
@@ -77,32 +78,19 @@
# ifdef IS_IN_libpthread
# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel)
# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel)
-# define __local_multiple_threads __pthread_multiple_threads
# else
# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel)
# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel)
-# define __local_multiple_threads __libc_multiple_threads
# endif
# ifndef __ASSEMBLER__
-extern int __local_multiple_threads attribute_hidden;
-# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ p_header.data.multiple_threads) == 0, 1)
# else
-# if !defined PIC
-# define SINGLE_THREAD_P \
- lis 10,__local_multiple_threads@ha; \
- lwz 10,__local_multiple_threads@l(10); \
+# define SINGLE_THREAD_P \
+ lwz 10,MULTIPLE_THREADS_OFFSET(2); \
cmpwi 10,0
-# else
-# define SINGLE_THREAD_P \
- mflr 9; \
- bl _GLOBAL_OFFSET_TABLE_@local-4; \
- mflr 10; \
- mtlr 9; \
- lwz 10,__local_multiple_threads@got(10); \
- lwz 10,0(10); \
- cmpwi 10,0
-# endif
# endif
#elif !defined __ASSEMBLER__