[llvm-commits] [compiler-rt] r150683 - in /compiler-rt/trunk/lib/asan: asan_interceptors.cc asan_interceptors.h
Alexey Samsonov
samsonov at google.com
Thu Feb 16 03:26:53 PST 2012
Author: samsonov
Date: Thu Feb 16 05:26:52 2012
New Revision: 150683
URL: http://llvm.org/viewvc/llvm-project?rev=150683&view=rev
Log:
AddressSanitizer: don't include pthread.h and signal.h in interceptors on Mac
Modified:
compiler-rt/trunk/lib/asan/asan_interceptors.cc
compiler-rt/trunk/lib/asan/asan_interceptors.h
Modified: compiler-rt/trunk/lib/asan/asan_interceptors.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.cc?rev=150683&r1=150682&r2=150683&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_interceptors.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_interceptors.cc Thu Feb 16 05:26:52 2012
@@ -34,11 +34,11 @@
#if defined(__APPLE__)
// FIXME(samsonov): Gradually replace system headers with declarations of
-// intercepted functions.
-#include <pthread.h>
-#include <signal.h>
+// intercepted functions. We need these declarations on Mac to get addresses of
+// the functions to intercept.
#include <string.h>
#include <strings.h>
+
#endif // __APPLE__
namespace __asan {
@@ -218,8 +218,10 @@
}
#ifndef _WIN32
-INTERCEPTOR(int, pthread_create, pthread_t *thread,
- const pthread_attr_t *attr,
+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,
void *(*start_routine)(void*), void *arg) {
GET_STACK_TRACE_HERE(kStackTraceMax);
int current_tid = asanThreadRegistry().GetCurrentTidOrMinusOne();
@@ -237,8 +239,9 @@
return NULL;
}
-INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act,
- struct sigaction *oldact) {
+extern "C"
+int sigaction(int signum, const void *act, void *oldact);
+INTERCEPTOR(int, sigaction, int signum, const void *act, void *oldact) {
if (!AsanInterceptsSignal(signum)) {
return REAL(sigaction)(signum, act, oldact);
}
@@ -393,8 +396,7 @@
#endif
#ifdef ANDROID
-DEFINE_REAL(int, sigaction, int signum, const struct sigaction *act,
- struct sigaction *oldact);
+DEFINE_REAL(int, sigaction, int signum, const void *act, void *oldact);
#endif
INTERCEPTOR(int, strcasecmp, const char *s1, const char *s2) {
Modified: compiler-rt/trunk/lib/asan/asan_interceptors.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.h?rev=150683&r1=150682&r2=150683&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_interceptors.h (original)
+++ compiler-rt/trunk/lib/asan/asan_interceptors.h Thu Feb 16 05:26:52 2012
@@ -24,9 +24,7 @@
DECLARE_REAL(size_t, strlen, const char *s);
DECLARE_REAL(char*, strncpy, char *to, const char *from, size_t size);
DECLARE_REAL(size_t, strnlen, const char *s, size_t maxlen);
-struct sigaction;
-DECLARE_REAL(int, sigaction, int signum, const struct sigaction *act,
- struct sigaction *oldact);
+DECLARE_REAL(int, sigaction, int signum, const void *act, void *oldact);
namespace __asan {
More information about the llvm-commits
mailing list