Fix sanitizer cmake config for GNU compiler (#24110)

### Details:
GNU compiler doesn't support
`-fsanitize-blacklist=${OpenVINO_SOURCE_DIR}/tests/asan/ignore.txt` and
doesn't require `-shared-libasan` flags. In this PR configurations for
the ASAN build for Clang and GCC are split.
This commit is contained in:
Maksim Kutakov 2024-04-25 10:59:02 +02:00 committed by GitHub
parent 7fe82c0c10
commit a102520192
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 1 deletions

View File

@ -16,7 +16,7 @@ if (ENABLE_SANITIZER)
"Please, check requirements:\n"
"https://github.com/openvinotoolkit/openvino/wiki/AddressSanitizer-and-LeakSanitizer")
endif()
elseif(CMAKE_COMPILER_IS_GNUCXX OR OV_COMPILER_IS_CLANG)
elseif(OV_COMPILER_IS_CLANG)
set(SANITIZER_COMPILER_FLAGS "${SANITIZER_COMPILER_FLAGS} -fsanitize=address -fsanitize-blacklist=${OpenVINO_SOURCE_DIR}/tests/asan/ignore.txt")
if(BUILD_SHARED_LIBS)
set(SANITIZER_COMPILER_FLAGS "${SANITIZER_COMPILER_FLAGS} -shared-libasan")
@ -31,6 +31,14 @@ if (ENABLE_SANITIZER)
if(BUILD_SHARED_LIBS)
set(SANITIZER_LINKER_FLAGS "${SANITIZER_LINKER_FLAGS} -shared-libasan")
endif()
elseif(CMAKE_COMPILER_IS_GNUCXX)
set(SANITIZER_COMPILER_FLAGS "${SANITIZER_COMPILER_FLAGS} -fsanitize=address")
check_cxx_compiler_flag("-fsanitize-recover=address" SANITIZE_RECOVER_ADDRESS_SUPPORTED)
if (SANITIZE_RECOVER_ADDRESS_SUPPORTED)
set(SANITIZER_COMPILER_FLAGS "${SANITIZER_COMPILER_FLAGS} -fsanitize-recover=address")
endif()
set(SANITIZER_LINKER_FLAGS "${SANITIZER_LINKER_FLAGS} -fsanitize=address")
else()
message(WARNING "Unsupported CXX compiler ${CMAKE_CXX_COMPILER_ID}")
endif()