NPTL: Rename a variable

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@gmail.com>
This commit is contained in:
Bernhard Reutner-Fischer
2015-04-18 21:37:30 +02:00
parent 8e04c064c4
commit 7c78a5c52b
3 changed files with 18 additions and 4 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -1,11 +1,18 @@
/*
* Copyright (C) 2006 by Steven J. Hill <sjhill@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;
}