From 017bf140ffb41e9a016df84dc4c1806e0686b28a Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 7 Oct 2012 20:19:11 -0400 Subject: [PATCH] fix breakage due to initializing thread pointer when loading libs at initial program load, all libraries must be loaded before the thread pointer can be setup, since the TP-relative addresses of all initial TLS objects must be constant. --- src/ldso/dynlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c index 93cfb429..33ef7e55 100644 --- a/src/ldso/dynlink.c +++ b/src/ldso/dynlink.c @@ -533,7 +533,7 @@ static struct dso *load_library(const char *name) /* Add a shortname only if name arg was not an explicit pathname. */ if (pathname != name) p->shortname = strrchr(p->name, '/')+1; if (p->tls_image) { - if (!__pthread_self_init()) { + if (runtime && !__pthread_self_init()) { free(p); munmap(map, map_len); return 0;