about summary refs log tree commit diff
path: root/nptl/sysdeps/powerpc/tcb-offsets.sym
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-04-25 22:28:13 +0000
committerUlrich Drepper <drepper@redhat.com>2003-04-25 22:28:13 +0000
commit468777e1d0dbd6cb8bcaee244a954824d5c84167 (patch)
treeaabd8c6a9e825ebaed65f3f6ddf7efb07f2e2109 /nptl/sysdeps/powerpc/tcb-offsets.sym
parentf24dca48290e4a1c731fc0bee94bc9a1f891b3fa (diff)
downloadglibc-468777e1d0dbd6cb8bcaee244a954824d5c84167.tar.gz
glibc-468777e1d0dbd6cb8bcaee244a954824d5c84167.tar.xz
glibc-468777e1d0dbd6cb8bcaee244a954824d5c84167.zip
Update.
	* pthread.c (__pthread_initialize_manager): Subtract
	TLS_PRE_TCB_SIZE bytes from tcbp to get to descr.
	* manager.c (pthread_handle_create): Subtract or add TLS_PRE_TCB_SIZE
	instead of sizeof (pthread_descr).
	(pthread_free): Add TLS_PRE_TCB_SIZE instead of sizeof (pthread_descr).
	* sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define to 0.
Diffstat (limited to 'nptl/sysdeps/powerpc/tcb-offsets.sym')
-rw-r--r--nptl/sysdeps/powerpc/tcb-offsets.sym11
1 files changed, 10 insertions, 1 deletions
diff --git a/nptl/sysdeps/powerpc/tcb-offsets.sym b/nptl/sysdeps/powerpc/tcb-offsets.sym
index 58ee03072e..d6b7560b8e 100644
--- a/nptl/sysdeps/powerpc/tcb-offsets.sym
+++ b/nptl/sysdeps/powerpc/tcb-offsets.sym
@@ -1,4 +1,13 @@
 #include <sysdep.h>
 #include <tls.h>
 
-MULTIPLE_THREADS_OFFSET	((void *) &p_multiple_threads ((struct pthread) ((void *) 0 - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)) - (void *) 0)
+--
+
+-- Abuse tls.h macros to derive offsets relative to the thread register.
+# undef __thread_register
+# define __thread_register	((void *) 0)
+# define thread_offsetof(mem)	((void *) &THREAD_SELF->mem - (void *) 0)
+
+#if TLS_MULTIPLE_THREADS_IN_TCB
+MULTIPLE_THREADS_OFFSET		thread_offsetof (header.multiple_threads)
+#endif