tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
cpptrace: 0.8.3 -> 1.0.1
philiptaron.tngl.sh
7 months ago
0bb4a5ea
d443e89d
+60
-3
2 changed files
expand all
collapse all
unified
split
pkgs
by-name
cp
cpptrace
0001-Use-libdwarf-2-as-the-base-include-path.patch
package.nix
+51
pkgs/by-name/cp/cpptrace/0001-Use-libdwarf-2-as-the-base-include-path.patch
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2
+
From: Philip Taron <philip.taron@gmail.com>
3
+
Date: Thu, 19 Jun 2025 09:24:32 -0700
4
+
Subject: [PATCH] Use libdwarf-2 as the base include path
5
+
6
+
Signed-off-by: Philip Taron <philip.taron@gmail.com>
7
+
---
8
+
CMakeLists.txt | 6 +++---
9
+
src/symbols/dwarf/dwarf.hpp | 4 ++--
10
+
2 files changed, 5 insertions(+), 5 deletions(-)
11
+
12
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
13
+
index 1c607bd44e528a41ccd637f5293b4f56049f5770..53e1aedf463c5eb95dcfd77fa40de66f51381b47 100644
14
+
--- a/CMakeLists.txt
15
+
+++ b/CMakeLists.txt
16
+
@@ -419,7 +419,7 @@ if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
17
+
target_link_libraries(${target_name} PRIVATE ${LIBDWARF_LIBRARIES})
18
+
endif()
19
+
# There seems to be no consistency at all about where libdwarf decides to place its headers........ Figure out if
20
+
- # it's libdwarf/libdwarf.h and libdwarf/dwarf.h or just libdwarf.h and dwarf.h
21
+
+ # it's libdwarf-2/libdwarf.h and libdwarf-2/dwarf.h or just libdwarf.h and dwarf.h
22
+
include(CheckIncludeFileCXX)
23
+
# libdwarf's cmake doesn't properly set variables to indicate where its libraries live
24
+
if(NOT CPPTRACE_FIND_LIBDWARF_WITH_PKGCONFIG)
25
+
@@ -428,9 +428,9 @@ if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
26
+
target_include_directories(${target_name} PRIVATE ${LIBDWARF_INCLUDE_DIRS})
27
+
endif()
28
+
set(CMAKE_REQUIRED_INCLUDES ${LIBDWARF_INCLUDE_DIRS})
29
+
- CHECK_INCLUDE_FILE_CXX("libdwarf/libdwarf.h" LIBDWARF_IS_NESTED)
30
+
+ CHECK_INCLUDE_FILE_CXX("libdwarf-2/libdwarf.h" LIBDWARF_IS_NESTED)
31
+
CHECK_INCLUDE_FILE_CXX("libdwarf.h" LIBDWARF_IS_NOT_NESTED)
32
+
- # check_include_file("libdwarf/libdwarf.h" LIBDWARF_IS_NESTED)
33
+
+ # check_include_file("libdwarf-2/libdwarf.h" LIBDWARF_IS_NESTED)
34
+
# check_support(LIBDWARF_IS_NESTED nested_libdwarf_include.cpp "" "" "")
35
+
if(${LIBDWARF_IS_NESTED})
36
+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_USE_NESTED_LIBDWARF_HEADER_PATH)
37
+
diff --git a/src/symbols/dwarf/dwarf.hpp b/src/symbols/dwarf/dwarf.hpp
38
+
index 50b2696148584b7a16da602017793797ba98cb58..53fe275492f4fd7e8e905064696e86f837a55f72 100644
39
+
--- a/src/symbols/dwarf/dwarf.hpp
40
+
+++ b/src/symbols/dwarf/dwarf.hpp
41
+
@@ -10,8 +10,8 @@
42
+
#include <type_traits>
43
+
44
+
#ifdef CPPTRACE_USE_NESTED_LIBDWARF_HEADER_PATH
45
+
- #include <libdwarf/libdwarf.h>
46
+
- #include <libdwarf/dwarf.h>
47
+
+ #include <libdwarf-2/libdwarf.h>
48
+
+ #include <libdwarf-2/dwarf.h>
49
+
#else
50
+
#include <libdwarf.h>
51
+
#include <dwarf.h>
+9
-3
pkgs/by-name/cp/cpptrace/package.nix
···
14
15
stdenv.mkDerivation (finalAttrs: {
16
pname = "cpptrace";
17
-
version = "0.8.3";
18
19
src = fetchFromGitHub {
20
owner = "jeremy-rifkin";
21
repo = "cpptrace";
22
tag = "v${finalAttrs.version}";
23
-
hash = "sha256-oFwRFFDLl4/3szVj/ge8cSrpuuHEzf4VsCPGTE0dxRc=";
24
};
25
0
0
0
0
26
nativeBuildInputs = [
27
cmake
28
pkg-config
29
];
30
31
-
buildInputs = [ libdwarf ];
0
32
propagatedBuildInputs = [ zstd ] ++ (lib.optionals static [ libdwarf ]);
33
34
cmakeFlags = [
···
40
];
41
42
checkInputs = [ gtest ];
0
43
doCheck = true;
44
45
passthru = {
···
14
15
stdenv.mkDerivation (finalAttrs: {
16
pname = "cpptrace";
17
+
version = "1.0.1";
18
19
src = fetchFromGitHub {
20
owner = "jeremy-rifkin";
21
repo = "cpptrace";
22
tag = "v${finalAttrs.version}";
23
+
hash = "sha256-HUUyH9N+e98Gp6TPeT6TCGpdzd09knHVDaQ3KeDp8LY=";
24
};
25
26
+
patches = [
27
+
./0001-Use-libdwarf-2-as-the-base-include-path.patch
28
+
];
29
+
30
nativeBuildInputs = [
31
cmake
32
pkg-config
33
];
34
35
+
buildInputs = [ (lib.getDev libdwarf) ];
36
+
37
propagatedBuildInputs = [ zstd ] ++ (lib.optionals static [ libdwarf ]);
38
39
cmakeFlags = [
···
45
];
46
47
checkInputs = [ gtest ];
48
+
49
doCheck = true;
50
51
passthru = {