mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-20 16:36:16 -03:00
e7db4e245a
fae20e6b50
Revert "Avoid the use of P0083R3 std::set::merge" (MarcoFalke)fab53b5fd4
ci/doc: Set minimum required clang/libc++ version to 8.0 (MarcoFalke) Pull request description: This is not for 23.0, but for 24.0. It comes with the following benefits: * Can use C++17 P0083R3 std::set::merge from libc++ 8.0 * No longer need to provide support for clang-7, which already fails to compile on some architectures (https://github.com/bitcoin/bitcoin/issues/21294#issuecomment-998098483) This should be fine, given that all supported operating systems ship with at least clang-10: * CentOS 8: clang-12 * Stretch: https://packages.debian.org/stretch/clang-11 * Buster: https://packages.debian.org/buster-backports/clang-11 * Bionic: https://packages.ubuntu.com/bionic-updates/clang-10 * Focal: https://packages.ubuntu.com/focal/clang-10 ACKs for top commit: fanquake: ACKfae20e6b50
- I think this is fine to do. I would be surprised if in another 6 months time someone was stuck on a system we supported, needing to compile Core, and only had access to Clang 7 or older. As mentioned in the PR description, all systems we currently support, already support multiple newer versions of Clang. hebasto: ACKfae20e6b50
, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 3b4c6c130ff40dd7e84934af076863415e5dd661d823c72e3e3832566c65be6e877a7ef9164bbcf394bcea4b897fc29a48db0f231c22ace0e2c9b5638659a628
3.6 KiB
3.6 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.77.0 | 1.64.0 | No | ||
Clang | 8.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.15.2 | 5.11.3 | 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 |
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.