diff options
author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2017-11-14 20:46:50 +0100 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2017-11-14 21:43:27 +0100 |
commit | 05da75f1fb08719b373ba94a9faf5d5ce77d3874 (patch) | |
tree | e907261dd79c5b082f8bfd75cf6c30caddb60d01 | |
parent | 4c402ad8d7d38f00c2c3794675a0e99a03fca4be (diff) | |
download | ouroboros-05da75f1fb08719b373ba94a9faf5d5ce77d3874.tar.gz ouroboros-05da75f1fb08719b373ba94a9faf5d5ce77d3874.zip |
build: Add options for debug builds with sanitizer
This adds three build types, DebugASan, DebugTSan and DebugLSan that
enable the Address, Thread and Leak Sanitizer by setting the fsanitize
flag to the compiler. This option is supported by both gcc and clang.
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/ipcpd/local/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/ipcpd/normal/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/ipcpd/shim-eth-llc/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/ipcpd/shim-udp/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/irmd/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/lib/CMakeLists.txt | 4 |
7 files changed, 19 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f23925fe..f5836217 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,13 @@ test_and_set_c_compiler_flag_global(-fmax-errors=5) if (CMAKE_BUILD_TYPE STREQUAL "Release") test_and_set_c_compiler_flag_global(-O3) endif () +if (CMAKE_BUILD_TYPE STREQUAL "DebugASan") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") +elseif (CMAKE_BUILD_TYPE STREQUAL "DebugTSan") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread") +elseif (CMAKE_BUILD_TYPE STREQUAL "DebugLSan") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=leak") +endif () configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ouroboros-dev.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/ouroboros-dev.pc" @ONLY) diff --git a/src/ipcpd/local/CMakeLists.txt b/src/ipcpd/local/CMakeLists.txt index 788c1139..422fa709 100644 --- a/src/ipcpd/local/CMakeLists.txt +++ b/src/ipcpd/local/CMakeLists.txt @@ -22,9 +22,9 @@ add_executable(ipcpd-local ${SHIM_LOCAL_SOURCES} ${IPCP_SOURCES}) target_link_libraries(ipcpd-local LINK_PUBLIC ouroboros-common ouroboros-dev) include(AddCompileFlags) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if (CMAKE_BUILD_TYPE MATCHES "Debug*") add_compile_flags(ipcpd-local -DCONFIG_OUROBOROS_DEBUG) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif () install(TARGETS ipcpd-local RUNTIME DESTINATION sbin) diff --git a/src/ipcpd/normal/CMakeLists.txt b/src/ipcpd/normal/CMakeLists.txt index dd67ce05..c84d66ce 100644 --- a/src/ipcpd/normal/CMakeLists.txt +++ b/src/ipcpd/normal/CMakeLists.txt @@ -53,9 +53,9 @@ add_executable(ipcpd-normal ${SOURCE_FILES} ${IPCP_SOURCES} target_link_libraries(ipcpd-normal LINK_PUBLIC ouroboros-dev ouroboros-irm) include(AddCompileFlags) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if (CMAKE_BUILD_TYPE MATCHES "Debug*") add_compile_flags(ipcpd-normal -DCONFIG_OUROBOROS_DEBUG) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif () install(TARGETS ipcpd-normal RUNTIME DESTINATION sbin) diff --git a/src/ipcpd/shim-eth-llc/CMakeLists.txt b/src/ipcpd/shim-eth-llc/CMakeLists.txt index 600340b7..e9c34bbd 100644 --- a/src/ipcpd/shim-eth-llc/CMakeLists.txt +++ b/src/ipcpd/shim-eth-llc/CMakeLists.txt @@ -95,9 +95,9 @@ if (HAVE_LLC) ouroboros-dev ${PROTOBUF_C_LIBRARY}) include(AddCompileFlags) - if (CMAKE_BUILD_TYPE MATCHES Debug) + if (CMAKE_BUILD_TYPE MATCHES "Debug*") add_compile_flags(ipcpd-shim-eth-llc -DCONFIG_OUROBOROS_DEBUG) - endif (CMAKE_BUILD_TYPE MATCHES Debug) + endif () install(TARGETS ipcpd-shim-eth-llc RUNTIME DESTINATION sbin) endif () diff --git a/src/ipcpd/shim-udp/CMakeLists.txt b/src/ipcpd/shim-udp/CMakeLists.txt index 89a446a7..2bc68154 100644 --- a/src/ipcpd/shim-udp/CMakeLists.txt +++ b/src/ipcpd/shim-udp/CMakeLists.txt @@ -57,8 +57,8 @@ else () endif () include(AddCompileFlags) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if (CMAKE_BUILD_TYPE MATCHES "Debug*") add_compile_flags(ipcpd-shim-udp -DCONFIG_OUROBOROS_DEBUG) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif () install(TARGETS ipcpd-shim-udp RUNTIME DESTINATION sbin) diff --git a/src/irmd/CMakeLists.txt b/src/irmd/CMakeLists.txt index 55288263..51b6f965 100644 --- a/src/irmd/CMakeLists.txt +++ b/src/irmd/CMakeLists.txt @@ -44,9 +44,9 @@ add_executable (irmd ${SOURCE_FILES}) target_link_libraries (irmd LINK_PUBLIC ouroboros-common) include(AddCompileFlags) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if (CMAKE_BUILD_TYPE MATCHES "Debug*") add_compile_flags(irmd -DCONFIG_OUROBOROS_DEBUG) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif () install(TARGETS irmd RUNTIME DESTINATION sbin) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 1c5877df..f0454bd8 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -219,11 +219,11 @@ add_library(ouroboros-dev SHARED ${SOURCE_FILES_DEV} ${CACEP_PROTO_SRCS}) add_library(ouroboros-irm SHARED ${SOURCE_FILES_IRM}) include(AddCompileFlags) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if (CMAKE_BUILD_TYPE MATCHES "Debug*") add_compile_flags(ouroboros-common -DCONFIG_OUROBOROS_DEBUG) add_compile_flags(ouroboros-dev -DCONFIG_OUROBOROS_DEBUG) add_compile_flags(ouroboros-irm -DCONFIG_OUROBOROS_DEBUG) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif () target_link_libraries(ouroboros-common ${LIBRT_LIBRARIES} ${LIBPTHREAD_LIBRARIES} ${PROTOBUF_C_LIBRARY} ${OPENSSL_LIBRARIES} |