Index: lib/Fuzzer/FuzzerDefs.h =================================================================== --- lib/Fuzzer/FuzzerDefs.h +++ lib/Fuzzer/FuzzerDefs.h @@ -19,25 +19,6 @@ #include #include -// Platform detection. -#ifdef __linux__ -#define LIBFUZZER_APPLE 0 -#define LIBFUZZER_LINUX 1 -#define LIBFUZZER_WINDOWS 0 -#elif __APPLE__ -#define LIBFUZZER_APPLE 1 -#define LIBFUZZER_LINUX 0 -#define LIBFUZZER_WINDOWS 0 -#elif _WIN32 -#define LIBFUZZER_APPLE 0 -#define LIBFUZZER_LINUX 0 -#define LIBFUZZER_WINDOWS 1 -#else -#error "Support for your platform has not been implemented" -#endif - -#define LIBFUZZER_POSIX LIBFUZZER_APPLE || LIBFUZZER_LINUX - #ifdef __x86_64 #define ATTRIBUTE_TARGET_POPCNT __attribute__((target("popcnt"))) #else Index: lib/Fuzzer/FuzzerExtFunctionsDlsym.cpp =================================================================== --- lib/Fuzzer/FuzzerExtFunctionsDlsym.cpp +++ lib/Fuzzer/FuzzerExtFunctionsDlsym.cpp @@ -11,7 +11,7 @@ // requires that clients of LibFuzzer pass ``--export-dynamic`` to the linker. // That is a complication we don't wish to expose to clients right now. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_APPLE #include "FuzzerExtFunctions.h" Index: lib/Fuzzer/FuzzerExtFunctionsWeak.cpp =================================================================== --- lib/Fuzzer/FuzzerExtFunctionsWeak.cpp +++ lib/Fuzzer/FuzzerExtFunctionsWeak.cpp @@ -12,7 +12,7 @@ // weak symbols to be undefined. That is a complication we don't want to expose // to clients right now. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_LINUX #include "FuzzerExtFunctions.h" Index: lib/Fuzzer/FuzzerExtFunctionsWeakAlias.cpp =================================================================== --- lib/Fuzzer/FuzzerExtFunctionsWeakAlias.cpp +++ lib/Fuzzer/FuzzerExtFunctionsWeakAlias.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Implementation using weak aliases. Works for Windows. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_WINDOWS #include "FuzzerExtFunctions.h" Index: lib/Fuzzer/FuzzerIOPosix.cpp =================================================================== --- lib/Fuzzer/FuzzerIOPosix.cpp +++ lib/Fuzzer/FuzzerIOPosix.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // IO functions implementation using Posix API. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_POSIX #include "FuzzerExtFunctions.h" Index: lib/Fuzzer/FuzzerIOWindows.cpp =================================================================== --- lib/Fuzzer/FuzzerIOWindows.cpp +++ lib/Fuzzer/FuzzerIOWindows.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // IO functions implementation for Windows. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_WINDOWS #include "FuzzerExtFunctions.h" Index: lib/Fuzzer/FuzzerUtilDarwin.cpp =================================================================== --- lib/Fuzzer/FuzzerUtilDarwin.cpp +++ lib/Fuzzer/FuzzerUtilDarwin.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Misc utils for Darwin. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_APPLE #include "FuzzerIO.h" Index: lib/Fuzzer/FuzzerUtilLinux.cpp =================================================================== --- lib/Fuzzer/FuzzerUtilLinux.cpp +++ lib/Fuzzer/FuzzerUtilLinux.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Misc utils for Linux. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_LINUX #include Index: lib/Fuzzer/FuzzerUtilPosix.cpp =================================================================== --- lib/Fuzzer/FuzzerUtilPosix.cpp +++ lib/Fuzzer/FuzzerUtilPosix.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Misc utils implementation using Posix API. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_POSIX #include "FuzzerIO.h" #include "FuzzerInternal.h" Index: lib/Fuzzer/FuzzerUtilWindows.cpp =================================================================== --- lib/Fuzzer/FuzzerUtilWindows.cpp +++ lib/Fuzzer/FuzzerUtilWindows.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Misc utils implementation for Windows. //===----------------------------------------------------------------------===// -#include "FuzzerDefs.h" +#include "Support/Platform.h" #if LIBFUZZER_WINDOWS #include "FuzzerIO.h" #include "FuzzerInternal.h" Index: lib/Fuzzer/Support/Platform.h =================================================================== --- /dev/null +++ lib/Fuzzer/Support/Platform.h @@ -0,0 +1,34 @@ +//===- Platform.h - Basic definitions for different platforms ---*- C++ -* ===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// Basic macro definitions for different platforms. +//===----------------------------------------------------------------------===// + +#ifndef LLVM_FUZZER_SUPPORT_PLATFORM_H +#define LLVM_FUZZER_SUPPORT_PLATFORM_H + +// Platform detection. +#ifdef __linux__ +#define LIBFUZZER_APPLE 0 +#define LIBFUZZER_LINUX 1 +#define LIBFUZZER_WINDOWS 0 +#elif __APPLE__ +#define LIBFUZZER_APPLE 1 +#define LIBFUZZER_LINUX 0 +#define LIBFUZZER_WINDOWS 0 +#elif _WIN32 +#define LIBFUZZER_APPLE 0 +#define LIBFUZZER_LINUX 0 +#define LIBFUZZER_WINDOWS 1 +#else +#error "Support for your platform has not been implemented" +#endif + +#define LIBFUZZER_POSIX LIBFUZZER_APPLE || LIBFUZZER_LINUX + +#endif // LLVM_FUZZER_SUPPORT_PLATFORM_H