From 0643fa2c432f94fc14abb6deed0fe7eedbfda979 Mon Sep 17 00:00:00 2001 From: Stefan Toma Date: Fri, 20 Oct 2023 12:53:17 +0000 Subject: [PATCH 1/3] Making libbacktrace optional --- CMakeLists.txt | 39 +++++++++++++++++++++++---------------- src/backward.cpp | 5 +++++ src/backward.h | 6 ++++++ 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 14ee99f..09e226f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,8 +47,29 @@ endif() target_include_directories(${PROJECT_NAME} PRIVATE ${CURL_INCLUDE_DIRS}) -find_package(Backtrace REQUIRED) -target_link_libraries(${PROJECT_NAME} PRIVATE ${Backtrace_LIBRARIES}) +find_package(Backtrace QUIET) +if (${Backtrace_FOUND}) + target_link_libraries(${PROJECT_NAME} PRIVATE ${Backtrace_LIBRARIES}) + + find_library(DW_LIB NAMES dw) + if (NOT DW_LIB STREQUAL DW_LIB-NOTFOUND) + message("-- Enhanced stack-traces are enabled via libdw: ${DW_LIB}") + target_compile_definitions(${PROJECT_NAME} PRIVATE "BACKWARD_HAS_DW=1") + target_link_libraries(${PROJECT_NAME} PUBLIC "${DW_LIB}") + else() + find_library(BFD_LIB NAMES bfd) + if (NOT BFD_LIB STREQUAL BFD_LIB-NOTFOUND) + message("-- Enhanced stack-traces are enabled via libbfd: ${BFD_LIB}") + target_compile_definitions(${PROJECT_NAME} PRIVATE "BACKWARD_HAS_BFD=1") + target_link_libraries(${PROJECT_NAME} PRIVATE "${BFD_LIB}") + endif() + endif() + +else() + message("-- libbacktrace was not installed. Stacktracing will be disabled") + add_definitions(-Dno_backtrace) +endif() + target_compile_options(${PROJECT_NAME} PRIVATE "-fno-exceptions" @@ -61,20 +82,6 @@ target_compile_options(${PROJECT_NAME} PRIVATE "-Wconversion" "-Wno-sign-conversion") -find_library(DW_LIB NAMES dw) -if (NOT DW_LIB STREQUAL DW_LIB-NOTFOUND) - message("-- Enhanced stack-traces are enabled via libdw: ${DW_LIB}") - target_compile_definitions(${PROJECT_NAME} PRIVATE "BACKWARD_HAS_DW=1") - target_link_libraries(${PROJECT_NAME} PUBLIC "${DW_LIB}") -else() - find_library(BFD_LIB NAMES bfd) - if (NOT BFD_LIB STREQUAL BFD_LIB-NOTFOUND) - message("-- Enhanced stack-traces are enabled via libbfd: ${BFD_LIB}") - target_compile_definitions(${PROJECT_NAME} PRIVATE "BACKWARD_HAS_BFD=1") - target_link_libraries(${PROJECT_NAME} PRIVATE "${BFD_LIB}") - endif() -endif() - if (LOG_VERBOSITY) target_compile_definitions(${PROJECT_NAME} PRIVATE "AWS_LAMBDA_LOG=${LOG_VERBOSITY}") elseif(CMAKE_BUILD_TYPE STREQUAL Debug) diff --git a/src/backward.cpp b/src/backward.cpp index cc64abd..0a32f0c 100644 --- a/src/backward.cpp +++ b/src/backward.cpp @@ -23,6 +23,8 @@ // - g++/clang++ -lbfd ... // #define BACKWARD_HAS_BFD 1 +#ifndef no_backtrace + #include "backward.h" namespace backward { @@ -30,3 +32,6 @@ namespace backward { backward::SignalHandling sh; } // namespace backward + + +#endif diff --git a/src/backward.h b/src/backward.h index c421378..832c452 100644 --- a/src/backward.h +++ b/src/backward.h @@ -28,6 +28,10 @@ # error "It's not going to compile without a C++ compiler..." #endif +#ifdef no_backtrace +# pragma message "Disabling stacktracing" +#else + #if defined(BACKWARD_CXX11) #elif defined(BACKWARD_CXX98) #else @@ -4539,4 +4543,6 @@ class SignalHandling { } // namespace backward +#endif /* no_backtrace */ + #endif /* H_GUARD */ From 39b0b863a32a062c90c1fa21b24fe9ae58669175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C8=98tefan=20Toma?= <34220105+Stefan9283@users.noreply.github.com> Date: Fri, 20 Oct 2023 14:09:15 +0100 Subject: [PATCH 2/3] Update backward.cpp --- src/backward.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/backward.cpp b/src/backward.cpp index 0a32f0c..7a43ace 100644 --- a/src/backward.cpp +++ b/src/backward.cpp @@ -33,5 +33,4 @@ backward::SignalHandling sh; } // namespace backward - #endif From af439284b6ed9041fec0dc31447ee3d43c0ed361 Mon Sep 17 00:00:00 2001 From: Stefan Toma Date: Fri, 20 Oct 2023 13:22:37 +0000 Subject: [PATCH 3/3] Format backward.cpp --- src/backward.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backward.cpp b/src/backward.cpp index 0a32f0c..8649fd5 100644 --- a/src/backward.cpp +++ b/src/backward.cpp @@ -25,7 +25,7 @@ #ifndef no_backtrace -#include "backward.h" +# include "backward.h" namespace backward { @@ -33,5 +33,4 @@ backward::SignalHandling sh; } // namespace backward - #endif