mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-27 15:41:05 +08:00
update sanitizer support
- enable undefined behavior sanitizer - force release mode for sanitizer builds
This commit is contained in:
parent
c8e3dfca90
commit
1cfd41c064
@ -40,6 +40,7 @@ set(target_outputs)
|
|||||||
option(ENABLE_ASAN "Build with address sanitizer" OFF)
|
option(ENABLE_ASAN "Build with address sanitizer" OFF)
|
||||||
if(ENABLE_ASAN)
|
if(ENABLE_ASAN)
|
||||||
message(STATUS "Instrumenting with Address Sanitizer")
|
message(STATUS "Instrumenting with Address Sanitizer")
|
||||||
|
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
|
||||||
set(CMAKE_CXX_FLAGS
|
set(CMAKE_CXX_FLAGS
|
||||||
"${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
|
"${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
|
||||||
@ -66,6 +67,23 @@ if(ENABLE_TSAN)
|
|||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${TSAN_FLAGS} -pie -Qunused-arguments")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${TSAN_FLAGS} -pie -Qunused-arguments")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(ENABLE_UBSAN "Build with undefined behavior sanitizer" OFF)
|
||||||
|
if(ENABLE_UBSAN)
|
||||||
|
message(STATUS "Instrumenting with Undefined Behavior Sanitizer")
|
||||||
|
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
|
||||||
|
set(UBSAN_FLAGS "${UBSAN_FLAGS} -fno-omit-frame-pointer")
|
||||||
|
set(UBSAN_FLAGS "${UBSAN_FLAGS} -fsanitize=undefined")
|
||||||
|
set(UBSAN_FLAGS "${UBSAN_FLAGS} -fsanitize=implicit-conversion")
|
||||||
|
set(UBSAN_FLAGS "${UBSAN_FLAGS} -fsanitize=implicit-integer-truncation")
|
||||||
|
set(UBSAN_FLAGS "${UBSAN_FLAGS} -fsanitize=integer")
|
||||||
|
set(UBSAN_FLAGS "${UBSAN_FLAGS} -fsanitize=nullability")
|
||||||
|
set(UBSAN_FLAGS "${UBSAN_FLAGS} -fsanitize=vptr")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${UBSAN_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${UBSAN_FLAGS}")
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${UBSAN_FLAGS}")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${UBSAN_FLAGS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
option(ENABLE_INTRINSICS "Build using compiler intrinsics for atomic ops" OFF)
|
option(ENABLE_INTRINSICS "Build using compiler intrinsics for atomic ops" OFF)
|
||||||
if(ENABLE_INTRINSICS)
|
if(ENABLE_INTRINSICS)
|
||||||
message(STATUS "Using compiler intrinsics for atomic ops")
|
message(STATUS "Using compiler intrinsics for atomic ops")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user