Skip to content

Commit f50d90f

Browse files
committed
Squashed 'libbitcoinkernel-sys/bitcoin/' changes from 20be96ee696..1ea43dc365c
1ea43dc365c kernel: Add Purpose section to header documentation 6fb86d14a3e kernel: Allowing reducing exports 0a3644da67e kernel: Add pure kernel bitcoin-chainstate bb7276e1a72 Kernel: Add functions for working with outpoints 5ef72e7c44b kernel: Add block hash type and block tree utility functions to C header 43b7b7b9d28 kernel: Add function to read block undo data from disk to C header 06a485c9ab1 kernel: Add functions to read block from disk to C header 69c184b44f9 kernel: Add function for copying block data to C header 0e973b20fcc kernel: Add functions for the block validation state to C header 6c2181dc52f kernel: Add validation interface to C header 4d8aa6b3fb1 kernel: Add interrupt function to C header 2ecd926cf30 kernel: Add import blocks function to C header efcfe2dfedf kernel: Add chainstate load options for in-memory dbs in C header bc6788ab7dc kernel: Add options for reindexing in C header e8f2f4fe225 kernel: Add block validation to C header ffd4ae233ee kernel: Add chainstate loading when instantiating a ChainstateManager 1167af89a8f kernel: Add chainstate manager option for setting worker threads b88637f6967 kernel: Add chainstate manager object to C header b4ff3ce0d34 kernel: Add notifications context option to C header e3d62c1ad32 kernel: Add chain params context option to C header a184a263df2 kernel: Add kernel library context object 776c879eaf7 kernel: Add logging to kernel library C header e3b2e01811f kernel: Introduce initial kernel C header API 3bb30658e63 Merge bitcoin/bitcoin#32380: Modernize use of UTF-8 in Windows code 5a58d4915e5 Merge bitcoin/bitcoin#33546: test: add functional test for `TestShell` (matching doc example) 1abc8fa308d Merge bitcoin/bitcoin#33218: refactor: rename `fees.{h,cpp}` to `fees/block_policy_estimator.{h,cpp}` de15e52f09d Merge bitcoin/bitcoin#32867: doc: mention key removal in rpc interface modification 24434c1284b Merge bitcoin/bitcoin#31308: ci, iwyu: Treat warnings as errors for specific directories 27cd7f50494 Merge bitcoin/bitcoin#33185: guix: update time-machine to 5cb84f2013c5b1e48a7d0e617032266f1e6059e2 80bb7012be8 Merge bitcoin/bitcoin#31514: wallet: allow label for non-ranged external descriptor (if `internal=false`) & disallow label for ranged descriptors 5e1f626ac30 Merge bitcoin/bitcoin#32504: test: descriptor: cover invalid multi/multi_a cases 56e9703968e Merge bitcoin/bitcoin#29640: Fix tiebreak when loading blocks from disk (and add tests for comparing chain ties) 9bd9ec00b23 Merge bitcoin/bitcoin#33688: test: Update BIP324 test vectors 1a7fb5eeeef fees: return current block height in estimateSmartFee ab49480d9be fees: rename fees_args to block_policy_estimator_args 06db08a4356 fees: refactor: rename fees to block_policy_estimator 6dfdd7e034d fees: refactor: rename policy_fee_tests.cpp to feerounder_tests.cpp f54ffb4bc14 Merge bitcoin/bitcoin#32813: clang-format: make formatting deterministic for different formatter versions 1916c51cd85 Merge bitcoin/bitcoin#33210: fuzz: enhance wallet_fees by mocking mempool stuff 0eb554728ca Merge bitcoin/bitcoin#33336: log: print every script verification state change c6c4edf324a Merge bitcoin/bitcoin#32983: rpc: refactor: use string_view in Arg/MaybeArg 00ad998d954 Merge bitcoin/bitcoin#33252: p2p: add `DifferenceFormatter` fuzz target and invariant check f6ba97cea1d Merge bitcoin/bitcoin#33666: ci: Drop libFuzzer from msan fuzz task af78d365129 Merge bitcoin/bitcoin#32588: util: Abort on failing CHECK_NONFATAL in debug builds 51877f2fc5e test: Update BIP324 test vectors 161864a038e Merge bitcoin/bitcoin#32579: p2p: Correct unrealistic headerssync unit test behavior 70a6fb5e5ab Merge bitcoin/bitcoin#33172: test: p2p block malleability 99cb2054bdf Merge bitcoin/bitcoin#33600: refactor: Construct g_verify_flag_names on first use 211bf6c9750 Merge bitcoin/bitcoin#33566: miner: fix empty mempool case for waitNext() 944e5ff848f doc: mention key removal in rpc interface modification d32f9525e48 Merge bitcoin/bitcoin#33679: test: set number of RPC server threads to 2 1c85d062321 Merge bitcoin/bitcoin#32266: depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent` 11684c9ce2c Merge bitcoin/bitcoin#33674: ci: Doc ASLR workaround for sanitizer tasks e9cd45e3d3c test: set number of RPC server threads to 2 7d27af98c7c Merge bitcoin/bitcoin#33461: ci: add Valgrind fuzz 1569bcc387f Merge bitcoin/bitcoin#33639: ci: Only write docker build images to Cirrus cache 98c4994d0f3 Merge bitcoin/bitcoin#33570: randomenv: Fix MinGW dllimport warning for `environ` c211d183221 Merge bitcoin/bitcoin#33670: test: Use unassigned p2p_port instead of hardcoded 60000 in p2p_i2p_ports.py e4b04630bcf ci: add Valgrind fuzz 3fee0754a2e Merge bitcoin/bitcoin#33550: Fix windows libc++ `fs::path` `fstream` compile errors fa0e36156cb ci: Doc ASLR workaround for sanitizer tasks fa20275db32 test: Use unassigned p2p_port instead of hardcoded 60000 in p2p_i2p_ports.py c862936d16a Merge bitcoin/bitcoin#33370: ci: use Mold linker for asan-lsan-ubsan-integer-no-depends-usdt workflow fabe0e07de1 ci: Only write docker build images to Cirrus cache fab64a5d6fd ci: Move buildx command to python script fa72a2bd5c8 ci: Remove unused MAYBE_CPUSET fa70e23de75 ci: Drop libFuzzer from msan fuzz task abe7cbfe1a4 Merge bitcoin/bitcoin#33470: build: Move CMAKE_SKIP_INSTALL_RPATH from CMake to Guix script 689ec28d1d1 Merge bitcoin/bitcoin#33633: test: [move-only] binary utils to utils.py 0eeae4d174a Merge bitcoin/bitcoin#33625: Update secp256k1 subtree to latest master 4b41f99d57d build: Move CMAKE_SKIP_INSTALL_RPATH from CMake to Guix script d30f149360d Merge bitcoin/bitcoin#33630: doc: correct topology requirements in submitpackage helptext 3d222825642 [doc] correct topology requirements in submitpackage helptext e744fd1249b Merge bitcoin/bitcoin#33641: Update leveldb subtree to latest master 4371740bebf Merge bitcoin/bitcoin#33642: doc: archive release notes for v28.3 ceea24b9215 doc: archive release notes for v28.3 54ffe3de5b1 Update leveldb subtree to latest master f21162d8193 Squashed 'src/leveldb/' changes from aba469ad6a..cad64b151d e14451ac873 Merge bitcoin/bitcoin#33469: TxGraph: change m_excluded_clusters f76e1ae3899 Merge bitcoin/bitcoin#32313: coins: fix `cachedCoinsUsage` accounting in `CCoinsViewCache` 59c4898994b guix: remove python-pydantic-core input from LIEF 9f2a6927d3a guix: use Clang & LLVM 19 for macOS build 9570ddbec9c guix: update time-machine to 5cb84f2013c5b1e48a7d0e617032266f1e6059e2 7b5cc276aa0 guix: patch around riscv issue with newer (2.40+) binutils 91b5cbaabbc ci: use Debian Trixie for macOS cross job fa75ef4328f test: Move export_env_build_path to util.py fa9f495308a test: Move get_binary_paths and Binaries to util.py 40e7d4cd0d7 Merge bitcoin/bitcoin#33549: ci: Add macOS cross task for arm64-apple-darwin ea17618c116 Merge bitcoin/bitcoin#33480: ci: Turn CentOS config into Alpine musl config b1f8a13702e Merge bitcoin/bitcoin#33624: test: P2SH sig ops are only counted with `SCRIPT_VERIFY_P2SH` 879c21045eb Update secp256k1 subtree to latest master 3cbf7cb3e6a Squashed 'src/secp256k1/' changes from b9313c6e1a..d543c0d917 2f7a50f67cd Merge bitcoin/bitcoin#33462: ci: add libcpp hardening flags to macOS fuzz job 48aa0e98d0b Merge bitcoin/bitcoin#29675: wallet: Be able to receive and spend inputs involving MuSig2 aggregate keys db4bde0b034 Merge bitcoin/bitcoin#33517: multiprocess: Fix high overhead from message logging 3a10d700bc1 test: P2SH sig ops are only counted with `SCRIPT_VERIFY_P2SH` flag 9314113b295 Merge bitcoin/bitcoin#33610: doc: archive release notes for v29.2 9b43428c968 TxGraph: change m_excluded_clusters 6e1adbbaa15 Merge bitcoin/bitcoin#33612: test: change log rate limit version gate fdcf67de803 Merge bitcoin/bitcoin#33157: cluster mempool: control/optimize TxGraph memory usage 7b544341c00 test: change log rate limit version gate from 299900 to 290100 9610b0d1e28 randomenv: Fix MinGW dllimport warning for `environ` 6c4fe401e90 Merge bitcoin/bitcoin#33508: ci: fix buildx gha cache authentication on forks 8f7673257a1 miner: fix empty mempool case for waitNext() c11a3dcc889 doc: archive release notes for v29.2 64a7c7cbb97 Merge bitcoin/bitcoin#33558: ci: Use native platform for win-cross task 93b56e95c02 Merge bitcoin/bitcoin#33601: doc: archive release notes for v30.0 563747971be Merge bitcoin/bitcoin#33580: depends: Use $(package)_file_name when downloading from the fallback 24d861da789 coins: only adjust `cachedCoinsUsage` on `EmplaceCoinInternalDANGER` insert d7c9d6c2914 coins: fix `cachedCoinsUsage` accounting to prevent underflow 39cf8bb3d0d refactor: remove redundant usage tracking from `CoinsViewCacheCursor` 67cff8bec90 refactor: assert newly-created parent cache entry has zero memory usage 023cd5a5469 txgraph: add SingletonClusterImpl (mem optimization) e3462507325 txgraph: give Clusters a range of intended tx counts (preparation) e93b0f09cc2 txgraph: abstract out creation of empty Clusters (refactor) 6baf12621f6 txgraph: comment fixes (doc fix) 726b995739a txgraph: make Cluster an abstract class (refactor) 2602d89edd0 txgraph: avoid accessing other Cluster internals (refactor) 04c808ac4c4 txgraph: expose memory usage estimate function (feature) 7680bb8fd48 txgraph: keep track of Cluster memory usage (preparation) 4ba562e5f4e txgraph: keep data structures compact (mem optimization) bb5cb222ae5 depgraph: add memory usage control (feature) b1637a90deb txgraph: avoid holes in DepGraph positions (mem optimization) 2b1d3025087 txgraph: move some sanity checks from Cluster to TxGraphImpl (refactor) d40302fbaf4 txgraph: Make level of Cluster implicit (optimization) 8d6e49158e3 doc: archive release notes for v30.0 0626b90f507 multiprocess: align our logging with libmultiprocess's 9d068225ee2 multiprocess: update multiprocess EventLoop construction to use options d2987102dd1 Merge bitcoin/bitcoin#33573: doc: bump the template macOS version f6567527d8d doc: bump the template macOS version faa9d10c84b refactor: Construct g_verify_flag_names on first use becf1500131 Merge bitcoin/bitcoin#33518: Update libmultiprocess subtree to support reduced logging cd1b7fa1ff7 Merge bitcoin/bitcoin#33577: Revert "depends: Update URL for `qrencode` package source tarball" 6b4a92b0fab Merge bitcoin/bitcoin#33568: doc: how to update a subtree 90b2884ce4b Merge bitcoin/bitcoin#33581: ci: Properly include $FILE_ENV in DEPENDS_HASH d44b860cd09 Merge bitcoin/bitcoin#33584: ci: upgrade GitHub Action to download-artifact@v5 57f7c68821d test: add functional test for `TestShell` (matching doc example) 53874f7934d doc: test: update TestShell example instructions/options b35341b9ba6 Update ci.yml ceeb53adcd0 ci: Properly include $FILE_ENV in DEPENDS_HASH 671b774d1b5 depends: Use $(package)_file_name when downloading from the fallback e4335a31920 Revert "depends: Update URL for `qrencode` package source tarball" a89a822e6eb Revert "depends: Use hash instead of file name for package download stamp" fad5a7101cc ci: Add macOS cross task for arm64 fa8c750a0af ci: Refactor get_previous_releases step in win-test-cross task e4c04f7759b ci: add libcpp hardening flags to macOS fuzz job a1226bc760c doc: how to update a subtree eda91b07fd9 Merge commit '0f01e1577f7c6734eb345139a12aba329ef22a5f' into pr/subtree-6 0f01e1577f7 Squashed 'src/ipc/libmultiprocess/' changes from 47d79db8a552..a4f929696490 fa6fd16f36e ci: Use native platform for win-cross task 53e4951a5b5 Switch to ANSI Windows API in `fsbridge::fopen()` function dbe770d9210 Switch to ANSI Windows API in `Win32ErrorString()` function 06d0be4e22c Remove no longer necessary `WinCmdLineArgs` class f366408492f cmake: Set process code page to UTF-8 on Windows dccbb178065 Set minimum supported Windows version to 1903 (May 2019 Update) c864a4c1940 Simplify fs::path by dropping filename() and make_preferred() overloads b0113afd44b Fix windows libc++ fs::path fstream compile errors b63428ac9ce rpc: refactor: use more (Maybe)Arg<std::string_view> 037830ca0db refactor: increase string_view usage b3bf18f0bac rpc: refactor: use string_view in Arg/MaybeArg 45bd8914658 log: split assumevalid ancestry-failure-reason message 6c13a38ab51 log: separate script verification reasons f2ea6f04e79 refactor: untangle assumevalid decision branches 9bc298556cb validation: log initial script verification state 4fad4e992c4 test: add assumevalid scenarios scaffold ac599c4a9cb test: Test MuSig2 in the wallet 68ef954c4c5 wallet: Keep secnonces in DescriptorScriptPubKeyMan 4a273edda0e sign: Create MuSig2 signatures for known MuSig2 aggregate keys 258db938899 sign: Add CreateMuSig2AggregateSig bf69442b3f5 sign: Add CreateMuSig2PartialSig 512b17fc56e sign: Add CreateMuSig2Nonce 82ea67c607c musig: Add MuSig2AggregatePubkeys variant that validates the aggregate d99a081679e psbt: MuSig2 data in Fill/FromSignatureData 4d8b4f53363 signingprovider: Add musig2 secnonces c06a1dc86ff Add MuSig2SecNonce class for secure allocation of musig nonces 9baff05e494 sign: Include taproot output key's KeyOriginInfo in sigdata 4b24bfeab9d pubkey: Return tweaks from BIP32 derivation bc706955d74 ci: expose all ACTIONS_* vars 444409ff2b7 ci: Reduce Alpine musl task to md runner size fa6b2e9efec ci: Turn centos config into alpine musl config 91ac64b0a66 log: reword `signature validations` to `script verification` in `assumevalid` log f14876213aa musig: Move synthetic xpub construction to its own function f031536f2d2 ci: use Mold linker for asan-lsan-ubsan-integer-no-depends-usdt workflow cc5dda1de33 headerssync: Make HeadersSyncState more flexible and move constants 8fd1c2893e6 test(headerssync): Test returning of pow_validated_headers behavior 7b00643ef5f test(headerssync): headers_sync_chainwork test improvements 04eeb9578c6 doc(test): Improve comments fe896f8faa7 refactor(test): Store HeadersSyncState on the stack f03686892a9 refactor(test): Break up headers_sync_state e984618d0b9 refactor(headerssync): Process spans of headers a4ac9915a95 refactor(headerssync): Extract test constants ahead of breakup into functions 02d2b5a11c9 ci, iwyu: Treat warnings as errors for specific directories 57a3eac387b refactor: Fix includes in `index` directory bdb8eadcdc1 refactor: Fix includes in `crypto` directory 56f2a689a20 ci: Do not patch `leveldb` to workaround UB in "tidy" CI job 65a10fc3c52 p2p: add assertion for BlockTransactionsRequest indexes 58be359f6b2 fuzz: add a target for DifferenceFormatter Class 13f36c020f0 clang-format: regenerate configs 5ded99a7f00 fuzz: MockMempoolMinFee in wallet_fees c9a7a198d9e test: move MockMempoolMinFee to util/txmempool adf67eb21ba fuzz: create FeeEstimatorTestingSetup to set fee_estimator ff10a37e992 fuzz: mock CBlockPolicyEstimator in wallet_fuzz f591c3becaf fees: make estimateSmartFee/HighestTargetTracked virtual for mocking d0e1bbad016 test: repeat block malleability test with relayable block over P2P 19273d0705f fuzz: set mempool options in wallet_fees fb8720f1e09 sign: Refactor Schnorr sighash computation out of CreateSchnorrSig a4cfddda644 tests: Clarify why musig derivation adds a pubkey and xpub 39a63bf2e7e descriptors: Add a doxygen comment for has_hardened output_parameter 2320184d0ea descriptors: Fix meaning of any_key_parsed 0465574c127 test: Fixes send_blocks_and_test docs 09c95f21e71 test: Adds block tiebreak over restarts tests 18524b072e6 Make nSequenceId init value constants 8b91883a23a Set the same best tip on restart if two candidates have the same work 5370bed21e0 test: add functional test for complex reorgs ab145cb3b47 Updates CBlockIndexWorkComparator outdated comment fa37153288c util: Abort on failing CHECK_NONFATAL in debug builds fa0dc4bdffb test: Allow testing of check failures faeb58fe668 refactor: Set G_ABORT_ON_FAILED_ASSUME when G_FUZZING_BUILD 58e55b17e63 test: descriptor: cover invalid multi/multi_a cases 664657ed134 bugfix: disallow label for ranged descriptors & allow external non-ranged descriptors to have label fe71a4b139f depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent` REVERT: 20be96ee696 kernel: Fix bitcoin-chainstate for windows REVERT: db5bc2b0968 kernel: Add Purpose section to header documentation REVERT: e5ddd70c24d kernel: Allowing reducing exports REVERT: 740f2ef7686 kernel: Add pure kernel bitcoin-chainstate REVERT: c89b59fc686 Kernel: Add functions for working with outpoints REVERT: f82d691fba5 kernel: Add block hash type and block tree utility functions to C header REVERT: cd70f570ec6 kernel: Add function to read block undo data from disk to C header REVERT: 301c10f598d kernel: Add functions to read block from disk to C header REVERT: 7092fee527a kernel: Add function for copying block data to C header REVERT: 91a51d249f8 kernel: Add functions for the block validation state to C header REVERT: 8cdd29f3c22 kernel: Add validation interface to C header REVERT: a4652f7897e kernel: Add interrupt function to C header REVERT: 40004832679 kernel: Add import blocks function to C header REVERT: d775ba66670 kernel: Add chainstate load options for in-memory dbs in C header REVERT: d26192373b6 kernel: Add options for reindexing in C header REVERT: 803e0de7aaa kernel: Add block validation to C header REVERT: 781c7af4e2d kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: f9bf4d9b313 kernel: Add chainstate manager option for setting worker threads REVERT: 3270c0615a7 kernel: Add chainstate manager object to C header REVERT: 0ac5368b3df kernel: Add notifications context option to C header REVERT: b47496af140 kernel: Add chain params context option to C header REVERT: 92f54852259 kernel: Add kernel library context object REVERT: 3204110daee kernel: Add logging to kernel library C header REVERT: aba7824242d kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 1ea43dc365c277f519f30f55dae6b0899e611765
1 parent 050c44d commit f50d90f

File tree

294 files changed

+6099
-2007
lines changed

Some content is hidden

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

294 files changed

+6099
-2007
lines changed

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ body:
7878
id: os
7979
attributes:
8080
label: Operating system and version
81-
placeholder: e.g. "MacOS Ventura 13.2" or "Ubuntu 22.04 LTS"
81+
placeholder: e.g. "MacOS 26.0" or "Ubuntu 26.04 LTS"
8282
validations:
8383
required: true
8484
- type: textarea
@@ -90,4 +90,3 @@ body:
9090
e.g. OS/CPU and disk type, network connectivity
9191
validations:
9292
required: false
93-

.github/actions/configure-docker/action.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@ runs:
2222
uses: actions/github-script@v6
2323
with:
2424
script: |
25-
core.exportVariable('ACTIONS_CACHE_URL', process.env['ACTIONS_CACHE_URL'])
26-
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env['ACTIONS_RUNTIME_TOKEN'])
25+
Object.keys(process.env).forEach(function (key) {
26+
if (key.startsWith('ACTIONS_')) {
27+
core.info(`Exporting ${key}`);
28+
core.exportVariable(key, process.env[key]);
29+
}
30+
});
2731
2832
- name: Construct docker build cache args
2933
shell: bash
@@ -44,8 +48,8 @@ runs:
4448
# Always optimistically --cache‑from in case a cache blob exists
4549
args=(--cache-from "type=gha${url_args:+,${url_args}},scope=${CONTAINER_NAME}")
4650
47-
# If this is a push to the default branch, also add --cache‑to to save the cache
48-
if [[ ${{ github.event_name }} == "push" && ${{ github.ref_name }} == ${{ github.event.repository.default_branch }} ]]; then
51+
# Only add --cache-to when using the Cirrus cache provider and pushing to the default branch.
52+
if [[ ${{ inputs.cache-provider }} == 'cirrus' && ${{ github.event_name }} == "push" && ${{ github.ref_name }} == ${{ github.event.repository.default_branch }} ]]; then
4953
args+=(--cache-to "type=gha${url_args:+,${url_args}},mode=max,ignore-error=true,scope=${CONTAINER_NAME}")
5054
fi
5155

.github/actions/configure-environment/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ runs:
1717
- name: Set cache hashes
1818
shell: bash
1919
run: |
20-
echo "DEPENDS_HASH=$(git ls-tree HEAD depends "ci/test/$FILE_ENV" | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
20+
echo "DEPENDS_HASH=$(git ls-tree HEAD depends "$FILE_ENV" | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
2121
echo "PREVIOUS_RELEASES_HASH=$(git ls-tree HEAD test/get_previous_releases.py | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
2222
2323
- name: Get container name

.github/workflows/ci.yml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ jobs:
381381
- *CHECKOUT
382382

383383
- name: Download built executables
384-
uses: actions/download-artifact@v4
384+
uses: actions/download-artifact@v5
385385
with:
386386
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
387387

@@ -433,8 +433,7 @@ jobs:
433433
echo "PREVIOUS_RELEASES_DIR=${{ runner.temp }}/previous_releases" >> "$GITHUB_ENV"
434434
435435
- name: Get previous releases
436-
working-directory: test
437-
run: ./get_previous_releases.py --target-dir $PREVIOUS_RELEASES_DIR
436+
run: ./test/get_previous_releases.py --target-dir $PREVIOUS_RELEASES_DIR
438437

439438
- name: Run functional tests
440439
env:
@@ -472,12 +471,18 @@ jobs:
472471
timeout-minutes: 120
473472
file-env: './ci/test/00_setup_env_native_asan.sh'
474473

475-
- name: 'macOS-cross, gui, no tests'
474+
- name: 'macOS-cross to arm64'
476475
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
477476
fallback-runner: 'ubuntu-24.04'
478477
timeout-minutes: 120
479478
file-env: './ci/test/00_setup_env_mac_cross.sh'
480479

480+
- name: 'macOS-cross to x86_64'
481+
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
482+
fallback-runner: 'ubuntu-24.04'
483+
timeout-minutes: 120
484+
file-env: './ci/test/00_setup_env_mac_cross_intel.sh'
485+
481486
- name: 'No wallet, libbitcoinkernel'
482487
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
483488
fallback-runner: 'ubuntu-24.04'
@@ -496,17 +501,23 @@ jobs:
496501
timeout-minutes: 240
497502
file-env: './ci/test/00_setup_env_native_fuzz.sh'
498503

504+
- name: 'Valgrind, fuzz'
505+
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
506+
fallback-runner: 'ubuntu-24.04'
507+
timeout-minutes: 240
508+
file-env: './ci/test/00_setup_env_native_fuzz_with_valgrind.sh'
509+
499510
- name: 'previous releases, depends DEBUG'
500511
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
501512
fallback-runner: 'ubuntu-24.04'
502513
timeout-minutes: 120
503514
file-env: './ci/test/00_setup_env_native_previous_releases.sh'
504515

505-
- name: 'CentOS, depends, gui'
506-
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-lg'
516+
- name: 'Alpine (musl), depends, gui'
517+
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
507518
fallback-runner: 'ubuntu-24.04'
508519
timeout-minutes: 120
509-
file-env: './ci/test/00_setup_env_native_centos.sh'
520+
file-env: './ci/test/00_setup_env_native_alpine_musl.sh'
510521

511522
- name: 'tidy'
512523
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'

CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
632632
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
633633
else()
634634
set(CMAKE_SKIP_BUILD_RPATH TRUE)
635-
set(CMAKE_SKIP_INSTALL_RPATH TRUE)
636635
endif()
637636
add_subdirectory(test)
638637
add_subdirectory(doc)

ci/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ requires `bash`, `docker`, and `python3` to be installed. To run on different ar
2020
sudo apt install bash docker.io python3 qemu-user-static
2121
```
2222

23+
For some sanitizer builds, the kernel's address-space layout randomization
24+
(ASLR) entropy can cause sanitizer shadow memory mappings to fail. When running
25+
the CI locally you may need to reduce that entropy by running:
26+
27+
```
28+
sudo sysctl -w vm.mmap_rnd_bits=28
29+
```
30+
2331
It is recommended to run the ci system in a clean env. To run the test stage
2432
with a specific configuration,
2533

ci/test/00_setup_env_mac_cross.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ export LC_ALL=C.UTF-8
99
export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks}
1010

1111
export CONTAINER_NAME=ci_macos_cross
12-
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
13-
export HOST=x86_64-apple-darwin
12+
export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie" # Check that https://packages.debian.org/trixie/clang (version 19, similar to guix) can cross-compile
13+
export HOST=arm64-apple-darwin
1414
export PACKAGES="clang lld llvm zip"
1515
export XCODE_VERSION=15.0
1616
export XCODE_BUILD_ID=15A240d
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019-present The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks}
10+
11+
export CONTAINER_NAME=ci_macos_cross_intel
12+
export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie" # Check that https://packages.debian.org/trixie/clang (version 19, similar to guix) can cross-compile
13+
export HOST=x86_64-apple-darwin
14+
export PACKAGES="clang lld llvm zip"
15+
export XCODE_VERSION=15.0
16+
export XCODE_BUILD_ID=15A240d
17+
export RUN_UNIT_TESTS=false
18+
export RUN_FUNCTIONAL_TESTS=false
19+
export GOAL="deploy"
20+
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DREDUCE_EXPORTS=ON"

ci/test/00_setup_env_mac_native_fuzz.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_mac_native_fuzz" # macos does not use a container, but the env var is needed for logging
1010
export CMAKE_GENERATOR="Ninja"
11-
export BITCOIN_CONFIG="-DBUILD_FOR_FUZZING=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000'"
11+
export BITCOIN_CONFIG="-DBUILD_FOR_FUZZING=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000' -DAPPEND_CPPFLAGS='-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG'"
1212
export CI_OS_NAME="macos"
1313
export NO_DEPENDS=1
1414
export OSX_SDK=""

ci/test/00_setup_env_native_centos.sh renamed to ci/test/00_setup_env_native_alpine_musl.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66

77
export LC_ALL=C.UTF-8
88

9-
export CONTAINER_NAME=ci_native_centos
10-
export CI_IMAGE_NAME_TAG="quay.io/centos/centos:stream10"
11-
export CI_BASE_PACKAGES="gcc-c++ glibc-devel libstdc++-devel ccache make ninja-build git python3 python3-pip which patch xz procps-ng rsync coreutils bison e2fsprogs cmake dash"
12-
export PIP_PACKAGES="pyzmq pycapnp"
9+
export CONTAINER_NAME=ci_native_alpine_musl
10+
export CI_IMAGE_NAME_TAG="mirror.gcr.io/alpine:3.22"
11+
export CI_BASE_PACKAGES="build-base musl-dev pkgconf curl ccache make ninja git python3 py3-pip which patch xz procps rsync util-linux bison e2fsprogs cmake dash linux-headers"
12+
export PIP_PACKAGES="--break-system-packages pyzmq pycapnp"
1313
export DEP_OPTS="DEBUG=1"
1414
export GOAL="install"
1515
export BITCOIN_CONFIG="\

0 commit comments

Comments
 (0)