Module Name: src
Committed By: christos
Date: Wed Oct 15 18:44:50 UTC 2014
Modified Files:
src/external/gpl3/gcc/dist/libsanitizer/asan:
asan_intercepted_functions.h asan_internal.h asan_linux.cc
asan_malloc_linux.cc asan_posix.cc
src/external/gpl3/gcc/dist/libsanitizer/interception: interception.h
interception_linux.cc interception_linux.h
interception_type_test.cc
src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common:
sanitizer_common_interceptors.inc
Log Message:
make this compile, pretending a lot that we are linux.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/external/gpl3/gcc/dist/libsanitizer/asan/asan_intercepted_functions.h \
src/external/gpl3/gcc/dist/libsanitizer/asan/asan_internal.h \
src/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc \
src/external/gpl3/gcc/dist/libsanitizer/asan/asan_malloc_linux.cc \
src/external/gpl3/gcc/dist/libsanitizer/asan/asan_posix.cc
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/external/gpl3/gcc/dist/libsanitizer/interception/interception.h \
src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.cc \
src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.h \
src/external/gpl3/gcc/dist/libsanitizer/interception/interception_type_test.cc
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gcc/dist/libsanitizer/asan/asan_intercepted_functions.h
diff -u src/external/gpl3/gcc/dist/libsanitizer/asan/asan_intercepted_functions.h:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/asan/asan_intercepted_functions.h:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/asan/asan_intercepted_functions.h:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/asan/asan_intercepted_functions.h Wed Oct 15 14:44:49 2014
@@ -41,7 +41,7 @@ using __sanitizer::uptr;
# define ASAN_INTERCEPT_MLOCKX 0
#endif
-#if defined(__linux__)
+#if defined(__linux__) || defined(__NetBSD__)
# define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 1
#else
# define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 0
@@ -53,7 +53,7 @@ using __sanitizer::uptr;
# define ASAN_INTERCEPT_STRNLEN 0
#endif
-#if defined(__linux__) && !defined(ANDROID)
+#if (defined(__linux__) || defined(__NetBSD__)) && !defined(ANDROID)
# define ASAN_INTERCEPT_SWAPCONTEXT 1
#else
# define ASAN_INTERCEPT_SWAPCONTEXT 0
Index: src/external/gpl3/gcc/dist/libsanitizer/asan/asan_internal.h
diff -u src/external/gpl3/gcc/dist/libsanitizer/asan/asan_internal.h:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/asan/asan_internal.h:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/asan/asan_internal.h:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/asan/asan_internal.h Wed Oct 15 14:44:49 2014
@@ -19,13 +19,13 @@
#include "sanitizer_common/sanitizer_stacktrace.h"
#include "sanitizer_common/sanitizer_libc.h"
-#if !defined(__linux__) && !defined(__APPLE__) && !defined(_WIN32)
+#if !defined(__linux__) && !defined(__APPLE__) && !defined(_WIN32) && !defined(__NetBSD__)
# error "This operating system is not supported by AddressSanitizer"
#endif
#define ASAN_DEFAULT_FAILURE_EXITCODE 1
-#if defined(__linux__)
+#if defined(__linux__) || defined(__NetBSD__)
# define ASAN_LINUX 1
#else
# define ASAN_LINUX 0
Index: src/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc
diff -u src/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc Wed Oct 15 14:44:49 2014
@@ -9,7 +9,7 @@
//
// Linux-specific details.
//===----------------------------------------------------------------------===//
-#ifdef __linux__
+#if defined(__linux__) || defined(__NetBSD__)
#include "asan_interceptors.h"
#include "asan_internal.h"
@@ -25,6 +25,7 @@
#include <sys/types.h>
#include <fcntl.h>
#include <pthread.h>
+#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <unwind.h>
@@ -47,6 +48,13 @@ void *AsanDoesNotSupportStaticLinkage()
return &_DYNAMIC; // defined in link.h
}
+#ifdef __NetBSD__
+#define gregs __gregs
+#define REG_RIP _REG_RIP
+#define REG_RBP _REG_RBP
+#define REG_RSP _REG_RSP
+#endif
+
void GetPcSpBp(void *context, uptr *pc, uptr *sp, uptr *bp) {
#if ASAN_ANDROID
*pc = *sp = *bp = 0;
@@ -131,4 +139,4 @@ void ReadContextStack(void *context, upt
} // namespace __asan
-#endif // __linux__
+#endif // __linux__ || __NetBSD__
Index: src/external/gpl3/gcc/dist/libsanitizer/asan/asan_malloc_linux.cc
diff -u src/external/gpl3/gcc/dist/libsanitizer/asan/asan_malloc_linux.cc:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/asan/asan_malloc_linux.cc:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/asan/asan_malloc_linux.cc:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/asan/asan_malloc_linux.cc Wed Oct 15 14:44:49 2014
@@ -11,7 +11,7 @@
// We simply define functions like malloc, free, realloc, etc.
// They will replace the corresponding libc functions automagically.
//===----------------------------------------------------------------------===//
-#ifdef __linux__
+#if defined(__linux__) || defined(__NetBSD__)
#include "asan_allocator.h"
#include "asan_interceptors.h"
@@ -144,4 +144,4 @@ INTERCEPTOR(void, malloc_stats, void) {
__asan_print_accumulated_stats();
}
-#endif // __linux__
+#endif // __linux__ || __NetBSD__
Index: src/external/gpl3/gcc/dist/libsanitizer/asan/asan_posix.cc
diff -u src/external/gpl3/gcc/dist/libsanitizer/asan/asan_posix.cc:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/asan/asan_posix.cc:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/asan/asan_posix.cc:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/asan/asan_posix.cc Wed Oct 15 14:44:49 2014
@@ -9,7 +9,7 @@
//
// Posix-specific details.
//===----------------------------------------------------------------------===//
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
#include "asan_internal.h"
#include "asan_interceptors.h"
@@ -115,4 +115,4 @@ void AsanTSDSet(void *tsd) {
} // namespace __asan
-#endif // __linux__ || __APPLE_
+#endif // __linux__ || __APPLE_ || __NetBSD__
Index: src/external/gpl3/gcc/dist/libsanitizer/interception/interception.h
diff -u src/external/gpl3/gcc/dist/libsanitizer/interception/interception.h:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/interception/interception.h:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/interception/interception.h:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/interception/interception.h Wed Oct 15 14:44:50 2014
@@ -13,7 +13,7 @@
#ifndef INTERCEPTION_H
#define INTERCEPTION_H
-#if !defined(__linux__) && !defined(__APPLE__) && !defined(_WIN32)
+#if !defined(__linux__) && !defined(__APPLE__) && !defined(_WIN32) && !defined(__NetBSD__)
# error "Interception doesn't work on this operating system."
#endif
@@ -29,7 +29,7 @@ typedef __sanitizer::s64 INTMAX_T;
// _FILE_OFFSET_BITS. This definition of OFF_T matches the ABI of system calls
// like pread and mmap, as opposed to pread64 and mmap64.
// Mac and Linux/x86-64 are special.
-#if defined(__APPLE__) || (defined(__linux__) && defined(__x86_64__))
+#if defined(__APPLE__) || (defined(__linux__) && defined(__x86_64__)) || defined(__NetBSD__)
typedef __sanitizer::u64 OFF_T;
#else
typedef __sanitizer::uptr OFF_T;
@@ -176,7 +176,7 @@ typedef unsigned long uptr; // NOLINT
#define INCLUDED_FROM_INTERCEPTION_LIB
-#if defined(__linux__)
+#if defined(__linux__) || defined(__NetBSD__)
# include "interception_linux.h"
# define INTERCEPT_FUNCTION(func) INTERCEPT_FUNCTION_LINUX(func)
#elif defined(__APPLE__)
Index: src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.cc
diff -u src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.cc:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.cc:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.cc:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.cc Wed Oct 15 14:44:50 2014
@@ -10,7 +10,7 @@
// Linux-specific interception methods.
//===----------------------------------------------------------------------===//
-#ifdef __linux__
+#if defined(__linux__) || defined(__NetBSD__)
#include "interception.h"
#include <stddef.h> // for NULL
@@ -25,4 +25,4 @@ bool GetRealFunctionAddress(const char *
} // namespace __interception
-#endif // __linux__
+#endif // __linux__ || __NetBSD__
Index: src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.h
diff -u src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.h:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.h:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.h:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/interception/interception_linux.h Wed Oct 15 14:44:50 2014
@@ -10,7 +10,7 @@
// Linux-specific interception methods.
//===----------------------------------------------------------------------===//
-#ifdef __linux__
+#if defined(__linux__) || defined(__NetBSD__)
#if !defined(INCLUDED_FROM_INTERCEPTION_LIB)
# error "interception_linux.h should be included from interception library only"
@@ -32,4 +32,4 @@ bool GetRealFunctionAddress(const char *
(::__interception::uptr)&WRAP(func))
#endif // INTERCEPTION_LINUX_H
-#endif // __linux__
+#endif // __linux__ || __NetBSD__
Index: src/external/gpl3/gcc/dist/libsanitizer/interception/interception_type_test.cc
diff -u src/external/gpl3/gcc/dist/libsanitizer/interception/interception_type_test.cc:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/interception/interception_type_test.cc:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/interception/interception_type_test.cc:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/interception/interception_type_test.cc Wed Oct 15 14:44:50 2014
@@ -10,7 +10,7 @@
// Compile-time tests of the internal type definitions.
//===----------------------------------------------------------------------===//
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
#include "interception.h"
#include <sys/types.h>
@@ -22,7 +22,7 @@ COMPILER_CHECK(sizeof(SSIZE_T) == sizeof
COMPILER_CHECK(sizeof(PTRDIFF_T) == sizeof(ptrdiff_t));
COMPILER_CHECK(sizeof(INTMAX_T) == sizeof(intmax_t));
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__NetBSD__)
COMPILER_CHECK(sizeof(OFF64_T) == sizeof(off64_t));
#endif
Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1.1.1.1 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1.2
--- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1.1.1.1 Sat Mar 1 03:41:18 2014
+++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc Wed Oct 15 14:44:50 2014
@@ -296,6 +296,14 @@ SCANF_INTERCEPTOR_IMPL(fscanf, vfscanf,
INTERCEPTOR(int, sscanf, const char *str, const char *format, ...)
SCANF_INTERCEPTOR_IMPL(sscanf, vsscanf, str, format)
+#define INIT_SCANF_NORMAL \
+ INTERCEPT_FUNCTION(scanf); \
+ INTERCEPT_FUNCTION(sscanf); \
+ INTERCEPT_FUNCTION(fscanf); \
+ INTERCEPT_FUNCTION(vscanf); \
+ INTERCEPT_FUNCTION(vsscanf); \
+ INTERCEPT_FUNCTION(vfscanf); \
+
#if SANITIZER_INTERCEPT_ISOC99_SCANF
INTERCEPTOR(int, __isoc99_scanf, const char *format, ...)
SCANF_INTERCEPTOR_IMPL(__isoc99_scanf, __isoc99_vscanf, format)
@@ -305,21 +313,22 @@ SCANF_INTERCEPTOR_IMPL(__isoc99_fscanf,
INTERCEPTOR(int, __isoc99_sscanf, const char *str, const char *format, ...)
SCANF_INTERCEPTOR_IMPL(__isoc99_sscanf, __isoc99_vsscanf, str, format)
-#endif
-#define INIT_SCANF \
- INTERCEPT_FUNCTION(scanf); \
- INTERCEPT_FUNCTION(sscanf); \
- INTERCEPT_FUNCTION(fscanf); \
- INTERCEPT_FUNCTION(vscanf); \
- INTERCEPT_FUNCTION(vsscanf); \
- INTERCEPT_FUNCTION(vfscanf); \
+
+#define INIT_SCANF_ISOC99 \
INTERCEPT_FUNCTION(__isoc99_scanf); \
INTERCEPT_FUNCTION(__isoc99_sscanf); \
INTERCEPT_FUNCTION(__isoc99_fscanf); \
INTERCEPT_FUNCTION(__isoc99_vscanf); \
INTERCEPT_FUNCTION(__isoc99_vsscanf); \
INTERCEPT_FUNCTION(__isoc99_vfscanf);
+#else
+#define INIT_SCANF_ISOC99
+#endif
+
+#define INIT_SCANF \
+ INIT_SCANF_NORMAL \
+ INIT_SCANF_ISOC99
#else
#define INIT_SCANF