Use backtrace when available, otherwise the basic stacktracer.
Signed-off-by: Wolfram Sang <[email protected]>
---
CMakeLists.txt | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ecaf6694..e157e7db 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -123,6 +123,14 @@ if(ENABLE_TESTS)
endif()
if(ENABLE_STACKTRACE)
+ include(FindBacktrace)
+ if (Backtrace_FOUND)
+ set(_Boost_STACKTRACE_BACKTRACE_HEADERS "boost/stacktrace.hpp")
+ list(APPEND BOOSTCOMPS stacktrace_backtrace)
+ else()
+ set(_Boost_STACKTRACE_BASIC_HEADERS "boost/stacktrace.hpp")
+ list(APPEND BOOSTCOMPS stacktrace_basic)
+ endif()
find_package(Boost 1.65.1 COMPONENTS ${BOOSTCOMPS} REQUIRED)
else()
find_package(Boost 1.55 COMPONENTS ${BOOSTCOMPS} REQUIRED)
@@ -465,7 +473,10 @@ if(ENABLE_SIGNALS)
endif()
if(ENABLE_STACKTRACE)
- add_definitions(-DENABLE_STACKTRACE)
+ add_definitions(-DENABLE_STACKTRACE -no-pie -fno-pie)
+ if (Backtrace_FOUND)
+ add_definitions(-DBOOST_STACKTRACE_USE_BACKTRACE)
+ endif()
endif()
#===============================================================================
@@ -520,8 +531,8 @@ if(WIN32)
endif()
if(ENABLE_STACKTRACE)
- # Needed to resolve dladdr.
- list(APPEND PULSEVIEW_LINK_LIBS "-ldl")
+ list(APPEND PULSEVIEW_LINK_LIBS ${CMAKE_DL_LIBS} ${Backtrace_LIBRARIES})
+ link_libraries("-no-pie -fno-pie")
endif()
if(ANDROID)
--
2.20.1
_______________________________________________
sigrok-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sigrok-devel