diff options
-rw-r--r-- | cmake/config-ix.cmake | 2 | ||||
-rw-r--r-- | lib/fuzzer/FuzzerDefs.h | 10 | ||||
-rw-r--r-- | lib/fuzzer/FuzzerExtFunctionsWeak.cpp | 4 | ||||
-rw-r--r-- | lib/fuzzer/FuzzerExtraCounters.cpp | 2 | ||||
-rw-r--r-- | lib/fuzzer/FuzzerUtilLinux.cpp | 4 | ||||
-rw-r--r-- | lib/fuzzer/afl/afl_driver.cpp | 8 |
6 files changed, 22 insertions, 8 deletions
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index d5ef46e25..d688abccb 100644 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -588,7 +588,7 @@ else() endif() if (COMPILER_RT_HAS_SANITIZER_COMMON AND FUZZER_SUPPORTED_ARCH AND - OS_NAME MATCHES "Darwin|Linux") + OS_NAME MATCHES "Darwin|Linux|NetBSD") set(COMPILER_RT_HAS_FUZZER TRUE) else() set(COMPILER_RT_HAS_FUZZER FALSE) diff --git a/lib/fuzzer/FuzzerDefs.h b/lib/fuzzer/FuzzerDefs.h index 7ea54a920..e8c92ae3f 100644 --- a/lib/fuzzer/FuzzerDefs.h +++ b/lib/fuzzer/FuzzerDefs.h @@ -25,14 +25,22 @@ #ifdef __linux__ #define LIBFUZZER_APPLE 0 #define LIBFUZZER_LINUX 1 +#define LIBFUZZER_NETBSD 0 #define LIBFUZZER_WINDOWS 0 #elif __APPLE__ #define LIBFUZZER_APPLE 1 #define LIBFUZZER_LINUX 0 +#define LIBFUZZER_NETBSD 0 +#define LIBFUZZER_WINDOWS 0 +#elif __NetBSD__ +#define LIBFUZZER_APPLE 0 +#define LIBFUZZER_LINUX 0 +#define LIBFUZZER_NETBSD 1 #define LIBFUZZER_WINDOWS 0 #elif _WIN32 #define LIBFUZZER_APPLE 0 #define LIBFUZZER_LINUX 0 +#define LIBFUZZER_NETBSD 0 #define LIBFUZZER_WINDOWS 1 #else #error "Support for your platform has not been implemented" @@ -42,7 +50,7 @@ # define __has_attribute(x) 0 #endif -#define LIBFUZZER_POSIX LIBFUZZER_APPLE || LIBFUZZER_LINUX +#define LIBFUZZER_POSIX (LIBFUZZER_APPLE || LIBFUZZER_LINUX || LIBFUZZER_NETBSD) #ifdef __x86_64 # if __has_attribute(target) diff --git a/lib/fuzzer/FuzzerExtFunctionsWeak.cpp b/lib/fuzzer/FuzzerExtFunctionsWeak.cpp index 503f0395c..5056eb8a9 100644 --- a/lib/fuzzer/FuzzerExtFunctionsWeak.cpp +++ b/lib/fuzzer/FuzzerExtFunctionsWeak.cpp @@ -13,7 +13,7 @@ // to clients right now. //===----------------------------------------------------------------------===// #include "FuzzerDefs.h" -#if LIBFUZZER_LINUX +#if LIBFUZZER_LINUX || LIBFUZZER_NETBSD #include "FuzzerExtFunctions.h" #include "FuzzerIO.h" @@ -51,4 +51,4 @@ ExternalFunctions::ExternalFunctions() { } // namespace fuzzer -#endif // LIBFUZZER_LINUX +#endif // LIBFUZZER_LINUX || LIBFUZZER_NETBSD diff --git a/lib/fuzzer/FuzzerExtraCounters.cpp b/lib/fuzzer/FuzzerExtraCounters.cpp index 07dbe0fde..0e7a7761b 100644 --- a/lib/fuzzer/FuzzerExtraCounters.cpp +++ b/lib/fuzzer/FuzzerExtraCounters.cpp @@ -11,7 +11,7 @@ #include "FuzzerDefs.h" -#if LIBFUZZER_LINUX +#if LIBFUZZER_LINUX || LIBFUZZER_NETBSD __attribute__((weak)) extern uint8_t __start___libfuzzer_extra_counters; __attribute__((weak)) extern uint8_t __stop___libfuzzer_extra_counters; diff --git a/lib/fuzzer/FuzzerUtilLinux.cpp b/lib/fuzzer/FuzzerUtilLinux.cpp index dfe7e6f4e..69d46b578 100644 --- a/lib/fuzzer/FuzzerUtilLinux.cpp +++ b/lib/fuzzer/FuzzerUtilLinux.cpp @@ -9,7 +9,7 @@ // Misc utils for Linux. //===----------------------------------------------------------------------===// #include "FuzzerDefs.h" -#if LIBFUZZER_LINUX +#if LIBFUZZER_LINUX || LIBFUZZER_NETBSD #include <stdlib.h> @@ -21,4 +21,4 @@ int ExecuteCommand(const std::string &Command) { } // namespace fuzzer -#endif // LIBFUZZER_LINUX +#endif // LIBFUZZER_LINUX || LIBFUZZER_NETBSD diff --git a/lib/fuzzer/afl/afl_driver.cpp b/lib/fuzzer/afl/afl_driver.cpp index 15bceb896..f10247947 100644 --- a/lib/fuzzer/afl/afl_driver.cpp +++ b/lib/fuzzer/afl/afl_driver.cpp @@ -68,9 +68,15 @@ statistics from the file. If that fails then the process will quit. #ifdef __linux__ #define LIBFUZZER_LINUX 1 #define LIBFUZZER_APPLE 0 +#define LIBFUZZER_NETBSD 0 #elif __APPLE__ #define LIBFUZZER_LINUX 0 #define LIBFUZZER_APPLE 1 +#define LIBFUZZER_NETBSD 0 +#elif __NetBSD__ +#define LIBFUZZER_LINUX 0 +#define LIBFUZZER_APPLE 0 +#define LIBFUZZER_NETBSD 1 #else #error "Support for your platform has not been implemented" #endif @@ -119,7 +125,7 @@ size_t GetPeakRSSMb() { struct rusage usage; if (getrusage(RUSAGE_SELF, &usage)) return 0; - if (LIBFUZZER_LINUX) { + if (LIBFUZZER_LINUX || LIBFUZZER_NETBSD) { // ru_maxrss is in KiB return usage.ru_maxrss >> 10; } else if (LIBFUZZER_APPLE) { |