From 5a9934b8e02e9532ac200e7f1f10d6e4b0974683 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 10 Nov 2017 13:39:12 +0100 Subject: TSAN --- CMakeLists.txt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 74c045f..bf6e173 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ option(AVOID_BINDING_REBUILD "AVOID_BINDING_REBUILD" OFF) option(CATCH_ERRORS "CATCH_ERRORS" OFF) option(ENABLE_MEMCHECK "Build valgrind tests" OFF) option(ENABLE_ASAN "Enable the address sanitizer" OFF) +option(ENABLE_TSAN "Enable the thread sanitizer" OFF) # ECM setup find_package(ECM 1.0.0 REQUIRED NO_MODULE) @@ -38,6 +39,7 @@ find_package(KAsync REQUIRED 0.1.2) find_package(LMDB REQUIRED 0.9) if (${ENABLE_MEMCHECK}) + message("Enabled memcheck") find_program(MEMORYCHECK_COMMAND valgrind) if(NOT MEMORYCHECK_COMMAND) message(FATAL_ERROR "valgrind not found!") @@ -45,7 +47,8 @@ if (${ENABLE_MEMCHECK}) set(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full") endif() -if (ENABLE_ASAN) +if (${ENABLE_ASAN}) + message("Enabled ASAN") set(SINK_ASAN_FLAG "-fsanitize=address -fPIE -fno-omit-frame-pointer -O1 ") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SINK_ASAN_FLAG}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SINK_ASAN_FLAG}") @@ -54,6 +57,16 @@ if (ENABLE_ASAN) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SINK_ASAN_FLAG}") endif() +if (${ENABLE_TSAN}) + message("Enabled TSAN") + set(SINK_TSAN_FLAG "-fsanitize=thread -fPIE -fno-omit-frame-pointer -O1 ") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SINK_TSAN_FLAG}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SINK_TSAN_FLAG}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SINK_TSAN_FLAG}") + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${SINK_TSAN_FLAG}") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SINK_TSAN_FLAG}") +endif() + #Clang-format support add_custom_command( -- cgit v1.2.3