Restore GL(dl_initial_dtv)

This commit is contained in:
H.J. Lu 2012-09-06 16:29:10 -07:00
parent b80af2f406
commit 04570aaa8a
2 changed files with 8 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2012-09-06 H.J. Lu <hongjiu.lu@intel.com>
* elf/dl-tls.c (DL_INITIAL_DTV): Removed.
(_dl_initial_dtv): New. Defined if SHARED isn't defined.
(_dl_deallocate_tls): Restore GL(dl_initial_dtv).
2012-09-06 H.J. Lu <hongjiu.lu@intel.com>
* csu/libc-tls.c (static_dtv): Renamed to ...

View File

@ -466,9 +466,7 @@ 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)
# define _dl_initial_dtv (&_dl_static_dtv[1])
#endif
void
@ -484,7 +482,7 @@ _dl_deallocate_tls (void *tcb, bool dealloc_tcb)
free (dtv[1 + cnt].pointer.val);
/* The array starts with dtv[-1]. */
if (dtv != DL_INITIAL_DTV)
if (dtv != GL(dl_initial_dtv))
free (dtv - 1);
if (dealloc_tcb)