Skip to content

Commit

Permalink
feat third_party: use system Boost.Stacktrace
Browse files Browse the repository at this point in the history
  • Loading branch information
Anton3 committed Feb 8, 2024
1 parent cca4e8c commit 68574f5
Show file tree
Hide file tree
Showing 47 changed files with 53 additions and 3,092 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ jobs:
[[ -z "${GITHUB_BASE_REF}" ]] && BRANCH_VAR=HEAD~1 || BRANCH_VAR=origin/${GITHUB_BASE_REF}
echo "${BRANCH_VAR}"
echo "$(git diff --name-only ${BRANCH_VAR})"
EXCLUDE_PATTERNS="-e '.pb.cc' -e '.pb.cpp' -e 'benchmark.cpp' -e '/boost_stacktrace/' -e '/pq-extra/' -e '/tools/' -e 'third_party' "
EXCLUDE_PATTERNS="-e '.pb.cc' -e '.pb.cpp' -e 'benchmark.cpp' -e '/pq-extra/' -e '/tools/' -e 'third_party' "
LIST_CHECK_FILES=$(git diff --name-only ${BRANCH_VAR} | grep --color=never '.cpp' | grep -v ${EXCLUDE_PATTERNS} | tr '\n' ' ')
if [[ -n ${LIST_CHECK_FILES} ]]
then
Expand Down
36 changes: 1 addition & 35 deletions .mapping.json
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@
"cmake/SetupLTO.cmake":"taxi/uservices/userver/cmake/SetupLTO.cmake",
"cmake/SetupLinker.cmake":"taxi/uservices/userver/cmake/SetupLinker.cmake",
"cmake/SetupProtobuf.cmake":"taxi/uservices/userver/cmake/SetupProtobuf.cmake",
"cmake/Stacktrace.cmake":"taxi/uservices/userver/cmake/Stacktrace.cmake",
"cmake/UserverCxxCompileOptionsIfSupported.cmake":"taxi/uservices/userver/cmake/UserverCxxCompileOptionsIfSupported.cmake",
"cmake/UserverRequireDWCAS.cmake":"taxi/uservices/userver/cmake/UserverRequireDWCAS.cmake",
"cmake/UserverRequireDWCAS.cpp":"taxi/uservices/userver/cmake/UserverRequireDWCAS.cpp",
Expand Down Expand Up @@ -1415,7 +1416,6 @@
"external-deps/UserverGBench.yaml":"taxi/uservices/userver/external-deps/UserverGBench.yaml",
"external-deps/UserverGTest.yaml":"taxi/uservices/userver/external-deps/UserverGTest.yaml",
"external-deps/UserverGrpc.yaml":"taxi/uservices/userver/external-deps/UserverGrpc.yaml",
"external-deps/boost.yaml":"taxi/uservices/userver/external-deps/boost.yaml",
"external-deps/bson.yaml":"taxi/uservices/userver/external-deps/bson.yaml",
"external-deps/c-ares.yaml":"taxi/uservices/userver/external-deps/c-ares.yaml",
"external-deps/cctz.yaml":"taxi/uservices/userver/external-deps/cctz.yaml",
Expand Down Expand Up @@ -2867,40 +2867,6 @@
"testsuite/tests/test_tcp_chaos.py":"taxi/uservices/userver/testsuite/tests/test_tcp_chaos.py",
"testsuite/tests/test_udp_chaos.py":"taxi/uservices/userver/testsuite/tests/test_udp_chaos.py",
"third_party/Readme.md":"taxi/uservices/userver/third_party/Readme.md",
"third_party/boost_stacktrace/CMakeLists.txt":"taxi/uservices/userver/third_party/boost_stacktrace/CMakeLists.txt",
"third_party/boost_stacktrace/README.md":"taxi/uservices/userver/third_party/boost_stacktrace/README.md",
"third_party/boost_stacktrace/include/boost/core/demangle.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/core/demangle.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/addr2line_impls.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/addr2line_impls.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/collect_msvc.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/collect_msvc.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/collect_noop.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/collect_noop.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/collect_unwind.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/collect_unwind.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_decl.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_decl.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_msvc.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_msvc.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_noop.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_noop.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_unwind.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/frame_unwind.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/libbacktrace_impls.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/libbacktrace_impls.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/location_from_symbol.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/location_from_symbol.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/pop_options.h":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/pop_options.h",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/push_options.h":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/push_options.h",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/safe_dump_noop.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/safe_dump_noop.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/safe_dump_posix.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/safe_dump_posix.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/safe_dump_win.ipp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/safe_dump_win.ipp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/to_dec_array.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/to_dec_array.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/to_hex_array.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/to_hex_array.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/try_dec_convert.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/try_dec_convert.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/unwind_base_impls.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/unwind_base_impls.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/detail/void_ptr_cast.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/detail/void_ptr_cast.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/frame.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/frame.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/safe_dump_to.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/safe_dump_to.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/stacktrace.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/stacktrace.hpp",
"third_party/boost_stacktrace/include/boost/stacktrace/stacktrace_fwd.hpp":"taxi/uservices/userver/third_party/boost_stacktrace/include/boost/stacktrace/stacktrace_fwd.hpp",
"third_party/boost_stacktrace/src/addr2line.cpp":"taxi/uservices/userver/third_party/boost_stacktrace/src/addr2line.cpp",
"third_party/boost_stacktrace/src/backtrace.cpp":"taxi/uservices/userver/third_party/boost_stacktrace/src/backtrace.cpp",
"third_party/boost_stacktrace/src/basic.cpp":"taxi/uservices/userver/third_party/boost_stacktrace/src/basic.cpp",
"third_party/boost_stacktrace/src/noop.cpp":"taxi/uservices/userver/third_party/boost_stacktrace/src/noop.cpp",
"third_party/boost_stacktrace/src/windbg.cpp":"taxi/uservices/userver/third_party/boost_stacktrace/src/windbg.cpp",
"third_party/boost_stacktrace/src/windbg_cached.cpp":"taxi/uservices/userver/third_party/boost_stacktrace/src/windbg_cached.cpp",
"third_party/compiler-rt/CMakeLists.txt":"taxi/uservices/userver/third_party/compiler-rt/CMakeLists.txt",
"third_party/compiler-rt/LICENSE.TXT":"taxi/uservices/userver/third_party/compiler-rt/LICENSE.TXT",
"third_party/compiler-rt/README.md":"taxi/uservices/userver/third_party/compiler-rt/README.md",
Expand Down
1 change: 0 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
/clickhouse/ @itrofimow
/rabbitmq/ @itrofimow

/third_party/boost_stacktrace/ @antoshkka
/third_party/pfr/ @ser-fedorov @antoshkka
/third_party/uboost_coro/ @bugaevskiy @antoshkka

Expand Down
28 changes: 28 additions & 0 deletions cmake/Stacktrace.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
include_guard(GLOBAL)

function(_make_stacktrace_target TARGET Boost_VERSION_STRING)
# You can choose the implementation depending on your needs.
# See http://boostorg.github.io/stacktrace/stacktrace/configuration_and_build.html for more info.
option(USERVER_FEATURE_STACKTRACE "Allow capturing stacktraces using boost::stacktrace" ON)

if(USERVER_FEATURE_STACKTRACE AND "${Boost_VERSION_STRING}" VERSION_LESS "1.69.0")
# See https://github.com/boostorg/stacktrace/commit/4123beb4af6ff4e36769905b87c206da39190847
message(WARNING
"Pre-1.69 Boost.Stacktrace consumes a lot of memory and "
"decodes stack slowly. Disabling stacktrace support."
)
set(USERVER_FEATURE_STACKTRACE OFF)
endif()

if(CMAKE_SYSTEM_NAME MATCHES "Darwin" OR "${CMAKE_SYSTEM}" MATCHES "BSD")
set(USERVER_FEATURE_STACKTRACE OFF)
endif()

add_library(userver-stacktrace INTERFACE)
if(USERVER_FEATURE_STACKTRACE)
target_link_libraries("${TARGET}" INTERFACE Boost::stacktrace_backtrace backtrace dl)
else()
target_link_libraries("${TARGET}" INTERFACE Boost::stacktrace_basic dl)
endif()
target_compile_definitions("${TARGET}" INTERFACE BOOST_STACKTRACE_LINK)
endfunction()
8 changes: 7 additions & 1 deletion cmake/templates/Config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@ check_required_components(Userver)

include(CMakeFindDependencyMacro)
find_package(Threads)
find_package(Boost REQUIRED COMPONENTS program_options filesystem regex)
find_package(Boost REQUIRED COMPONENTS
program_options
filesystem
regex
stacktrace_basic
stacktrace_backtrace
)
find_package(Iconv REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(fmt "8.1.1" REQUIRED)
Expand Down
161 changes: 0 additions & 161 deletions external-deps/boost.yaml

This file was deleted.

1 change: 1 addition & 0 deletions scripts/docs/en/deps/debian-11.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ libboost-iostreams1.74-dev
libboost-locale1.74-dev
libboost-program-options1.74-dev
libboost-regex1.74-dev
libboost-stacktrace1.74-dev
libboost1.74-dev
libbson-dev
libc-ares-dev
Expand Down
1 change: 1 addition & 0 deletions scripts/docs/en/deps/ubuntu-18.04.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ libboost-iostreams1.65-dev
libboost-locale1.65-dev
libboost-program-options1.65-dev
libboost-regex1.65-dev
libboost-stacktrace1.65-dev
libboost1.65-dev
libbson-dev
libcrypto++-dev
Expand Down
1 change: 1 addition & 0 deletions scripts/docs/en/deps/ubuntu-20.04.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ libboost-locale1.71-dev
libboost-program-options1.71-dev
libboost-thread1.71-dev
libboost-regex1.71-dev
libboost-stacktrace1.71-dev
libboost1.71-dev
libbson-dev
libcctz-dev
Expand Down
1 change: 1 addition & 0 deletions scripts/docs/en/deps/ubuntu-21.10.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ libboost-iostreams1.74-dev
libboost-locale1.74-dev
libboost-program-options1.74-dev
libboost-regex1.74-dev
libboost-stacktrace1.74-dev
libboost1.74-dev
libbson-dev
libc-ares-dev
Expand Down
1 change: 1 addition & 0 deletions scripts/docs/en/deps/ubuntu-22.04.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ libboost-iostreams1.74-dev
libboost-locale1.74-dev
libboost-program-options1.74-dev
libboost-regex1.74-dev
libboost-stacktrace1.74-dev
libboost1.74-dev
libbson-dev
libc-ares-dev
Expand Down
1 change: 0 additions & 1 deletion third_party/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

This folder contains source codes from following open source projects:

* boost_stacktrace: https://github.com/boostorg/stacktrace/commit/7fedfa12654d18a9fa695de258763e93699c4636 (Boost 1.68.0)
* pfr: https://github.com/boostorg/pfr/releases/tag/2.2.0 with increased via `python misc/generate_cpp17.py 200 > include/boost/pfr/detail/core17_generated.hpp` fields count limit
* moodycamel: https://github.com/cameron314/concurrentqueue/releases/tag/v1.0.3
* rapidjson: https://github.com/Tencent/rapidjson/commit/083f359f5c36198accc2b9360ce1e32a333231d9 with RAPIDJSON_HAS_STDSTRING defined in rapidjson.h
Expand Down
Loading

0 comments on commit 68574f5

Please sign in to comment.