about summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/sysdeps/ia64/tls.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/linuxthreads/sysdeps/ia64/tls.h b/linuxthreads/sysdeps/ia64/tls.h
index db810d1872..49ca977c1c 100644
--- a/linuxthreads/sysdeps/ia64/tls.h
+++ b/linuxthreads/sysdeps/ia64/tls.h
@@ -22,6 +22,7 @@
 
 #ifndef __ASSEMBLER__
 
+# include <dl-sysdep.h>
 # include <pt-machine.h>
 # include <stddef.h>
 
@@ -80,11 +81,18 @@ typedef struct
 #  define GET_DTV(tcbp) \
   (((tcbhead_t *) (tcbp))->dtv)
 
+#if defined NEED_DL_SYSINFO
+# define INIT_SYSINFO \
+  (((tcbhead_t *)__thread_self)->private = GL(dl_sysinfo))
+#else
+# define INIT_SYSINFO 0
+#endif
+
 /* Code to initially initialize the thread pointer.  This might need
    special attention since 'errno' is not yet available and if the
    operation can cause a failure 'errno' must not be touched.  */
 #  define TLS_INIT_TP(tcbp, secondcall) \
-  (__thread_self = (__typeof (__thread_self)) (tcbp), NULL)
+  (__thread_self = (__typeof (__thread_self)) (tcbp), INIT_SYSINFO, NULL)
 
 /* Return the address of the dtv for the current thread.  */
 #  define THREAD_DTV() \