diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | elf/dl-tls.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index e259fabbbf..f8ccb686b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 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 ... (_dl_static_dtv): This. Make it global. (_dl_initial_dtv): Removed. diff --git a/elf/dl-tls.c b/elf/dl-tls.c index 9d896b7bdd..c3a3d68f93 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -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) |