diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-02-23 06:19:23 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-02-23 06:19:23 +0000 |
commit | 094d3c54ae439a1dc83b6aa44caf81d54cab32e0 (patch) | |
tree | 958b93a2e38fd0c7962cdfa0d61f14c59ee91d3d /elf | |
parent | f9ab9ba9aba6426845aca1731bd9d9fea089432c (diff) | |
download | glibc-094d3c54ae439a1dc83b6aa44caf81d54cab32e0.zip glibc-094d3c54ae439a1dc83b6aa44caf81d54cab32e0.tar.gz glibc-094d3c54ae439a1dc83b6aa44caf81d54cab32e0.tar.bz2 |
* sysdeps/generic/libc-tls.c (static_dtv): Size the same as the
slotinfo array.
(__libc_setup_tls_): Initializer length of DTV based on array length.
* elf/dl-load.c: Revert last change.
* sysdeps/generic/dl-tls.c: Revert last change.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/dl-load.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c index 5c56247..088b222 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1056,7 +1056,6 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp, case PT_TLS: #ifdef USE_TLS -# ifdef SHARED if (ph->p_memsz == 0) /* Nothing to do for an empty segment. */ break; @@ -1084,6 +1083,7 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp, break; } +# ifdef SHARED if (l->l_prev == NULL || (mode & __RTLD_AUDIT) != 0) /* We are loading the executable itself when the dynamic linker was executed directly. The setup will happen later. */ @@ -1092,6 +1092,7 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp, /* In a static binary there is no way to tell if we dynamically loaded libpthread. */ if (GL(dl_error_catch_tsd) == &_dl_initial_error_catch_tsd) +# endif { /* We have not yet loaded libpthread. We can do the TLS setup right now! */ @@ -1124,12 +1125,6 @@ cannot allocate TLS data structures for initial thread"); _dl_deallocate_tls (tcb, 1); goto call_lose; } -# else - errval = EINVAL; - errstring = N_("\ -statically linked code cannot load module with TLS"); - goto call_lose; -# endif #endif /* Uh-oh, the binary expects TLS support but we cannot |