[PATCH] D32096: Always build libfuzzer

Phabricator via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 21 15:51:12 PDT 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL301054: [libFuzzer] Always build libFuzzer  (authored by kuba.brecka).

Changed prior to commit:
  https://reviews.llvm.org/D32096?vs=96253&id=96259#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D32096

Files:
  llvm/trunk/lib/Fuzzer/CMakeLists.txt


Index: llvm/trunk/lib/Fuzzer/CMakeLists.txt
===================================================================
--- llvm/trunk/lib/Fuzzer/CMakeLists.txt
+++ llvm/trunk/lib/Fuzzer/CMakeLists.txt
@@ -13,51 +13,57 @@
   endif()
 endif()
 
-set(LIBFUZZER_FLAGS_BASE "${CMAKE_CXX_FLAGS}")
-# Disable the coverage and sanitizer instrumentation for the fuzzer itself.
-set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE} -fno-sanitize-coverage=trace-pc-guard,edge,trace-cmp,indirect-calls,8bit-counters -Werror")
 if( LLVM_USE_SANITIZE_COVERAGE )
   if(NOT "${LLVM_USE_SANITIZER}" STREQUAL "Address")
     message(FATAL_ERROR
       "LibFuzzer and its tests require LLVM_USE_SANITIZER=Address and "
       "LLVM_USE_SANITIZE_COVERAGE=YES to be set."
       )
   endif()
+  set(LIBFUZZER_FLAGS_BASE "${CMAKE_CXX_FLAGS}")
+
+  # Disable the coverage and sanitizer instrumentation for the fuzzer itself.
+  set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE} -fno-sanitize-coverage=trace-pc-guard,edge,trace-cmp,indirect-calls,8bit-counters -Werror")
+endif()
+
+# Compile libFuzzer if the compilation is specifically requested, OR
+# if the platform is known to be working.
+if ( LLVM_USE_SANITIZE_COVERAGE OR CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
   add_library(LLVMFuzzerNoMainObjects OBJECT
-    FuzzerCrossOver.cpp
-    FuzzerDriver.cpp
-    FuzzerExtFunctionsDlsym.cpp
-    FuzzerExtFunctionsDlsymWin.cpp
-    FuzzerExtFunctionsWeak.cpp
-    FuzzerExtraCounters.cpp
-    FuzzerIO.cpp
-    FuzzerIOPosix.cpp
-    FuzzerIOWindows.cpp
-    FuzzerLoop.cpp
-    FuzzerMerge.cpp
-    FuzzerMutate.cpp
-    FuzzerSHA1.cpp
-    FuzzerShmemPosix.cpp
-    FuzzerShmemWindows.cpp
-    FuzzerTracePC.cpp
-    FuzzerTraceState.cpp
-    FuzzerUtil.cpp
-    FuzzerUtilDarwin.cpp
-    FuzzerUtilLinux.cpp
-    FuzzerUtilPosix.cpp
-    FuzzerUtilWindows.cpp
-    )
+      FuzzerCrossOver.cpp
+      FuzzerDriver.cpp
+      FuzzerExtFunctionsDlsym.cpp
+      FuzzerExtFunctionsDlsymWin.cpp
+      FuzzerExtFunctionsWeak.cpp
+      FuzzerExtraCounters.cpp
+      FuzzerIO.cpp
+      FuzzerIOPosix.cpp
+      FuzzerIOWindows.cpp
+      FuzzerLoop.cpp
+      FuzzerMerge.cpp
+      FuzzerMutate.cpp
+      FuzzerSHA1.cpp
+      FuzzerShmemPosix.cpp
+      FuzzerShmemWindows.cpp
+      FuzzerTracePC.cpp
+      FuzzerTraceState.cpp
+      FuzzerUtil.cpp
+      FuzzerUtilDarwin.cpp
+      FuzzerUtilLinux.cpp
+      FuzzerUtilPosix.cpp
+      FuzzerUtilWindows.cpp
+      )
   add_library(LLVMFuzzerNoMain STATIC
-    $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
-    )
+      $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
+      )
   target_link_libraries(LLVMFuzzerNoMain ${LLVM_PTHREAD_LIB})
   add_library(LLVMFuzzer STATIC
-    FuzzerMain.cpp
-    $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
-    )
+      FuzzerMain.cpp
+      $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
+      )
   target_link_libraries(LLVMFuzzer ${LLVM_PTHREAD_LIB})
+endif()
 
-  if( LLVM_INCLUDE_TESTS )
-    add_subdirectory(test)
-  endif()
+if( LLVM_USE_SANITIZE_COVERAGE AND LLVM_INCLUDE_TESTS )
+  add_subdirectory(test)
 endif()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32096.96259.patch
Type: text/x-patch
Size: 3068 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170421/85289978/attachment.bin>


More information about the llvm-commits mailing list