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.
This commit is contained in:
Rich Felker 2012-10-07 20:19:11 -04:00
parent 00902c7384
commit 017bf140ff
1 changed files with 1 additions and 1 deletions

View File

@ -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;