Skip to content

Commit 9c9ad13

Browse files
committed
cmake: Add systemtap-sdt optional package support
1 parent e696643 commit 9c9ad13

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ tristate_option(CCACHE "Use ccache for compiling." "if ccache is found." AUTO)
4747
tristate_option(WITH_NATPMP "Enable NAT-PMP." "if libnatpmp is found." AUTO)
4848
tristate_option(WITH_MINIUPNPC "Enable UPnP." "if libminiupnpc is found." AUTO)
4949
tristate_option(WITH_ZMQ "Enable ZMQ notifications." "if libzmq is found." AUTO)
50+
tristate_option(WITH_USDT
51+
"Enable tracepoints for Userspace, Statically Defined Tracing."
52+
"if sys/sdt.h is found."
53+
AUTO
54+
)
5055

5156
if(CXX20)
5257
set(CMAKE_CXX_STANDARD 20)
@@ -144,6 +149,7 @@ message("Optional packages:")
144149
message(" NAT-PMP ............................. ${WITH_NATPMP}")
145150
message(" UPnP ................................ ${WITH_MINIUPNPC}")
146151
message(" ZeroMQ .............................. ${WITH_ZMQ}")
152+
message(" USDT tracing ........................ ${WITH_USDT}")
147153
message("")
148154
if(CMAKE_CROSSCOMPILING)
149155
set(cross_status "TRUE, for ${CMAKE_SYSTEM_NAME}, ${CMAKE_SYSTEM_PROCESSOR}")

cmake/bitcoin-config.h.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@
3333
/* Copyright year */
3434
#define COPYRIGHT_YEAR @COPYRIGHT_YEAR@
3535

36+
/* Define to 1 to enable tracepoints for Userspace, Statically Defined Tracing
37+
*/
38+
#cmakedefine ENABLE_TRACING 1
39+
3640
/* Define this symbol if you have __builtin_clzl */
3741
#cmakedefine HAVE_BUILTIN_CLZL 1
3842

cmake/optional.cmake

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,24 @@ if(WITH_ZMQ)
8282
message(FATAL_ERROR "libzmq requested, but not found.")
8383
endif()
8484
endif()
85+
86+
include(CheckCXXSourceCompiles)
87+
if(WITH_USDT)
88+
check_cxx_source_compiles("
89+
#include <sys/sdt.h>
90+
91+
int main()
92+
{
93+
DTRACE_PROBE(\"context\", \"event\");
94+
}
95+
" HAVE_USDT_H
96+
)
97+
if(HAVE_USDT_H)
98+
set(ENABLE_TRACING TRUE)
99+
set(WITH_USDT ON)
100+
elseif(WITH_USDT STREQUAL "AUTO")
101+
set(WITH_USDT OFF)
102+
else()
103+
message(FATAL_ERROR "sys/sdt.h requested, but not found.")
104+
endif()
105+
endif()

0 commit comments

Comments
 (0)