mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
Merge 79fcbf8cba
into c5e44a0435
This commit is contained in:
commit
31b32ea472
19 changed files with 69 additions and 47 deletions
|
@ -172,13 +172,13 @@ task:
|
||||||
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
|
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
|
||||||
|
|
||||||
task:
|
task:
|
||||||
name: 'multiprocess, i686, DEBUG'
|
name: 'no multiprocess, i686, DEBUG'
|
||||||
<< : *GLOBAL_TASK_TEMPLATE
|
<< : *GLOBAL_TASK_TEMPLATE
|
||||||
persistent_worker:
|
persistent_worker:
|
||||||
labels:
|
labels:
|
||||||
type: medium
|
type: medium
|
||||||
env:
|
env:
|
||||||
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"
|
FILE_ENV: "./ci/test/00_setup_env_i686_no_multiprocess.sh"
|
||||||
|
|
||||||
task:
|
task:
|
||||||
name: 'no wallet, libbitcoinkernel'
|
name: 'no wallet, libbitcoinkernel'
|
||||||
|
|
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
|
@ -77,7 +77,7 @@ jobs:
|
||||||
git config user.name "CI"
|
git config user.name "CI"
|
||||||
- run: |
|
- run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install clang ccache build-essential cmake ninja-build pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libzmq3-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev -y
|
sudo apt-get install clang ccache build-essential cmake ninja-build pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libzmq3-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev libcapnp-dev capnproto -y
|
||||||
- name: Compile and run tests
|
- name: Compile and run tests
|
||||||
run: |
|
run: |
|
||||||
# Run tests on commits after the last merge commit and before the PR head commit
|
# Run tests on commits after the last merge commit and before the PR head commit
|
||||||
|
@ -133,7 +133,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
# A workaround for "The `brew link` step did not complete successfully" error.
|
# A workaround for "The `brew link` step did not complete successfully" error.
|
||||||
brew install --quiet python@3 || brew link --overwrite python@3
|
brew install --quiet python@3 || brew link --overwrite python@3
|
||||||
brew install --quiet coreutils ninja pkgconf gnu-getopt ccache boost libevent zeromq qt@6 qrencode
|
brew install --quiet coreutils ninja pkgconf gnu-getopt ccache boost libevent zeromq qt@6 qrencode capnp
|
||||||
|
|
||||||
- name: Set Ccache directory
|
- name: Set Ccache directory
|
||||||
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
|
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
|
||||||
|
|
|
@ -152,7 +152,7 @@ endif()
|
||||||
|
|
||||||
cmake_dependent_option(WITH_DBUS "Enable DBus support." ON "CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND BUILD_GUI" OFF)
|
cmake_dependent_option(WITH_DBUS "Enable DBus support." ON "CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND BUILD_GUI" OFF)
|
||||||
|
|
||||||
option(ENABLE_IPC "Build multiprocess bitcoin-node and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables. Requires libmultiprocess library. Experimental." OFF)
|
cmake_dependent_option(ENABLE_IPC "Build multiprocess bitcoin-node and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables." ON "NOT WIN32" OFF)
|
||||||
cmake_dependent_option(WITH_EXTERNAL_LIBMULTIPROCESS "Build with external libmultiprocess library instead of with local git subtree when ENABLE_IPC is enabled. This is not normally recommended, but can be useful for developing libmultiprocess itself." OFF "ENABLE_IPC" OFF)
|
cmake_dependent_option(WITH_EXTERNAL_LIBMULTIPROCESS "Build with external libmultiprocess library instead of with local git subtree when ENABLE_IPC is enabled. This is not normally recommended, but can be useful for developing libmultiprocess itself." OFF "ENABLE_IPC" OFF)
|
||||||
if(ENABLE_IPC AND WITH_EXTERNAL_LIBMULTIPROCESS)
|
if(ENABLE_IPC AND WITH_EXTERNAL_LIBMULTIPROCESS)
|
||||||
find_package(Libmultiprocess REQUIRED COMPONENTS Lib)
|
find_package(Libmultiprocess REQUIRED COMPONENTS Lib)
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
export LC_ALL=C.UTF-8
|
export LC_ALL=C.UTF-8
|
||||||
|
|
||||||
export HOST=i686-pc-linux-gnu
|
export HOST=i686-pc-linux-gnu
|
||||||
export CONTAINER_NAME=ci_i686_multiprocess
|
export CONTAINER_NAME=ci_i686_no_multiprocess
|
||||||
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
||||||
export CI_IMAGE_PLATFORM="linux/amd64"
|
export CI_IMAGE_PLATFORM="linux/amd64"
|
||||||
export PACKAGES="llvm clang g++-multilib"
|
export PACKAGES="llvm clang g++-multilib"
|
||||||
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
|
export DEP_OPTS="DEBUG=1 NO_IPC=1"
|
||||||
export GOAL="install"
|
export GOAL="install"
|
||||||
export TEST_RUNNER_EXTRA="--v2transport"
|
export TEST_RUNNER_EXTRA="--v2transport"
|
||||||
export BITCOIN_CONFIG="\
|
export BITCOIN_CONFIG="\
|
||||||
|
@ -20,4 +20,3 @@ export BITCOIN_CONFIG="\
|
||||||
-DCMAKE_CXX_COMPILER='clang++;-m32' \
|
-DCMAKE_CXX_COMPILER='clang++;-m32' \
|
||||||
-DAPPEND_CPPFLAGS='-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE' \
|
-DAPPEND_CPPFLAGS='-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE' \
|
||||||
"
|
"
|
||||||
export BITCOIND=bitcoin-node # Used in functional tests
|
|
|
@ -11,7 +11,12 @@ export LC_ALL=C.UTF-8
|
||||||
export PIP_PACKAGES="--break-system-packages zmq"
|
export PIP_PACKAGES="--break-system-packages zmq"
|
||||||
export GOAL="install"
|
export GOAL="install"
|
||||||
export CMAKE_GENERATOR="Ninja"
|
export CMAKE_GENERATOR="Ninja"
|
||||||
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DREDUCE_EXPORTS=ON"
|
export BITCOIN_CONFIG="\
|
||||||
|
-DBUILD_GUI=ON \
|
||||||
|
-DWITH_ZMQ=ON \
|
||||||
|
-DREDUCE_EXPORTS=ON \
|
||||||
|
"
|
||||||
export CI_OS_NAME="macos"
|
export CI_OS_NAME="macos"
|
||||||
export NO_DEPENDS=1
|
export NO_DEPENDS=1
|
||||||
export OSX_SDK=""
|
export OSX_SDK=""
|
||||||
|
export BITCOIND=bitcoin-node # Used in functional tests
|
||||||
|
|
|
@ -20,11 +20,15 @@ fi
|
||||||
|
|
||||||
export CONTAINER_NAME=ci_native_asan
|
export CONTAINER_NAME=ci_native_asan
|
||||||
export APT_LLVM_V="20"
|
export APT_LLVM_V="20"
|
||||||
export PACKAGES="systemtap-sdt-dev clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev python3-zmq qt6-base-dev qt6-tools-dev qt6-l10n-tools libevent-dev libboost-dev libdb5.3++-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE}"
|
export PACKAGES="systemtap-sdt-dev clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev python3-zmq qt6-base-dev qt6-tools-dev qt6-l10n-tools libevent-dev libboost-dev libdb5.3++-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE} libcapnp-dev capnproto"
|
||||||
export NO_DEPENDS=1
|
export NO_DEPENDS=1
|
||||||
export GOAL="install"
|
export GOAL="install"
|
||||||
export BITCOIN_CONFIG="\
|
export BITCOIN_CONFIG="\
|
||||||
-DWITH_USDT=ON -DWITH_ZMQ=ON -DWITH_BDB=ON -DWARN_INCOMPATIBLE_BDB=OFF -DBUILD_GUI=ON \
|
-DWITH_USDT=ON \
|
||||||
|
-DWITH_ZMQ=ON \
|
||||||
|
-DWITH_BDB=ON \
|
||||||
|
-DWARN_INCOMPATIBLE_BDB=OFF \
|
||||||
|
-DBUILD_GUI=ON \
|
||||||
-DSANITIZERS=address,float-divide-by-zero,integer,undefined \
|
-DSANITIZERS=address,float-divide-by-zero,integer,undefined \
|
||||||
-DCMAKE_C_COMPILER=clang-${APT_LLVM_V} \
|
-DCMAKE_C_COMPILER=clang-${APT_LLVM_V} \
|
||||||
-DCMAKE_CXX_COMPILER=clang++-${APT_LLVM_V} \
|
-DCMAKE_CXX_COMPILER=clang++-${APT_LLVM_V} \
|
||||||
|
|
|
@ -13,3 +13,4 @@ export PIP_PACKAGES="pyzmq"
|
||||||
export DEP_OPTS="DEBUG=1" # Temporarily enable a DEBUG=1 build to check for GCC-bug-117966 regressions. This can be removed once the minimum GCC version is bumped to 12 in the previous releases task, see https://github.com/bitcoin/bitcoin/issues/31436#issuecomment-2530717875
|
export DEP_OPTS="DEBUG=1" # Temporarily enable a DEBUG=1 build to check for GCC-bug-117966 regressions. This can be removed once the minimum GCC version is bumped to 12 in the previous releases task, see https://github.com/bitcoin/bitcoin/issues/31436#issuecomment-2530717875
|
||||||
export GOAL="install"
|
export GOAL="install"
|
||||||
export BITCOIN_CONFIG="-DWITH_ZMQ=ON -DBUILD_GUI=ON -DREDUCE_EXPORTS=ON -DCMAKE_BUILD_TYPE=Debug"
|
export BITCOIN_CONFIG="-DWITH_ZMQ=ON -DBUILD_GUI=ON -DREDUCE_EXPORTS=ON -DCMAKE_BUILD_TYPE=Debug"
|
||||||
|
export BITCOIND=bitcoin-node # Used in functional tests
|
||||||
|
|
|
@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
|
||||||
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
||||||
export CONTAINER_NAME=ci_native_fuzz
|
export CONTAINER_NAME=ci_native_fuzz
|
||||||
export APT_LLVM_V="20"
|
export APT_LLVM_V="20"
|
||||||
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev libevent-dev libboost-dev libsqlite3-dev"
|
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev libevent-dev libboost-dev libsqlite3-dev libcapnp-dev capnproto"
|
||||||
export NO_DEPENDS=1
|
export NO_DEPENDS=1
|
||||||
export RUN_UNIT_TESTS=false
|
export RUN_UNIT_TESTS=false
|
||||||
export RUN_FUNCTIONAL_TESTS=false
|
export RUN_FUNCTIONAL_TESTS=false
|
||||||
|
|
|
@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
|
||||||
|
|
||||||
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
||||||
export CONTAINER_NAME=ci_native_fuzz_valgrind
|
export CONTAINER_NAME=ci_native_fuzz_valgrind
|
||||||
export PACKAGES="libevent-dev libboost-dev libsqlite3-dev valgrind"
|
export PACKAGES="libevent-dev libboost-dev libsqlite3-dev valgrind libcapnp-dev capnproto"
|
||||||
export NO_DEPENDS=1
|
export NO_DEPENDS=1
|
||||||
export RUN_UNIT_TESTS=false
|
export RUN_UNIT_TESTS=false
|
||||||
export RUN_FUNCTIONAL_TESTS=false
|
export RUN_FUNCTIONAL_TESTS=false
|
||||||
|
|
|
@ -10,7 +10,7 @@ export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
||||||
export CONTAINER_NAME=ci_native_tidy
|
export CONTAINER_NAME=ci_native_tidy
|
||||||
export TIDY_LLVM_V="20"
|
export TIDY_LLVM_V="20"
|
||||||
export APT_LLVM_V="${TIDY_LLVM_V}"
|
export APT_LLVM_V="${TIDY_LLVM_V}"
|
||||||
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq libevent-dev libboost-dev libzmq3-dev systemtap-sdt-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev libsqlite3-dev libdb++-dev"
|
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq libevent-dev libboost-dev libzmq3-dev systemtap-sdt-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev libsqlite3-dev libdb++-dev libcapnp-dev capnproto"
|
||||||
export NO_DEPENDS=1
|
export NO_DEPENDS=1
|
||||||
export RUN_UNIT_TESTS=false
|
export RUN_UNIT_TESTS=false
|
||||||
export RUN_FUNCTIONAL_TESTS=false
|
export RUN_FUNCTIONAL_TESTS=false
|
||||||
|
@ -19,7 +19,12 @@ export RUN_CHECK_DEPS=true
|
||||||
export RUN_TIDY=true
|
export RUN_TIDY=true
|
||||||
export GOAL="install"
|
export GOAL="install"
|
||||||
export BITCOIN_CONFIG="\
|
export BITCOIN_CONFIG="\
|
||||||
-DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DWITH_USDT=ON -DWITH_BDB=ON -DWARN_INCOMPATIBLE_BDB=OFF \
|
-DWITH_ZMQ=ON \
|
||||||
|
-DBUILD_GUI=ON \
|
||||||
|
-DBUILD_BENCH=ON \
|
||||||
|
-DWITH_USDT=ON \
|
||||||
|
-DWITH_BDB=ON \
|
||||||
|
-DWARN_INCOMPATIBLE_BDB=OFF \
|
||||||
-DCMAKE_C_COMPILER=clang-${TIDY_LLVM_V} \
|
-DCMAKE_C_COMPILER=clang-${TIDY_LLVM_V} \
|
||||||
-DCMAKE_CXX_COMPILER=clang++-${TIDY_LLVM_V} \
|
-DCMAKE_CXX_COMPILER=clang++-${TIDY_LLVM_V} \
|
||||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O0 -g0' \
|
-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O0 -g0' \
|
||||||
|
|
|
@ -8,12 +8,15 @@ export LC_ALL=C.UTF-8
|
||||||
|
|
||||||
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
|
||||||
export CONTAINER_NAME=ci_native_valgrind
|
export CONTAINER_NAME=ci_native_valgrind
|
||||||
export PACKAGES="valgrind python3-zmq libevent-dev libboost-dev libdb5.3++-dev libzmq3-dev libsqlite3-dev"
|
export PACKAGES="valgrind python3-zmq libevent-dev libboost-dev libdb5.3++-dev libzmq3-dev libsqlite3-dev libcapnp-dev capnproto"
|
||||||
export USE_VALGRIND=1
|
export USE_VALGRIND=1
|
||||||
export NO_DEPENDS=1
|
export NO_DEPENDS=1
|
||||||
export TEST_RUNNER_EXTRA="--exclude feature_init,rpc_bind,feature_bind_extra" # feature_init excluded for now, see https://github.com/bitcoin/bitcoin/issues/30011 ; bind tests excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
|
export TEST_RUNNER_EXTRA="--exclude feature_init,rpc_bind,feature_bind_extra" # feature_init excluded for now, see https://github.com/bitcoin/bitcoin/issues/30011 ; bind tests excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
|
||||||
export GOAL="install"
|
export GOAL="install"
|
||||||
# TODO enable GUI
|
# TODO enable GUI
|
||||||
export BITCOIN_CONFIG="\
|
export BITCOIN_CONFIG="\
|
||||||
-DWITH_ZMQ=ON -DWITH_BDB=ON -DWARN_INCOMPATIBLE_BDB=OFF -DBUILD_GUI=OFF \
|
-DWITH_ZMQ=ON
|
||||||
|
-DWITH_BDB=ON
|
||||||
|
-DWARN_INCOMPATIBLE_BDB=OFF
|
||||||
|
-DBUILD_GUI=OFF \
|
||||||
"
|
"
|
||||||
|
|
|
@ -23,7 +23,7 @@ function(add_maintenance_targets)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach(target IN ITEMS bitcoind bitcoin-qt bitcoin-cli bitcoin-tx bitcoin-util bitcoin-wallet test_bitcoin bench_bitcoin)
|
foreach(target IN ITEMS bitcoind bitcoin-node bitcoin-qt bitcoin-gui bitcoin-cli bitcoin-tx bitcoin-util bitcoin-wallet test_bitcoin bench_bitcoin)
|
||||||
if(TARGET ${target})
|
if(TARGET ${target})
|
||||||
list(APPEND executables $<TARGET_FILE:${target}>)
|
list(APPEND executables $<TARGET_FILE:${target}>)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -40,7 +40,10 @@ NO_BDB ?=
|
||||||
NO_WALLET ?=
|
NO_WALLET ?=
|
||||||
NO_ZMQ ?=
|
NO_ZMQ ?=
|
||||||
NO_USDT ?=
|
NO_USDT ?=
|
||||||
MULTIPROCESS ?=
|
# Default NO_IPC value is 1 on unsupported host platforms:
|
||||||
|
# - Windows
|
||||||
|
# - OpenBSD: https://github.com/capnproto/capnproto/pull/1907
|
||||||
|
NO_IPC ?= $(if $(findstring mingw32,$(HOST))$(findstring openbsd,$(HOST)),1,)
|
||||||
LTO ?=
|
LTO ?=
|
||||||
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
|
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
|
||||||
|
|
||||||
|
@ -163,7 +166,7 @@ bdb_packages_$(NO_BDB) = $(bdb_packages)
|
||||||
wallet_packages_$(NO_WALLET) = $(bdb_packages_) $(sqlite_packages)
|
wallet_packages_$(NO_WALLET) = $(bdb_packages_) $(sqlite_packages)
|
||||||
|
|
||||||
zmq_packages_$(NO_ZMQ) = $(zmq_packages)
|
zmq_packages_$(NO_ZMQ) = $(zmq_packages)
|
||||||
multiprocess_packages_$(MULTIPROCESS) = $(multiprocess_packages)
|
multiprocess_packages_$(NO_IPC) = $(multiprocess_packages)
|
||||||
usdt_packages_$(NO_USDT) = $(usdt_$(host_os)_packages)
|
usdt_packages_$(NO_USDT) = $(usdt_$(host_os)_packages)
|
||||||
|
|
||||||
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(boost_packages_) $(libevent_packages_) $(qt_packages_) $(wallet_packages_) $(usdt_packages_)
|
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(boost_packages_) $(libevent_packages_) $(qt_packages_) $(wallet_packages_) $(usdt_packages_)
|
||||||
|
@ -173,7 +176,7 @@ ifneq ($(zmq_packages_),)
|
||||||
packages += $(zmq_packages)
|
packages += $(zmq_packages)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(multiprocess_packages_),)
|
ifneq ($(multiprocess_packages_),)
|
||||||
packages += $(multiprocess_packages)
|
packages += $(multiprocess_packages)
|
||||||
native_packages += $(multiprocess_native_packages)
|
native_packages += $(multiprocess_native_packages)
|
||||||
endif
|
endif
|
||||||
|
@ -234,7 +237,7 @@ $(host_prefix)/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(fina
|
||||||
-e 's|@wallet_packages@|$(wallet_packages_)|' \
|
-e 's|@wallet_packages@|$(wallet_packages_)|' \
|
||||||
-e 's|@bdb_packages@|$(bdb_packages_)|' \
|
-e 's|@bdb_packages@|$(bdb_packages_)|' \
|
||||||
-e 's|@usdt_packages@|$(usdt_packages_)|' \
|
-e 's|@usdt_packages@|$(usdt_packages_)|' \
|
||||||
-e 's|@multiprocess@|$(MULTIPROCESS)|' \
|
-e 's|@multiprocess_packages@|$(multiprocess_packages_)|' \
|
||||||
$< > $@
|
$< > $@
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
|
|
|
@ -118,7 +118,7 @@ The following can be set when running make: `make FOO=bar`
|
||||||
- `NO_WALLET`: Don't download/build/cache libs needed to enable the wallet (SQLite)
|
- `NO_WALLET`: Don't download/build/cache libs needed to enable the wallet (SQLite)
|
||||||
- `NO_BDB`: Don't download/build/cache BerkeleyDB
|
- `NO_BDB`: Don't download/build/cache BerkeleyDB
|
||||||
- `NO_USDT`: Don't download/build/cache packages needed for enabling USDT tracepoints
|
- `NO_USDT`: Don't download/build/cache packages needed for enabling USDT tracepoints
|
||||||
- `MULTIPROCESS`: Build libmultiprocess (experimental)
|
- `NO_IPC`: Don't build Cap’n Proto and libmultiprocess packages, and disable building IPC binaries (bitcoin-node, bitcoin-gui). Default on Windows and OpenBSD.
|
||||||
- `DEBUG`: Disable some optimizations and enable more runtime checking
|
- `DEBUG`: Disable some optimizations and enable more runtime checking
|
||||||
- `HOST_ID_SALT`: Optional salt to use when generating host package ids
|
- `HOST_ID_SALT`: Optional salt to use when generating host package ids
|
||||||
- `BUILD_ID_SALT`: Optional salt to use when generating build package ids
|
- `BUILD_ID_SALT`: Optional salt to use when generating build package ids
|
||||||
|
|
|
@ -158,11 +158,12 @@ else()
|
||||||
set(WITH_USDT ON CACHE BOOL "")
|
set(WITH_USDT ON CACHE BOOL "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if("@multiprocess@" STREQUAL "1")
|
set(multiprocess_packages @multiprocess_packages@)
|
||||||
|
if("${multiprocess_packages}" STREQUAL "")
|
||||||
|
set(ENABLE_IPC OFF CACHE BOOL "")
|
||||||
|
else()
|
||||||
set(ENABLE_IPC ON CACHE BOOL "")
|
set(ENABLE_IPC ON CACHE BOOL "")
|
||||||
set(MPGEN_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/mpgen" CACHE FILEPATH "")
|
set(MPGEN_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/mpgen" CACHE FILEPATH "")
|
||||||
set(CAPNP_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnp" CACHE FILEPATH "")
|
set(CAPNP_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnp" CACHE FILEPATH "")
|
||||||
set(CAPNPC_CXX_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnpc-c++" CACHE FILEPATH "")
|
set(CAPNPC_CXX_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnpc-c++" CACHE FILEPATH "")
|
||||||
else()
|
|
||||||
set(ENABLE_IPC OFF CACHE BOOL "")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -48,9 +48,11 @@ See [dependencies.md](dependencies.md) for a complete overview.
|
||||||
To install, run the following from your terminal:
|
To install, run the following from your terminal:
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
brew install cmake boost pkgconf libevent
|
brew install cmake boost pkgconf libevent capnp
|
||||||
```
|
```
|
||||||
|
|
||||||
|
It's possible to omit `capnp`, see [below](#IPC-dependencies).
|
||||||
|
|
||||||
### 4. Clone Bitcoin repository
|
### 4. Clone Bitcoin repository
|
||||||
|
|
||||||
`git` should already be installed by default on your system.
|
`git` should already be installed by default on your system.
|
||||||
|
@ -127,12 +129,8 @@ For more information on ZMQ, see: [zmq.md](zmq.md)
|
||||||
|
|
||||||
### IPC Dependencies
|
### IPC Dependencies
|
||||||
|
|
||||||
Compiling IPC-enabled binaries with `-DENABLE_IPC=ON` requires the following dependency.
|
The dependency on `capnp` can be avoided by compiling without IPC-enabled binaries
|
||||||
Skip if you do not need IPC functionality.
|
using `-DENABLE_IPC=OFF`.
|
||||||
|
|
||||||
```bash
|
|
||||||
brew install capnp
|
|
||||||
```
|
|
||||||
|
|
||||||
For more information on IPC, see: [multiprocess.md](multiprocess.md).
|
For more information on IPC, see: [multiprocess.md](multiprocess.md).
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,12 @@ executables, which are based on BerkeleyDB 4.8. Otherwise, you can build Berkele
|
||||||
|
|
||||||
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
|
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
|
||||||
|
|
||||||
|
Cap'n Proto is required to build IPC-enabled binaries:
|
||||||
|
|
||||||
|
sudo apt-get install libcapnp-dev capnproto
|
||||||
|
|
||||||
|
Compile with `-DENABLE_IPC=OFF` if you do not need this functionality.
|
||||||
|
|
||||||
ZMQ dependencies (provides ZMQ API):
|
ZMQ dependencies (provides ZMQ API):
|
||||||
|
|
||||||
sudo apt-get install libzmq3-dev
|
sudo apt-get install libzmq3-dev
|
||||||
|
@ -68,11 +74,6 @@ User-Space, Statically Defined Tracing (USDT) dependencies:
|
||||||
|
|
||||||
sudo apt install systemtap-sdt-dev
|
sudo apt install systemtap-sdt-dev
|
||||||
|
|
||||||
IPC-enabled binaries are compiled with `-DENABLE_IPC=ON` and require the following dependencies.
|
|
||||||
Skip if you do not need IPC functionality.
|
|
||||||
|
|
||||||
sudo apt-get install libcapnp-dev capnproto
|
|
||||||
|
|
||||||
GUI dependencies:
|
GUI dependencies:
|
||||||
|
|
||||||
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
||||||
|
@ -115,6 +116,12 @@ are based on Berkeley DB 4.8. Otherwise, you can build Berkeley DB [yourself](#b
|
||||||
|
|
||||||
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
|
To build Bitcoin Core without wallet, see [*Disable-wallet mode*](#disable-wallet-mode)
|
||||||
|
|
||||||
|
Cap'n Proto is required to build IPC-enabled binaries:
|
||||||
|
|
||||||
|
sudo dnf install capnp
|
||||||
|
|
||||||
|
Compile with `-DENABLE_IPC=OFF` if you do not need this functionality.
|
||||||
|
|
||||||
ZMQ dependencies (provides ZMQ API):
|
ZMQ dependencies (provides ZMQ API):
|
||||||
|
|
||||||
sudo dnf install zeromq-devel
|
sudo dnf install zeromq-devel
|
||||||
|
@ -123,11 +130,6 @@ User-Space, Statically Defined Tracing (USDT) dependencies:
|
||||||
|
|
||||||
sudo dnf install systemtap-sdt-devel
|
sudo dnf install systemtap-sdt-devel
|
||||||
|
|
||||||
IPC-enabled binaries are compiled with `-DENABLE_IPC=ON` and require the following dependency.
|
|
||||||
Skip if you do not need IPC functionality.
|
|
||||||
|
|
||||||
sudo dnf install capnproto
|
|
||||||
|
|
||||||
GUI dependencies:
|
GUI dependencies:
|
||||||
|
|
||||||
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
|
||||||
|
|
|
@ -36,3 +36,4 @@ Bitcoin Core requires one of the following compilers.
|
||||||
| [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) | No |
|
| [SQLite](../depends/packages/sqlite.mk) (wallet) | [link](https://sqlite.org) | [3.38.5](https://github.com/bitcoin/bitcoin/pull/25378) | [3.7.17](https://github.com/bitcoin/bitcoin/pull/19077) | No |
|
||||||
| Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | No |
|
| Python (scripts, tests) | [link](https://www.python.org) | N/A | [3.10](https://github.com/bitcoin/bitcoin/pull/30527) | No |
|
||||||
| [systemtap](../depends/packages/systemtap.mk) ([tracing](tracing.md)) | [link](https://sourceware.org/systemtap/) | [4.8](https://github.com/bitcoin/bitcoin/pull/26945)| N/A | No |
|
| [systemtap](../depends/packages/systemtap.mk) ([tracing](tracing.md)) | [link](https://sourceware.org/systemtap/) | [4.8](https://github.com/bitcoin/bitcoin/pull/26945)| N/A | No |
|
||||||
|
| [Cap'n Proto](../depends/packages/capnp.mk) | [link](https://capnproto.org) | [0.6.1](https://capnproto.org/install.html) | 0.5.3 | No |
|
||||||
|
|
|
@ -4,7 +4,7 @@ _This document describes usage of the multiprocess feature. For design informati
|
||||||
|
|
||||||
## Build Option
|
## Build Option
|
||||||
|
|
||||||
On Unix systems, the `-DENABLE_IPC=ON` build option can be passed to build the supplemental `bitcoin-node` and `bitcoin-gui` multiprocess executables.
|
The `-DENABLE_IPC=ON` build option, supported and enabled by default on Unix systems, can be passed to build the supplemental `bitcoin-node` and `bitcoin-gui` multiprocess executables.
|
||||||
|
|
||||||
## Debugging
|
## Debugging
|
||||||
|
|
||||||
|
@ -16,11 +16,11 @@ Specifying `-DENABLE_IPC=ON` requires [Cap'n Proto](https://capnproto.org/) to b
|
||||||
|
|
||||||
### Depends installation
|
### Depends installation
|
||||||
|
|
||||||
Alternately the [depends system](../depends) can be used to avoid need to install local dependencies. A simple way to get started is to pass the `MULTIPROCESS=1` [dependency option](../depends#dependency-options) to make:
|
Alternatively the [depends system](../depends) can be used to avoid needing to install local dependencies:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd <BITCOIN_SOURCE_DIRECTORY>
|
cd <BITCOIN_SOURCE_DIRECTORY>
|
||||||
make -C depends NO_QT=1 MULTIPROCESS=1
|
make -C depends NO_QT=1
|
||||||
# Set host platform to output of gcc -dumpmachine or clang -dumpmachine or check the depends/ directory for the generated subdirectory name
|
# Set host platform to output of gcc -dumpmachine or clang -dumpmachine or check the depends/ directory for the generated subdirectory name
|
||||||
HOST_PLATFORM="x86_64-pc-linux-gnu"
|
HOST_PLATFORM="x86_64-pc-linux-gnu"
|
||||||
cmake -B build --toolchain=depends/$HOST_PLATFORM/toolchain.cmake
|
cmake -B build --toolchain=depends/$HOST_PLATFORM/toolchain.cmake
|
||||||
|
@ -29,7 +29,7 @@ build/bin/bitcoin-node -regtest -printtoconsole -debug=ipc
|
||||||
BITCOIND=$(pwd)/build/bin/bitcoin-node build/test/functional/test_runner.py
|
BITCOIND=$(pwd)/build/bin/bitcoin-node build/test/functional/test_runner.py
|
||||||
```
|
```
|
||||||
|
|
||||||
The `cmake` build will pick up settings and library locations from the depends directory, so there is no need to pass `-DENABLE_IPC=ON` as a separate flag when using the depends system (it's controlled by the `MULTIPROCESS=1` option).
|
The `cmake` build will pick up settings and library locations from the depends directory, so there is no need to pass `-DENABLE_IPC=ON` as a separate flag when using the depends system (it's controlled by the `NO_IPC=1` option).
|
||||||
|
|
||||||
### Cross-compiling
|
### Cross-compiling
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue