Browse Source

Add option to enable thread sanitizer

tags/v1.6.90
Pierre Ossman 8 years ago
parent
commit
b74728f9d6
2 changed files with 13 additions and 0 deletions
  1. 6
    0
      CMakeLists.txt
  2. 7
    0
      cmake/StaticBuild.cmake

+ 6
- 0
CMakeLists.txt View File

@@ -80,6 +80,12 @@ if(ENABLE_ASAN AND NOT WIN32 AND NOT APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
endif()

option(ENABLE_TSAN "Enable thread sanitizer support" OFF)
if(ENABLE_TSAN AND NOT WIN32 AND NOT APPLE AND CMAKE_SIZEOF_VOID_P MATCHES 8)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
endif()

if(NOT DEFINED BUILD_WINVNC)
set(BUILD_WINVNC 1)
endif()

+ 7
- 0
cmake/StaticBuild.cmake View File

@@ -119,6 +119,13 @@ if(BUILD_STATIC_GCC)
if(ENABLE_ASAN AND NOT WIN32 AND NOT APPLE)
set(STATIC_BASE_LIBRARIES "${STATIC_BASE_LIBRARIES} -Wl,-Bstatic -lasan -Wl,-Bdynamic -ldl -lm -lpthread")
endif()
if(ENABLE_TSAN AND NOT WIN32 AND NOT APPLE AND CMAKE_SIZEOF_VOID_P MATCHES 8)
# libtsan redefines some C++ symbols which then conflict with a
# statically linked libstdc++. Work around this by allowing multiple
# definitions. The linker will pick the first one (i.e. the one
# from libtsan).
set(STATIC_BASE_LIBRARIES "${STATIC_BASE_LIBRARIES} -Wl,-z -Wl,muldefs -Wl,-Bstatic -ltsan -Wl,-Bdynamic -ldl -lm")
endif()
if(WIN32)
set(STATIC_BASE_LIBRARIES "${STATIC_BASE_LIBRARIES} -lmingw32 -lgcc_eh -lgcc -lmoldname -lmingwex -lmsvcrt")
set(STATIC_BASE_LIBRARIES "${STATIC_BASE_LIBRARIES} -luser32 -lkernel32 -ladvapi32 -lshell32")

Loading…
Cancel
Save