diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/libc-tls.c | 4 | ||||
-rw-r--r-- | sysdeps/generic/tls.h | 6 |
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() |