b8c146b8772030c6efaac43198c4de0d76fd25af build: systemtap 4.7 (fanquake) Pull request description: As of version 4.6, SystemTap now fully supports 64-bit RISC-V. Full SystemTap NEWS is here: https://sourceware.org/git/?p=systemtap.git;a=blob;f=NEWS; Guix Build (x86_64): ```bash 2c4cf36ea601de27ce1b56b923d41aee30d9d64295a700dcc705bd518865c81c guix-build-b8c146b87720/output/aarch64-linux-gnu/SHA256SUMS.part 10dbe855ab64e0e76398fc27e9471071820b9cd5289773c8d9d272f9bb51b7ba guix-build-b8c146b87720/output/aarch64-linux-gnu/bitcoin-b8c146b87720-aarch64-linux-gnu-debug.tar.gz 530808f3803a31c4fe84ec85e7b6c284e52850ba32df12dd1e273e9896bad7ff guix-build-b8c146b87720/output/aarch64-linux-gnu/bitcoin-b8c146b87720-aarch64-linux-gnu.tar.gz 9fa9e1f2412854f87d980e97cb7b4df37a1a13d48a633b9df5b0006d60c10ede guix-build-b8c146b87720/output/arm-linux-gnueabihf/SHA256SUMS.part dcf44666f80b71637403d5f6fb4eb8159ef61815b3feedc84e3a26c99bd18152 guix-build-b8c146b87720/output/arm-linux-gnueabihf/bitcoin-b8c146b87720-arm-linux-gnueabihf-debug.tar.gz 8623a1e969a8f40286060ebbd9085f3d4f621c507fd5448b38ba36129ba0950a guix-build-b8c146b87720/output/arm-linux-gnueabihf/bitcoin-b8c146b87720-arm-linux-gnueabihf.tar.gz 59a71bdc8403f4fff4370922a297a7a2200b0a206d68ac71960f09e728bf0781 guix-build-b8c146b87720/output/arm64-apple-darwin/SHA256SUMS.part 5e17c76526da9f4630ffed2cc2870aa058139fa439d4c756055d8b9f53fc05dc guix-build-b8c146b87720/output/arm64-apple-darwin/bitcoin-b8c146b87720-arm64-apple-darwin-unsigned.dmg 72ebdf006dd279128b33e3b0902f8d3d1291d90fd2d67be60bbbd0f0d5e5b336 guix-build-b8c146b87720/output/arm64-apple-darwin/bitcoin-b8c146b87720-arm64-apple-darwin-unsigned.tar.gz d3a1bafba070e8197d2d3f790053b6204e6779b8352c41118c82e16f2e500620 guix-build-b8c146b87720/output/arm64-apple-darwin/bitcoin-b8c146b87720-arm64-apple-darwin.tar.gz 76510b7e6aaccfa8c0f370e1a6d4b6f79e21572ebc0a369d2195557cfc9f6966 guix-build-b8c146b87720/output/dist-archive/bitcoin-b8c146b87720.tar.gz cb18e130efa70ca58df2b89d7cc368f0374ad3cf6c59f97cee4c12cfbec6982c guix-build-b8c146b87720/output/powerpc64-linux-gnu/SHA256SUMS.part 1028f9deaa1bd140ead816e0278ea5f3eb27e0d70e3e3b11d1f6098da46a0538 guix-build-b8c146b87720/output/powerpc64-linux-gnu/bitcoin-b8c146b87720-powerpc64-linux-gnu-debug.tar.gz 013d97e33f51b985b2b514dbdae093806c890d9f6ca58aec1d62814a874efb8a guix-build-b8c146b87720/output/powerpc64-linux-gnu/bitcoin-b8c146b87720-powerpc64-linux-gnu.tar.gz 3b2cfa1d9418682eeed02718de36137e330573df24b28b5681301a5cb5320e6b guix-build-b8c146b87720/output/powerpc64le-linux-gnu/SHA256SUMS.part 480fd977d8eda3bb9440bfa3e37452ecbeb0f1f4e36a35f6bfa820e7666d2a71 guix-build-b8c146b87720/output/powerpc64le-linux-gnu/bitcoin-b8c146b87720-powerpc64le-linux-gnu-debug.tar.gz eabab79ff95df3f326dc1e40dba4925b9a6de374763180c4170a30cdfe26136a guix-build-b8c146b87720/output/powerpc64le-linux-gnu/bitcoin-b8c146b87720-powerpc64le-linux-gnu.tar.gz 7f5b6d482bee0c73cf0727395d78591559ab974a2b9bff9689ca2262d0612f39 guix-build-b8c146b87720/output/riscv64-linux-gnu/SHA256SUMS.part 228cc22329e50d99edc33465f10e136742833ebc675920bdbde07ca3388523d7 guix-build-b8c146b87720/output/riscv64-linux-gnu/bitcoin-b8c146b87720-riscv64-linux-gnu-debug.tar.gz b5d2565a0b05d51e9834c0212b34903c362061c2489878c82dfbe04729cefa2c guix-build-b8c146b87720/output/riscv64-linux-gnu/bitcoin-b8c146b87720-riscv64-linux-gnu.tar.gz dde6dcf82d7b2f3279150564302a5008d69a3a0fcdedc717c124d460d73ff71d guix-build-b8c146b87720/output/x86_64-apple-darwin/SHA256SUMS.part a5c2e69aba46a164425013b0360674d77687dfe8accc8e8cb97dc630542dc1d3 guix-build-b8c146b87720/output/x86_64-apple-darwin/bitcoin-b8c146b87720-x86_64-apple-darwin-unsigned.dmg cea73001db5a31880ec119f959bb0db21b3f7a12ac21a630b2f12247c4c0b578 guix-build-b8c146b87720/output/x86_64-apple-darwin/bitcoin-b8c146b87720-x86_64-apple-darwin-unsigned.tar.gz 8cf6ba1de32f68c70ee23a19fbbeadb59df4c008792c717ac22d476ebe9aa921 guix-build-b8c146b87720/output/x86_64-apple-darwin/bitcoin-b8c146b87720-x86_64-apple-darwin.tar.gz 061247b31ba1012689817e304357fca0b7262106223d6eaf8d0b31148bd764d1 guix-build-b8c146b87720/output/x86_64-linux-gnu/SHA256SUMS.part 20caf9d234a88333b696e0261284c29ea4f83c3b9e590696230614220b2c7e2e guix-build-b8c146b87720/output/x86_64-linux-gnu/bitcoin-b8c146b87720-x86_64-linux-gnu-debug.tar.gz 54c3e57cc4cc6173aa2bb4e17f47e85a346ef752973d6b97f7a3ff015d4f5068 guix-build-b8c146b87720/output/x86_64-linux-gnu/bitcoin-b8c146b87720-x86_64-linux-gnu.tar.gz 47f4104cbd46c96bf9c3cb4fcf9e813ee73566781a599e850bf8c5c8d6e7970a guix-build-b8c146b87720/output/x86_64-w64-mingw32/SHA256SUMS.part b337b2841988f0cdcd8aebec669467f38354b626a7d331e84a5a7b7fc47f6a47 guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64-debug.zip 25e97d46edb35dd87a55b285dad03a6c571336ab93f8c7457571498e3057118a guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64-setup-unsigned.exe bc9870404d52a5423ce8fee37cae3ebda00d9958b1469d2930aa8f0d61ab55ef guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64-unsigned.tar.gz 194615a1645bed622d91e8760cd3ec33fd0ef684dd6a7a04d1731272f7fd1557 guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64.zip ``` Guix Build (arm64): ```bash 442bf81809c481be38317703bdf6ae45d9dd6f1b044515dfe36be514eae8b66a guix-build-b8c146b87720/output/arm-linux-gnueabihf/SHA256SUMS.part a104a61a1dd4f663e809344cc86d500254d4d451f23c062f48e50c6418fcd135 guix-build-b8c146b87720/output/arm-linux-gnueabihf/bitcoin-b8c146b87720-arm-linux-gnueabihf-debug.tar.gz 12f84be1ad44d28595144bbb6319cb2f6fb95b27c633f54771815ccff4fb40aa guix-build-b8c146b87720/output/arm-linux-gnueabihf/bitcoin-b8c146b87720-arm-linux-gnueabihf.tar.gz e6b42524123488ef3342d0806ac562985a1fff214c1bfcd1a26ab8e288caf24a guix-build-b8c146b87720/output/arm64-apple-darwin/SHA256SUMS.part bb01d384bff21c5280d4a193bd4fb158ecaa41d0746db30a52c135e5a6e76750 guix-build-b8c146b87720/output/arm64-apple-darwin/bitcoin-b8c146b87720-arm64-apple-darwin-unsigned.dmg 2ebeca13939e408aae304f77eb32c683ce703262475d70f9c0a9a51533cabdb4 guix-build-b8c146b87720/output/arm64-apple-darwin/bitcoin-b8c146b87720-arm64-apple-darwin-unsigned.tar.gz b5df98dc9b66eb1ae725c050f9e1d94a551ce9637cef29f82cb38ef784996c1c guix-build-b8c146b87720/output/arm64-apple-darwin/bitcoin-b8c146b87720-arm64-apple-darwin.tar.gz 76510b7e6aaccfa8c0f370e1a6d4b6f79e21572ebc0a369d2195557cfc9f6966 guix-build-b8c146b87720/output/dist-archive/bitcoin-b8c146b87720.tar.gz d38cc0e933f37108f71d826e20d6cc1510fe98d830484977d032fbb66d94ab02 guix-build-b8c146b87720/output/powerpc64-linux-gnu/SHA256SUMS.part 8dc33ebac8ec67cefe842419015ab42f344971a9fe071bda2b09f6b1696fea68 guix-build-b8c146b87720/output/powerpc64-linux-gnu/bitcoin-b8c146b87720-powerpc64-linux-gnu-debug.tar.gz 57b01141e859246a70c9110c5daa2b388dfc5bab442a873f6b715981bd3dfca1 guix-build-b8c146b87720/output/powerpc64-linux-gnu/bitcoin-b8c146b87720-powerpc64-linux-gnu.tar.gz 282befd619cfb541c31d1a81495e08c409f2d9174e876f05dc7bd361a3a1821e guix-build-b8c146b87720/output/powerpc64le-linux-gnu/SHA256SUMS.part 8ef3a9e19393ef36c8a001477e9ee08dba705978775fcebb5c2349612ce22808 guix-build-b8c146b87720/output/powerpc64le-linux-gnu/bitcoin-b8c146b87720-powerpc64le-linux-gnu-debug.tar.gz bbfde476e8f630783a12e9d900d91ab2ab24ee2c7e607699e37fd2d273627a0e guix-build-b8c146b87720/output/powerpc64le-linux-gnu/bitcoin-b8c146b87720-powerpc64le-linux-gnu.tar.gz b0f8f33becc355ab70f549ed4d33b49f73aa5b4adb793b0e661ff1180861cdba guix-build-b8c146b87720/output/riscv64-linux-gnu/SHA256SUMS.part 7ee185e1aa6a7b4c536f375d165dd0232a310892a2e9446de713081b471d5d9e guix-build-b8c146b87720/output/riscv64-linux-gnu/bitcoin-b8c146b87720-riscv64-linux-gnu-debug.tar.gz 8d15acb1da57c753131e887453d95c0539f2d4bbb4e3a6deb976e17dee306946 guix-build-b8c146b87720/output/riscv64-linux-gnu/bitcoin-b8c146b87720-riscv64-linux-gnu.tar.gz dde6dcf82d7b2f3279150564302a5008d69a3a0fcdedc717c124d460d73ff71d guix-build-b8c146b87720/output/x86_64-apple-darwin/SHA256SUMS.part a5c2e69aba46a164425013b0360674d77687dfe8accc8e8cb97dc630542dc1d3 guix-build-b8c146b87720/output/x86_64-apple-darwin/bitcoin-b8c146b87720-x86_64-apple-darwin-unsigned.dmg cea73001db5a31880ec119f959bb0db21b3f7a12ac21a630b2f12247c4c0b578 guix-build-b8c146b87720/output/x86_64-apple-darwin/bitcoin-b8c146b87720-x86_64-apple-darwin-unsigned.tar.gz 8cf6ba1de32f68c70ee23a19fbbeadb59df4c008792c717ac22d476ebe9aa921 guix-build-b8c146b87720/output/x86_64-apple-darwin/bitcoin-b8c146b87720-x86_64-apple-darwin.tar.gz a05b02f8270bc1928e89ac03d2ab40da9e1fc35cf5416c511fe67a197c64b241 guix-build-b8c146b87720/output/x86_64-linux-gnu/SHA256SUMS.part 9f213cfc3afb899cf1e06b796f0ab7e4414f60e267f286837d10944c592d0cad guix-build-b8c146b87720/output/x86_64-linux-gnu/bitcoin-b8c146b87720-x86_64-linux-gnu-debug.tar.gz 7f8100bbf4415f4cf531e0b652026e1429877df873bce6b45433e7e1b638efe4 guix-build-b8c146b87720/output/x86_64-linux-gnu/bitcoin-b8c146b87720-x86_64-linux-gnu.tar.gz 8d5ad864562ca22a37380a89db7a78574462b78bd74fcf8b663b8164043e800f guix-build-b8c146b87720/output/x86_64-w64-mingw32/SHA256SUMS.part 3713b4d70e4eb56b0875d07c698eab270c680da0f81be5394ea16750c5b56490 guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64-debug.zip 25e97d46edb35dd87a55b285dad03a6c571336ab93f8c7457571498e3057118a guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64-setup-unsigned.exe bc9870404d52a5423ce8fee37cae3ebda00d9958b1469d2930aa8f0d61ab55ef guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64-unsigned.tar.gz 1d78eb522fdebb8e494c63656212972657f323406b43a5f6af835f272529915f guix-build-b8c146b87720/output/x86_64-w64-mingw32/bitcoin-b8c146b87720-win64.zip ``` ACKs for top commit: laanwj: Tested ACK b8c146b8772030c6efaac43198c4de0d76fd25af Tree-SHA512: e62621b3b51fe7e391f262137de87231a3fb0e39c4090017990317ae758493fab36e5764843b905b86a5d48bbf2c8a08de7c596c1cc590585099fe5bc9cc18be
Usage
To build dependencies for the current arch+OS:
make
To build for another arch/OS:
make HOST=host-platform-triplet
For example:
make HOST=x86_64-w64-mingw32 -j4
Bitcoin Core's configure
script by default will ignore the depends output. In
order for it to pick up libraries, tools, and settings from the depends build,
you must set the CONFIG_SITE
environment variable to point to a config.site
settings file.
In the above example, a file named depends/x86_64-w64-mingw32/share/config.site
will be
created. To use it during compilation:
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure
The default install prefix when using config.site
is --prefix=depends/<host-platform-triplet>
,
so depends build outputs will be installed in that location.
Common host-platform-triplet
s for cross compilation are:
i686-pc-linux-gnu
for Linux 32 bitx86_64-pc-linux-gnu
for x86 Linuxx86_64-w64-mingw32
for Win64x86_64-apple-darwin
for macOSarm64-apple-darwin
for ARM macOSarm-linux-gnueabihf
for Linux ARM 32 bitaarch64-linux-gnu
for Linux ARM 64 bitpowerpc64-linux-gnu
for Linux POWER 64-bit (big endian)powerpc64le-linux-gnu
for Linux POWER 64-bit (little endian)riscv32-linux-gnu
for Linux RISC-V 32 bitriscv64-linux-gnu
for Linux RISC-V 64 bits390x-linux-gnu
for Linux S390Xarmv7a-linux-android
for Android ARM 32 bitaarch64-linux-android
for Android ARM 64 bitx86_64-linux-android
for Android x86 64 bit
The paths are automatically configured and no other options are needed unless targeting Android.
Install the required dependencies: Ubuntu & Debian
For macOS cross compilation
sudo apt-get install curl bsdmainutils cmake libz-dev python3-setuptools libtinfo5 xorriso
Note: You must obtain the macOS SDK before proceeding with a cross-compile.
Under the depends directory, create a subdirectory named SDKs
.
Then, place the extracted SDK under this new directory.
For more information, see SDK Extraction.
For Win64 cross compilation
- see build-windows.md
For linux (including i386, ARM) cross compilation
Common linux dependencies:
sudo apt-get install make automake cmake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch bison
For linux ARM cross compilation:
sudo apt-get install g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf
For linux AARCH64 cross compilation:
sudo apt-get install g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
For linux POWER 64-bit cross compilation (there are no packages for 32-bit):
sudo apt-get install g++-powerpc64-linux-gnu binutils-powerpc64-linux-gnu g++-powerpc64le-linux-gnu binutils-powerpc64le-linux-gnu
For linux RISC-V 64-bit cross compilation (there are no packages for 32-bit):
sudo apt-get install g++-riscv64-linux-gnu binutils-riscv64-linux-gnu
For linux S390X cross compilation:
sudo apt-get install g++-s390x-linux-gnu binutils-s390x-linux-gnu
Install the required dependencies: OpenBSD
pkg_add bash gtar
Dependency Options
The following can be set when running make: make FOO=bar
SOURCES_PATH
: Downloaded sources will be placed hereBASE_CACHE
: Built packages will be placed hereSDK_PATH
: Path where SDKs can be found (used by macOS)FALLBACK_DOWNLOAD_PATH
: If a source file can't be fetched, try here before giving upC_STANDARD
: Set the C standard version used. Defaults toc11
.CXX_STANDARD
: Set the C++ standard version used. Defaults toc++17
.NO_QT
: Don't download/build/cache Qt and its dependenciesNO_QR
: Don't download/build/cache packages needed for enabling qrencodeNO_ZMQ
: Don't download/build/cache packages needed for enabling ZeroMQNO_WALLET
: Don't download/build/cache libs needed to enable the walletNO_BDB
: Don't download/build/cache BerkeleyDBNO_SQLITE
: Don't download/build/cache SQLiteNO_UPNP
: Don't download/build/cache packages needed for enabling UPnPNO_NATPMP
: Don't download/build/cache packages needed for enabling NAT-PMPALLOW_HOST_PACKAGES
: Packages that are missed in dependencies (due toNO_*
option or build script logic) are searched for among the host system packages usingpkg-config
. It allows building with packages of other (newer) versionsMULTIPROCESS
: Build libmultiprocess (experimental, requires CMake)DEBUG
: Disable some optimizations and enable more runtime checkingHOST_ID_SALT
: Optional salt to use when generating host package idsBUILD_ID_SALT
: Optional salt to use when generating build package idsFORCE_USE_SYSTEM_CLANG
: (EXPERTS ONLY) When cross-compiling for macOS, use Clang found in the system's$PATH
rather than the default prebuilt release of Clang from llvm.org. Clang 8 or later is requiredLOG
: Use file-based logging for individual packages. During a package build its log file resides in thedepends
directory, and the log file is printed out automatically in case of build error. After successful build log files are moved along with package archivesLTO
: Use LTO when building packages.
If some packages are not built, for example make NO_WALLET=1
, the appropriate
options will be passed to bitcoin's configure. In this case, --disable-wallet
.
Additional targets
download: run 'make download' to fetch all sources without building them
download-osx: run 'make download-osx' to fetch all sources needed for macOS builds
download-win: run 'make download-win' to fetch all sources needed for win builds
download-linux: run 'make download-linux' to fetch all sources needed for linux builds
Other documentation
- description.md: General description of the depends system
- packages.md: Steps for adding packages