فهرست منبع

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.
Rich Felker 12 سال پیش
والد
کامیت
017bf140ff
1فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  1. 1 1
      src/ldso/dynlink.c

+ 1 - 1
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;