fix misalignment of dtv in static-linked programs with odd-sized TLS
authorRich Felker <dalias@aerifal.cx>
Thu, 23 Apr 2015 22:51:02 +0000 (18:51 -0400)
committerRich Felker <dalias@aerifal.cx>
Thu, 23 Apr 2015 22:51:02 +0000 (18:51 -0400)
commitabead1be6d4a303037ee65a4009c59e5b5fe0a82
tree1bce96044564e5b7f7ecbaa6730c034235d4e79a
parent23129ab8d5f86927aad4f67c1820362acce09c45
fix misalignment of dtv in static-linked programs with odd-sized TLS

both static and dynamic linked versions of the __copy_tls function
have a hidden assumption that the alignment of the beginning or end of
the memory passed is suitable for storing an array of pointers for the
dtv. pthread_create satisfies this requirement except when
libc.tls_size is misaligned, which cannot happen with dynamic linking
due to way update_tls_size computes the total size, but could happen
with static linking and odd-sized TLS.
src/env/__init_tls.c