Skip to content

Commit f78a01a

Browse files
committed
Squashed 'libbitcoinkernel-sys/bitcoin/' changes from 5aeaa3f49d1..29513955891
29513955891 kernel: Add pure kernel bitcoin-chainstate 9c40433bd4a kernel: Add functions to get the block hash from a block 942df8f287f kernel: Add block index utility functions to C header 87102db87ac kernel: Add function to read block undo data from disk to C header 12b8c9442ad kernel: Add functions to read block from disk to C header d977db3feb2 kernel: Add function for copying block data to C header 8ae33627743 kernel: Add functions for the block validation state to C header 0565a0bbc01 kernel: Add validation interface to C header 837e5a0f536 kernel: Add interrupt function to C header a80b7bfe3de kernel: Add import blocks function to C header 54d1a1231ec kernel: Add chainstate load options for in-memory dbs in C header 659efa9969c kernel: Add options for reindexing in C header 2179127c079 kernel: Add block validation to C header 26143992693 kernel: Add chainstate loading when instantiating a ChainstateManager 82d2bebbe54 kernel: Add chainstate manager option for setting worker threads e875f520851 kernel: Add chainstate manager object to C header 4e486059178 kernel: Add notifications context option to C header a5eb699b978 kernel: Add chain params context option to C header 0818b8d2c07 kernel: Add kernel library context object 71c24c95b31 kernel: Add logging to kernel library C header 0cc810386f7 kernel: Introduce initial kernel C header API 82ba9257157 Merge bitcoin/bitcoin#31366: cmake: Check `-Wno-*` compiler options for `leveldb` target f236854a5bd Merge bitcoin/bitcoin#31731: doc: update translation generation cmake example eb51963d870 Merge bitcoin/bitcoin#31884: cmake: Make implicit `libbitcoinkernel` dependencies explicit 58f15d4b215 Merge bitcoin/bitcoin#31379: cmake: Fix passing `APPEND_*FLAGS` to `secp256k1` subtree e606c577cb2 Merge bitcoin/bitcoin#31899: cmake: Exclude generated sources from translation 758a93d6215 doc: update translation generation cmake example fd14995b6a8 Merge bitcoin/bitcoin#31908: Revert merge of PR #31826 3e9b12b3e0f Revert "Merge bitcoin/bitcoin#31826: random: Check `GetRNDRRS` is supported in `InitHardwareRand` to avoid infinite loop" 785649f3977 Merge bitcoin/bitcoin#29881: guix: use GCC 13 to build releases 139640079ff Merge bitcoin/bitcoin#31826: random: Check `GetRNDRRS` is supported in `InitHardwareRand` to avoid infinite loop dc3a7146337 Merge bitcoin/bitcoin#31794: wallet: abandon orphan coinbase txs, and their descendants, during startup 06757af2da5 Merge bitcoin/bitcoin#29156: tests: add functional test for miniscript decaying multisig ff4ddd3d2e3 Revert "cmake: Ensure generated sources are up to date for `translate` target" 03b3166aac5 cmake: Exclude generated sources from translation 43e287b3ff5 Merge bitcoin/bitcoin#31892: build: remove ENABLE_HARDENING condition from check-security 63d625f7610 Merge bitcoin/bitcoin#31893: test: remove scanning check on `wallet_importdescriptors` 3b42e05aa9e cmake: Make implicit `libbitcoinkernel` dependencies explicit 3fd64efb437 cmake: Avoid using `OBJECT` libraries 28dec6c5f8b Merge bitcoin/bitcoin#31268: cmake: add optional source files to bitcoin_crypto and crc32c directly 50afaf3a389 Merge bitcoin/bitcoin#31836: contrib: Add deterministic-fuzz-coverage 405dd0e647e test: remove scanning check on `wallet_importdescriptors` 113a7a363fa build: remove ENABLE_HARDENING cond from check-security 9da0820ec55 Merge bitcoin/bitcoin#31869: cmake: Add `libbitcoinkernel` target db36a92c02b Merge bitcoin/bitcoin#31879: doc: add release note for #27432 (utxo-to-sqlite tool) 95722d048a8 doc: add release note for #27432 (utxo-to-sqlite tool) e4dd5a351bd test: wallet, abandon coinbase txs and their descendants during startup 09b150bb8ad In `InitHardwareRand`, do trail test for `RNDRRS` by `VerifyRNDRRS` 43e71f74988 Merge bitcoin/bitcoin#27432: contrib: add tool to convert compact-serialized UTXO set to SQLite database e53310c47ab Merge bitcoin/bitcoin#30529: Fix -norpcwhitelist, -norpcallowip, and similar corner case behavior 254fd89d39f Merge bitcoin/bitcoin#31863: random: Initialize variables in hardware RNG functions 75f8396c907 Merge bitcoin/bitcoin#30746: test: cover base[32|58|64] with symmetric roundtrip fuzz (and padding) tests c4b46b45898 Merge bitcoin/bitcoin#31629: wallet: fix rescanning inconsistency d0dfd6d3f60 Merge bitcoin/bitcoin#31865: build: move `rpc/external_signer` to node library ce4dbfc3590 Merge bitcoin/bitcoin#31851: doc: build: Fix instructions for msvc gui builds 504d0c21e26 Merge bitcoin/bitcoin#31439: validation: In case of a continued reindex, only activate chain in the end 0b48f77e101 Merge bitcoin/bitcoin#31413: rpc: Remove deprecated dummy alias for listtransactions::label 21a0efaf8c9 Merge bitcoin/bitcoin#29858: test: Add test for rpcwhitelistdefault 8a00b755e98 Merge bitcoin/bitcoin#31634: doc: Improve dependencies documentation e58605e04f3 Merge bitcoin/bitcoin#31854: net: reduce CAddress usage to CService or CNetAddr 3a914ab96bd cmake: Rename `bitcoinkernel` component to `libbitcoinkernel` 06b9236f432 Merge bitcoin/bitcoin#31359: cmake: Add `CheckLinkerSupportsPIE` module 7ce09a59921 cmake: Add `libbitcoinkernel` target e501246e77c build: move rpc/external_signer to node library 73e2ec13737 Merge bitcoin/bitcoin#31844: cmake: add a component for each binary 99755e04ffa random: Initialize variables in hardware RNG functions 7bbd761e816 Merge bitcoin/bitcoin#31421: cmake: Improve compatibility with Python version managers 9491676438a Merge bitcoin/bitcoin#31157: Cleanups to port mapping module post UPnP drop 109bfe9573b Merge bitcoin/bitcoin#31857: depends: avoid an unset `CMAKE_OBJDUMP` 14d1d8e2120 Merge bitcoin/bitcoin#31758: test: deduplicates p2p_tx_download constants fa3e409c9a0 contrib: Add deterministic-fuzz-coverage 2549fc6fd1c Merge bitcoin/bitcoin#31768: test: check `scanning` field from `getwalletinfo` 9b033bebb18 cmake: rename Kernel component to bitcoinkernel for consistency 2e0c92558e9 cmake: add and use install_binary_component a85e8c0e615 doc: Add some general documentation about negated options 96d30ed4f96 Merge bitcoin/bitcoin#31495: wallet: Utilize IsMine() and CanProvide() in migration to cover edge cases 490c8fa1782 doc: Add release notes summarizing negated option behavior changes. 458ef0a11b5 refactor: Avoid using IsArgSet() on -connect list option 752ab9c3c65 test: Add test to make sure -noconnect disables -dnsseed and -listen by default 3c2920ec98f refactor: Avoid using IsArgSet() on -signetseednode and -signetchallenge list options d05668922a2 refactor: Avoid using IsArgSet() on -debug, -loglevel, and -vbparams list options 3d1e8ca53a0 Normalize inconsistent -noexternalip behavior ecd590d4c1e Normalize inconsistent -noonlynet behavior 5544a19f863 Fix nonsensical bitcoin-cli -norpcwallet behavior 6e8e7f433fc Fix nonsensical -noasmap behavior b6ab3508064 Fix nonsensical -notest behavior 6768389917a Fix nonsensical -norpcwhitelist behavior e03409c70f7 Fix nonsensical -norpcbind and -norpcallowip behavior 40c4899bc20 Fix nonsensical -nobind and -nowhitebind behavior 5453e66fd91 Fix nonsensical -noseednode behavior c242fa5be35 Merge bitcoin/bitcoin#31858: chore: remove redundant word 4c62b37fcd2 chore: remove redundant word 251ea7367cf Merge bitcoin/bitcoin#31767: logging: Ensure -debug=0/none behaves consistently with -nodebug 2434aeab62b depends: avoid an unset CMAKE_OBJDUMP a5b0a441f85 Merge bitcoin/bitcoin#31855: chore: remove redundant word cd4bfaee103 net: reduce CAddress usage to CService or CNetAddr 033acdf03da chore: remove redundant word 55cf39e4c54 Merge bitcoin/bitcoin#31722: cmake: Copy `cov_tool_wrapper.sh.in` to the build tree c3fa043ae56 doc: build: Fix instructions for msvc gui builds 048ef98626b Merge bitcoin/bitcoin#31840: depends: add missing Darwin objcopy 713bf66b1f7 Merge bitcoin/bitcoin#31500: depends: Fix compiling `libevent` package on NetBSD ede388d03df Merge bitcoin/bitcoin#30911: build: simplify by flattening the dependency graph 534414ca9d4 Merge bitcoin/bitcoin#31678: ci: Skip read-write of default env vars 87ce116058f Merge bitcoin/bitcoin#31846: test: Remove stale gettime test fa3a4eafa11 test: Remove stale gettime test 42251e00e8b Merge bitcoin/bitcoin#30584: depends: Make default `host` and `build` comparable 0b6ed342b57 Merge bitcoin/bitcoin#31711: build: set build type and per-build-type flags as early as possible a44ccedcc2c Merge bitcoin/bitcoin#31818: guix: remove test-security/symbol-check scripts 0264c5d86c7 cmake: use per-target components for bitcoin-qt and bitcoin-gui fb0546b1c5e ci: don't try to install for a fuzz build c65233230f1 Merge bitcoin/bitcoin#31022: test: Add mockable steady clock, tests for PCP and NATPMP implementations 86528937e5c Merge bitcoin/bitcoin#31834: build: disable bitcoin-node if daemon is not built 7afeaa24693 test: `-debug=0` and `-debug=none` behave similarly to `-nodebug` a8fedb36a71 logging: Ensure -debug=0/none behaves consistently with -nodebug d39d521d86a test: `-nodebug` clears previously set debug options 3edaf0b4286 depends: add missing Darwin objcopy 2507ebdf1b2 Merge bitcoin/bitcoin#31837: test: add missing sync to p2p_tx_download.py 79f02d56ef7 Merge bitcoin/bitcoin#30623: test: Fuzz the human-readable part of bech32 as well ff3171f96d3 Merge bitcoin/bitcoin#31614: test: expect that files may disappear from /proc/PID/fd/ 56a9b847bba build: set build type and per-build-type flags as early as possible 8fe552fe6e0 test: add missing sync to p2p_tx_download.py af76664b12d test: Test migration of a solvable script with no privkeys 17f01b0795e test: Test migration of taproot output scripts 1eb9a2a39fd test: Test migration of miniscript in legacy wallets e8c3efc7d8f wallet migration: Determine Solvables with CanProvide fa1b7cd6e2c migration: Skip descriptors which do not parse 440ea1ab639 legacy spkm: use IsMine() to extract watched output scripts b777e84cd70 legacy spkm: Move CanProvide to LegacyDataSPKM b1ab927bbf2 tests: Test migration of additional P2WSH scripts 1d813e4bf52 Merge bitcoin/bitcoin#31819: doc: swap CPPFLAGS for APPEND_CPPFLAGS 2ffea09820e build: disable bitcoin-node if daemon is not built f8d3e0edf47 Merge bitcoin/bitcoin#30205: test: add mocked Sock that can read/write custom data and/or CNetMessages 6b165f5906f Merge bitcoin/bitcoin#31384: mining: bugfix: Fix duplicate coinbase tx weight reservation 6a46be75c43 Merge bitcoin/bitcoin#31793: ci: Use clang-20 for sanitizer tasks 76c090145e9 guix: remove test-security/symbol-check scripts 329b60f595e Merge bitcoin/bitcoin#31810: TxOrphanage: account for size of orphans and count announcements bc3f59ca530 Merge bitcoin/bitcoin#31820: build: consistently use `CLIENT_NAME` in libbitcoinkernel.pc.in dead9086543 cmake: Improve compatibility with Python version managers e107bf78f9d [fuzz] TxOrphanage::SanityCheck accounting fb0ada982a7 Merge bitcoin/bitcoin#31811: test: test_inv_block, use mocktime instead of waiting f5b9a2f68c9 build: use CLIENT_NAME in libbitcoinkernel.pc.in ea687d20293 doc: swap CPPFLAGS for APPEND_CPPFLAGS 81eb6cc2c60 Merge bitcoin/bitcoin#31800: depends: Avoid using the `-ffile-prefix-map` compiler option 2f98d1e06ed Merge bitcoin/bitcoin#31814: ci: Bump fuzz task timeout 9cf746d6631 cmake: add optional source files to crc32c directly 9c7823c5b53 cmake: add optional source files to bitcoin_crypto directly faca7ac1321 ci: Bump fuzz task timeout 22dccea5532 [fuzz] txorphan byte accounting 982ce101781 add orphanage byte accounting to TxDownloadManagerImpl::CheckIsEmpty() c289217c014 [txorphanage] track the total number of announcements e5ea7daee01 [txorphanage] add per-peer weight accounting 672c69c688f [refactor] change per-peer workset to info map within orphanage 59cd0f0e091 [txorphanage] account for weight of orphans f93d6cb0caa Merge bitcoin/bitcoin#31809: Prepare "Open Transifex translations for v29.0" release step f605f7a9c26 build: refactor: set debug definitions in main CMakeLists 2706c5b7c8e test: test_inv_block, use mocktime instead of waiting 0a02e7fdeac test: deduplicates p2p_tx_download constants 2f27c910869 qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source file 864386a7444 cmake: Ensure generated sources are up to date for `translate` target d6c229d8bd4 Merge bitcoin/bitcoin#31804: ci: Remove no longer needed `-Wno-error=documentation` 2b51dd384b4 Update Transifex slug for 29.x 82ba5051342 Merge bitcoin/bitcoin#31759: test: fixes p2p_ibd_txrelay wait time ae9eaa063b6 Merge bitcoin/bitcoin#31760: test: make sure we are on sync with a peer before checking if they have sent a message f1d7a6dfa14 ci: Remove no longer needed '-Wno-error=documentation' a43f08c4ae3 Merge bitcoin/bitcoin#25832: tracing: network connection tracepoints 407062f2ac9 depends: Avoid using the `-ffile-prefix-map` compiler option b9c241804c0 Merge bitcoin/bitcoin#30226: test: add validation for gettxout RPC response 1334ca6c070 Merge bitcoin/bitcoin#31437: func test: Expand tx download preference tests 33932d30e38 Merge bitcoin/bitcoin#31784: test: added additional coverage to waitforblock and waitforblockheight rpc's 2aa7be1744a Merge bitcoin/bitcoin#31358: depends: Avoid hardcoding `host_prefix` in toolchain file 386eecff5f1 doc: add release notes 3eaa0a3b663 miner: init: add `-blockreservedweight` startup option 777434a2cd1 doc: rpc: improve `getmininginfo` help text c8acd4032d5 init: fail to start when `-blockmaxweight` exceeds `MAX_BLOCK_WEIGHT` 5bb31633cc9 test: add `-blockmaxweight` startup option functional test 2c7d90a6d67 miner: bugfix: fix duplicate weight reservation in block assembler fa5a02bcfa2 ci: Use clang-20 for sanitizer tasks 474139aa9bf wallet: abandon inactive coinbase tx and their descendants during startup bb0879ddabc test: check `scanning` field from `getwalletinfo` 94ca99ac51d Merge bitcoin/bitcoin#31666: multi-peer orphan resolution followups 6f5ae1a5745 Merge bitcoin/bitcoin#31653: lint: Call more checks from test_runner e3622a96929 tracing: document that peer addrs can be >68 chars b19b526758f tracing: log_p2p_connections.bt example caa5486574b tracing: connection closed tracepoint b2ad6ede95e tracing: add misbehaving conn tracepoint 68c1ef4f19b tracing: add inbound connection eviction tracepoint 4d61d52f438 tracing: add outbound connection tracepoint 85b2603eec6 tracing: add inbound connection tracepoint 7e0db87d4ff test: added additional coverage to waitforblock and waitforblockheight rpc's f89f16846ec depends: Fix compiling `libevent` package on NetBSD 1172bc4157e Merge bitcoin-core/gui#850: psbt: Use SIGHASH_DEFAULT when signing PSBTs 12fa9511b5f build: simplify dependency graph c4e498300c7 build: avoid unnecessary dependencies on generated headers 7426afbe624 [p2p] assign just 1 random announcer in AddChildrenToWorkSet 4c1fa6b28c2 test fix: make peer who sends MSG_TX announcement non-wtxidrelay 2da46b88f09 pass P2PTxInvStore init args to P2PInterface init e3bd51e4b52 [doc] how unique_parents can be empty 32eb6dc758a [refactor] assign local variable for wtxid 18820ccf6b2 multi-announcer orphan handling test fixups c4cc61db98f [fuzz] GetCandidatePeers 7704139cf0d [refactor] make GetCandidatePeers take uint256 and in-out vector 6e4d392a753 [refactor] rename to OrphanResolutionCandidate to MaybeAdd* 57221ad9797 [refactor] move parent inv-adding to OrphanResolutionCandidate 3f4b104b1b7 test: make sure we are on sync with a peer before checking if they have sent a message 1973a9e4f1d test: fixes p2p_ibd_txrelay wait time 723440c5b8e test framework, wallet: rename get_scriptPubKey method to get_output_script fa0232a3e07 test: add validation for gettxout RPC response 81c174e3186 cmake: Refer to the configure log instead of printing PIE test error e3c01527696 cmake: Copy `cov_tool_wrapper.sh.in` to the build tree faf8fc5487d lint: Call lint_commit_msg from test_runner fa99728b0c8 lint: Move commit range printing to test_runner fa673cf3449 lint: Call lint_scripted_diff from test_runner bb633c9407c tests: add functional test for miniscript decaying multisig c39b3cfcd1b test: Extra verification that migratewallet migrates 0c1b29a0577 ci: use GCC 13 for some jobs cbc65b3ad5a guix: use GCC 13.3.0 for base toolchain. fa952acdb6e ci: Skip read-write of default env vars a759ea3e920 doc: Improve dependencies documentation f0e5e4cdbec test: Add test for rpcwhitelistdefault 0f716f28896 qa: cover PROTOCOL_ERROR variant in PCP unit tests fc700bb47fd test: Add tests for PCP and NATPMP implementations 65a0920ca6b cmake: Add `CheckLinkerSupportsPIE` module caf95210331 net: Use mockable steady clock in PCP implementation 03648321ecb util: Add mockable steady_clock ab1d3ece026 net: Add optional length checking to CService::SetSockAddr 4818da809f0 wallet: fix rescanning inconsistency b2e9fdc00f5 test: expect that files may disappear from /proc/PID/fd/ 3e97ff9c5ea gui, psbt: Use SIGHASH_DEFAULT when signing PSBTs f919d919eb8 fuzz: Add fuzzing for max_ret_len in DecodeBase58/DecodeBase58Check 635bc58f46b test: Fuzz Base32/Base58/Base64 roundtrip conversions 5dd3a0d8a89 test: Extend base58_encode_decode.json with edge cases ae40cf1a8e1 test: Add padding tests for Base32/Base64 4080b66cbec test: add test for utxo-to-sqlite conversion script ec99ed73808 contrib: add tool to convert compact-serialized UTXO set to SQLite database b448b014947 test: add a mocked Sock that allows inspecting what has been Send() to it f1864148c4a test: put the generic parts from StaticContentsSock into a separate class c9136ca9060 validation: fix issue with an interrupted -reindex a2675897e2a validation: Don't loop over all chainstates in LoadExternalBlock 846a1387280 func test: Expand tx download preference tests c4c5cf17488 cmake: Fix passing `APPEND_*FLAGS` to `secp256k1` subtree eb540a26295 cmake: Remove `core_sanitizer_{cxx,linker}_flags` helper variables fa8e0956c23 rpc: Remove deprecated dummy alias for listtransactions::label 9e4a4b48322 cmake: Check `-Wno-*` compiler options for `leveldb` target d9c8aacce38 depends, refactor: Avoid hardcoding `host_prefix` in toolchain file 4b58d55878d test: move the implementation of StaticContentsSock to .cpp 70398ae05bc mapport: make ProcessPCP void 9e6cba29882 mapport: remove unnecessary 'g_mapport_enabled' 8fb45fcda07 mapport: remove unnecessary 'g_mapport_current' variable 1b223cb19b4 mapport: merge DispatchMapPort into StartMapPort 9bd936fa34a mapport: drop unnecessary function 2a6536ceda7 mapport: rename 'use_pcp' to 'enable' c4e82b854cd mapport: make 'enabled' and 'current' bool 9b7023d31a3 Fuzz HRP of bech32 as well c1a5d5c100b Split out bech32 separator char to header b28917be363 depends: Make default `host` and `build` comparable REVERT: 5aeaa3f49d1 kernel: Add pure kernel bitcoin-chainstate REVERT: 6fd40a85c58 kernel: Add functions to get the block hash from a block REVERT: 5a455e0f302 kernel: Add block index utility functions to C header REVERT: 0ecac1bb090 kernel: Add function to read block undo data from disk to C header REVERT: aa3a766eefc kernel: Add functions to read block from disk to C header REVERT: b0e4555ed33 kernel: Add function for copying block data to C header REVERT: 145bd659066 kernel: Add functions for the block validation state to C header REVERT: b45b99fbb79 kernel: Add validation interface to C header REVERT: 881f91aab96 kernel: Add interrupt function to C header REVERT: fdd3ba615ca kernel: Add import blocks function to C header REVERT: 1484e67bf08 kernel: Add chainstate load options for in-memory dbs in C header REVERT: ab872e24041 kernel: Add options for reindexing in C header REVERT: 1abb7360f88 kernel: Add block validation to C header REVERT: c42bfed83d4 kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 1b7df118081 kernel: Add chainstate manager option for setting worker threads REVERT: 5f61d9eafde kernel: Add chainstate manager object to C header REVERT: a677be25c5d kernel: Add notifications context option to C header REVERT: 1d567b07136 kernel: Add chain params context option to C header REVERT: 60aed1c857c kernel: Add kernel library context object REVERT: ad5c98980a0 kernel: Add logging to kernel library C header REVERT: 6ba27ef2b41 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 29513955891e40e78466f2c666dfa13e9c1b2914
1 parent 9ce17e5 commit f78a01a

File tree

154 files changed

+5652
-2467
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+5652
-2467
lines changed

.cirrus.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ task:
182182
persistent_worker:
183183
labels:
184184
type: medium
185+
timeout_in: 240m # larger timeout, due to the high CPU demand
185186
env:
186187
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
187188

.tx/config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[main]
22
host = https://www.transifex.com
33

4-
[o:bitcoin:p:bitcoin:r:qt-translation-028x]
4+
[o:bitcoin:p:bitcoin:r:qt-translation-029x]
55
file_filter = src/qt/locale/bitcoin_<lang>.xlf
66
source_file = src/qt/locale/bitcoin_en.xlf
77
source_lang = en

CMakeLists.txt

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
7070
set(CMAKE_CXX_EXTENSIONS OFF)
7171

7272
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/module)
73+
include(ProcessConfigurations)
74+
75+
# Flatten static lib dependencies.
76+
# Without this, if libfoo.a depends on libbar.a, libfoo's objects can't begin
77+
# to be compiled until libbar.a has been created.
78+
if (NOT DEFINED CMAKE_OPTIMIZE_DEPENDENCIES)
79+
set(CMAKE_OPTIMIZE_DEPENDENCIES TRUE)
80+
endif()
7381

7482
#=============================
7583
# Configurable options
@@ -187,16 +195,8 @@ string(APPEND CMAKE_CXX_LINK_EXECUTABLE " ${APPEND_LDFLAGS}")
187195

188196
set(configure_warnings)
189197

190-
include(CheckPIESupported)
191-
check_pie_supported(OUTPUT_VARIABLE check_pie_output LANGUAGES CXX)
192-
if(CMAKE_CXX_LINK_PIE_SUPPORTED)
193-
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
194-
elseif(NOT WIN32)
195-
# The warning is superfluous for Windows.
196-
message(WARNING "PIE is not supported at link time: ${check_pie_output}")
197-
list(APPEND configure_warnings "Position independent code disabled.")
198-
endif()
199-
unset(check_pie_output)
198+
include(CheckLinkerSupportsPIE)
199+
check_linker_supports_pie(configure_warnings)
200200

201201
# The core_interface library aims to encapsulate common build flags.
202202
# It is a usage requirement for all targets except for secp256k1, which
@@ -232,11 +232,18 @@ if(BUILD_FOR_FUZZING)
232232
)
233233
endif()
234234

235-
include(ProcessConfigurations)
236-
237235
include(TryAppendCXXFlags)
238236
include(TryAppendLinkerFlag)
239237

238+
# Redefine/adjust per-configuration flags.
239+
target_compile_definitions(core_interface_debug INTERFACE
240+
DEBUG
241+
DEBUG_LOCKORDER
242+
DEBUG_LOCKCONTENTION
243+
RPC_DOC_CHECK
244+
ABORT_ON_FAILED_ASSUME
245+
)
246+
240247
if(WIN32)
241248
#[=[
242249
This build system supports two ways to build binaries for Windows.
@@ -445,6 +452,7 @@ endif()
445452
configure_file(cmake/script/Coverage.cmake Coverage.cmake USE_SOURCE_PERMISSIONS COPYONLY)
446453
configure_file(cmake/script/CoverageFuzz.cmake CoverageFuzz.cmake USE_SOURCE_PERMISSIONS COPYONLY)
447454
configure_file(cmake/script/CoverageInclude.cmake.in CoverageInclude.cmake USE_SOURCE_PERMISSIONS @ONLY)
455+
configure_file(cmake/script/cov_tool_wrapper.sh.in cov_tool_wrapper.sh.in USE_SOURCE_PERMISSIONS COPYONLY)
448456
configure_file(contrib/filter-lcov.py filter-lcov.py USE_SOURCE_PERMISSIONS COPYONLY)
449457

450458
# Don't allow extended (non-ASCII) symbols in identifiers. This is easier for code review.
@@ -546,6 +554,13 @@ if(WERROR)
546554
unset(werror_flag)
547555
endif()
548556

557+
# Prefer Unix-style package components over frameworks on macOS.
558+
# This improves compatibility with Python version managers.
559+
set(Python3_FIND_FRAMEWORK LAST CACHE STRING "")
560+
# Search for generic names before more specialized ones. This
561+
# improves compatibility with Python version managers that use shims.
562+
set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "")
563+
mark_as_advanced(Python3_FIND_FRAMEWORK Python3_FIND_UNVERSIONED_NAMES)
549564
find_package(Python3 3.10 COMPONENTS Interpreter)
550565
if(Python3_EXECUTABLE)
551566
set(PYTHON_COMMAND ${Python3_EXECUTABLE})
@@ -611,7 +626,12 @@ message("Configure summary")
611626
message("=================")
612627
message("Executables:")
613628
message(" bitcoind ............................ ${BUILD_DAEMON}")
614-
message(" bitcoin-node (multiprocess) ......... ${WITH_MULTIPROCESS}")
629+
if(BUILD_DAEMON AND WITH_MULTIPROCESS)
630+
set(bitcoin_daemon_status ON)
631+
else()
632+
set(bitcoin_daemon_status OFF)
633+
endif()
634+
message(" bitcoin-node (multiprocess) ......... ${bitcoin_daemon_status}")
615635
message(" bitcoin-qt (GUI) .................... ${BUILD_GUI}")
616636
if(BUILD_GUI AND WITH_MULTIPROCESS)
617637
set(bitcoin_gui_status ON)

ci/lint/06_script.sh

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bash
22
#
3-
# Copyright (c) 2018-2022 The Bitcoin Core developers
3+
# Copyright (c) 2018-present The Bitcoin Core developers
44
# Distributed under the MIT software license, see the accompanying
55
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
66

@@ -9,23 +9,13 @@ export LC_ALL=C
99
set -ex
1010

1111
if [ -n "$CIRRUS_PR" ]; then
12-
COMMIT_RANGE="HEAD~..HEAD"
12+
export COMMIT_RANGE="HEAD~..HEAD"
1313
if [ "$(git rev-list -1 HEAD)" != "$(git rev-list -1 --merges HEAD)" ]; then
1414
echo "Error: The top commit must be a merge commit, usually the remote 'pull/${PR_NUMBER}/merge' branch."
1515
false
1616
fi
17-
else
18-
# Otherwise, assume that a merge commit exists. This merge commit is assumed
19-
# to be the base, after which linting will be done. If the merge commit is
20-
# HEAD, the range will be empty.
21-
COMMIT_RANGE="$( git rev-list --max-count=1 --merges HEAD )..HEAD"
2217
fi
23-
export COMMIT_RANGE
2418

25-
echo
26-
git log --no-merges --oneline "$COMMIT_RANGE"
27-
echo
28-
test/lint/commit-script-check.sh "$COMMIT_RANGE"
2919
RUST_BACKTRACE=1 "${LINT_RUNNER_PATH}/test_runner"
3020

3121
if [ "$CIRRUS_REPO_FULL_NAME" = "bitcoin/bitcoin" ] && [ "$CIRRUS_PR" = "" ] ; then

ci/test/00_setup_env_arm.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export HOST=arm-linux-gnueabihf
1010
export DPKG_ADD_ARCH="armhf"
1111
export PACKAGES="python3-zmq g++-arm-linux-gnueabihf busybox libc6:armhf libstdc++6:armhf libfontconfig1:armhf libxcb1:armhf"
1212
export CONTAINER_NAME=ci_arm_linux
13-
export CI_IMAGE_NAME_TAG="docker.io/debian:bookworm" # Check that https://packages.debian.org/bookworm/g++-arm-linux-gnueabihf (version 12.2, similar to guix) can cross-compile
13+
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:noble" # Check that https://packages.ubuntu.com/noble/g++-arm-linux-gnueabihf (version 13.3, similar to guix) can cross-compile
1414
export CI_IMAGE_PLATFORM="linux/arm64"
1515
export USE_BUSY_BOX=true
1616
export RUN_UNIT_TESTS=true

ci/test/00_setup_env_i686_multiprocess.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ export BITCOIN_CONFIG="\
1818
-DCMAKE_BUILD_TYPE=Debug \
1919
-DCMAKE_C_COMPILER='clang;-m32' \
2020
-DCMAKE_CXX_COMPILER='clang++;-m32' \
21-
-DCMAKE_CXX_FLAGS='-Wno-error=documentation' \
2221
-DAPPEND_CPPFLAGS='-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE' \
2322
"
2423
export BITCOIND=bitcoin-node # Used in functional tests

ci/test/00_setup_env_mac_native_fuzz.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ export OSX_SDK=""
1414
export RUN_UNIT_TESTS=false
1515
export RUN_FUNCTIONAL_TESTS=false
1616
export RUN_FUZZ_TESTS=true
17+
export GOAL="all"

ci/test/00_setup_env_native_asan.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ else
1919
fi
2020

2121
export CONTAINER_NAME=ci_native_asan
22-
export APT_LLVM_V="19"
22+
export APT_LLVM_V="20"
2323
export PACKAGES="systemtap-sdt-dev clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev python3-zmq qtbase5-dev qttools5-dev qttools5-dev-tools libevent-dev libboost-dev libdb5.3++-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE}"
2424
export NO_DEPENDS=1
2525
export GOAL="install"

ci/test/00_setup_env_native_fuzz.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ export LC_ALL=C.UTF-8
88

99
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
1010
export CONTAINER_NAME=ci_native_fuzz
11-
export APT_LLVM_V="19"
11+
export APT_LLVM_V="20"
1212
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev libevent-dev libboost-dev libsqlite3-dev"
1313
export NO_DEPENDS=1
1414
export RUN_UNIT_TESTS=false
1515
export RUN_FUNCTIONAL_TESTS=false
1616
export RUN_FUZZ_TESTS=true
17-
export GOAL="install"
17+
export GOAL="all"
1818
export CI_CONTAINER_CAP="--cap-add SYS_PTRACE" # If run with (ASan + LSan), the container needs access to ptrace (https://github.com/google/sanitizers/issues/764)
1919
export BITCOIN_CONFIG="\
2020
-DBUILD_FOR_FUZZING=ON \

ci/test/00_setup_env_native_tsan.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
88

99
export CONTAINER_NAME=ci_native_tsan
1010
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
11-
export APT_LLVM_V="19"
11+
export APT_LLVM_V="20"
1212
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev libc++abi-${APT_LLVM_V}-dev libc++-${APT_LLVM_V}-dev python3-zmq"
1313
export DEP_OPTS="CC=clang-${APT_LLVM_V} CXX='clang++-${APT_LLVM_V} -stdlib=libc++'"
1414
export GOAL="install"

0 commit comments

Comments
 (0)