No description
Find a file
Evgeniy Stepanov 1a78fbb5c8 Initialize TLS before any application code is run.
Since e19d702b8e, dlsym and friends use recursive mutexes that
require the current thread id, which is not available before the libc
constructor. This prevents us from using dlsym() in .preinit_array.

This change moves TLS initialization from libc constructor to the earliest
possible point - immediately after linker itself is relocated. As a result,
pthread_internal_t for the initial thread is available from the start.

As a bonus, values stored in TLS in .preinit_array are not lost when libc is
initialized.

Change-Id: Iee5a710ee000173bff63e924adeb4a4c600c1e2d
2012-04-13 00:08:11 +04:00
libc Initialize TLS before any application code is run. 2012-04-13 00:08:11 +04:00
libdl fix prototype of dladdr 2011-09-28 12:17:34 -07:00
libm libm: cherry-pick one patch from freebsd to fix logb() denormals issue 2012-02-28 12:28:05 +08:00
libstdc++ bionic: Do not use <sys/atomics.h> for platform code. 2011-11-16 16:28:10 +01:00
libthread_db bionic, libthread_db x86 fixes 2011-04-27 09:12:58 -07:00
linker Initialize TLS before any application code is run. 2012-04-13 00:08:11 +04:00
.gitignore Merge memory checking functionality from sandbox 2010-02-16 11:43:18 -08:00
Android.mk Remove the simulator target from all makefiles. 2011-07-11 22:11:41 -07:00
CleanSpec.mk Add an empty CleanSpec.mk 2010-03-08 18:04:02 -08:00
MAINTAINERS added and modified libm to support SuperH architecture 2009-08-31 16:25:42 +09:00
ThirdPartyProject.prop add meta-files about 3rd party projects 2010-07-16 11:41:33 -07:00