summaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/ia64/tls.h
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/sysdeps/ia64/tls.h')
-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() \