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.zip ouroboros-05da75f1fb08719b373ba94a9faf5d5ce77d3874.tar.gz | |
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 f23925f..f583621 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 788c113..422fa70 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 dd67ce0..c84d66c 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 600340b..e9c34bb 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 89a446a..2bc6815 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 5528826..51b6f96 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 1c5877d..f0454bd 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} |
