|
|
|
@ -70,6 +70,17 @@ if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CYGWIN
|
|
|
|
|
# This seems to be causing issues in the Fedora_MinGW GitLab job
|
|
|
|
|
#add_compile_options(-fasynchronous-unwind-tables)
|
|
|
|
|
|
|
|
|
|
if( EXIV2_BUILD_FUZZ_TESTS )
|
|
|
|
|
if (NOT COMPILER_IS_CLANG)
|
|
|
|
|
message(FATAL_ERROR "You need to build with Clang for the fuzzers to work. "
|
|
|
|
|
"Use Clang")
|
|
|
|
|
endif()
|
|
|
|
|
set(FUZZER_FLAGS "-fsanitize=fuzzer-no-link")
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FUZZER_FLAGS}")
|
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FUZZER_FLAGS}")
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FUZZER_FLAGS}")
|
|
|
|
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${FUZZER_FLAGS}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if ( EXIV2_TEAM_USE_SANITIZERS )
|
|
|
|
|
# ASAN is available in gcc from 4.8 and UBSAN from 4.9
|
|
|
|
@ -84,9 +95,7 @@ if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CYGWIN
|
|
|
|
|
set(SANITIZER_FLAGS "-fno-omit-frame-pointer -fsanitize=address")
|
|
|
|
|
endif()
|
|
|
|
|
elseif( COMPILER_IS_CLANG )
|
|
|
|
|
if ( EXIV2_BUILD_FUZZ_TESTS )
|
|
|
|
|
set(SANITIZER_FLAGS "-fsanitize=fuzzer-no-link,address,undefined")
|
|
|
|
|
elseif ( CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9 )
|
|
|
|
|
if ( CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9 )
|
|
|
|
|
set(SANITIZER_FLAGS "-fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=all")
|
|
|
|
|
elseif ( CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3.4 )
|
|
|
|
|
set(SANITIZER_FLAGS "-fno-omit-frame-pointer -fsanitize=address,undefined")
|
|
|
|
|