add new stage 2b to dynamic linker bootstrap for thread pointer
commit1c84c99913bf1cd47b866ed31e665848a0da84a2
authorRich Felker <dalias@aerifal.cx>
Tue, 16 Oct 2018 17:36:51 +0000 (16 13:36 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 16 Oct 2018 17:50:28 +0000 (16 13:50 -0400)
tree03d3817133ba8655b474863381211ccd3ed11e34
parent2085378a4fad15f65686d78f52dc6fb5362bdf20
add new stage 2b to dynamic linker bootstrap for thread pointer

commit a603a75a72bb469c6be4963ed1b55fabe675fe15 removed attribute
const from __errno_location and pthread_self, and the same reasoning
forced arch definitions of __pthread_self to use volatile asm,
significantly impacting code generation and imposing manual caching of
pointers where the impact might be noticable.

reorder the thread pointer setup and place it across a strong barrier
(symbolic function lookup) so that there is no assumed ordering
between the initialization and the accesses to the thread pointer in
stage 3.
ldso/dynlink.c