Switch pthread_create over to __bionic_clone.

Bug: 8206355
Bug: 11693195
Change-Id: I04aadbc36c87e1b7e33324b9a930a1e441fbfed6
This commit is contained in:
Elliott Hughes
2013-11-15 11:51:07 -08:00
parent 05ec00bf62
commit 70b24b1cc2
15 changed files with 78 additions and 279 deletions

View File

@@ -49,6 +49,7 @@
extern "C" abort_msg_t** __abort_message_ptr;
extern "C" uintptr_t __get_sp(void);
extern "C" int __system_properties_init(void);
extern "C" int __set_tls(void* ptr);
// Not public, but well-known in the BSDs.
const char* __progname;
@@ -96,7 +97,10 @@ void __libc_init_tls(KernelArgumentBlock& args) {
pthread_attr_setstack(&thread.attr, (void*) stack_bottom, stack_size);
_init_thread(&thread, false);
__init_tls(&thread);
__set_tls(thread.tls);
tls[TLS_SLOT_BIONIC_PREINIT] = &args;
__init_alternate_signal_stack(&thread);
}
void __libc_init_common(KernelArgumentBlock& args) {