about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-09-06 16:29:10 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-09-06 16:29:10 -0700
commit04570aaa8ad88caad303f8afe469beb4cf851e17 (patch)
treeee5748b750d3cb2730d30ab541822784b750eedc
parentb80af2f40631871cf53a5e39d08d5d5516473b96 (diff)
downloadglibc-04570aaa8ad88caad303f8afe469beb4cf851e17.tar.gz
glibc-04570aaa8ad88caad303f8afe469beb4cf851e17.tar.xz
glibc-04570aaa8ad88caad303f8afe469beb4cf851e17.zip
Restore GL(dl_initial_dtv)
-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)