From 75aafc716bfcf989abc986c68d506e8a4f991ade Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 12 Sep 2002 09:15:22 +0000 Subject: * elf/rtld.c (dl_main) [USE_TLS]: Adjust l_tls_initimage of main executable if needed, in case it's actually a shared object. --- elf/rtld.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'elf/rtld.c') diff --git a/elf/rtld.c b/elf/rtld.c index 273926ef53..22aa48543a 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -832,6 +832,13 @@ of this helper program; chances are you did not intend to run this program.\n\ break; #endif } +#ifdef USE_TLS + /* Adjust the address of the TLS initialization image in case + the executable is actually an ET_DYN object. */ + if (GL(dl_loaded)->l_tls_initimage != NULL) + GL(dl_loaded)->l_tls_initimage + = (char *) GL(dl_loaded)->l_tls_initimage + GL(dl_loaded)->l_addr; +#endif if (! GL(dl_loaded)->l_map_end) GL(dl_loaded)->l_map_end = ~0; if (! GL(dl_rtld_map).l_libname && GL(dl_rtld_map).l_name) -- cgit v1.2.3