mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 03:47:29 -03:00
e158a2a7aa
The sys/sdt.h header is required to build Bitcoin Core with Userspace Statically Defined Tracing support. Systemtap version 4.5 (May 2021) is used as the most recent version 4.6 (Nov 2021) fails to build. See e.g. https://sourceware.org/git/?p=systemtap.git;a=commit;h=1d3653936fc1fd13135a723a27e6c7e959793ad0 As Systemtap itself is not needed, the build steps (configure and make) are skipped. We require fewer build dependecies and don't waste time building depends we don't end up using. However, the configure step would normally processes sys/sdt-config.h.in. The resulting sdt-config.h defines _SDT_ASM_SECTION_AUTOGROUP_SUPPORT (either 0 or 1 to indicate whether the assembler supports "?" in .pushsection directives). For now, we assume all currently used assemblers supports this feature and remove the check from the sys/sdt.h header file in a patch. Co-authored-by: Michael Ford <fanquake@gmail.com>
3.9 KiB
3.9 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 | ||||
librsvg | |||||
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
- librsvg is only needed if you need to run
make deploy
on (cross-compilation to) macOS. - Not-Qt-bundled zlib is required to build the DMG tool from the libdmg-hfsplus project.