summaryrefslogtreecommitdiff
path: root/libpthread
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2015-10-12 16:21:54 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2015-10-12 16:29:26 +0200
commit13a6cfff31774dd06b861f1f4a9b0e36fa5ac01d (patch)
tree0653e0759429bd709e0a3800183438327c6d0b42 /libpthread
parent4d8e5484afb4978f672a8568ddd12e628fb02724 (diff)
fix static binaries linked with pthread and compiled with ssp
Move TLS initialization for static builds up to the calling function as suggested by Daniel Fahlgren. Reported-By: Daniel Fahlgren <daniel@fahlgren.se>
Diffstat (limited to 'libpthread')
-rw-r--r--libpthread/nptl/init.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/libpthread/nptl/init.c b/libpthread/nptl/init.c
index a9706d1b4..bcd49edff 100644
--- a/libpthread/nptl/init.c
+++ b/libpthread/nptl/init.c
@@ -60,15 +60,9 @@ int __have_futex_clock_realtime;
/* Version of the library, used in libthread_db to detect mismatches. */
static const char nptl_version[] __attribute_used__ = VERSION;
-
-#ifndef SHARED
-extern void __libc_setup_tls (size_t tcbsize, size_t tcbalign);
-#endif
-
#ifdef SHARED
static void nptl_freeres (void);
-
static const struct pthread_functions pthread_functions =
{
.ptr_pthread_attr_destroy = __pthread_attr_destroy,
@@ -265,18 +259,6 @@ __pthread_initialize_minimal_internal (void)
return;
initialized = 1;
-#ifndef SHARED
- /* Unlike in the dynamically linked case the dynamic linker has not
- taken care of initializing the TLS data structures. */
- __libc_setup_tls (TLS_TCB_SIZE, TLS_TCB_ALIGN);
-
- /* We must prevent gcc from being clever and move any of the
- following code ahead of the __libc_setup_tls call. This function
- will initialize the thread register which is subsequently
- used. */
- __asm__ __volatile__ ("");
-#endif
-
/* Minimal initialization of the thread descriptor. */
struct pthread *pd = THREAD_SELF;
INTERNAL_SYSCALL_DECL (err);