From af8aebebb52d73ea38c604525a6a5857618861cf Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 14 Jan 2014 17:16:18 -0800 Subject: [PATCH] Move _thread_created_hook to where it belongs. Change-Id: I643d761c78ccaae25270aeffa2afb811c4e2fcd7 --- libc/bionic/pthread_create.cpp | 9 ++++----- libc/bionic/ptrace.cpp | 14 -------------- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/libc/bionic/pthread_create.cpp b/libc/bionic/pthread_create.cpp index f20a0053e..b790e2bd9 100644 --- a/libc/bionic/pthread_create.cpp +++ b/libc/bionic/pthread_create.cpp @@ -43,20 +43,19 @@ extern "C" pid_t __bionic_clone(uint32_t flags, void* child_stack, int* parent_tid, void* tls, int* child_tid, int (*fn)(void*), void* arg); extern "C" int __set_tls(void*); +// Used by gdb to track thread creation. See libthread_db. #ifdef __i386__ -#define ATTRIBUTES __attribute__((noinline)) __attribute__((fastcall)) +extern "C" __attribute__((noinline)) __attribute__((fastcall)) void _thread_created_hook(pid_t) {} #else -#define ATTRIBUTES __attribute__((noinline)) +extern "C" __attribute__((noinline)) void _thread_created_hook(pid_t) {} #endif -extern "C" void ATTRIBUTES _thread_created_hook(pid_t thread_id); - static pthread_mutex_t gPthreadStackCreationLock = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t gDebuggerNotificationLock = PTHREAD_MUTEX_INITIALIZER; // This code is used both by each new pthread and the code that initializes the main thread. -void __init_tls(pthread_internal_t* thread) { +void __init_tls(pthread_internal_t* thread) { // Zero-initialize all the slots after TLS_SLOT_SELF and TLS_SLOT_THREAD_ID. for (size_t i = TLS_SLOT_ERRNO; i < BIONIC_TLS_SLOTS; ++i) { thread->tls[i] = NULL; diff --git a/libc/bionic/ptrace.cpp b/libc/bionic/ptrace.cpp index c0fd5ded3..5715b0934 100644 --- a/libc/bionic/ptrace.cpp +++ b/libc/bionic/ptrace.cpp @@ -51,17 +51,3 @@ long ptrace(int request, pid_t pid, void* addr, void* data) { return __ptrace(request, pid, addr, data); } } - -/* - * Hook for gdb to get notified when a thread is created - */ -#ifdef __i386__ -#define ATTRIBUTES __attribute__((noinline)) __attribute__((fastcall)) -#else -#define ATTRIBUTES __attribute__((noinline)) -#endif - -extern "C" void _thread_created_hook(pid_t) ATTRIBUTES; - -void _thread_created_hook(pid_t) { -}