ci: Enable experimental kernel stuff in most CI tasks via dev-mode #33824

pull maflcko wants to merge 11 commits into bitcoin:master from maflcko:2511-ci-dev-mode-kernel changing 13 files +56 −21
  1. maflcko commented at 11:15 am on November 8, 2025: member

    Most of the CI tasks have a long list of stuff that they enable. This makes it hard to see what each CI task is actually running.

    Also, most of the CI tasks should probably mimic the dev-mode CMake preset and run on as much stuff as possible. Usually, changing the dev-mode comes with changing those CI tasks as well in the same commit, which is verbose.

    Fix both issues, by basing most CI tasks on the dev-mode. In the future, this makes it easier to change the dev-mode in a single place. If CI tasks explicitly disable something, it will be listed explicitly in them.

    As a side-effect this will enable the kernel stuff for some CI task that did not have it enabled, which seems desirable.

  2. DrahtBot renamed this:
    ci: Enable experimental kernel stuff in most CI tasks
    ci: Enable experimental kernel stuff in most CI tasks
    on Nov 8, 2025
  3. DrahtBot added the label Tests on Nov 8, 2025
  4. DrahtBot commented at 11:16 am on November 8, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33824.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK TheCharlatan, janb84, hebasto
    Concept ACK stickies-v

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #33810 (ci: Add IWYU job by hebasto)
    • #33764 (ci: Add Windows + UCRT jobs for cross-compiling and native testing by hebasto)
    • #28792 (build: Embedded ASMap [3/3]: Build binary dump header file by fjahr)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  5. maflcko force-pushed on Nov 8, 2025
  6. DrahtBot added the label CI failed on Nov 8, 2025
  7. DrahtBot commented at 11:24 am on November 8, 2025: contributor

    🚧 At least one of the CI tasks failed. Task TSan: https://github.com/bitcoin/bitcoin/actions/runs/19192288386/job/54868372095 LLM reason (✨ experimental): Compilation failed in the bitcoin-chainstate module due to missing std::exception_ptr and related exception utilities in the standard library (libc++), causing multiple compile errors.

    Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:

    • Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    • A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.

    • An intermittent issue.

    Leave a comment here, if you need help tracking down a confusing failure.

  8. maflcko marked this as a draft on Nov 8, 2025
  9. maflcko commented at 11:35 am on November 8, 2025: member
    Hmm. Looks like this uncovered some errors. I’ll circle back next week.
  10. sedited commented at 7:22 pm on November 8, 2025: contributor

    Thanks for going through this!

    My guess is the failure in the previous releases job is gcc11’s limited implementation of std::ranges. Not sure what to do about that to be honest. Maybe we can add a macro guard for those test cases?

    The test case producing the ubsan error should just be deleted in my opinion. It does not add anything in terms of coverage. How about:

     0diff --git a/src/test/kernel/test_kernel.cpp b/src/test/kernel/test_kernel.cpp
     1index d9875ee16e..b170ea182d 100644
     2--- a/src/test/kernel/test_kernel.cpp
     3+++ b/src/test/kernel/test_kernel.cpp
     4@@ -583,0 +584 @@ BOOST_AUTO_TEST_CASE(btck_block)
     5+    BOOST_CHECK_THROW(Block{hex_string_to_byte_vec("012300")}, std::runtime_error);
     6@@ -716,11 +716,0 @@ void chainman_mainnet_validation_test(TestDirectory& test_directory)
     7-    {
     8-        // Process an invalid block
     9-        auto raw_block = hex_string_to_byte_vec("012300");
    10-        BOOST_CHECK_THROW(Block{raw_block}, std::runtime_error);
    11-    }
    12-    {
    13-        // Process an empty block
    14-        auto raw_block = hex_string_to_byte_vec("");
    15-        BOOST_CHECK_THROW(Block{raw_block}, std::runtime_error);
    16-    }
    17-
    

    On a related note, there is some ongoing work at improving the test binary. Initially it was kept isolated from the rest of the test framework to demonstrate its stand-alone capabilities. I don’t think that is beneficial anymore - we should just use our existing test utilities. There is also an attempt at standardizing the test vectors such that other bindings implementations can re-use them.

  11. stickies-v commented at 9:48 am on November 10, 2025: contributor
    Concept ACK for standardizing CI workflows around dev-mode and for increasing kernel coverage. CI runtimes seem acceptable.
  12. maflcko commented at 10:16 am on November 10, 2025: member

    The test case producing the ubsan error should just be deleted in my opinion. It does not add anything in terms of coverage. How about:

    I was thinking about permitting nullptr when size=0, or even just permitting nullptr for any size, when the data pointer is followed by a size?

    I understand the nonnull check can in theory be useful in low-level environments where a nullptr-deref would not be detected as access violation, but there are probably more users using modern systems that may want to be able to handle zero-size spans properly at runtime without unnecessarily crashing?

  13. maflcko force-pushed on Nov 10, 2025
  14. sedited commented at 11:39 am on November 10, 2025: contributor

    I was thinking about permitting nullptr when size=0, or even just permitting nullptr for any size, when the data pointer is followed by a size?

    Afaict our de-serialization can handle this case (nullptr when size=0) correctly, but fails when passed a nullptr with non-zero size. Maybe a null check in btck_block_create(...) would be better? What do you think?

  15. ?
    added_to_project_v2 sedited
  16. ?
    project_v2_item_status_changed sedited
  17. maflcko commented at 4:31 pm on November 10, 2025: member
    Split the failing CI tasks out to #33845 and https://github.com/bitcoin/bitcoin/pull/33842
  18. maflcko force-pushed on Nov 10, 2025
  19. maflcko marked this as ready for review on Nov 12, 2025
  20. ci: Enable experimental kernel stuff in MSan task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    
    The GUI remains disabled explicitly.
    fad30d4395
  21. ci: Enable experimental kernel stuff in TSan task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    
    The GUI remains disabled explicitly.
    fa9c2973d6
  22. ci: Enable experimental kernel stuff in valgrind task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    
    The GUI and USDT remain disabled explicitly.
    fa7da8a646
  23. ci: Enable experimental kernel stuff in s390x task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    fab3fb8302
  24. ci: Enable experimental kernel stuff in Alpine task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    fa9d67c13d
  25. ci: Enable experimental kernel stuff in armhf task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    fad10ff7c9
  26. ci: Enable experimental kernel stuff in mac-cross tasks
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    
    USDT remains explicitly disabled.
    fa1632eecf
  27. ci: Enable experimental kernel stuff in i686 task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       libbitcoinkernel (experimental) ..... ON
       kernel-test (experimental) .......... ON
    
    IPC remains explicitly disabled.
    faff7b2312
  28. maflcko force-pushed on Nov 12, 2025
  29. maflcko force-pushed on Nov 12, 2025
  30. ci: Enable bitcoin-chainstate and test_bitcoin-qt in win64 task
    Base the task on --preset=dev-mode to ensure maximal coverage and add
    the following:
    
       bitcoin-chainstate (experimental) ... ON
       test_bitcoin-qt ..................... ON
    
    IPC and USDT remain explicitly disabled.
    6666980e86
  31. ci: [refactor] Base nowallet task on --preset=dev-mode
    This makes it clearer what pieces are disabled over the full dev-mode.
    
    The wallet remains explicitly disabled.
    fadb67b4b4
  32. ci: [refactor] Use --preset=dev-mode in mac_native task
    Also shorten the name, because it is usually truncated anyway in the web
    view.
    
    USDT remains disabled explicitly.
    fae83611b8
  33. in ci/test/00_setup_env_win64.sh:18 in fa9ee03bbd
    12@@ -13,6 +13,11 @@ export PACKAGES="g++-mingw-w64-x86-64-posix nsis"
    13 export RUN_UNIT_TESTS=false
    14 export RUN_FUNCTIONAL_TESTS=false
    15 export GOAL="deploy"
    16-export BITCOIN_CONFIG="-DREDUCE_EXPORTS=ON -DBUILD_GUI_TESTS=OFF -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON \
    17+export BITCOIN_CONFIG="\
    18+  --preset=dev-mode \
    19+  -DBUILD_UTIL_CHAINSTATE=OFF \
    


    sedited commented at 11:29 am on November 12, 2025:

    Might we be able to keep this ON too, if the windows job also copies over the dll?

    0diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
    1index d433646292..e2bd3a6940 100644
    2--- a/.github/workflows/ci.yml
    3+++ b/.github/workflows/ci.yml
    4@@ -369,0 +370 @@ jobs:
    5+            ${{ env.BASE_BUILD_DIR }}/bin/*.dll
    
  34. DrahtBot removed the label CI failed on Nov 12, 2025
  35. maflcko force-pushed on Nov 12, 2025
  36. sedited approved
  37. sedited commented at 1:37 pm on November 12, 2025: contributor
    Nice, ACK fae83611b8ef358ea7aca7070fd7e82dc06f9755
  38. DrahtBot requested review from stickies-v on Nov 12, 2025
  39. janb84 commented at 7:49 pm on November 12, 2025: contributor
    Since the “side-effect” of this pr will enable the kernel stuff, is the PR title still fitting ? Maybe something like: CI: base taks on dev-mode
  40. maflcko renamed this:
    ci: Enable experimental kernel stuff in most CI tasks
    ci: Enable experimental kernel stuff in most CI tasks via `dev-mode`
    on Nov 12, 2025
  41. in ci/test/00_setup_env_s390x.sh:1 in fae83611b8


    janb84 commented at 3:18 pm on November 13, 2025:
    Do we still use this ? could not find something that uses this in the repo

    janb84 commented at 3:27 pm on November 13, 2025:

    how about lines 208-212? it’s windows so not sure if there is a dev-mode preset ?

    0          - job-type: standard
    1            generate-options: '-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DWERROR=ON'
    2            job-name: 'Windows native, VS 2022'
    3          - job-type: fuzz
    4            generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet" -DBUILD_GUI=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
    5            job-name: 'Windows native, fuzz, VS 2022'
    

    maflcko commented at 3:36 pm on November 13, 2025:
    I think those are already using windows-specific presets. In any case, I am not familiar with Windows, so someone else would have to touch this.

    maflcko commented at 3:36 pm on November 13, 2025:
    I run it externally :)
  42. janb84 commented at 3:28 pm on November 13, 2025: contributor

    ACK fae83611b8ef358ea7aca7070fd7e82dc06f9755

    The PR changes CI Tasks to use the dev-mode by default and disable options that are not applicable. This to enable kernel options from libbitcoinkernel

    I like the approach of “enabling everything” and then turn of options explicitly , in this way the CI will build all the options without a lot of maintenance.

    I have compared the resulting config with the old configuration , looks OK 2 non blocking questions:

    ARM32 diff is only kernel stuffs, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3  bitcoin ............................. ON
     4  bitcoind ............................ ON
     5  bitcoin-node (multiprocess) ......... ON
     6  bitcoin-qt (GUI) .................... ON
     7  bitcoin-gui (GUI, multiprocess) ..... ON
     8  bitcoin-cli ......................... ON
     9  bitcoin-tx .......................... ON
    10  bitcoin-util ........................ ON
    11  bitcoin-wallet ...................... ON
    12  bitcoin-chainstate (experimental) ... OFF
    13  libbitcoinkernel (experimental) ..... OFF
    14  kernel-test (experimental) .......... OFF
    15Optional features:
    16  wallet support ...................... ON
    17  external signer ..................... ON
    18  ZeroMQ .............................. ON
    19  IPC ................................. ON
    20  USDT tracing ........................ ON
    21  QR code (GUI) ....................... ON
    22  DBus (GUI) .......................... ON
    23Tests:
    24  test_bitcoin ........................ ON
    25  test_bitcoin-qt ..................... ON
    26  bench_bitcoin ....................... ON
    27  fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... ON
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... ON
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... ON
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    i686, no IPC diff is only kernel stuffs, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... OFF
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... OFF
    13libbitcoinkernel (experimental) ..... OFF
    14kernel-test (experimental) .......... OFF
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. OFF
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... ON
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... OFF
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... ON
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. OFF
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... ON
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    “macOS-cross to arm64” diff is only bitcoin-chainstate stuffs, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... ON
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... OFF
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ OFF
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... ON
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... ON
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ OFF
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    “macOS-cross to x86_64” diff is only kernel stuffs, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... ON
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... OFF
    13libbitcoinkernel (experimental) ..... OFF
    14kernel-test (experimental) .......... OFF
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ OFF
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    NEW

     0onfigure summary
     1=================
     2Executables:
     3  bitcoin ............................. ON
     4  bitcoind ............................ ON
     5  bitcoin-node (multiprocess) ......... ON
     6  bitcoin-qt (GUI) .................... ON
     7  bitcoin-gui (GUI, multiprocess) ..... ON
     8  bitcoin-cli ......................... ON
     9  bitcoin-tx .......................... ON
    10  bitcoin-util ........................ ON
    11  bitcoin-wallet ...................... ON
    12  bitcoin-chainstate (experimental) ... ON
    13  libbitcoinkernel (experimental) ..... ON
    14  kernel-test (experimental) .......... ON
    15Optional features:
    16  wallet support ...................... ON
    17  external signer ..................... ON
    18  ZeroMQ .............................. ON
    19  IPC ................................. ON
    20  USDT tracing ........................ OFF
    21  QR code (GUI) ....................... ON
    22  DBus (GUI) .......................... OFF
    23Tests:
    24  test_bitcoin ........................ ON
    25  test_bitcoin-qt ..................... ON
    26  bench_bitcoin ....................... ON
    27  fuzz binary ......................... ON
    

    “Alpine (musl)’” diff is only kernel stuffs, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3  bitcoin ............................. ON
     4  bitcoind ............................ ON
     5  bitcoin-node (multiprocess) ......... ON
     6  bitcoin-qt (GUI) .................... ON
     7  bitcoin-gui (GUI, multiprocess) ..... ON
     8  bitcoin-cli ......................... ON
     9  bitcoin-tx .......................... ON
    10  bitcoin-util ........................ ON
    11  bitcoin-wallet ...................... ON
    12  bitcoin-chainstate (experimental) ... OFF
    13  libbitcoinkernel (experimental) ..... OFF
    14  kernel-test (experimental) .......... OFF
    15Optional features:
    16  wallet support ...................... ON
    17  external signer ..................... ON
    18  ZeroMQ .............................. ON
    19  IPC ................................. ON
    20  USDT tracing ........................ ON
    21  QR code (GUI) ....................... ON
    22  DBus (GUI) .......................... ON
    23Tests:
    24  test_bitcoin ........................ ON
    25  test_bitcoin-qt ..................... ON
    26  bench_bitcoin ....................... ON
    27  fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3  bitcoin ............................. ON
     4  bitcoind ............................ ON
     5  bitcoin-node (multiprocess) ......... ON
     6  bitcoin-qt (GUI) .................... ON
     7  bitcoin-gui (GUI, multiprocess) ..... ON
     8  bitcoin-cli ......................... ON
     9  bitcoin-tx .......................... ON
    10  bitcoin-util ........................ ON
    11  bitcoin-wallet ...................... ON
    12  bitcoin-chainstate (experimental) ... ON
    13  libbitcoinkernel (experimental) ..... ON
    14  kernel-test (experimental) .......... ON
    15Optional features:
    16  wallet support ...................... ON
    17  external signer ..................... ON
    18  ZeroMQ .............................. ON
    19  IPC ................................. ON
    20  USDT tracing ........................ ON
    21  QR code (GUI) ....................... ON
    22  DBus (GUI) .......................... ON
    23Tests:
    24  test_bitcoin ........................ ON
    25  test_bitcoin-qt ..................... ON
    26  bench_bitcoin ....................... ON
    27  fuzz binary ......................... ON
    

    “Msan’” diff is only kernel stuffs, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... OFF
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... OFF
    13libbitcoinkernel (experimental) ..... OFF
    14kernel-test (experimental) .......... OFF
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... OFF
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... OFF
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... OFF
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... ON
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... OFF
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... OFF
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    “No wallet’” no diff, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... ON
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... OFF
    12bitcoin-chainstate (experimental) ... ON
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... OFF
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... ON
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... ON
     7bitcoin-gui (GUI, multiprocess) ..... ON
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... OFF
    12bitcoin-chainstate (experimental) ... ON
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... OFF
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... ON
    22DBus (GUI) .......................... ON
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... ON
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    “TSan’” diff is only kernel stuffs, OK

    OLD:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... OFF
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... OFF
    13libbitcoinkernel (experimental) ..... OFF
    14kernel-test (experimental) .......... OFF
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... OFF
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... OFF
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. ON
     4bitcoind ............................ ON
     5bitcoin-node (multiprocess) ......... ON
     6bitcoin-qt (GUI) .................... OFF
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... ON
     9bitcoin-tx .......................... ON
    10bitcoin-util ........................ ON
    11bitcoin-wallet ...................... ON
    12bitcoin-chainstate (experimental) ... ON
    13libbitcoinkernel (experimental) ..... ON
    14kernel-test (experimental) .......... ON
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... ON
    18ZeroMQ .............................. ON
    19IPC ................................. ON
    20USDT tracing ........................ ON
    21QR code (GUI) ....................... OFF
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ ON
    25test_bitcoin-qt ..................... OFF
    26bench_bitcoin ....................... ON
    27fuzz binary ......................... ON
    

    “Valgrind, fuzz’” no diff , OK?

    OLD:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. OFF
     4bitcoind ............................ OFF
     5bitcoin-node (multiprocess) ......... OFF
     6bitcoin-qt (GUI) .................... OFF
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... OFF
     9bitcoin-tx .......................... OFF
    10bitcoin-util ........................ OFF
    11bitcoin-wallet ...................... OFF
    12bitcoin-chainstate (experimental) ... OFF
    13libbitcoinkernel (experimental) ..... OFF
    14kernel-test (experimental) .......... OFF
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... OFF
    18ZeroMQ .............................. OFF
    19IPC ................................. OFF
    20USDT tracing ........................ OFF
    21QR code (GUI) ....................... OFF
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ OFF
    25test_bitcoin-qt ..................... OFF
    26bench_bitcoin ....................... OFF
    27fuzz binary ......................... ON
    

    NEW:

     0Configure summary
     1=================
     2Executables:
     3bitcoin ............................. OFF
     4bitcoind ............................ OFF
     5bitcoin-node (multiprocess) ......... OFF
     6bitcoin-qt (GUI) .................... OFF
     7bitcoin-gui (GUI, multiprocess) ..... OFF
     8bitcoin-cli ......................... OFF
     9bitcoin-tx .......................... OFF
    10bitcoin-util ........................ OFF
    11bitcoin-wallet ...................... OFF
    12bitcoin-chainstate (experimental) ... OFF
    13libbitcoinkernel (experimental) ..... OFF
    14kernel-test (experimental) .......... OFF
    15Optional features:
    16wallet support ...................... ON
    17external signer ..................... OFF
    18ZeroMQ .............................. OFF
    19IPC ................................. OFF
    20USDT tracing ........................ OFF
    21QR code (GUI) ....................... OFF
    22DBus (GUI) .......................... OFF
    23Tests:
    24test_bitcoin ........................ OFF
    25test_bitcoin-qt ..................... OFF
    26bench_bitcoin ....................... OFF
    27fuzz binary ......................... ON
    

    s390 - no clue see note

  43. maflcko commented at 3:37 pm on November 13, 2025: member

    “Valgrind, fuzz’” no diff , OK?

    Yeah, all fuzz tasks only build the fuzz stuff. Maybe that could be a preset, but I won’t be touching it here, to keep the scope small.

  44. in ci/test/00_setup_env_win64.sh:16 in fae83611b8
    12@@ -13,6 +13,10 @@ export PACKAGES="g++-mingw-w64-x86-64-posix nsis"
    13 export RUN_UNIT_TESTS=false
    14 export RUN_FUNCTIONAL_TESTS=false
    15 export GOAL="deploy"
    16-export BITCOIN_CONFIG="-DREDUCE_EXPORTS=ON -DBUILD_GUI_TESTS=OFF -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON \
    


    fanquake commented at 2:37 pm on November 17, 2025:
    Any idea why BUILD_GUI_TESTS=OFF was previously set? Looks like it predates CMake, and was just ported; I guess no-longer needed?

    maflcko commented at 2:45 pm on November 17, 2025:
    I think it couldn’t be run in wine. Could make sense to at least build it. Should I do it here, or in a follow-up?

    maflcko commented at 2:47 pm on November 17, 2025:
    oh wait, I already removed it here in this commit 6666980e8653d98ef556f71a3e6907d3deda7147, it is also mentioned in the commit message.

    maflcko commented at 1:46 pm on November 20, 2025:
    @fanquake Happy to look into win-cross-test-qt into a follow up. Here, I mostly want to mostly focus on the kernel stuff and get ci coverage for it.

    fanquake commented at 1:48 pm on November 20, 2025:
    No worries, nothing blocking here from me.
  45. hebasto approved
  46. hebasto commented at 2:15 pm on November 20, 2025: member
    ACK fae83611b8ef358ea7aca7070fd7e82dc06f9755, I have reviewed the code and it looks OK.
  47. hebasto merged this on Nov 20, 2025
  48. hebasto closed this on Nov 20, 2025

  49. ?
    project_v2_item_status_changed github-project-automation[bot]
  50. maflcko deleted the branch on Nov 20, 2025
  51. in ci/test/00_setup_env_mac_cross.sh:21 in fae83611b8
    16@@ -17,4 +17,8 @@ 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 -DBUILD_KERNEL_LIB=ON -DREDUCE_EXPORTS=ON"
    21+export BITCOIN_CONFIG="\
    22+ --preset=dev-mode \
    


    maflcko commented at 10:49 pm on November 20, 2025:

    This lead to a failure: https://github.com/maflcko/bitcoin-core-nightly/actions/runs/19550555322/job/55988016546#step:12:25:

     0
     1stdout:
     22025-11-20T22:23:58.576632Z TestFramework (INFO): PRNG seed is: 4045980459550867813
     32025-11-20T22:23:58.577475Z TestFramework (INFO): Initializing test directory /Users/runner/work/_temp/test_runner__🏃_20251120_220520/tool_bitcoin_chainstate_201
     42025-11-20T22:23:59.071213Z TestFramework (INFO): Testing bitcoin-chainstate ['/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/bin/bitcoin-chainstate'] with datadir: /Users/runner/work/_temp/test_runner__🏃_20251120_220520/tool_bitcoin_chainstate_201/node0
     52025-11-20T22:23:59.083094Z TestFramework (INFO): STDERR: dyld[26686]: Library not loaded: libbitcoinkernel.dylib
     6  Referenced from: <4C4C4422-5555-3144-A14F-EA2BABC42000> /Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/bin/bitcoin-chainstate
     7  Reason: tried: 'libbitcoinkernel.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibbitcoinkernel.dylib' (no such file), 'libbitcoinkernel.dylib' (no such file), '/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/libbitcoinkernel.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/libbitcoinkernel.dylib' (no such file), '/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/libbitcoinkernel.dylib' (no such file)
     82025-11-20T22:23:59.083212Z TestFramework (ERROR): Unexpected exception
     9Traceback (most recent call last):
    10  File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/test_framework/test_framework.py", line 142, in main
    11    self.run_test()
    12    ~~~~~~~~~~~~~^^
    13  File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/tool_bitcoin_chainstate.py", line 43, in run_test
    14    self.add_block(datadir, block_one, "Block has not yet been rejected")
    15    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    16  File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/tool_bitcoin_chainstate.py", line 34, in add_block
    17    raise AssertionError(f"Expected stderr output {expected_stderr} does not partially match stderr:\n{stderr}")
    18AssertionError: Expected stderr output Block has not yet been rejected does not partially match stderr:
    19dyld[26686]: Library not loaded: libbitcoinkernel.dylib
    20  Referenced from: <4C4C4422-5555-3144-A14F-EA2BABC42000> /Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/bin/bitcoin-chainstate
    21  Reason: tried: 'libbitcoinkernel.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibbitcoinkernel.dylib' (no such file), 'libbitcoinkernel.dylib' (no such file), '/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/libbitcoinkernel.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/libbitcoinkernel.dylib' (no such file), '/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/libbitcoinkernel.dylib' (no such file)
    

    janb84 commented at 7:34 am on November 21, 2025:

    Weird, dev-mode should have those flags on.

    Your build is reporting this config.

    0  bitcoin-chainstate (experimental) ... ON
    1  libbitcoinkernel (experimental) ..... ON
    2  kernel-test (experimental) .......... ON
    

    creating the dylib [ 59%] Linking CXX shared library ../../lib/libbitcoinkernel.dylib

    EDIT: it’s the bitcoin-chainstate (experimental) … OFF => ON change,


    maflcko commented at 10:00 am on November 21, 2025:
  52. stringintech referenced this in commit 52fffa1e5d on Nov 24, 2025
  53. alexanderwiederin referenced this in commit 7334556a3f on Dec 1, 2025
  54. yuvicc referenced this in commit 4a77a3b8eb on Dec 16, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-01-11 06:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me