From 9cbc282304d0c7293dc6f91ee0d40d968b6abf0b Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 15 Oct 2002 08:38:53 +0000 Subject: [PATCH] * sysdeps/generic/dl-tls.c (_dl_deallocate_tls) [TLS_TCB_AT_TP]: Adjust TCB pointer before calling free, so we get the whole block. 2002-10-14 Roland McGrath * sysdeps/unix/sysv/linux/x86_64/sigaction.c [HAVE_HIDDEN && !HAVE_BROKEN_VISIBILITY_ATTRIBUTE]: Declare restore_rt extern using attribute_hidden instead of static, avoids warning. --- ChangeLog | 11 +++++++++++ sysdeps/generic/dl-tls.c | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d0b02a153e..735021a8f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-10-15 Roland McGrath + + * sysdeps/generic/dl-tls.c (_dl_deallocate_tls) [TLS_TCB_AT_TP]: + Adjust TCB pointer before calling free, so we get the whole block. + +2002-10-14 Roland McGrath + + * sysdeps/unix/sysv/linux/x86_64/sigaction.c + [HAVE_HIDDEN && !HAVE_BROKEN_VISIBILITY_ATTRIBUTE]: Declare restore_rt + extern using attribute_hidden instead of static, avoids warning. + 2002-10-09 Jakub Jelinek * sysdeps/unix/sysv/linux/configure.in: Use */lib64 for s390x too. diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c index a6428652cf..b92fecbe27 100644 --- a/sysdeps/generic/dl-tls.c +++ b/sysdeps/generic/dl-tls.c @@ -356,7 +356,13 @@ _dl_deallocate_tls (void *tcb, bool dealloc_tcb) free (dtv - 1); if (dealloc_tcb) - free (tcb); + { +# if TLS_TCB_AT_TP + /* The TCB follows the TLS blocks. Back up to free the whole block. */ + tcb -= GL(dl_tls_static_size) - TLS_TCB_SIZE; +# endif + free (tcb); + } } -- 2.34.1