[PATCH] D66682: Fix stack_trace_compressor builds for Clang < 6.0
Mitch Phillips via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 23 13:40:31 PDT 2019
hctim created this revision.
hctim added a reviewer: tejohnson.
Herald added subscribers: llvm-commits, Sanitizers, mgorny.
Herald added projects: Sanitizers, LLVM.
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.*.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D66682
Files:
compiler-rt/lib/gwp_asan/CMakeLists.txt
Index: compiler-rt/lib/gwp_asan/CMakeLists.txt
===================================================================
--- compiler-rt/lib/gwp_asan/CMakeLists.txt
+++ compiler-rt/lib/gwp_asan/CMakeLists.txt
@@ -99,9 +99,15 @@
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}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66682.216943.patch
Type: text/x-patch
Size: 1158 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190823/97ff4376/attachment.bin>
More information about the llvm-commits
mailing list