From 3fb558781fe9bdad55c25157eaea0531e727ba39 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 7 Feb 2002 04:08:19 +0000 Subject: Update. 2002-02-06 Ulrich Drepper * Versions.def [ld]: Add GLIBC_2.3. * elf/Versions [ld]: Add __tls_get_addr to GLIBC_2.3. * elf/Makefile (dl-routines): Add dl-tls. (distribute): Add dl-tls.h. * sysdeps/generic/ldsodefs.h (struct rtld_global): Remove _dl_tls_module_cnt, add _dl_tls_max_dtv_idx and _dl_tls_dtv_gaps. Add prototypes for _dl_next_tls_modid and _dl_determine_tlsoffset. * elf/dl-load.c (_dl_map_object_from_fd): Store alignment requirement along with the other info in the link map. Change queueing of init images for double linked list. Use _dl_next_tls_modid to compute l_tls_modid. * elf/rtld.c (_dl_start_final): Store alignment requirement along with the other info in rtld map and executable map. (dl_main): Add ld.so to the init image list if necessary. Compute final module ID with _dl_next_tls_modid. * include/link.h (struct link_map): Add l_tls_previmage and l_tls_align. * eld/dl-support.c: Define _dl_tls_max_dtv_idx and _dl_tls_dtv_gaps. * sysdeps/i386/elf/Versions: New file. * sysdeps/generic/dl-tls.c: New file. * sysdeps/generic/dl-tls.h: New file. * sysdeps/i386/dl-tls.h: New file. attribute((packed)) to counter stupid people misusing gcc options. --- linuxthreads/ChangeLog | 4 ++++ linuxthreads/sysdeps/i386/tls.h | 7 +++++++ 2 files changed, 11 insertions(+) (limited to 'linuxthreads') diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index f55477ea41..c243f554f2 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,7 @@ +2002-02-06 Ulrich Drepper + + * sysdeps/i386/tls.h: Define THREAD_DTV. + 2002-02-04 Ulrich Drepper * internals.h: Move thread descriptor definition... diff --git a/linuxthreads/sysdeps/i386/tls.h b/linuxthreads/sysdeps/i386/tls.h index 17f6e0ae45..ed95e210c7 100644 --- a/linuxthreads/sysdeps/i386/tls.h +++ b/linuxthreads/sysdeps/i386/tls.h @@ -90,6 +90,13 @@ typedef struct asm ("hlt"); \ } while (0) + +/* Return the address of the dtv for the current thread. */ +# define THREAD_DTV() \ + ({ struct _pthread_descr_struct *__descr; \ + THREAD_GETMEM (__descr, p_header.data.dtvp); }) + + #endif #endif /* tls.h */ -- cgit v1.2.3