forked from OSchip/llvm-project
Fix stack_trace_compressor builds for Clang < 6.0
Summary: Clang 4.* doesn't supply -fsanitize=fuzzer, and Clang 5.* doesn't supply -fsanitize=fuzzer-no-link. Generally, in LLVM, fuzz targets are added through the add_llvm_fuzzer build rule, which can't be used in compiler-rt (as it has to be able to be standalone built). Instead of adding tooling to add a dummy main (which kind of defeats the purpose of these fuzz targets), we instead build the fuzz target only when the Clang version is >= 6.*. Reviewers: tejohnson Subscribers: mgorny, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D66682 llvm-svn: 369823
This commit is contained in:
parent
eb8ea5e2f1
commit
05bc1468c2
|
@ -99,9 +99,15 @@ if (COMPILER_RT_HAS_GWP_ASAN)
|
|||
ADDITIONAL_HEADERS ${GWP_ASAN_BACKTRACE_HEADERS}
|
||||
CFLAGS ${GWP_ASAN_CFLAGS} ${SANITIZER_COMMON_CFLAGS})
|
||||
|
||||
# Build the stack trace compressor fuzzer.
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND
|
||||
COMPILER_RT_BUILD_LIBFUZZER)
|
||||
# Build the stack trace compressor fuzzer. Note that clang versions 4.* did
|
||||
# not have -fsanitize=fuzzer, and Clang versions 5.* didn't have
|
||||
# -fsanitize=fuzzer-no-link. In general, the way we build fuzz targets in LLVM
|
||||
# core is to link it against a dummy main when DLLVM_USE_SANITIZE_COVERAGE
|
||||
# isn't specified. Instead, here we only build fuzz targets if clang version
|
||||
# is >= 6.0.
|
||||
if (COMPILER_RT_BUILD_LIBFUZZER AND
|
||||
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND
|
||||
CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
|
||||
add_executable(stack_trace_compressor_fuzzer
|
||||
stack_trace_compressor_fuzzer.cpp
|
||||
${GWP_ASAN_SOURCES}
|
||||
|
|
Loading…
Reference in New Issue