diff options
author | Josh Gao <jmgao@google.com> | 2017-02-22 12:19:05 -0800 |
---|---|---|
committer | Josh Gao <jmgao@google.com> | 2017-02-22 16:05:03 -0800 |
commit | 5e2285d3ccdbb64a49ad2e5e521f50c897a3954d (patch) | |
tree | cd56c251f1710652fad3b84121248a12071b42e0 /libc/kernel/tools/utils.py | |
parent | c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854 (diff) |
Allocate thread local buffers in __init_tls.
Thread local buffers were using pthread_setspecific for storage with
lazy initialization. pthread_setspecific shares TLS slots between the
linker and libc.so, so thread local buffers being initialized in a
different order between libc.so and the linker meant that bad things
would happen (manifesting as snprintf not working because the
locale was mangled)
Bug: http://b/20464031
Test: /data/nativetest64/bionic-unit-tests/bionic-unit-tests
everything passes
Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests
thread_local tests are failing both before and after (KUSER_HELPERS?)
Test: /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static
no additional failures
Change-Id: I9f445a77c6e86979f3fa49c4a5feecf6ec2b0c3f
Diffstat (limited to 'libc/kernel/tools/utils.py')
0 files changed, 0 insertions, 0 deletions