summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--elf/dl-tls.c6
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)