Add ASan, TSan support

This commit is contained in:
Brian Cain 2017-12-23 22:17:34 -06:00 committed by clemahieu
commit 578761a277

View file

@ -7,9 +7,11 @@ set (CPACK_PACKAGE_VERSION_PATCH "0")
set (RAIBLOCKS_GUI OFF CACHE BOOL "")
set (RAIBLOCKS_TEST OFF CACHE BOOL "")
option(RAIBLOCKS_ASAN_INT "Enable ASan+UBSan+Integer overflow" OFF)
option(RAIBLOCKS_ASAN "Enable ASan+UBSan" OFF)
option(RAIBLOCKS_SIMD_OPTIMIZATIONS "Enable CPU-specific SIMD optimizations (SSE/AVX or NEON, e.g.)" ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif(NOT CMAKE_BUILD_TYPE)
@ -19,6 +21,14 @@ if (WIN32)
set (BLAKE2_IMPLEMENTATION "blake2/blake2b.c")
else (WIN32)
set (PLATFORM_COMPILE_FLAGS "-DBOOST_SPIRIT_THREADSAFE -Werror=switch -fPIC")
if (RAIBLOCKS_ASAN)
set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -fsanitize=address,undefined -DED25519_NO_INLINE_ASM")
elseif (RAIBLOCKS_ASAN_INT)
set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -fsanitize=address,undefined,integer -DED25519_NO_INLINE_ASM")
elseif (RAIBLOCKS_TSAN)
set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -fsanitize=thread -DED25519_NO_INLINE_ASM")
endif()
IF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$")
if (RAIBLOCKS_SIMD_OPTIMIZATIONS)
set (PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} -msse4")
@ -62,6 +72,13 @@ elseif (WIN32)
set (PLATFORM_LINK_FLAGS "")
else ()
set (PLATFORM_LINK_FLAGS "-static-libgcc -static-libstdc++")
if (RAIBLOCKS_ASAN)
set (PLATFORM_LINK_FLAGS "${PLATFORM_LINK_FLAGS} -fsanitize=address,undefined")
elseif (RAIBLOCKS_ASAN_INT)
set (PLATFORM_LINK_FLAGS "${PLATFORM_LINK_FLAGS} -fsanitize=address,undefined,integer")
elseif (RAIBLOCKS_TSAN)
set (PLATFORM_LINK_FLAGS "${PLATFORM_LINK_FLAGS} -fsanitize=thread")
endif()
endif (APPLE)
if (RAIBLOCKS_GUI)