about summary refs log tree commit diff
path: root/sysdeps/generic/ldsodefs.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-09 01:41:44 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-09 01:41:44 +0000
commita52d15621f2f03891944550b0b71ff117e15c16a (patch)
tree14cace4b408dc7ee21138ad62550a2123445ad8a /sysdeps/generic/ldsodefs.h
parent013aafb7d098153e8df3a133ce6302c20396a33f (diff)
downloadglibc-a52d15621f2f03891944550b0b71ff117e15c16a.tar.gz
glibc-a52d15621f2f03891944550b0b71ff117e15c16a.tar.xz
glibc-a52d15621f2f03891944550b0b71ff117e15c16a.zip
Update.
2002-02-08  Ulrich Drepper  <drepper@redhat.com>

	* elf/rtld.c (_dl_start_final): Install DTV explicitly.
	(dl_main): Move dtv/static TLS handling before relocation.
	Unconditionally call _dl_tlsoffset.  Call _dl_allocate_tls and
	TLS_INIT_TP to allocate and install the dtv/static TLS block.
	* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): If no object
	so far uses TLS initialize GL(dl_tls_static_size) and
	GL(dl_tls_static_align) to account for the TCB.
	(_dl_allocate_tls): New function.
	* sysdeps/generic/ldsodefs.h (rtld_global): Add
	_dl_initial_dtv_malloced.

	* configure.in: Test for __builtin_memset more realistically.

	* csu/version.c (banner): If TLS support available say so.
Diffstat (limited to 'sysdeps/generic/ldsodefs.h')
-rw-r--r--sysdeps/generic/ldsodefs.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index f049878cbd..e65865c068 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -303,6 +303,9 @@ struct rtld_global
   EXTERN size_t _dl_tls_static_size;
   /* Alignment requirement of the static TLS block.  */
   EXTERN size_t _dl_tls_static_align;
+
+  /* True if the dtv for the initial thread was malloc()ed.  */
+  EXTERN bool _dl_initial_dtv_malloced;
 #endif
 
   /* Name of the shared object to be profiled (if any).  */
@@ -666,6 +669,8 @@ extern size_t _dl_next_tls_modid (void) internal_function;
 extern void _dl_determine_tlsoffset (struct link_map *firstp)
      internal_function;
 
+/* Allocate memory for static TLS block and dtv.  */
+extern void *_dl_allocate_tls (void) internal_function;
 
 __END_DECLS