aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/htl/pthreadP.h3
-rw-r--r--sysdeps/mach/hurd/htl/pt-sysdep.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/htl/pthreadP.h b/sysdeps/htl/pthreadP.h
index 7486c93..0eb969e 100644
--- a/sysdeps/htl/pthreadP.h
+++ b/sysdeps/htl/pthreadP.h
@@ -22,10 +22,13 @@
#define __PTHREAD_HTL
#include <pthread.h>
+#include <link.h>
/* Attribute to indicate thread creation was issued from C11 thrd_create. */
#define ATTR_C11_THREAD ((void*)(uintptr_t)-1)
+extern void __pthread_init_static_tls (struct link_map *) attribute_hidden;
+
/* These represent the interface used by glibc itself. */
extern pthread_t __pthread_self (void);
diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.c b/sysdeps/mach/hurd/htl/pt-sysdep.c
index 84d1914..0963b44 100644
--- a/sysdeps/mach/hurd/htl/pt-sysdep.c
+++ b/sysdeps/mach/hurd/htl/pt-sysdep.c
@@ -77,6 +77,7 @@ _init_routine (void *stack)
to the new stack. Pretend it wasn't allocated so that it remains
valid if the main thread terminates. */
thread->stack = 0;
+ thread->tcb = THREAD_SELF;
#ifndef PAGESIZE
__pthread_default_attr.__guardsize = __vm_page_size;
@@ -91,6 +92,8 @@ _init_routine (void *stack)
__pthread_atfork (NULL, NULL, reset_pthread_total);
+ GL(dl_init_static_tls) = &__pthread_init_static_tls;
+
/* Make MiG code thread aware. */
__mig_init (thread->stackaddr);