From 3c4cf098a9ff501ddb82e32a243204af597d92be Mon Sep 17 00:00:00 2001 From: SChernykh <15806605+SChernykh@users.noreply.github.com> Date: Tue, 29 Oct 2024 11:33:46 +0100 Subject: [PATCH] CMake: added DEV_DEBUG option --- .github/workflows/test-sync.yml | 6 +++--- CMakeLists.txt | 5 +++++ cmake/flags.cmake | 8 ++++---- src/common.h | 2 +- src/pool_block.h | 2 +- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test-sync.yml b/.github/workflows/test-sync.yml index b3f4cfd..1aef50c 100644 --- a/.github/workflows/test-sync.yml +++ b/.github/workflows/test-sync.yml @@ -271,8 +271,8 @@ jobs: strategy: matrix: config: - - {os: macos-13, flags: "-Og -ftrapv"} - - {os: macos-14, flags: "-Og -ftrapv -target arm64-apple-macos-11"} + - {os: macos-13, flags: ""} + - {os: macos-14, flags: "-target arm64-apple-macos-11"} steps: - name: Checkout repository @@ -312,7 +312,7 @@ jobs: run: | mkdir build cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }}' -DWITH_LTO=OFF -DSTATIC_LIBS=ON -DDEV_TEST_SYNC=ON + cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }}' -DWITH_LTO=OFF -DSTATIC_LIBS=ON -DDEV_TEST_SYNC=ON -DDEV_DEBUG=ON make -j4 p2pool - name: Run p2pool diff --git a/CMakeLists.txt b/CMakeLists.txt index d7ed33f..64fff97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,7 @@ option(DEV_WITH_UBSAN "[Developer only] Compile with undefined behavior sanitize option(DEV_WITH_ASAN "[Developer only] Compile with address sanitizer" OFF) option(DEV_CLANG_TIDY "[Developer only] Compile for clang-tidy" OFF) option(DEV_TRACK_MEMORY "[Developer only] Track memory allocations" OFF) +option(DEV_DEBUG "[Developer only] Compile a debug build" OFF) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT p2pool) @@ -83,6 +84,10 @@ if (DEV_TRACK_MEMORY) add_definitions(-DDEV_TRACK_MEMORY) endif() +if (DEV_DEBUG) + add_definitions(-DDEV_DEBUG) +endif() + include(cmake/flags.cmake) set(HEADERS diff --git a/cmake/flags.cmake b/cmake/flags.cmake index 43f654d..c7a3134 100644 --- a/cmake/flags.cmake +++ b/cmake/flags.cmake @@ -27,8 +27,8 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU) set(WARNING_FLAGS "-w") endif() - if (DEV_WITH_TSAN OR DEV_WITH_UBSAN OR DEV_WITH_ASAN) - set(OPTIMIZATION_FLAGS "-Og -g") + if (DEV_WITH_TSAN OR DEV_WITH_UBSAN OR DEV_WITH_ASAN OR DEV_DEBUG) + set(OPTIMIZATION_FLAGS "-Og -g -ftrapv") else() set(OPTIMIZATION_FLAGS "-O3 -ffast-math -s") endif() @@ -99,8 +99,8 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang) set(WARNING_FLAGS "-w") endif() - if (DEV_WITH_MSAN) - set(OPTIMIZATION_FLAGS "-Og -g") + if (DEV_WITH_MSAN OR DEV_DEBUG) + set(OPTIMIZATION_FLAGS "-Og -g -ftrapv") else() set(OPTIMIZATION_FLAGS "-O3 -ffast-math -funroll-loops -fmerge-all-constants") endif() diff --git a/src/common.h b/src/common.h index 804c696..6851816 100644 --- a/src/common.h +++ b/src/common.h @@ -92,7 +92,7 @@ #define __has_feature(x) 0 #endif -#if defined(_DEBUG) || defined(__SANITIZE_ADDRESS__) || __has_feature(address_sanitizer) || defined(__SANITIZE_THREAD__) || __has_feature(thread_sanitizer) +#if defined(_DEBUG) || defined(DEV_DEBUG) || defined(__SANITIZE_ADDRESS__) || __has_feature(address_sanitizer) || defined(__SANITIZE_THREAD__) || __has_feature(thread_sanitizer) #define P2POOL_DEBUGGING 1 #endif diff --git a/src/pool_block.h b/src/pool_block.h index 6d9f9e1..a614a1b 100644 --- a/src/pool_block.h +++ b/src/pool_block.h @@ -20,7 +20,7 @@ #include "uv_util.h" #include "wallet.h" -#ifdef _DEBUG +#if defined(_DEBUG) || defined(DEV_DEBUG) #define POOL_BLOCK_DEBUG 1 #else #define POOL_BLOCK_DEBUG 0