@@ -23,6 +23,7 @@ option(BUILD_SHARED_LIBS "Build shared libraries" ON)
2323option (WITH_TENSOR_PARALLEL "Compile with NCCL and MPI backend" OFF )
2424option (WITH_FLASH_ATTN "Compile with Flash Attention 2" OFF )
2525option (ENABLE_ADDRESS_SANITIZER "ASAN" OFF )
26+ option (ENABLE_THREAD_SANITIZER "TSAN" OFF )
2627
2728MESSAGE (STATUS "Compiler Id: ${CMAKE_CXX_COMPILER_ID} " )
2829MESSAGE (STATUS "Compiler Version: ${CMAKE_CXX_COMPILER_VERSION} " )
@@ -480,13 +481,20 @@ if (WITH_RUY)
480481 list (APPEND LIBRARIES ruy)
481482endif ()
482483
484+ # sanitizers
483485IF (ENABLE_ADDRESS_SANITIZER AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "DEBUG" ))
484- MESSAGE (STATUS "ENABLE_ADDRESS_SANITIZER: ENABLED " )
486+ MESSAGE (STATUS "ENABLE_ADDRESS_SANITIZER: TRUE " )
485487 set (ASAN_FLAGS " -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common" )
486488 string (APPEND CMAKE_C_FLAGS ${ASAN_FLAGS} )
487489 string (APPEND CMAKE_CXX_FLAGS ${ASAN_FLAGS} )
488490 add_link_options (-fsanitize=address )
489- ELSEIF (ENABLE_ADDRESS_SANITIZER)
491+ ELSEIF (ENABLE_THREAD_SANITIZER AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "DEBUG" ))
492+ MESSAGE (STATUS "ENABLE_THREAD_SANITIZER: TRUE" )
493+ set (TSAN_FLAGS " -fsanitize=thread" )
494+ string (APPEND CMAKE_C_FLAGS ${TSAN_FLAGS} )
495+ string (APPEND CMAKE_CXX_FLAGS ${TSAN_FLAGS} )
496+ add_link_options (-fsanitize=thread )
497+ ELSEIF (ENABLE_ADDRESS_SANITIZER OR ENABLE_THREAD_SANITIZER)
490498 MESSAGE (FATAL_ERROR "SANITIZER requires Debug build type" )
491499ENDIF ()
492500
0 commit comments