[uClibc-cvs] svn commit: branches/uClibc-nptl/include
sjhill at uclibc.org
sjhill at uclibc.org
Fri Jun 3 03:15:14 UTC 2005
Author: sjhill
Date: 2005-06-02 21:15:13 -0600 (Thu, 02 Jun 2005)
New Revision: 10464
Log:
Update 'struct link_map' to add new fields for TLS.
Modified:
branches/uClibc-nptl/include/link.h
Changeset:
Modified: branches/uClibc-nptl/include/link.h
===================================================================
--- branches/uClibc-nptl/include/link.h 2005-06-03 03:12:49 UTC (rev 10463)
+++ branches/uClibc-nptl/include/link.h 2005-06-03 03:15:13 UTC (rev 10464)
@@ -25,6 +25,9 @@
#include <elf.h>
#include <dlfcn.h>
#include <sys/types.h>
+#ifdef IS_IN_libpthread
+#include <tls.h> /* Defines USE_TLS. */
+#endif
/* We use this macro to refer to ELF types independent of the native wordsize.
`ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'. */
@@ -90,6 +93,28 @@
char *l_name; /* Absolute file name object was found in. */
ElfW(Dyn) *l_ld; /* Dynamic section of the shared object. */
struct link_map *l_next, *l_prev; /* Chain of loaded objects. */
+
+#ifdef USE_TLS
+ /* Thread-local storage related info. */
+
+ /* 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;
+ /* Alignment requirement of the TLS block. */
+ size_t l_tls_align;
+ /* Offset of first byte module alignment. */
+ size_t l_tls_firstbyte_offset;
+# ifndef NO_TLS_OFFSET
+# define NO_TLS_OFFSET 0
+# endif
+ /* 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;
+#endif
};
#ifdef __USE_GNU
More information about the uClibc-cvs
mailing list