From 24e13723f8477d8c42ab8b2a7f4f69fc089842f1 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Tue, 19 Mar 2013 14:33:38 +0000 Subject: [sanitizer] Replace more platform checks with SANITIZER_ constants. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177400 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/asan/asan_intercepted_functions.h | 16 ++++---- lib/asan/asan_interceptors.cc | 16 ++++---- lib/asan/asan_linux.cc | 4 +- lib/asan/asan_mac.cc | 1 + lib/asan/asan_mac.h | 6 +-- lib/asan/asan_malloc_linux.cc | 4 +- lib/asan/asan_malloc_mac.cc | 1 + lib/asan/asan_malloc_win.cc | 2 + lib/asan/asan_new_delete.cc | 4 +- lib/asan/asan_posix.cc | 4 +- lib/asan/asan_preinit.cc | 2 +- lib/asan/asan_stack.cc | 2 +- lib/asan/asan_win.cc | 2 + lib/msan/msan_linux.cc | 3 +- lib/sanitizer_common/sanitizer_allocator.cc | 2 +- lib/sanitizer_common/sanitizer_common.h | 6 +-- lib/sanitizer_common/sanitizer_internal_defs.h | 31 +-------------- lib/sanitizer_common/sanitizer_linux.cc | 6 ++- lib/sanitizer_common/sanitizer_mac.cc | 4 +- lib/sanitizer_common/sanitizer_placement_new.h | 2 +- lib/sanitizer_common/sanitizer_platform.h | 46 ++++++++++++++++++++++ .../sanitizer_platform_interceptors.h | 6 +-- .../sanitizer_platform_limits_posix.cc | 10 +++-- .../sanitizer_platform_limits_posix.h | 6 ++- lib/sanitizer_common/sanitizer_posix.cc | 4 +- lib/sanitizer_common/sanitizer_procmaps.h | 4 +- .../sanitizer_stoptheworld_linux.cc | 4 +- .../sanitizer_symbolizer_itanium.cc | 4 +- lib/sanitizer_common/sanitizer_symbolizer_linux.cc | 8 ++-- lib/sanitizer_common/sanitizer_symbolizer_mac.cc | 2 + lib/sanitizer_common/sanitizer_symbolizer_win.cc | 2 + lib/sanitizer_common/sanitizer_win.cc | 5 ++- lib/tsan/lit_tests/thread_name.cc | 2 +- lib/tsan/rtl/tsan_platform.h | 4 +- lib/tsan/rtl/tsan_platform_linux.cc | 4 +- lib/tsan/rtl/tsan_platform_mac.cc | 1 + lib/tsan/rtl/tsan_platform_windows.cc | 1 + 37 files changed, 144 insertions(+), 87 deletions(-) create mode 100644 lib/sanitizer_common/sanitizer_platform.h (limited to 'lib') diff --git a/lib/asan/asan_intercepted_functions.h b/lib/asan/asan_intercepted_functions.h index 1f872c9b6..ce5adce98 100644 --- a/lib/asan/asan_intercepted_functions.h +++ b/lib/asan/asan_intercepted_functions.h @@ -25,7 +25,7 @@ using __sanitizer::uptr; // Use macro to describe if specific function should be // intercepted on a given platform. -#if !defined(_WIN32) +#if !SANITIZER_WINDOWS # define ASAN_INTERCEPT_ATOLL_AND_STRTOLL 1 # define ASAN_INTERCEPT__LONGJMP 1 # define ASAN_INTERCEPT_STRDUP 1 @@ -43,43 +43,43 @@ using __sanitizer::uptr; # define ASAN_INTERCEPT_MLOCKX 0 #endif -#if defined(__linux__) +#if SANITIZER_LINUX # define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 1 #else # define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 0 #endif -#if !defined(__APPLE__) +#if !SANITIZER_MAC # define ASAN_INTERCEPT_STRNLEN 1 #else # define ASAN_INTERCEPT_STRNLEN 0 #endif -#if defined(__linux__) && !defined(ANDROID) +#if SANITIZER_LINUX && !SANITIZER_ANDROID # define ASAN_INTERCEPT_SWAPCONTEXT 1 #else # define ASAN_INTERCEPT_SWAPCONTEXT 0 #endif -#if !defined(ANDROID) && !defined(_WIN32) +#if !SANITIZER_ANDROID && !SANITIZER_WINDOWS # define ASAN_INTERCEPT_SIGNAL_AND_SIGACTION 1 #else # define ASAN_INTERCEPT_SIGNAL_AND_SIGACTION 0 #endif -#if !defined(_WIN32) +#if !SANITIZER_WINDOWS # define ASAN_INTERCEPT_SIGLONGJMP 1 #else # define ASAN_INTERCEPT_SIGLONGJMP 0 #endif -#if ASAN_HAS_EXCEPTIONS && !defined(_WIN32) +#if ASAN_HAS_EXCEPTIONS && !SANITIZER_WINDOWS # define ASAN_INTERCEPT___CXA_THROW 1 #else # define ASAN_INTERCEPT___CXA_THROW 0 #endif -# if defined(_WIN32) +# if SANITIZER_WINDOWS extern "C" { // Windows threads. __declspec(dllimport) diff --git a/lib/asan/asan_interceptors.cc b/lib/asan/asan_interceptors.cc index b1efe7412..d16c601f4 100644 --- a/lib/asan/asan_interceptors.cc +++ b/lib/asan/asan_interceptors.cc @@ -355,7 +355,7 @@ INTERCEPTOR(char*, strchr, const char *str, int c) { INTERCEPTOR(char*, index, const char *string, int c) ALIAS(WRAPPER_NAME(strchr)); # else -# if defined(__APPLE__) +# if SANITIZER_MAC DECLARE_REAL(char*, index, const char *string, int c) OVERRIDE_FUNCTION(index, strchr); # else @@ -421,7 +421,7 @@ INTERCEPTOR(int, strcmp, const char *s1, const char *s2) { } INTERCEPTOR(char*, strcpy, char *to, const char *from) { // NOLINT -#if defined(__APPLE__) +#if SANITIZER_MAC if (!asan_inited) return REAL(strcpy)(to, from); // NOLINT #endif // strcpy is called from malloc_default_purgeable_zone() @@ -441,7 +441,7 @@ INTERCEPTOR(char*, strcpy, char *to, const char *from) { // NOLINT #if ASAN_INTERCEPT_STRDUP INTERCEPTOR(char*, strdup, const char *s) { -#if defined(__APPLE__) +#if SANITIZER_MAC // FIXME: because internal_strdup() uses InternalAlloc(), which currently // just calls malloc() on Mac, we can't use internal_strdup() with the // dynamic runtime. We can remove the call to REAL(strdup) once InternalAlloc @@ -582,7 +582,7 @@ INTERCEPTOR(long, strtol, const char *nptr, // NOLINT } INTERCEPTOR(int, atoi, const char *nptr) { -#if defined(__APPLE__) +#if SANITIZER_MAC if (!asan_inited) return REAL(atoi)(nptr); #endif ENSURE_ASAN_INITED(); @@ -601,7 +601,7 @@ INTERCEPTOR(int, atoi, const char *nptr) { } INTERCEPTOR(long, atol, const char *nptr) { // NOLINT -#if defined(__APPLE__) +#if SANITIZER_MAC if (!asan_inited) return REAL(atol)(nptr); #endif ENSURE_ASAN_INITED(); @@ -655,7 +655,7 @@ INTERCEPTOR(long long, atoll, const char *nptr) { // NOLINT Report("AddressSanitizer: failed to intercept '" #name "'\n"); \ } while (0) -#if defined(_WIN32) +#if SANITIZER_WINDOWS INTERCEPTOR_WINAPI(DWORD, CreateThread, void* security, uptr stack_size, DWORD (__stdcall *start_routine)(void*), void* arg, @@ -682,7 +682,7 @@ void InitializeAsanInterceptors() { static bool was_called_once; CHECK(was_called_once == false); was_called_once = true; -#if defined(__APPLE__) +#if SANITIZER_MAC return; #else SANITIZER_COMMON_INTERCEPTORS_INIT; @@ -761,7 +761,7 @@ void InitializeAsanInterceptors() { #endif // Some Windows-specific interceptors. -#if defined(_WIN32) +#if SANITIZER_WINDOWS InitializeWindowsInterceptors(); #endif diff --git a/lib/asan/asan_linux.cc b/lib/asan/asan_linux.cc index 9b2ed1700..b2df5a98e 100644 --- a/lib/asan/asan_linux.cc +++ b/lib/asan/asan_linux.cc @@ -11,7 +11,9 @@ // // Linux-specific details. //===----------------------------------------------------------------------===// -#ifdef __linux__ + +#include "sanitizer_common/sanitizer_platform.h" +#if SANITIZER_LINUX #include "asan_interceptors.h" #include "asan_internal.h" diff --git a/lib/asan/asan_mac.cc b/lib/asan/asan_mac.cc index 0f51a06df..49def1635 100644 --- a/lib/asan/asan_mac.cc +++ b/lib/asan/asan_mac.cc @@ -12,6 +12,7 @@ // Mac-specific details. //===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_platform.h" #ifdef __APPLE__ #include "asan_interceptors.h" diff --git a/lib/asan/asan_mac.h b/lib/asan/asan_mac.h index ce4111229..b1a1966db 100644 --- a/lib/asan/asan_mac.h +++ b/lib/asan/asan_mac.h @@ -11,8 +11,8 @@ // // Mac-specific ASan definitions. //===----------------------------------------------------------------------===// -#ifndef SANITIZER_MAC_H -#define SANITIZER_MAC_H +#ifndef ASAN_MAC_H +#define ASAN__MAC_H // CF_RC_BITS, the layout of CFRuntimeBase and __CFStrIsConstant are internal // and subject to change in further CoreFoundation versions. Apple does not @@ -54,4 +54,4 @@ void MaybeReplaceCFAllocator(); } // namespace __asan -#endif // SANITIZER_MAC_H +#endif // ASAN_MAC_H diff --git a/lib/asan/asan_malloc_linux.cc b/lib/asan/asan_malloc_linux.cc index 864ff4adc..1a0b38990 100644 --- a/lib/asan/asan_malloc_linux.cc +++ b/lib/asan/asan_malloc_linux.cc @@ -13,7 +13,9 @@ // We simply define functions like malloc, free, realloc, etc. // They will replace the corresponding libc functions automagically. //===----------------------------------------------------------------------===// -#ifdef __linux__ + +#include "sanitizer_common/sanitizer_platform.h" +#if SANITIZER_LINUX #include "asan_allocator.h" #include "asan_interceptors.h" diff --git a/lib/asan/asan_malloc_mac.cc b/lib/asan/asan_malloc_mac.cc index b8ec90e3d..b8e207fe2 100644 --- a/lib/asan/asan_malloc_mac.cc +++ b/lib/asan/asan_malloc_mac.cc @@ -12,6 +12,7 @@ // Mac-specific malloc interception. //===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_platform.h" #ifdef __APPLE__ #include diff --git a/lib/asan/asan_malloc_win.cc b/lib/asan/asan_malloc_win.cc index 9fcfea563..765fc78a6 100644 --- a/lib/asan/asan_malloc_win.cc +++ b/lib/asan/asan_malloc_win.cc @@ -11,6 +11,8 @@ // // Windows-specific malloc interception. //===----------------------------------------------------------------------===// + +#include "sanitizer_common/sanitizer_platform.h" #ifdef _WIN32 #include "asan_allocator.h" diff --git a/lib/asan/asan_new_delete.cc b/lib/asan/asan_new_delete.cc index 7b0617a10..b1d66131e 100644 --- a/lib/asan/asan_new_delete.cc +++ b/lib/asan/asan_new_delete.cc @@ -47,7 +47,7 @@ struct nothrow_t {}; // delete. // To make sure that C++ allocation/deallocation operators are overridden on // OS X we need to intercept them using their mangled names. -#if !defined(__APPLE__) +#if !SANITIZER_MAC INTERCEPTOR_ATTRIBUTE void *operator new(size_t size) { OPERATOR_NEW_BODY(FROM_NEW); } INTERCEPTOR_ATTRIBUTE @@ -78,7 +78,7 @@ INTERCEPTOR(void *, _ZnamRKSt9nothrow_t, size_t size, std::nothrow_t const&) { GET_STACK_TRACE_FREE;\ asan_free(ptr, &stack, type); -#if !defined(__APPLE__) +#if !SANITIZER_MAC INTERCEPTOR_ATTRIBUTE void operator delete(void *ptr) { OPERATOR_DELETE_BODY(FROM_NEW); } INTERCEPTOR_ATTRIBUTE diff --git a/lib/asan/asan_posix.cc b/lib/asan/asan_posix.cc index ceaf120fc..a0cd8e0aa 100644 --- a/lib/asan/asan_posix.cc +++ b/lib/asan/asan_posix.cc @@ -11,7 +11,9 @@ // // Posix-specific details. //===----------------------------------------------------------------------===// -#if defined(__linux__) || defined(__APPLE__) + +#include "sanitizer_common/sanitizer_platform.h" +#if SANITIZER_LINUX || SANITIZER_MAC #include "asan_internal.h" #include "asan_interceptors.h" diff --git a/lib/asan/asan_preinit.cc b/lib/asan/asan_preinit.cc index 07e0a53ca..9de963ccc 100644 --- a/lib/asan/asan_preinit.cc +++ b/lib/asan/asan_preinit.cc @@ -20,7 +20,7 @@ // FIXME: do we have anything like this on Mac? __attribute__((section(".preinit_array"), used)) void (*__asan_preinit)(void) =__asan_init; -#elif defined(_WIN32) && defined(_DLL) +#elif SANITIZER_WINDOWS && defined(_DLL) // On Windows, when using dynamic CRT (/MD), we can put a pointer // to __asan_init into the global list of C initializers. // See crt0dat.c in the CRT sources for the details. diff --git a/lib/asan/asan_stack.cc b/lib/asan/asan_stack.cc index a50ab1d22..de125f0b3 100644 --- a/lib/asan/asan_stack.cc +++ b/lib/asan/asan_stack.cc @@ -35,7 +35,7 @@ void PrintStack(StackTrace *stack) { // Provide default implementation of __asan_symbolize that does nothing // and may be overriden by user if he wants to use his own symbolization. // ASan on Windows has its own implementation of this. -#if !defined(_WIN32) && !SANITIZER_SUPPORTS_WEAK_HOOKS +#if !SANITIZER_WINDOWS && !SANITIZER_SUPPORTS_WEAK_HOOKS SANITIZER_WEAK_ATTRIBUTE SANITIZER_INTERFACE_ATTRIBUTE NOINLINE bool __asan_symbolize(const void *pc, char *out_buffer, int out_size) { return false; diff --git a/lib/asan/asan_win.cc b/lib/asan/asan_win.cc index d8ce05064..82dba0869 100644 --- a/lib/asan/asan_win.cc +++ b/lib/asan/asan_win.cc @@ -11,6 +11,8 @@ // // Windows-specific details. //===----------------------------------------------------------------------===// + +#include "sanitizer_common/sanitizer_platform.h" #ifdef _WIN32 #include diff --git a/lib/msan/msan_linux.cc b/lib/msan/msan_linux.cc index cda23b103..367dc904d 100644 --- a/lib/msan/msan_linux.cc +++ b/lib/msan/msan_linux.cc @@ -12,7 +12,8 @@ // Linux-specific code. //===----------------------------------------------------------------------===// -#ifdef __linux__ +#include "sanitizer_common/sanitizer_platform.h" +#if SANITIZER_LINUX #include "msan.h" diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc index 88a3a1b25..c5c2ef552 100644 --- a/lib/sanitizer_common/sanitizer_allocator.cc +++ b/lib/sanitizer_common/sanitizer_allocator.cc @@ -15,7 +15,7 @@ // FIXME: We should probably use more low-level allocator that would // mmap some pages and split them into chunks to fulfill requests. -#if defined(__linux__) && !defined(__ANDROID__) +#if SANITIZER_LINUX && !SANITIZER_ANDROID extern "C" void *__libc_malloc(__sanitizer::uptr size); extern "C" void __libc_free(void *ptr); # define LIBC_MALLOC __libc_malloc diff --git a/lib/sanitizer_common/sanitizer_common.h b/lib/sanitizer_common/sanitizer_common.h index bca65c1a5..00a8c5ee1 100644 --- a/lib/sanitizer_common/sanitizer_common.h +++ b/lib/sanitizer_common/sanitizer_common.h @@ -170,7 +170,7 @@ void ReportErrorSummary(const char *error_type, const char *file, int line, const char *function); // Math -#if defined(_WIN32) && !defined(__clang__) +#if SANITIZER_WINDOWS && !defined(__clang__) extern "C" { unsigned char _BitScanForward(unsigned long *index, unsigned long mask); // NOLINT unsigned char _BitScanReverse(unsigned long *index, unsigned long mask); // NOLINT @@ -184,7 +184,7 @@ unsigned char _BitScanReverse64(unsigned long *index, unsigned __int64 mask); / INLINE uptr MostSignificantSetBitIndex(uptr x) { CHECK_NE(x, 0U); unsigned long up; // NOLINT -#if !defined(_WIN32) || defined(__clang__) +#if !SANITIZER_WINDOWS || defined(__clang__) up = SANITIZER_WORDSIZE - 1 - __builtin_clzl(x); #elif defined(_WIN64) _BitScanReverse64(&up, x); @@ -223,7 +223,7 @@ INLINE bool IsAligned(uptr a, uptr alignment) { INLINE uptr Log2(uptr x) { CHECK(IsPowerOfTwo(x)); -#if !defined(_WIN32) || defined(__clang__) +#if !SANITIZER_WINDOWS || defined(__clang__) return __builtin_ctzl(x); #elif defined(_WIN64) unsigned long ret; // NOLINT diff --git a/lib/sanitizer_common/sanitizer_internal_defs.h b/lib/sanitizer_common/sanitizer_internal_defs.h index 12f01e31a..8922ef29c 100644 --- a/lib/sanitizer_common/sanitizer_internal_defs.h +++ b/lib/sanitizer_common/sanitizer_internal_defs.h @@ -13,36 +13,7 @@ #ifndef SANITIZER_DEFS_H #define SANITIZER_DEFS_H -#if !defined(__linux__) && !defined(__APPLE__) && !defined(_WIN32) -# error "This operating system is not supported" -#endif - -#if defined(__linux__) -# define SANITIZER_LINUX 1 -#else -# define SANITIZER_LINUX 0 -#endif - -#if defined(__APPLE__) -# define SANITIZER_MAC 1 -#else -# define SANITIZER_MAC 0 -#endif - -#if defined(_WIN32) -# define SANITIZER_WINDOWS 1 -#else -# define SANITIZER_WINDOWS 0 -#endif - -#if defined(__ANDROID__) || defined(ANDROID) -# define SANITIZER_ANDROID 1 -#else -# define SANITIZER_ANDROID 0 -#endif - -#define SANITIZER_POSIX (SANITIZER_LINUX || SANITIZER_MAC) - +#include "sanitizer_platform.h" #if defined(_WIN32) // FIXME find out what we need on Windows. __declspec(dllexport) ? diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc index 14647098b..6256d845c 100644 --- a/lib/sanitizer_common/sanitizer_linux.cc +++ b/lib/sanitizer_common/sanitizer_linux.cc @@ -11,7 +11,9 @@ // run-time libraries and implements linux-specific functions from // sanitizer_libc.h. //===----------------------------------------------------------------------===// -#ifdef __linux__ + +#include "sanitizer_platform.h" +#if SANITIZER_LINUX #include "sanitizer_common.h" #include "sanitizer_internal_defs.h" @@ -38,7 +40,7 @@ #include #include -#if !defined(__ANDROID__) && !defined(ANDROID) +#if !SANITIZER_ANDROID #include #endif diff --git a/lib/sanitizer_common/sanitizer_mac.cc b/lib/sanitizer_common/sanitizer_mac.cc index 3990f260e..98ccbab5f 100644 --- a/lib/sanitizer_common/sanitizer_mac.cc +++ b/lib/sanitizer_common/sanitizer_mac.cc @@ -12,7 +12,9 @@ // sanitizer_libc.h. //===----------------------------------------------------------------------===// -#ifdef __APPLE__ +#include "sanitizer_platform.h" +#if SANITIZER_MAC + // Use 64-bit inodes in file operations. ASan does not support OS X 10.5, so // the clients will most certainly use 64-bit ones as well. #ifndef _DARWIN_USE_64_BIT_INODE diff --git a/lib/sanitizer_common/sanitizer_placement_new.h b/lib/sanitizer_common/sanitizer_placement_new.h index c0b85e1c1..a42301aed 100644 --- a/lib/sanitizer_common/sanitizer_placement_new.h +++ b/lib/sanitizer_common/sanitizer_placement_new.h @@ -19,7 +19,7 @@ #include "sanitizer_internal_defs.h" namespace __sanitizer { -#if (SANITIZER_WORDSIZE == 64) || defined(__APPLE__) +#if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC typedef uptr operator_new_ptr_type; #else typedef u32 operator_new_ptr_type; diff --git a/lib/sanitizer_common/sanitizer_platform.h b/lib/sanitizer_common/sanitizer_platform.h new file mode 100644 index 000000000..acb997180 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_platform.h @@ -0,0 +1,46 @@ +//===-- sanitizer_platform.h ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Common platform macros. +//===----------------------------------------------------------------------===// + +#ifndef SANITIZER_PLATFORM_H +#define SANITIZER_PLATFORM_H + +#if !defined(__linux__) && !defined(__APPLE__) && !defined(_WIN32) +# error "This operating system is not supported" +#endif + +#if defined(__linux__) +# define SANITIZER_LINUX 1 +#else +# define SANITIZER_LINUX 0 +#endif + +#if defined(__APPLE__) +# define SANITIZER_MAC 1 +#else +# define SANITIZER_MAC 0 +#endif + +#if defined(_WIN32) +# define SANITIZER_WINDOWS 1 +#else +# define SANITIZER_WINDOWS 0 +#endif + +#if defined(__ANDROID__) || defined(ANDROID) +# define SANITIZER_ANDROID 1 +#else +# define SANITIZER_ANDROID 0 +#endif + +#define SANITIZER_POSIX (SANITIZER_LINUX || SANITIZER_MAC) + +#endif // SANITIZER_PLATFORM_H diff --git a/lib/sanitizer_common/sanitizer_platform_interceptors.h b/lib/sanitizer_common/sanitizer_platform_interceptors.h index 39860fbcd..9031eb4d1 100644 --- a/lib/sanitizer_common/sanitizer_platform_interceptors.h +++ b/lib/sanitizer_common/sanitizer_platform_interceptors.h @@ -14,20 +14,20 @@ #include "sanitizer_internal_defs.h" -#if !defined(_WIN32) +#if !SANITIZER_WINDOWS # define SI_NOT_WINDOWS 1 # include "sanitizer_platform_limits_posix.h" #else # define SI_NOT_WINDOWS 0 #endif -#if defined(__linux__) && !defined(ANDROID) +#if SANITIZER_LINUX && !SANITIZER_ANDROID # define SI_LINUX_NOT_ANDROID 1 #else # define SI_LINUX_NOT_ANDROID 0 #endif -#if defined(__linux__) +#if SANITIZER_LINUX # define SI_LINUX 1 #else # define SI_LINUX 0 diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc index 1046b6281..3a31da4da 100644 --- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc +++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc @@ -12,7 +12,9 @@ // Sizes and layouts of platform-specific POSIX data structures. //===----------------------------------------------------------------------===// -#if defined(__linux__) || defined(__APPLE__) + +#include "sanitizer_platform.h" +#if SANITIZER_LINUX || SANITIZER_MAC #include "sanitizer_internal_defs.h" #include "sanitizer_platform_limits_posix.h" @@ -27,7 +29,7 @@ #include #include -#if defined(__linux__) +#if SANITIZER_LINUX #include #include #endif // __linux__ @@ -39,14 +41,14 @@ namespace __sanitizer { unsigned struct_rusage_sz = sizeof(struct rusage); unsigned struct_tm_sz = sizeof(struct tm); -#if defined(__linux__) +#if SANITIZER_LINUX unsigned struct_rlimit_sz = sizeof(struct rlimit); unsigned struct_dirent_sz = sizeof(struct dirent); unsigned struct_statfs_sz = sizeof(struct statfs); unsigned struct_epoll_event_sz = sizeof(struct epoll_event); #endif // __linux__ -#if defined(__linux__) && !defined(__ANDROID__) +#if SANITIZER_LINUX && !SANITIZER_ANDROID unsigned struct_dirent64_sz = sizeof(struct dirent64); unsigned struct_rlimit64_sz = sizeof(struct rlimit64); unsigned struct_statfs64_sz = sizeof(struct statfs64); diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/lib/sanitizer_common/sanitizer_platform_limits_posix.h index 2eac01649..725d7404a 100644 --- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h +++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h @@ -15,6 +15,8 @@ #ifndef SANITIZER_PLATFORM_LIMITS_POSIX_H #define SANITIZER_PLATFORM_LIMITS_POSIX_H +#include "sanitizer_platform.h" + namespace __sanitizer { extern unsigned struct_utsname_sz; extern unsigned struct_stat_sz; @@ -22,14 +24,14 @@ namespace __sanitizer { extern unsigned struct_rusage_sz; extern unsigned struct_tm_sz; -#if defined(__linux__) +#if SANITIZER_LINUX extern unsigned struct_rlimit_sz; extern unsigned struct_dirent_sz; extern unsigned struct_statfs_sz; extern unsigned struct_epoll_event_sz; #endif // __linux__ -#if defined(__linux__) && !defined(__ANDROID__) +#if SANITIZER_LINUX && !SANITIZER_ANDROID extern unsigned struct_dirent64_sz; extern unsigned struct_rlimit64_sz; extern unsigned struct_statfs64_sz; diff --git a/lib/sanitizer_common/sanitizer_posix.cc b/lib/sanitizer_common/sanitizer_posix.cc index 27f0977b5..4a1b64fd1 100644 --- a/lib/sanitizer_common/sanitizer_posix.cc +++ b/lib/sanitizer_common/sanitizer_posix.cc @@ -11,7 +11,9 @@ // run-time libraries and implements POSIX-specific functions from // sanitizer_libc.h. //===----------------------------------------------------------------------===// -#if defined(__linux__) || defined(__APPLE__) + +#include "sanitizer_platform.h" +#if SANITIZER_LINUX || SANITIZER_MAC #include "sanitizer_common.h" #include "sanitizer_libc.h" diff --git a/lib/sanitizer_common/sanitizer_procmaps.h b/lib/sanitizer_common/sanitizer_procmaps.h index 8df215d91..fad254dee 100644 --- a/lib/sanitizer_common/sanitizer_procmaps.h +++ b/lib/sanitizer_common/sanitizer_procmaps.h @@ -31,13 +31,13 @@ class MemoryMappingLayout { }; #else // _WIN32 -#if defined(__linux__) +#if SANITIZER_LINUX struct ProcSelfMapsBuff { char *data; uptr mmaped_size; uptr len; }; -#endif // defined(__linux__) +#endif // SANITIZER_LINUX class MemoryMappingLayout { public: diff --git a/lib/sanitizer_common/sanitizer_stoptheworld_linux.cc b/lib/sanitizer_common/sanitizer_stoptheworld_linux.cc index e0727808f..624d4a836 100644 --- a/lib/sanitizer_common/sanitizer_stoptheworld_linux.cc +++ b/lib/sanitizer_common/sanitizer_stoptheworld_linux.cc @@ -12,7 +12,9 @@ // //===----------------------------------------------------------------------===// -#ifdef __linux__ + +#include "sanitizer_platform.h" +#if SANITIZER_LINUX #include "sanitizer_stoptheworld.h" diff --git a/lib/sanitizer_common/sanitizer_symbolizer_itanium.cc b/lib/sanitizer_common/sanitizer_symbolizer_itanium.cc index 438629492..5e2532ee0 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_itanium.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_itanium.cc @@ -10,7 +10,9 @@ // This file is shared between the sanitizer run-time libraries. // Itanium C++ ABI-specific implementation of symbolizer parts. //===----------------------------------------------------------------------===// -#if defined(__APPLE__) || defined(__linux__) + +#include "sanitizer_platform.h" +#if SANITIZER_MAC || SANITIZER_LINUX #include "sanitizer_symbolizer.h" diff --git a/lib/sanitizer_common/sanitizer_symbolizer_linux.cc b/lib/sanitizer_common/sanitizer_symbolizer_linux.cc index c0688398e..9d53b0530 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_linux.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_linux.cc @@ -11,7 +11,9 @@ // run-time libraries. // Linux-specific implementation of symbolizer parts. //===----------------------------------------------------------------------===// -#ifdef __linux__ + +#include "sanitizer_platform.h" +#if SANITIZER_LINUX #include "sanitizer_common.h" #include "sanitizer_internal_defs.h" #include "sanitizer_libc.h" @@ -26,7 +28,7 @@ #include #include -#if !defined(__ANDROID__) && !defined(ANDROID) +#if !SANITIZER_ANDROID && !SANITIZER_ANDROID #include #endif @@ -121,7 +123,7 @@ bool StartSymbolizerSubprocess(const char *path_to_symbolizer, return true; } -#if defined(__ANDROID__) || defined(ANDROID) +#if SANITIZER_ANDROID || SANITIZER_ANDROID uptr GetListOfModules(LoadedModule *modules, uptr max_modules) { UNIMPLEMENTED(); } diff --git a/lib/sanitizer_common/sanitizer_symbolizer_mac.cc b/lib/sanitizer_common/sanitizer_symbolizer_mac.cc index cd0d00422..20f3b3b30 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_mac.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_mac.cc @@ -11,6 +11,8 @@ // run-time libraries. // Mac-specific implementation of symbolizer parts. //===----------------------------------------------------------------------===// + +#include "sanitizer_platform.h" #ifdef __APPLE__ #include "sanitizer_internal_defs.h" #include "sanitizer_symbolizer.h" diff --git a/lib/sanitizer_common/sanitizer_symbolizer_win.cc b/lib/sanitizer_common/sanitizer_symbolizer_win.cc index f1b6a02a6..b979e6ac1 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_win.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_win.cc @@ -11,6 +11,8 @@ // run-time libraries. // Windows-specific implementation of symbolizer parts. //===----------------------------------------------------------------------===// + +#include "sanitizer_platform.h" #ifdef _WIN32 #include diff --git a/lib/sanitizer_common/sanitizer_win.cc b/lib/sanitizer_common/sanitizer_win.cc index 77afa477b..61c417ba0 100644 --- a/lib/sanitizer_common/sanitizer_win.cc +++ b/lib/sanitizer_common/sanitizer_win.cc @@ -11,7 +11,10 @@ // run-time libraries and implements windows-specific functions from // sanitizer_libc.h. //===----------------------------------------------------------------------===// -#ifdef _WIN32 + +#include "sanitizer_platform.h" +#if SANITIZER_WINDOWS + #define WIN32_LEAN_AND_MEAN #define NOGDI #include diff --git a/lib/tsan/lit_tests/thread_name.cc b/lib/tsan/lit_tests/thread_name.cc index afb882fcd..37f308ffb 100644 --- a/lib/tsan/lit_tests/thread_name.cc +++ b/lib/tsan/lit_tests/thread_name.cc @@ -15,7 +15,7 @@ void *Thread1(void *x) { } void *Thread2(void *x) { -#if defined(__linux__) && __GLIBC_PREREQ(2, 12) +#if SANITIZER_LINUX && __GLIBC_PREREQ(2, 12) pthread_setname_np(pthread_self(), "Thread2"); #else AnnotateThreadName(__FILE__, __LINE__, "Thread2"); diff --git a/lib/tsan/rtl/tsan_platform.h b/lib/tsan/rtl/tsan_platform.h index d6b331a7c..2a0759929 100644 --- a/lib/tsan/rtl/tsan_platform.h +++ b/lib/tsan/rtl/tsan_platform.h @@ -66,7 +66,7 @@ namespace __tsan { #if defined(TSAN_GO) static const uptr kLinuxAppMemBeg = 0x000000000000ULL; static const uptr kLinuxAppMemEnd = 0x00fcffffffffULL; -# if defined(_WIN32) +# if SANITIZER_WINDOWS static const uptr kLinuxShadowMsk = 0x010000000000ULL; # else static const uptr kLinuxShadowMsk = 0x100000000000ULL; @@ -84,7 +84,7 @@ static const uptr kLinuxAppMemEnd = 0x7fffffffffffULL; static const uptr kLinuxAppMemMsk = 0x7c0000000000ULL; -#if defined(_WIN32) +#if SANITIZER_WINDOWS const uptr kTraceMemBegin = 0x056000000000ULL; #else const uptr kTraceMemBegin = 0x600000000000ULL; diff --git a/lib/tsan/rtl/tsan_platform_linux.cc b/lib/tsan/rtl/tsan_platform_linux.cc index 02a664847..e08fd95fe 100644 --- a/lib/tsan/rtl/tsan_platform_linux.cc +++ b/lib/tsan/rtl/tsan_platform_linux.cc @@ -12,7 +12,9 @@ // Linux-specific code. //===----------------------------------------------------------------------===// -#ifdef __linux__ + +#include "sanitizer_common/sanitizer_platform.h" +#if SANITIZER_LINUX #include "sanitizer_common/sanitizer_common.h" #include "sanitizer_common/sanitizer_libc.h" diff --git a/lib/tsan/rtl/tsan_platform_mac.cc b/lib/tsan/rtl/tsan_platform_mac.cc index d5caea39b..b310ed04c 100644 --- a/lib/tsan/rtl/tsan_platform_mac.cc +++ b/lib/tsan/rtl/tsan_platform_mac.cc @@ -12,6 +12,7 @@ // Mac-specific code. //===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_platform.h" #ifdef __APPLE__ #include "sanitizer_common/sanitizer_common.h" diff --git a/lib/tsan/rtl/tsan_platform_windows.cc b/lib/tsan/rtl/tsan_platform_windows.cc index 9bd39580a..93fe40c52 100644 --- a/lib/tsan/rtl/tsan_platform_windows.cc +++ b/lib/tsan/rtl/tsan_platform_windows.cc @@ -12,6 +12,7 @@ // Windows-specific code. //===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_platform.h" #ifdef _WIN32 #include "tsan_platform.h" -- cgit v1.2.3