From: Mike Aizatsky Date: Fri, 3 Feb 2017 20:26:44 +0000 (+0000) Subject: [libfuzzer] chromium-related compilation fixes X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0022fc7373112b88577f0bdc230720c0e2ae963c;p=llvm [libfuzzer] chromium-related compilation fixes Reviewers: kcc Differential Revision: https://reviews.llvm.org/D29502 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294035 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Fuzzer/FuzzerShmemPosix.cpp b/lib/Fuzzer/FuzzerShmemPosix.cpp index b727c24e960..2723bdd86f4 100644 --- a/lib/Fuzzer/FuzzerShmemPosix.cpp +++ b/lib/Fuzzer/FuzzerShmemPosix.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include namespace fuzzer { diff --git a/lib/Fuzzer/FuzzerTracePC.cpp b/lib/Fuzzer/FuzzerTracePC.cpp index e7cd8610fe4..d841a285f1c 100644 --- a/lib/Fuzzer/FuzzerTracePC.cpp +++ b/lib/Fuzzer/FuzzerTracePC.cpp @@ -27,8 +27,10 @@ // The coverage counters and PCs. // These are declared as global variables named "__sancov_*" to simplify // experiments with inlined instrumentation. -alignas(8) uint8_t - __sancov_trace_pc_guard_8bit_counters[fuzzer::TracePC::kNumPCs]; +alignas(8) ATTRIBUTE_INTERFACE +uint8_t __sancov_trace_pc_guard_8bit_counters[fuzzer::TracePC::kNumPCs]; + +ATTRIBUTE_INTERFACE uintptr_t __sancov_trace_pc_pcs[fuzzer::TracePC::kNumPCs]; namespace fuzzer { diff --git a/lib/Fuzzer/FuzzerTraceState.cpp b/lib/Fuzzer/FuzzerTraceState.cpp index 3c9233e155e..2b8caa48227 100644 --- a/lib/Fuzzer/FuzzerTraceState.cpp +++ b/lib/Fuzzer/FuzzerTraceState.cpp @@ -103,7 +103,7 @@ extern "C" { #if LLVM_FUZZER_DEFINES_SANITIZER_WEAK_HOOOKS -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_memcmp(void *caller_pc, const void *s1, const void *s2, size_t n, int result) { if (result == 0) return; // No reason to mutate. @@ -111,7 +111,7 @@ void __sanitizer_weak_hook_memcmp(void *caller_pc, const void *s1, fuzzer::TPC.AddValueForMemcmp(caller_pc, s1, s2, n, /*StopAtZero*/false); } -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_strncmp(void *caller_pc, const char *s1, const char *s2, size_t n, int result) { if (result == 0) return; // No reason to mutate. @@ -124,7 +124,7 @@ void __sanitizer_weak_hook_strncmp(void *caller_pc, const char *s1, } -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_strcmp(void *caller_pc, const char *s1, const char *s2, int result) { if (result == 0) return; // No reason to mutate. @@ -135,31 +135,31 @@ void __sanitizer_weak_hook_strcmp(void *caller_pc, const char *s1, fuzzer::TPC.AddValueForMemcmp(caller_pc, s1, s2, N, /*StopAtZero*/true); } -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1, const char *s2, size_t n, int result) { return __sanitizer_weak_hook_strncmp(called_pc, s1, s2, n, result); } -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1, const char *s2, int result) { return __sanitizer_weak_hook_strcmp(called_pc, s1, s2, result); } -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1, const char *s2, char *result) { TS->AddInterestingWord(reinterpret_cast(s2), strlen(s2)); } -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1, const char *s2, char *result) { TS->AddInterestingWord(reinterpret_cast(s2), strlen(s2)); } -ATTRIBUTE_NO_SANITIZE_MEMORY +ATTRIBUTE_INTERFACE ATTRIBUTE_NO_SANITIZE_MEMORY void __sanitizer_weak_hook_memmem(void *called_pc, const void *s1, size_t len1, const void *s2, size_t len2, void *result) { if (fuzzer::DoingMyOwnMemmem) return;