diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-10-19 01:33:52 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-10-19 01:33:52 -0400 |
commit | ebee8c2b477807fe58fd35d35783633ea08b049c (patch) | |
tree | 4127d999142191ee3509a397541b2898845fd7bc | |
parent | 6a04d1b8c6181eebfc1d99c6b0e190728d4fabf1 (diff) | |
download | musl-ebee8c2b477807fe58fd35d35783633ea08b049c.tar.gz musl-ebee8c2b477807fe58fd35d35783633ea08b049c.tar.bz2 musl-ebee8c2b477807fe58fd35d35783633ea08b049c.tar.xz musl-ebee8c2b477807fe58fd35d35783633ea08b049c.zip |
fix crashes in static-linked multithreaded programs without TLS
-rw-r--r-- | src/env/__init_tls.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/env/__init_tls.c b/src/env/__init_tls.c index ab5992ce..c341bfc1 100644 --- a/src/env/__init_tls.c +++ b/src/env/__init_tls.c @@ -60,6 +60,8 @@ void __init_tls(size_t *aux) Phdr *phdr, *tls_phdr=0; size_t base = 0; + libc.tls_size = sizeof(struct pthread); + for (p=(void *)aux[AT_PHDR],n=aux[AT_PHNUM]; n; n--,p+=aux[AT_PHENT]) { phdr = (void *)p; if (phdr->p_type == PT_PHDR) |