AddressSanitizer: revert r150683 - we can't get rid of headers that easily

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@150699 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/asan/asan_interceptors.cc b/lib/asan/asan_interceptors.cc
index 05fef27..87b3f67 100644
--- a/lib/asan/asan_interceptors.cc
+++ b/lib/asan/asan_interceptors.cc
@@ -34,11 +34,11 @@
 
 #if defined(__APPLE__)
 // FIXME(samsonov): Gradually replace system headers with declarations of
-// intercepted functions. We need these declarations on Mac to get addresses of
-// the functions to intercept.
+// intercepted functions.
+#include <pthread.h>
+#include <signal.h>
 #include <string.h>
 #include <strings.h>
-
 #endif  // __APPLE__
 
 namespace __asan {
@@ -218,10 +218,8 @@
 }
 
 #ifndef _WIN32
-extern "C"
-int pthread_create(void *thread, const void *attr,
-                   void *(*start_routine)(void*), void *arg);
-INTERCEPTOR(int, pthread_create, void *thread, const void *attr,
+INTERCEPTOR(int, pthread_create, pthread_t *thread,
+                                 const pthread_attr_t *attr,
                                  void *(*start_routine)(void*), void *arg) {
   GET_STACK_TRACE_HERE(kStackTraceMax);
   int current_tid = asanThreadRegistry().GetCurrentTidOrMinusOne();
@@ -239,9 +237,8 @@
   return NULL;
 }
 
-extern "C"
-int sigaction(int signum, const void *act, void *oldact);
-INTERCEPTOR(int, sigaction, int signum, const void *act, void *oldact) {
+INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act,
+                            struct sigaction *oldact) {
   if (!AsanInterceptsSignal(signum)) {
     return REAL(sigaction)(signum, act, oldact);
   }
@@ -396,7 +393,8 @@
 #endif
 
 #ifdef ANDROID
-DEFINE_REAL(int, sigaction, int signum, const void *act, void *oldact);
+DEFINE_REAL(int, sigaction, int signum, const struct sigaction *act,
+    struct sigaction *oldact);
 #endif
 
 INTERCEPTOR(int, strcasecmp, const char *s1, const char *s2) {