From cd30b01ee9cdefd2e6f81b1c25ee6897243706fc Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 7 Feb 2002 08:44:37 +0000 Subject: Update. 2002-02-07 Ulrich Drepper * sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Account for alignment of the TCB and store total size and alignment of static TLS block in _dl_tls_static_size and _dl_tls_static_align. tls_index is a typedef. * sysdeps/generic/ldsodefs.h: Declare _dl_tls_static_size and _dl_tls_static_align. * sysdeps/i386/dl-tls.h: tls_index is a typedef. * elf/dl-support.c: Define _dl_tls_static_size and _dl_tls_static_align. --- linuxthreads/sysdeps/i386/tls.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'linuxthreads/sysdeps/i386') diff --git a/linuxthreads/sysdeps/i386/tls.h b/linuxthreads/sysdeps/i386/tls.h index 870832c..ed5e634 100644 --- a/linuxthreads/sysdeps/i386/tls.h +++ b/linuxthreads/sysdeps/i386/tls.h @@ -42,7 +42,7 @@ typedef struct /* We can support TLS only if the floating-stack support is available. */ -#if FLOATING_STACKS && defined HAVE_TLS_SUPPORT +#ifdef HAVE_TLS_SUPPORT /* Get system call information. */ # include @@ -94,11 +94,16 @@ typedef struct /* Return the address of the dtv for the current thread. */ -# define THREAD_DTV() \ +# if FLOATING_STACKS +# define THREAD_DTV() \ ({ struct _pthread_descr_struct *__descr; \ THREAD_GETMEM (__descr, p_header.data.dtvp); }) +# else +# define THREAD_DTV() \ + ({ struct _pthread_descr_struct *__descr = thread_self (); \ + THREAD_GETMEM (__descr, p_header.data.dtvp); }) +# endif - -#endif +#endif /* HAVE_TLS_SUPPORT */ #endif /* tls.h */ -- cgit v1.1