Link boost stacktrace appropriately for line information.
This commit is contained in:
parent
f82f161df1
commit
13315f0e04
5 changed files with 11 additions and 40 deletions
|
@ -122,18 +122,6 @@ set(NANO_ROCKSDB_TOOLS
|
|||
OFF
|
||||
CACHE BOOL "")
|
||||
|
||||
option(NANO_STACKTRACE_BACKTRACE
|
||||
"Use BOOST_STACKTRACE_USE_BACKTRACE in stacktraces, for POSIX" OFF)
|
||||
|
||||
if(NANO_STACKTRACE_BACKTRACE)
|
||||
add_definitions(-DNANO_STACKTRACE_BACKTRACE)
|
||||
add_definitions(-DBOOST_STACKTRACE_USE_BACKTRACE)
|
||||
if(NANO_BACKTRACE_INCLUDE)
|
||||
add_definitions(
|
||||
-DBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE=${NANO_BACKTRACE_INCLUDE})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Enable NANO_TRACING by default in Debug builds
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
option(NANO_TRACING "Enable trace logging" ON)
|
||||
|
@ -498,6 +486,17 @@ include_directories(${BOOST_LIBRARY_INCLUDES})
|
|||
add_library(Boost::stacktrace ALIAS boost_stacktrace_basic)
|
||||
add_definitions(-DBOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED)
|
||||
|
||||
if(WIN32)
|
||||
# Windows-specific configuration
|
||||
target_link_libraries(boost_stacktrace_basic PRIVATE dbghelp)
|
||||
else()
|
||||
# Unix-like systems (Linux, macOS)
|
||||
target_link_libraries(boost_stacktrace_basic PRIVATE dl)
|
||||
|
||||
# Add -rdynamic linker flag for better symbol resolution
|
||||
target_link_options(boost_stacktrace_basic PRIVATE -rdynamic)
|
||||
endif()
|
||||
|
||||
# Workaround for missing reference errata in the boost property_tree module
|
||||
target_link_libraries(boost_property_tree INTERFACE Boost::any)
|
||||
target_link_libraries(boost_property_tree INTERFACE Boost::format)
|
||||
|
|
|
@ -28,17 +28,6 @@ fi
|
|||
|
||||
ulimit -S -n 8192
|
||||
|
||||
if [[ "$OS" == 'Linux' ]]; then
|
||||
if clang --version && [ ${LCOV:-0} == 0 ]; then
|
||||
BACKTRACE="-DNANO_STACKTRACE_BACKTRACE=ON \
|
||||
-DNANO_BACKTRACE_INCLUDE=</tmp/backtrace.h>"
|
||||
else
|
||||
BACKTRACE="-DNANO_STACKTRACE_BACKTRACE=ON"
|
||||
fi
|
||||
else
|
||||
BACKTRACE=""
|
||||
fi
|
||||
|
||||
cmake \
|
||||
-G'Unix Makefiles' \
|
||||
-DACTIVE_NETWORK=nano_dev_network \
|
||||
|
|
|
@ -10,15 +10,6 @@ fi
|
|||
SRC=${SRC:-${PWD}}
|
||||
OS=$(uname)
|
||||
|
||||
CMAKE_BACKTRACE=""
|
||||
if [[ ${OS} == 'Linux' ]]; then
|
||||
CMAKE_BACKTRACE="-DNANO_STACKTRACE_BACKTRACE=ON"
|
||||
|
||||
if [[ ${COMPILER:-} == 'clang' ]]; then
|
||||
CMAKE_BACKTRACE="${CMAKE_BACKTRACE} -DNANO_BACKTRACE_INCLUDE=</tmp/backtrace.h>"
|
||||
fi
|
||||
fi
|
||||
|
||||
CMAKE_QT_DIR=""
|
||||
if [[ ${QT_DIR:-} ]]; then
|
||||
CMAKE_QT_DIR="-DQt5_DIR=${QT_DIR}"
|
||||
|
|
|
@ -12,7 +12,3 @@ curl -O https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh $CLANG_VER
|
|||
update-alternatives --install /usr/bin/cc cc /usr/bin/clang-$CLANG_VERSION 100
|
||||
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-$CLANG_VERSION 100
|
||||
update-alternatives --install /usr/bin/lldb lldb /usr/bin/lldb-$CLANG_VERSION 100
|
||||
|
||||
# Workaround to get a path that can be easily passed into cmake for BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE
|
||||
# See https://www.boost.org/doc/libs/1_70_0/doc/html/stacktrace/configuration_and_build.html#stacktrace.configuration_and_build.f3
|
||||
backtrace_file=$(find /usr/lib/gcc/ -name 'backtrace.h' | head -n 1) && test -f $backtrace_file && ln -s $backtrace_file /tmp/backtrace.h
|
||||
|
|
|
@ -148,10 +148,6 @@ target_link_libraries(
|
|||
Boost::property_tree
|
||||
Boost::stacktrace)
|
||||
|
||||
if(NANO_STACKTRACE_BACKTRACE)
|
||||
target_link_libraries(nano_lib backtrace)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(
|
||||
nano_lib
|
||||
PRIVATE -DMAJOR_VERSION_STRING=${CPACK_PACKAGE_VERSION_MAJOR}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue