From: Rich Felker Date: Sun, 11 Aug 2019 15:57:38 +0000 (-0400) Subject: ldso: remove redundant runtime checks in static TLS logic X-Git-Tag: v1.1.24~43 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=71af5309874269bcc9e4b84ea716fab33d888c1d;p=oweals%2Fmusl.git ldso: remove redundant runtime checks in static TLS logic as a result of commit ffab43602b5900c86b7040abdda8ccf6cdec95f5, static_tls_cnt is now valid during relocations at program startup, so it's no longer necessary to condition the check against static_tls_cnt on this being a runtime (dlopen) relocation. --- diff --git a/ldso/dynlink.c b/ldso/dynlink.c index 93ef3633..531811cc 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -390,7 +390,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri tls_val = def.sym ? def.sym->st_value : 0; if ((type == REL_TPOFF || type == REL_TPOFF_NEG) - && runtime && def.dso->tls_id > static_tls_cnt) { + && def.dso->tls_id > static_tls_cnt) { error("Error relocating %s: %s: initial-exec TLS " "resolves to dynamic definition in %s", dso->name, name, def.dso->name); @@ -450,7 +450,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri #endif case REL_TLSDESC: if (stride<3) addend = reloc_addr[1]; - if (runtime && def.dso->tls_id > static_tls_cnt) { + if (def.dso->tls_id > static_tls_cnt) { struct td_index *new = malloc(sizeof *new); if (!new) { error(