aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-02-23 06:19:23 +0000
committerUlrich Drepper <drepper@redhat.com>2005-02-23 06:19:23 +0000
commit094d3c54ae439a1dc83b6aa44caf81d54cab32e0 (patch)
tree958b93a2e38fd0c7962cdfa0d61f14c59ee91d3d /elf
parentf9ab9ba9aba6426845aca1731bd9d9fea089432c (diff)
downloadglibc-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.c9
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