[git commit] NPTL: Rename a variable
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Wed Apr 22 17:59:09 UTC 2015
commit: http://git.uclibc.org/uClibc/commit/?id=7c78a5c52b2db6bb0d6e163b38897a003a289958
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master
There seems to be a bug in gold with static TLS at least on x86_64 (?)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
ldso/include/ldsodefs.h | 2 ++
ldso/ldso/dl-tls.c | 9 +++++++--
libc/misc/pthread/tsd.c | 11 +++++++++--
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/ldso/include/ldsodefs.h b/ldso/include/ldsodefs.h
index 4063d00..0feed89 100644
--- a/ldso/include/ldsodefs.h
+++ b/ldso/include/ldsodefs.h
@@ -106,7 +106,9 @@ EXTERN size_t _dl_tls_static_used;
/* Alignment requirement of the static TLS block. */
EXTERN size_t _dl_tls_static_align;
/* Function pointer for catching TLS errors. */
+#if 1 /* def _LIBC_REENTRANT */
EXTERN void **(*_dl_error_catch_tsd) (void) __attribute__ ((const));
+#endif
/* Number of additional entries in the slotinfo array of each slotinfo
list element. A large number makes it almost certain take we never
diff --git a/ldso/ldso/dl-tls.c b/ldso/ldso/dl-tls.c
index 6679693..05193a8 100644
--- a/ldso/ldso/dl-tls.c
+++ b/ldso/ldso/dl-tls.c
@@ -950,8 +950,13 @@ static bool tls_init_tp_called;
void ** __attribute__ ((const))
_dl_initial_error_catch_tsd (void)
{
- static void *data;
- return &data;
+ static
+#if 0 /* def ARCH_NEEDS_BOOTSTRAP_RELOCS */
+ /* If we have to do bootstrap relocs anyway we might as well */
+ __thread
+# endif
+ void *__tsd_data;
+ return &__tsd_data;
}
#ifdef SHARED
diff --git a/libc/misc/pthread/tsd.c b/libc/misc/pthread/tsd.c
index 586ead3..3598b89 100644
--- a/libc/misc/pthread/tsd.c
+++ b/libc/misc/pthread/tsd.c
@@ -1,11 +1,18 @@
+/*
+ * Copyright (C) 2006 by Steven J. Hill <sjhill at realitydiluted.com>
+ *
+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
+ */
/* libpthread sets _dl_error_catch_tsd to point to this function.
We define it here instead of in libpthread so that it doesn't
need to have a TLS segment of its own just for this one pointer. */
+#include <features.h>
+
void **__libc_dl_error_tsd(void) __attribute__ ((const));
void ** __attribute__ ((const))
__libc_dl_error_tsd (void)
{
- static __thread void *data __attribute__ ((tls_model ("initial-exec")));
- return &data;
+ static __thread void *__tsd_data attribute_tls_model_ie;
+ return &__tsd_data;
}
More information about the uClibc-cvs
mailing list