mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 18:09:47 +01:00
542e405a85
6200fbf54f
build: rename --enable-ebpf to --enable-usdt (0xb10c)e158a2a7aa
build: add systemtap's sys/sdt.h as depends (0xb10c) Pull request description: There has been light conceptual agreement on including the Userspace, Statically Defined Tracing tracepoints in Bitcoin Core release builds. This, for example, enables user to hook into production deployments, if they need to. Binaries don't have to be switched out. This is possible because we don't do [expensive computations](https://github.com/bitcoin/bitcoin/blob/master/doc/tracing.md#no-expensive-computations-for-tracepoints) only needed for the tracepoints. The tracepoints are NOPs when not used. Systemtap's `sys/sdt.h` header is required to build Bitcoin Core with USDT support. The header file defines the `DTRACE_PROBE` macros used in [`src/util/trace.h`](https://github.com/bitcoin/bitcoin/blob/master/src/util/trace.h). This PR adds Systemtap 4.5 (May 2021) as dependency. GUIX builds for Linux hosts now include the tracepoints. Closes https://github.com/bitcoin/bitcoin/issues/23297. ACKs for top commit: fanquake: ACK6200fbf54f
- tested enabling / disabling and with/without SDT from depends. We can follow up with #23819, #23907 and #23296, and if any serious issues arise before feature freeze, it is easy for us to flip depends such that USDT becomes opt-in, rather than opt-out, and thus, releases would be tracepoint free. Tree-SHA512: 0263f44892bf8450e8a593e4de7a498243687f8d81269e1c3283fa8354922c7cf93fddef4b92cf5192d33798424aa5812e03e68ef8de31af078a32dd34021382
3.7 KiB
3.7 KiB
Dependencies
These are the dependencies currently used by Bitcoin Core. You can find instructions for installing them in the build-*.md
file for your platform.
Dependency | Version used | Minimum required | CVEs | Shared | Bundled Qt library |
---|---|---|---|---|---|
Berkeley DB | 4.8.30 | 4.8.x | No | ||
Boost | 1.71.0 | 1.64.0 | No | ||
Clang * | 7.0 (C++17 & std::filesystem support) | ||||
Fontconfig | 2.12.6 | No | Yes | ||
FreeType | 2.11.0 | No | Yes (Android only) | ||
GCC | 8.1 (C++17 & std::filesystem support) | ||||
glibc | 2.18 | ||||
HarfBuzz-NG | Yes | ||||
libevent | 2.1.12-stable | 2.0.21 | No | ||
libnatpmp | git commit 4536032... | No | |||
libpng | Yes | ||||
MiniUPnPc | 2.2.2 | No | |||
PCRE | Yes | ||||
Python (tests) | 3.6 | ||||
qrencode | 3.4.4 | No | |||
Qt | 5.12.11 | 5.9.5 | No | ||
SQLite | 3.32.1 | 3.7.17 | |||
XCB | Yes (Linux only) | ||||
systemtap (tracing) | 4.5 | ||||
xkbcommon | Yes (Linux only) | ||||
ZeroMQ | 4.3.1 | 4.0.0 | No | ||
zlib | Yes |
Note * : When compiling with -stdlib=libc++
, the minimum supported libc++ version is 7.0.
Controlling dependencies
Some dependencies are not needed in all configurations. The following are some factors that affect the dependency list.
Options passed to ./configure
- MiniUPnPc is not needed with
--without-miniupnpc
. - libnatpmp is not needed with
--without-natpmp
. - Berkeley DB is not needed with
--disable-wallet
or--without-bdb
. - SQLite is not needed with
--disable-wallet
or--without-sqlite
. - Qt is not needed with
--without-gui
. - If the qrencode dependency is absent, QR support won't be added. To force an error when that happens, pass
--with-qrencode
. - If the systemtap dependency is absent, USDT support won't compiled in.
- ZeroMQ is needed only with the
--with-zmq
option.
Other
- Not-Qt-bundled zlib is required to build the DMG tool from the libdmg-hfsplus project.