summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/libc-tls.c4
-rw-r--r--sysdeps/generic/tls.h6
2 files changed, 6 insertions, 4 deletions
diff --git a/sysdeps/generic/libc-tls.c b/sysdeps/generic/libc-tls.c
index 51b85ef28f..88b0ccf8fc 100644
--- a/sysdeps/generic/libc-tls.c
+++ b/sysdeps/generic/libc-tls.c
@@ -137,10 +137,10 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign)
INSTALL_DTV ((char *) tlsblock + tcb_offset, static_dtv);
- TLS_INIT_TP ((char *) tlsblock + tcb_offset);
+ TLS_INIT_TP ((char *) tlsblock + tcb_offset, 1);
# elif TLS_DTV_AT_TP
INSTALL_DTV (tlsblock, static_dtv);
- TLS_INIT_TP (tlsblock);
+ TLS_INIT_TP (tlsblock, 1);
# else
# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
# endif
diff --git a/sysdeps/generic/tls.h b/sysdeps/generic/tls.h
index 38f84acd46..6a23ec05e1 100644
--- a/sysdeps/generic/tls.h
+++ b/sysdeps/generic/tls.h
@@ -65,10 +65,12 @@
use the value.
- TLS_INIT_TP(tcb)
+ TLS_INIT_TP(tcb, firstcall)
This macro must initialize the thread pointer to enable normal TLS
- operation. The parameter is a pointer to the thread control block.
+ operation. The first parameter is a pointer to the thread control
+ block. The second parameter specifies whether this is the first
+ call for the TCB. ld.so calls this macro more than once.
THREAD_DTV()