Skip to content

Commit

Permalink
Better gcc/clang debugging flags
Browse files Browse the repository at this point in the history
  • Loading branch information
SChernykh committed Mar 3, 2025
1 parent 13bd678 commit c8e4b00
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 11 deletions.
46 changes: 35 additions & 11 deletions cmake/flags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,13 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
endif()

if (DEV_WITH_TSAN OR DEV_WITH_UBSAN OR DEV_WITH_ASAN OR DEV_DEBUG OR (CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
set(OPTIMIZATION_FLAGS "-Og -g -ftrapv")
add_definitions(-DDEBUG_BUILD)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(OPTIMIZATION_FLAGS "-O0")
else()
set(OPTIMIZATION_FLAGS "-Og")
endif()
set(OPTIMIZATION_FLAGS "${OPTIMIZATION_FLAGS} -g3 -ftrapv -Wno-unused-function")
else()
set(OPTIMIZATION_FLAGS "-O3 -ffast-math -s")
endif()
Expand All @@ -41,11 +47,15 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
set(OPTIMIZATION_FLAGS "${OPTIMIZATION_FLAGS} -fno-associative-math")
endif()

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS "${GENERAL_FLAGS} ${WARNING_FLAGS}")
set(CMAKE_C_FLAGS_DEBUG "${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${OPTIMIZATION_FLAGS}")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS "${GENERAL_FLAGS} ${WARNING_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${OPTIMIZATION_FLAGS}")

if (WIN32)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
Expand All @@ -66,6 +76,10 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
set(WARNING_FLAGS "/W0")
endif()

if (DEV_DEBUG OR (CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
add_definitions(-DDEBUG_BUILD)
endif()

set(CMAKE_C_FLAGS_DEBUG "${GENERAL_FLAGS} ${WARNING_FLAGS} ${SECURITY_FLAGS} /Od /Ob0 /Zi /MTd")
set(CMAKE_CXX_FLAGS_DEBUG "${GENERAL_FLAGS} ${WARNING_FLAGS} ${SECURITY_FLAGS} /Od /Ob0 /Zi /MTd")

Expand Down Expand Up @@ -99,8 +113,14 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
set(WARNING_FLAGS "-w")
endif()

if (DEV_WITH_MSAN OR DEV_DEBUG)
set(OPTIMIZATION_FLAGS "-Og -g -ftrapv")
if (DEV_WITH_MSAN OR DEV_DEBUG OR (CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
add_definitions(-DDEBUG_BUILD)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(OPTIMIZATION_FLAGS "-O0")
else()
set(OPTIMIZATION_FLAGS "-Og")
endif()
set(OPTIMIZATION_FLAGS "${OPTIMIZATION_FLAGS} -g3 -ftrapv -Wno-unused-function")
else()
set(OPTIMIZATION_FLAGS "-O3 -ffast-math -funroll-loops -fmerge-all-constants")
endif()
Expand All @@ -109,9 +129,13 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
set(OPTIMIZATION_FLAGS "${OPTIMIZATION_FLAGS} -flto")
endif()

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS "${GENERAL_FLAGS} ${WARNING_FLAGS}")
set(CMAKE_C_FLAGS_DEBUG "${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "${OPTIMIZATION_FLAGS}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${OPTIMIZATION_FLAGS}")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS "${GENERAL_FLAGS} ${WARNING_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${OPTIMIZATION_FLAGS}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${OPTIMIZATION_FLAGS}")
endif()
6 changes: 6 additions & 0 deletions src/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -501,4 +501,10 @@ extern const char* BLOCK_FOUND;
} // namespace p2pool

#include "util.h"

#ifdef DEBUG_BUILD
#undef FORCEINLINE
#define FORCEINLINE NOINLINE
#endif

#include "log.h"

0 comments on commit c8e4b00

Please sign in to comment.