aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-05 08:02:04 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-05 08:02:04 +0000
commit5d6feea8f54fe67cbeb7c35e35539b2efd4ead29 (patch)
tree66e0786e2913d8d1984dd7345d12201fa9db4736 /include
parent535b764df5ca722066c2db615190e6a70688c6a6 (diff)
downloadglibc-5d6feea8f54fe67cbeb7c35e35539b2efd4ead29.tar
glibc-5d6feea8f54fe67cbeb7c35e35539b2efd4ead29.tar.gz
glibc-5d6feea8f54fe67cbeb7c35e35539b2efd4ead29.tar.bz2
glibc-5d6feea8f54fe67cbeb7c35e35539b2efd4ead29.zip
Update.
* elf/rtld.c (_dl_start): Fill TLS values in link map for rtld. * include/link.h (struct link_map): Add various members for TLS information. * sysdeps/generic/ldsodefs.h (struct rtld_global): Remove _rtld_tlsoffset, add _dl_initimage_list. * sysdeps/i386/dl-lookupcfg.h: New file. * sysdeps/i386/dl-machine.h (elf_machine_rel): Implement missing TLS relocation. When using TLS we now use RESOLVE_MAP. (elf_machine_rela): Use RESOLVE_MAP instead of RESOLVE_MAP if TLS is used. * sysdeps/generic/dl-cache.c (_dl_cache_libcmp): Mark as possibly unused.
Diffstat (limited to 'include')
-rw-r--r--include/link.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/include/link.h b/include/link.h
index 2442350457..5502bbfe61 100644
--- a/include/link.h
+++ b/include/link.h
@@ -1,6 +1,6 @@
/* Data structure for communication from the run-time dynamic linker for
loaded ELF shared objects.
- Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,9 +21,9 @@
#ifndef _LINK_H
#define _LINK_H 1
-#include <features.h>
#include <elf.h>
#include <dlfcn.h>
+#include <stddef.h>
#include <sys/types.h>
/* We use this macro to refer to ELF types independent of the native wordsize.
@@ -254,6 +254,21 @@ struct link_map
#endif
const ElfW(Sym) *ret;
} l_lookup_cache;
+
+ /* Thread-local storage related info. */
+
+ /* Next module in list of initialization images. */
+ struct link_map *l_tls_nextimage;
+ /* Start of the initialization image. */
+ void *l_tls_initimage;
+ /* Size of the initialization image. */
+ size_t l_tls_initimage_size;
+ /* Size of the TLS block. */
+ size_t l_tls_blocksize;
+ /* For objects present at startup time: offset in the static TLS block. */
+ ptrdiff_t l_tls_offset;
+ /* Index of the module in the dtv array. */
+ size_t l_tls_modid;
};
struct dl_phdr_info