fix regression in pre-v7 arm on kernels with kuser helper removed
authorRich Felker <dalias@aerifal.cx>
Sun, 7 Jun 2015 20:55:23 +0000 (20:55 +0000)
committerRich Felker <dalias@aerifal.cx>
Sun, 7 Jun 2015 21:23:23 +0000 (21:23 +0000)
commit75ce4503950621b11fcc7f1fd1187dbcf3cde312
tree7a2f3c2d25e88d08af7c50a24dc0f4b648f6cd07
parent32f3c4f70633488550c29a2444f819aafdf345ff
fix regression in pre-v7 arm on kernels with kuser helper removed

the arm atomics/TLS runtime selection code is called from
__set_thread_area and depends on having libc.auxv and __hwcap
available. commit 71f099cb7db821c51d8f39dfac622c61e54d794c moved the
first call to __set_thread_area to the top of dynamic linking stage 3,
before this data is made available, causing the runtime detection code
to always see __hwcap as zero and thereby select the atomics/TLS
implementations based on kuser helper.

upcoming work on superh will use similar runtime detection.

ideally this early-init code should be cleanly refactored and shared
between the dynamic linker and static-linked startup.
src/ldso/dynlink.c