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