Adapt fuzzer CMake rules for OSS-Fuzz
Refactors the CMake rules for the tint fuzzers so that when OSS-Fuzz is controlling the build process no specific fuzzer options are used. This allows OSS-Fuzz to fully control the fuzzing engine. Change-Id: Ic4423b981df12e66a14ca8f53c97168ac28bfa39 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/63342 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Alastair Donaldson <afdx@google.com> Auto-Submit: Alastair Donaldson <afdx@google.com> Reviewed-by: Antonio Maiorano <amaiorano@google.com>
This commit is contained in:
parent
5093b9fe4d
commit
6a1eb45961
|
@ -58,6 +58,8 @@ option(TINT_BUILD_TESTS "Build tests" ${TINT_BUILD_TESTS_DEFAULT})
|
|||
option(TINT_BUILD_AS_OTHER_OS "Override OS detection to force building of *_other.cc files" OFF)
|
||||
option(TINT_BUILD_REMOTE_COMPILE "Build the remote-compile tool for validating shaders on a remote machine" OFF)
|
||||
|
||||
set(TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS "" CACHE STRING "Used by OSS-Fuzz to control, via link options, which fuzzing engine should be used")
|
||||
|
||||
option(TINT_ENABLE_MSAN "Enable memory sanitizer" OFF)
|
||||
option(TINT_ENABLE_ASAN "Enable address sanitizer" OFF)
|
||||
option(TINT_ENABLE_UBSAN "Enable undefined behaviour sanitizer" OFF)
|
||||
|
@ -86,6 +88,10 @@ message(STATUS "Tint build with UBSAN: ${TINT_ENABLE_UBSAN}")
|
|||
message(STATUS "Tint build checking [chromium-style]: ${TINT_CHECK_CHROMIUM_STYLE}")
|
||||
message(STATUS "Tint build remote-compile tool: ${TINT_BUILD_REMOTE_COMPILE}")
|
||||
|
||||
if (NOT ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS} STREQUAL "")
|
||||
message(STATUS "Using provided LIB_FUZZING_ENGINE options: ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Using python3")
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
|
|
|
@ -540,8 +540,18 @@ if (${TINT_BUILD_FUZZERS})
|
|||
if (${COMPILER_IS_LIKE_GNU})
|
||||
target_compile_options(libtint-fuzz PRIVATE -fvisibility=hidden)
|
||||
endif()
|
||||
target_compile_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp)
|
||||
target_link_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp)
|
||||
|
||||
if (NOT ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS} STREQUAL "")
|
||||
# This is set when the fuzzers are being built by OSS-Fuzz. In this case the
|
||||
# variable provides the necessary linker flags, and OSS-Fuzz will take care
|
||||
# of passing suitable compiler flags.
|
||||
target_link_options(libtint-fuzz PUBLIC ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS})
|
||||
else()
|
||||
# When the fuzzers are being built outside of OSS-Fuzz, specific libFuzzer
|
||||
# arguments to enable fuzzing are used.
|
||||
target_compile_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp)
|
||||
target_link_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER})
|
||||
|
|
Loading…
Reference in New Issue