Add build_oai/cmake option to build with thread sanitizer
This commit is contained in:
@@ -193,6 +193,13 @@ if (SANITIZE_ADDRESS)
|
|||||||
# wrong in the pthread library, or something subtly wrong in this CMakeLists.txt. Use Ubuntu 20.04 instead.
|
# wrong in the pthread library, or something subtly wrong in this CMakeLists.txt. Use Ubuntu 20.04 instead.
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
add_boolean_option(SANITIZE_THREAD False "enable the address sanitizer (TSan)" ON)
|
||||||
|
if (SANITIZE_THREAD)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread -fno-omit-frame-pointer -fno-common")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -fno-omit-frame-pointer -fno-common")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_boolean_option(SANITIZE_UNDEFINED False "enable the undefined behavior sanitizer (UBSan)" ON)
|
add_boolean_option(SANITIZE_UNDEFINED False "enable the undefined behavior sanitizer (UBSan)" ON)
|
||||||
if (SANITIZE_UNDEFINED)
|
if (SANITIZE_UNDEFINED)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined -fno-sanitize-recover=all")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined -fno-sanitize-recover=all")
|
||||||
|
|||||||
@@ -158,6 +158,8 @@ Options:
|
|||||||
Enable the memory sanitizer on all targets. Requires clang, and is
|
Enable the memory sanitizer on all targets. Requires clang, and is
|
||||||
incompatible with ASan/UBSan. To build, issue:
|
incompatible with ASan/UBSan. To build, issue:
|
||||||
CC=/usr/bin/clang CXX=/usr/bin/clang++ ./build_oai ... --sanitize-memory
|
CC=/usr/bin/clang CXX=/usr/bin/clang++ ./build_oai ... --sanitize-memory
|
||||||
|
--sanitize-thread | -fsanitize=thread
|
||||||
|
Enable the thread sanitizer on all targets
|
||||||
-h | --help
|
-h | --help
|
||||||
Print this help"
|
Print this help"
|
||||||
}
|
}
|
||||||
@@ -416,6 +418,9 @@ function main() {
|
|||||||
CMAKE_CMD="$CMAKE_CMD -DTRACE_ASN1C_ENC_DEC=ON"
|
CMAKE_CMD="$CMAKE_CMD -DTRACE_ASN1C_ENC_DEC=ON"
|
||||||
echo_info "Enabling asn1c internal traces via OAI logging system"
|
echo_info "Enabling asn1c internal traces via OAI logging system"
|
||||||
shift 1;;
|
shift 1;;
|
||||||
|
--sanitize-thread | -fthread=address)
|
||||||
|
CMAKE_CMD="$CMAKE_CMD -DSANITIZE_THREAD=True"
|
||||||
|
shift;;
|
||||||
-h | --help)
|
-h | --help)
|
||||||
print_help
|
print_help
|
||||||
exit 1;;
|
exit 1;;
|
||||||
|
|||||||
Reference in New Issue
Block a user