From b80af2f40631871cf53a5e39d08d5d5516473b96 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 6 Sep 2012 16:03:32 -0700 Subject: Remove _dl_initial_dtv * csu/libc-tls.c (static_dtv): Renamed to ... (_dl_static_dtv): This. Make it global. (_dl_initial_dtv): Removed. (__libc_setup_tls): Updated. * elf/dl-tls.c (DL_INITIAL_DTV): New macro. (_dl_deallocate_tls): Replace GL(dl_initial_dtv) with DL_INITIAL_DTV. --- elf/dl-tls.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'elf') diff --git a/elf/dl-tls.c b/elf/dl-tls.c index ff59e9e..9d896b7 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -464,6 +464,13 @@ _dl_allocate_tls (void *mem) rtld_hidden_def (_dl_allocate_tls) +#ifndef SHARED +extern dtv_t _dl_static_dtv[]; +# define DL_INITIAL_DTV (&_dl_static_dtv[1]) +#else +# define DL_INITIAL_DTV GL(dl_initial_dtv) +#endif + void internal_function _dl_deallocate_tls (void *tcb, bool dealloc_tcb) @@ -477,7 +484,7 @@ _dl_deallocate_tls (void *tcb, bool dealloc_tcb) free (dtv[1 + cnt].pointer.val); /* The array starts with dtv[-1]. */ - if (dtv != GL(dl_initial_dtv)) + if (dtv != DL_INITIAL_DTV) free (dtv - 1); if (dealloc_tcb) -- cgit v1.1