|
@@ -48,6 +48,9 @@
|
|
/* Value used for dtv entries for which the allocation is delayed. */
|
|
/* Value used for dtv entries for which the allocation is delayed. */
|
|
# define TLS_DTV_UNALLOCATED ((void *) -1l)
|
|
# define TLS_DTV_UNALLOCATED ((void *) -1l)
|
|
|
|
|
|
|
|
+#ifndef SHARED
|
|
|
|
+extern dtv_t static_dtv;
|
|
|
|
+#endif
|
|
|
|
|
|
/* Out-of-memory handler. */
|
|
/* Out-of-memory handler. */
|
|
# ifdef SHARED
|
|
# ifdef SHARED
|
|
@@ -584,6 +587,8 @@ _dl_deallocate_tls (void *tcb, bool dealloc_tcb)
|
|
/* The array starts with dtv[-1]. */
|
|
/* The array starts with dtv[-1]. */
|
|
#ifdef SHARED
|
|
#ifdef SHARED
|
|
if (dtv != GL(dl_initial_dtv))
|
|
if (dtv != GL(dl_initial_dtv))
|
|
|
|
+#else
|
|
|
|
+ if ((dtv - 1) != &static_dtv)
|
|
#endif
|
|
#endif
|
|
free (dtv - 1);
|
|
free (dtv - 1);
|
|
|
|
|