Add libunwind support
This commit is contained in:
parent
841a3f2435
commit
075db99a22
1
.bazeliskrc
Normal file
1
.bazeliskrc
Normal file
@ -0,0 +1 @@
|
||||
USE_BAZEL_VERSION=7.2.1
|
||||
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
@ -28,6 +28,9 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: dependencies
|
||||
run: |
|
||||
sudo apt install -y libtool libncurses5
|
||||
- name: bazel build opt
|
||||
run: |
|
||||
bazel build //... -c opt
|
||||
|
||||
3
.github/workflows/test.yml
vendored
3
.github/workflows/test.yml
vendored
@ -152,6 +152,9 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: dependencies
|
||||
run: |
|
||||
sudo apt install -y libtool libncurses5
|
||||
- name: test dbg
|
||||
run: |
|
||||
bazel test //... -c dbg
|
||||
|
||||
@ -7,7 +7,8 @@ cc_library(
|
||||
local_defines = [
|
||||
"CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF",
|
||||
"CPPTRACE_DEMANGLE_WITH_CXXABI",
|
||||
"CPPTRACE_UNWIND_WITH_UNWIND",
|
||||
#"CPPTRACE_UNWIND_WITH_UNWIND",
|
||||
"CPPTRACE_UNWIND_WITH_LIBUNWIND"
|
||||
],
|
||||
hdrs = glob([
|
||||
"include/cpptrace/*.hpp",
|
||||
@ -16,6 +17,7 @@ cc_library(
|
||||
includes = ["include"],
|
||||
deps = [
|
||||
"@libdwarf//:libdwarf",
|
||||
"@libunwind//:libunwind"
|
||||
],
|
||||
copts = [
|
||||
"-Wall",
|
||||
|
||||
46
MODULE.bazel
46
MODULE.bazel
@ -7,10 +7,11 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1")
|
||||
bazel_dep(name = "rules_foreign_cc", version = "0.11.1")
|
||||
bazel_dep(name = "zstd", version = "1.5.6")
|
||||
bazel_dep(name = "zlib", version = "1.3.1")
|
||||
bazel_dep(name = "xz", version = "5.4.5.bcr.2")
|
||||
bazel_dep(name = "toolchains_llvm", version = "1.1.2")
|
||||
|
||||
# Configure and register the toolchain.
|
||||
llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm")
|
||||
llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm", dev_dependency = True)
|
||||
|
||||
llvm.toolchain(
|
||||
llvm_versions = {
|
||||
@ -29,7 +30,7 @@ llvm.toolchain(
|
||||
|
||||
use_repo(llvm, "llvm_toolchain")
|
||||
|
||||
register_toolchains("@llvm_toolchain//:all")
|
||||
register_toolchains("@llvm_toolchain//:all", dev_dependency = True)
|
||||
|
||||
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
@ -60,3 +61,44 @@ cmake(
|
||||
strip_prefix = "libdwarf-code-0.10.1",
|
||||
url = "https://github.com/davea42/libdwarf-code/archive/refs/tags/v0.10.1.tar.gz",
|
||||
)
|
||||
|
||||
|
||||
|
||||
http_archive(
|
||||
name = "libunwind",
|
||||
build_file_content =
|
||||
"""
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
load("@rules_foreign_cc//foreign_cc:defs.bzl", "configure_make")
|
||||
|
||||
filegroup(
|
||||
name = "sources",
|
||||
srcs = glob(["**/*"]),
|
||||
)
|
||||
configure_make(
|
||||
name = "libunwind",
|
||||
args = ["-j12"],
|
||||
autoreconf = True,
|
||||
configure_in_place = True,
|
||||
autoreconf_options = [
|
||||
"-i",
|
||||
],
|
||||
lib_source = ":sources",
|
||||
out_static_libs = [
|
||||
"libunwind.a",
|
||||
"libunwind-coredump.a",
|
||||
"libunwind-ptrace.a",
|
||||
"libunwind-x86_64.a",
|
||||
"libunwind-generic.a",
|
||||
"libunwind-setjmp.a"
|
||||
],
|
||||
deps = [
|
||||
"@xz//:lzma"
|
||||
]
|
||||
)
|
||||
""",
|
||||
sha256 = "38833b7b1582db7d76485a62a213706c9252b3dab7380069fea5824e823d8e41",
|
||||
strip_prefix = "libunwind-1.8.1",
|
||||
url = "https://github.com/libunwind/libunwind/archive/refs/tags/v1.8.1.tar.gz",
|
||||
)
|
||||
|
||||
|
||||
12
MODULE.bazel.lock
generated
12
MODULE.bazel.lock
generated
@ -43,8 +43,8 @@
|
||||
"https://bcr.bazel.build/modules/rules_foreign_cc/0.11.1/MODULE.bazel": "beeb0dd8d488d3cff57fa12ab3378051a7299aa9de2476d61c1d46f664d6398d",
|
||||
"https://bcr.bazel.build/modules/rules_foreign_cc/0.11.1/source.json": "be2106be697115c10c03c6505a07bd4e259719c6608f08a61d600a560b8cf172",
|
||||
"https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
|
||||
"https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
|
||||
"https://bcr.bazel.build/modules/rules_java/7.6.1/source.json": "8f3f3076554e1558e8e468b2232991c510ecbcbed9e6f8c06ac31c93bcf38362",
|
||||
"https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1",
|
||||
"https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d",
|
||||
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
|
||||
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35",
|
||||
"https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
|
||||
@ -66,11 +66,13 @@
|
||||
"https://bcr.bazel.build/modules/toolchains_llvm/1.1.2/source.json": "27f3cf531bc654c719b50411cac94613b7676d63e60962243d485af63e13b9ff",
|
||||
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
|
||||
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459",
|
||||
"https://bcr.bazel.build/modules/xz/5.4.5.bcr.2/MODULE.bazel": "463976fb85f578a2535421ba4c38fe90657ab348e4b5d5404b75c061602705d0",
|
||||
"https://bcr.bazel.build/modules/xz/5.4.5.bcr.2/source.json": "e735da8a3f396bf200ed06c585f670f7667e08c4e1ed2849bae7c2691bcb10cf",
|
||||
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
|
||||
"https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
|
||||
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
|
||||
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
|
||||
"https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198",
|
||||
"https://bcr.bazel.build/modules/zlib/1.3.1/source.json": "61d55210bd9e9b52fe40b438a377ed1e9594703a354ef6f24acc923571613476",
|
||||
"https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72",
|
||||
"https://bcr.bazel.build/modules/zstd/1.5.6/MODULE.bazel": "471ebe7d3cdd8c6469390fcf623eb4779ff55fbee0a87f1dc57a1def468b96d4",
|
||||
"https://bcr.bazel.build/modules/zstd/1.5.6/source.json": "02010c3333fc89b44fe861db049968decb6e688411f7f9d4f6791d74f9adfb51"
|
||||
},
|
||||
@ -763,7 +765,7 @@
|
||||
"@@toolchains_llvm~//toolchain/extensions:llvm.bzl%llvm": {
|
||||
"general": {
|
||||
"bzlTransitiveDigest": "y9h5L2NtWbogyWSOJgqnUaU50MTPWAW+waelXSirMVg=",
|
||||
"usagesDigest": "fm1qClHrV0VWjOuzXi4L8rgnRzdq0mKB1lPLqZf3bHA=",
|
||||
"usagesDigest": "cWIs+RUBBwv1tE2cNVULmSLCA/wGvHWaQzdrujSEO74=",
|
||||
"recordedFileInputs": {},
|
||||
"recordedDirentsInputs": {},
|
||||
"envVariables": {},
|
||||
|
||||
@ -10,4 +10,5 @@ cc_test(
|
||||
"unit/raw_trace.cpp",
|
||||
"unit/stacktrace.cpp"
|
||||
],
|
||||
linkstatic = 1,
|
||||
)
|
||||
Loading…
Reference in New Issue
Block a user