Fix __get_tls() in static C library to use kernel helpers.

This is needed to fix gdbserver's handling of threaded programs,
among other things.

Change-Id: I823387c602cef9891532da946a01db14be780ab0
This commit is contained in:
David 'Digit' Turner
2010-08-27 08:19:19 -07:00
parent 22f1e3d4fa
commit 6a51defa03
3 changed files with 74 additions and 15 deletions

View File

@@ -73,6 +73,13 @@ Differences between current and Android 2.2:
- <dlfcn.h>: fixed dlopen() implementation to support dlopen(NULL, ...).
This allows one to look at the dynamic symbols exported by an executable.
- <private/bionic_tls.h>: use kernel helper functions for static versions
of the C library. This is necessary because we don't know where the corresponding
machine code is going to run, and the optimization for __get_tls() might
not match the features of the target device where we run a static executable
linked to the C library. This fixes one of the bug that explains why gdbserver
didn't work well with threads.
-------------------------------------------------------------------------------
Differences between Android 2.2. and Android 2.1: