[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