OSDN Git Service

Move _thread_created_hook to where it belongs.
authorElliott Hughes <enh@google.com>
Wed, 15 Jan 2014 01:16:18 +0000 (17:16 -0800)
committerElliott Hughes <enh@google.com>
Wed, 15 Jan 2014 01:16:18 +0000 (17:16 -0800)
Change-Id: I643d761c78ccaae25270aeffa2afb811c4e2fcd7

libc/bionic/pthread_create.cpp
libc/bionic/ptrace.cpp

index f20a005..b790e2b 100644 (file)
 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;
index c0fd5de..5715b09 100644 (file)
@@ -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) {
-}