cmake: Reject warnings in `check_cxx_source_compiles_with_flags()`, use `-msse4.1` for SHA-NI #36554

pull hebasto wants to merge 7 commits into bitcoin:master from hebasto:261016-source-flags changing 6 files +20 −14
  1. hebasto commented at 1:29 PM on October 16, 2026: member

    This is a prerequisite for #31507.

    1. The first commit fixes a bug in the C++ atomic library check:
    $ git rev-parse HEAD
    01b51c0f1fa8af242fc37891d666c3d940045d80
    $ cmake -B build -DAPPEND_CXXFLAGS="-Wall -Werror" 2>&1 | grep -A 8 STD_ATOMIC
    -- Performing Test STD_ATOMIC_LINKS_WITHOUT_LIBATOMIC
    -- Performing Test STD_ATOMIC_LINKS_WITHOUT_LIBATOMIC - Failed
    -- Performing Test STD_ATOMIC_NEEDS_LINK_TO_LIBATOMIC
    -- Performing Test STD_ATOMIC_NEEDS_LINK_TO_LIBATOMIC - Failed
    CMake Error at cmake/module/TestAppendRequiredLibraries.cmake:91 (message):
      Cannot figure out how to use std::atomic.
    Call Stack (most recent call first):
      cmake/introspection.cmake:23 (test_append_atomic_library)
      CMakeLists.txt:453 (include)
    
    
    -- Configuring incomplete, errors occurred!
    
    1. The second commit fixes a bug in the ARMv8 SHA-NI check:
    $ git rev-parse HEAD
    cd3353c6892e3c85bf6dc52b0e6bd98c493532b3
    $ cmake -B build -DAPPEND_CXXFLAGS="-Wall -Werror" 2>&1 | grep HAVE_ARM_SHANI
    -- Performing Test HAVE_ARM_SHANI
    -- Performing Test HAVE_ARM_SHANI - Failed
    $ grep -A25 'HAVE_ARM_SHANI' build/CMakeFiles/CMakeConfigureLog.yaml
          - "Performing Test HAVE_ARM_SHANI"
        directories:
          source: "/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE"
          binary: "/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE"
        cmakeVariables:
          CMAKE_CXX_COMPILE_OBJECT: "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>  -Wall -Werror"
          CMAKE_CXX_FLAGS: ""
          CMAKE_CXX_FLAGS_RELWITHDEBINFO: "-O2 -g"
          CMAKE_CXX_LINK_EXECUTABLE: "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> "
          CMAKE_CXX_LINK_NO_PIE_SUPPORTED: "1"
          CMAKE_EXE_LINKER_FLAGS: ""
          CMAKE_MODULE_PATH: "/home/hebasto/dev/bitcoin/cmake/module"
          CMAKE_POSITION_INDEPENDENT_CODE: "ON"
        buildResult:
          variable: "HAVE_ARM_SHANI"
          cached: true
          stdout: |
            Change Dir: '/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE'
            
            Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b4026/fast
            /usr/bin/gmake  -f CMakeFiles/cmTC_b4026.dir/build.make CMakeFiles/cmTC_b4026.dir/build
            gmake[1]: Entering directory '/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE'
            Building CXX object CMakeFiles/cmTC_b4026.dir/src.cxx.o
            /usr/bin/c++ -DHAVE_ARM_SHANI  -march=armv8-a+crypto -O2 -g -std=c++20 -fPIE -o CMakeFiles/cmTC_b4026.dir/src.cxx.o -c /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx  -Wall -Werror
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx: In function ‘int main()’:
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx:7:21: error: ‘a’ is used uninitialized [-Werror=uninitialized]
                7 |       vsha256h2q_u32(a, b, c);
                  |       ~~~~~~~~~~~~~~^~~~~~~~~
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx:6:18: note: ‘a’ was declared here
                6 |       uint32x4_t a, b, c;
                  |                  ^
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx:7:21: error: ‘b’ is used uninitialized [-Werror=uninitialized]
                7 |       vsha256h2q_u32(a, b, c);
                  |       ~~~~~~~~~~~~~~^~~~~~~~~
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx:6:21: note: ‘b’ was declared here
                6 |       uint32x4_t a, b, c;
                  |                     ^
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx:7:21: error: ‘c’ is used uninitialized [-Werror=uninitialized]
                7 |       vsha256h2q_u32(a, b, c);
                  |       ~~~~~~~~~~~~~~^~~~~~~~~
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE/src.cxx:6:24: note: ‘c’ was declared here
                6 |       uint32x4_t a, b, c;
                  |                        ^
            cc1plus: all warnings being treated as errors
            gmake[1]: *** [CMakeFiles/cmTC_b4026.dir/build.make:78: CMakeFiles/cmTC_b4026.dir/src.cxx.o] Error 1
            gmake[1]: Leaving directory '/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-35fxFE'
            gmake: *** [Makefile:127: cmTC_b4026/fast] Error 2
            
          exitCode: 2
    
    1. Fixed bugs in the SSE4.2 check:
    $ cmake -B build -DAPPEND_CXXFLAGS="-Wconversion -Werror" 2>&1 | grep HAVE_SSE42
    -- Performing Test HAVE_SSE42
    -- Performing Test HAVE_SSE42 - Failed
    $ grep -A14 'HAVE_SSE42' build/CMakeFiles/CMakeConfigureLog.yaml
          - "Performing Test HAVE_SSE42"
        directories:
          source: "/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI"
          binary: "/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI"
        cmakeVariables:
          CMAKE_CXX_COMPILE_OBJECT: "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>  -Wconversion -Werror"
          CMAKE_CXX_FLAGS: ""
          CMAKE_CXX_FLAGS_RELWITHDEBINFO: "-O2 -g"
          CMAKE_CXX_LINK_EXECUTABLE: "<CMAKE_CXX_COMPILER> <FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> "
          CMAKE_CXX_LINK_NO_PIE_SUPPORTED: "1"
          CMAKE_CXX_LINK_PIE_SUPPORTED: "1"
          CMAKE_CXX_STDLIB_MODULES_JSON: ""
          CMAKE_EXE_LINKER_FLAGS: ""
          CMAKE_MODULE_PATH: "/home/hebasto/dev/bitcoin/cmake/module"
          CMAKE_POSITION_INDEPENDENT_CODE: "ON"
    --
          variable: "HAVE_SSE42"
          cached: true
          stdout: |
            Change Dir: '/home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI'
            
            Run Build Command(s): /usr/bin/ninja-build -v cmTC_88170
            [1/2] /usr/lib64/ccache/c++ -DHAVE_SSE42  -msse4.2 -O2 -g -std=c++20 -fPIE -o CMakeFiles/cmTC_88170.dir/src.cxx.o -c /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI/src.cxx  -Wconversion -Werror
            FAILED: [code=1] CMakeFiles/cmTC_88170.dir/src.cxx.o 
            /usr/lib64/ccache/c++ -DHAVE_SSE42  -msse4.2 -O2 -g -std=c++20 -fPIE -o CMakeFiles/cmTC_88170.dir/src.cxx.o -c /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI/src.cxx  -Wconversion -Werror
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI/src.cxx: In function ‘int main()’:
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI/src.cxx:11:22: error: conversion from ‘uint64_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Werror=conversion]
               11 |     l = _mm_crc32_u8(l, 0);
                  |                      ^
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI/src.cxx:12:23: error: conversion from ‘uint64_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Werror=conversion]
               12 |     l = _mm_crc32_u32(l, 0);
                  |                       ^
            /home/hebasto/dev/bitcoin/build/CMakeFiles/CMakeScratch/TryCompile-fn8wHI/src.cxx:14:12: error: conversion from ‘uint64_t’ {aka ‘long unsigned int’} to ‘int’ may change value [-Werror=conversion]
               14 |     return l;
                  |            ^
            cc1plus: all warnings being treated as errors
            ninja: build stopped: subcommand failed.
            
          exitCode: 1
    
    1. Similarly, the CLMUL check in minisketch was made warning-free.

    2. The sanitizer and fuzzer checks was made warning-free.

    3. We expect that neither the compiler flags nor the test source triggers any warnings, such as -Wunknown-argument. Therefore, append working_compiler_werror_flag, as done in try_append_cxx_flags().

    4. -msse4 is merely a synonym for -msse4.2 in both GCC and Clang, but it is not accepted by the clang-cl frontend. Furthermore, the x86 SHA-NI code uses only SSE4.1 intrinsics and no SSE4.2 ones.

    Replace -msse4 with -msse4.1 to resolve both issues.

    The absence of SSE4.2 usage can be verified by building with -DAPPEND_CXXFLAGS=-mno-sse4.2.

  2. hebasto added the label Build system on Oct 16, 2026
  3. DrahtBot commented at 1:29 PM on October 16, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--006a51241073e994b41acfe9ec718e94-->

    External sites

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline and AI policy for information on the review process.

    Type Reviewers
    ACK hodlinator

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #31507 <sub><img src="https://drahtbot.space/ack_count/bitcoin/bitcoin/31507.svg"></sub> (build: Use clang-cl to build on Windows natively by hebasto)

    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.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

    LLM Linter (✨ experimental)

    Possible places where named args for integral literals may be used (e.g. func(x, /*named_arg=*/0) in C++, and func(x, named_arg=0) in Python):

    • cmake/minisketch.cmake: _mm_clmulepi64_si128(a, a, 37)

    <sup>2026-10-19 15:28:48</sup>

  4. hebasto added this to the milestone 33.0 on Oct 18, 2026
  5. hebasto commented at 1:26 PM on October 18, 2026: member

    My Guix build:

    $ uname -m && find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    aarch64
    9d31d8973c1c8c5a35ed4e22b6f74f0024a0642445f74952afa8c4003e96592a  guix-build-5ed82f396bd3/output/aarch64-linux-gnu/SHA256SUMS.part
    b8bc303a083912709ccf53ac4d68b4fbf10149956bc7494f79e8ae91c3e0f4b4  guix-build-5ed82f396bd3/output/aarch64-linux-gnu/bitcoin-5ed82f396bd3-aarch64-linux-gnu-debug.tar.gz
    28032c2327e405e38fbf839a766f7250c1652d67f2d19c52188ab4960575d8a3  guix-build-5ed82f396bd3/output/aarch64-linux-gnu/bitcoin-5ed82f396bd3-aarch64-linux-gnu.tar.gz
    bd1c26654aef6698a8d1022ea7cc1612629d85858642b6c192c776baaed748a8  guix-build-5ed82f396bd3/output/arm-linux-gnueabihf/SHA256SUMS.part
    7a1cea901fd33bfe81bbb2f47c288d08d3d92636c18da77a7c130d74bc864ce5  guix-build-5ed82f396bd3/output/arm-linux-gnueabihf/bitcoin-5ed82f396bd3-arm-linux-gnueabihf-debug.tar.gz
    88be12c9971eb3898abefe5bc7c08ceaf6dc88f38514194783343e1deef15545  guix-build-5ed82f396bd3/output/arm-linux-gnueabihf/bitcoin-5ed82f396bd3-arm-linux-gnueabihf.tar.gz
    77fd69e689c07177c0be11af3597f7b23e985c829c7421316e09bdd92c6e8bf3  guix-build-5ed82f396bd3/output/arm64-apple-darwin/SHA256SUMS.part
    7c8cd0d434510b79a796016b4a2e5568d3534255f5c1978be6c75a05aac966eb  guix-build-5ed82f396bd3/output/arm64-apple-darwin/bitcoin-5ed82f396bd3-arm64-apple-darwin-codesigning.tar.gz
    9c1ab7b15e06380cf9be7e810af88b5d136aad2d0a3345d8c48124fce4483109  guix-build-5ed82f396bd3/output/arm64-apple-darwin/bitcoin-5ed82f396bd3-arm64-apple-darwin-unsigned.tar.gz
    5c76137e4b1bbc7fe22d21e3d03a77fe6e3ef752a06741b974b4590113eb3ec6  guix-build-5ed82f396bd3/output/arm64-apple-darwin/bitcoin-5ed82f396bd3-arm64-apple-darwin-unsigned.zip
    fc0c03902adcc4daa4aa46d95841e8c24f6a99d5b53d358c0b2246bde69bf73b  guix-build-5ed82f396bd3/output/dist-archive/bitcoin-5ed82f396bd3.tar.gz
    ad96042932b514fd9c1b8181a46c5415cdafa6943303826ba72bdfde89fb00f0  guix-build-5ed82f396bd3/output/powerpc64-linux-gnu/SHA256SUMS.part
    b29bc636504d08f26db7828bb0ebb5e11cdf4be16602101678c189c4ff8e32e2  guix-build-5ed82f396bd3/output/powerpc64-linux-gnu/bitcoin-5ed82f396bd3-powerpc64-linux-gnu-debug.tar.gz
    769cfce7e78376dee01eccf2a762da2df9918518495aee011c83fb9600bed96a  guix-build-5ed82f396bd3/output/powerpc64-linux-gnu/bitcoin-5ed82f396bd3-powerpc64-linux-gnu.tar.gz
    f0c820ada0a2cf9b787bbed05263f464a8b6d85f2d466d5fc5ba74fe97d6bc89  guix-build-5ed82f396bd3/output/riscv64-linux-gnu/SHA256SUMS.part
    dc3b831413a88916bdabdba244c4f293ccfe032b843cfe1e7567aa7247ca08a2  guix-build-5ed82f396bd3/output/riscv64-linux-gnu/bitcoin-5ed82f396bd3-riscv64-linux-gnu-debug.tar.gz
    2ce0df6763c6a3715aada4eddb66030548894d710ae4e0589e3b303180c29761  guix-build-5ed82f396bd3/output/riscv64-linux-gnu/bitcoin-5ed82f396bd3-riscv64-linux-gnu.tar.gz
    382ae833a21fe098d27211d209d8fbe4eb8585d3326ad9a45388b4292a125041  guix-build-5ed82f396bd3/output/x86_64-apple-darwin/SHA256SUMS.part
    5e2bede54182f56bf3556afd80a907b614b65bafe20c8f348457fbf3fa09e359  guix-build-5ed82f396bd3/output/x86_64-apple-darwin/bitcoin-5ed82f396bd3-x86_64-apple-darwin-codesigning.tar.gz
    5594559bd2534e2468a1dd953a2601629ea1feb0256154374a3e12a0b96a13df  guix-build-5ed82f396bd3/output/x86_64-apple-darwin/bitcoin-5ed82f396bd3-x86_64-apple-darwin-unsigned.tar.gz
    c0cf65702af3235b06a953d6c17b77509a59c42ee2da252caa67b1bf7e18cb02  guix-build-5ed82f396bd3/output/x86_64-apple-darwin/bitcoin-5ed82f396bd3-x86_64-apple-darwin-unsigned.zip
    e2d2ba13916d04c153f10e27faa86cc9a104aec637ddb67365c5bb1208812e33  guix-build-5ed82f396bd3/output/x86_64-linux-gnu/SHA256SUMS.part
    e3b0407d441de9775fc9ac3b48e3861d567a28d227758019aeb6e667d27b74a9  guix-build-5ed82f396bd3/output/x86_64-linux-gnu/bitcoin-5ed82f396bd3-x86_64-linux-gnu-debug.tar.gz
    28cf2d9ca8c9be1b11e91e652375620442e6e3487bc988650bb5c321a275bda0  guix-build-5ed82f396bd3/output/x86_64-linux-gnu/bitcoin-5ed82f396bd3-x86_64-linux-gnu.tar.gz
    85a10b8adbee77eb186f51cbddc51bea6b14092dc4fd107abfa9607828ad7d81  guix-build-5ed82f396bd3/output/x86_64-w64-mingw32/SHA256SUMS.part
    6fbeab537b266fa80197eb5a96b62ae4370c76f18de0f40090c90cb4ab3bb64a  guix-build-5ed82f396bd3/output/x86_64-w64-mingw32/bitcoin-5ed82f396bd3-win64-codesigning.tar.gz
    79488c3e53ea8d0523a3e49f17da2840608cfcf28062134c024bb42500ec2916  guix-build-5ed82f396bd3/output/x86_64-w64-mingw32/bitcoin-5ed82f396bd3-win64-debug.zip
    03256cc2cdd46565a232a5f91cb4106bd26f53e2832e8d15e4796c379f01ee4c  guix-build-5ed82f396bd3/output/x86_64-w64-mingw32/bitcoin-5ed82f396bd3-win64-setup-unsigned.exe
    b1a92e0e423e83b59dcefcb16b743fa9b4d280a07c72796ea433ef358e858d6d  guix-build-5ed82f396bd3/output/x86_64-w64-mingw32/bitcoin-5ed82f396bd3-win64-unsigned.zip
    
  6. hodlinator approved
  7. hodlinator commented at 10:02 AM on October 19, 2026: contributor

    ACK 5ed82f396bd3a2e05a420ffb2dc00e74bcccbce8

    >cmake -B build --preset windows-static -DVCPKG_INSTALL_OPTIONS="--x-buildtrees-root=C:\vcpkg" -DAPPEND_CXXFLAGS=-mno-sse4.2
    ...
    -- Performing Test HAVE_X86_SHANI
    -- Performing Test HAVE_X86_SHANI - Success
    
  8. hebasto force-pushed on Oct 19, 2026
  9. hebasto commented at 11:50 AM on October 19, 2026: member

    Pushed a new commit at the start of the branch that fixes a bug in the ARMv8 SHA-NI check.

  10. hebasto marked this as a draft on Oct 19, 2026
  11. cmake: Add `[[maybe_unused]]` annotation to atomic library check
    The check fails when `-Wall -Werror` are provided by the user as the
    unused `d1` variable triggers `-Wunused-variable`. Since the fallback
    check with `LINK_LIBRARIES atomic` compiles the same source, it fails
    too, and configuration aborts with "Cannot figure out how to use
    std::atomic."
    cd3353c689
  12. cmake: Initialize variables in ARMv8 SHA-NI check
    The check fails when `-Wall -Werror` are provided by the user as
    uninitialized `uint32x4_t` arguments trigger `-Wuninitialized`. This
    results in disabling the ARMv8 SHA-NI code path.
    
    This is also a prerequisite for the following commit.
    53865a0add
  13. hebasto force-pushed on Oct 19, 2026
  14. hebasto marked this as ready for review on Oct 19, 2026
  15. hebasto commented at 1:27 PM on October 19, 2026: member

    Fixed another bug in the C++ atomic library check.

    The PR description has been updated.

  16. cmake, crc32c: Make SSE4.2 check warning-free
    The check fails when `-Wconversion -Werror` (GCC and Clang) or
    `-Weverything -Werror` (Clang) are provided by the user. This results
    in disabling the SSE4.2-based CRC32C implementation.
    89bc05fe83
  17. hebasto force-pushed on Oct 19, 2026
  18. DrahtBot added the label CI failed on Oct 19, 2026
  19. hebasto commented at 2:20 PM on October 19, 2026: member

    A new commit has been added to fix warnings in the SSE4.2 check, which effectively addresses ralph's feedback:

    Make the CRC32C probe warning-free ...

  20. cmake, minisketch: Make CLMUL check warning-free
    The check fails when `-Wsign-conversion -Werror` (GCC and Clang) or
    `-Weverything -Werror` (Clang) are provided by the user. This results
    in disabling the CLMUL-based implementation.
    8ba6cb08df
  21. DrahtBot removed the label CI failed on Oct 19, 2026
  22. cmake: Make sanitizer and fuzzer checks warning-free
    Both checks fail when `-Wextra -Werror` (GCC and Clang), or
    `-Wmissing-declarations -Werror` (GCC) / `-Weverything -Werror` (Clang),
    are provided by the user.
    c4763b716d
  23. cmake: Treat warnings as errors in `CheckSourceCompilesWithFlags`
    We expect that neither the compiler flags nor the test source triggers
    any warnings, such as `-Wunknown-argument`. Therefore, append
    `working_compiler_werror_flag`, as done in `try_append_cxx_flags`.
    9ab42235c1
  24. cmake, crypto: Use `-msse4.1` instead of `-msse4` for x86 SHA-NI
    `-msse4` is merely a synonym for `-msse4.2` in both GCC and Clang, but
    it is not accepted by the clang-cl frontend. Furthermore, the x86
    SHA-NI code uses only SSE4.1 intrinsics and no SSE4.2 ones.
    
    Replace `-msse4` with `-msse4.1` to resolve both issues.
    
    The absence of SSE4.2 usage can be verified by building with
    `-DAPPEND_CXXFLAGS=-mno-sse4.2`.
    5bb7c5646a
  25. hebasto force-pushed on Oct 19, 2026
  26. hebasto commented at 7:45 PM on October 19, 2026: member

    My Guix build:

    $ uname -m && find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    aarch64
    98c88dcf3688fbc24356ae86538d714afa1ac6555a80eb1c7827dec2e214a84c  guix-build-5bb7c5646a7f/output/aarch64-linux-gnu/SHA256SUMS.part
    ac75136f48414a66f6a41a60cdd68dc91d143801d80dff80938bd3898cf3ff15  guix-build-5bb7c5646a7f/output/aarch64-linux-gnu/bitcoin-5bb7c5646a7f-aarch64-linux-gnu-debug.tar.gz
    1d28f87ee5cf6f4b5cd8f9dc2e927fe3d3d4049e88b7371d203f300c93101bbe  guix-build-5bb7c5646a7f/output/aarch64-linux-gnu/bitcoin-5bb7c5646a7f-aarch64-linux-gnu.tar.gz
    73c9afd13491af1e0de0eafbbadef44773237b30189a786a14837436e7e85122  guix-build-5bb7c5646a7f/output/arm-linux-gnueabihf/SHA256SUMS.part
    5d2bd89137715d25fb1a9a8f56499ab72c99708fff7cff70865a98daa2977fb6  guix-build-5bb7c5646a7f/output/arm-linux-gnueabihf/bitcoin-5bb7c5646a7f-arm-linux-gnueabihf-debug.tar.gz
    010a56207846f0e5f9b0259d69d0e238f9730f5ca3c98cb2de0431946257ec68  guix-build-5bb7c5646a7f/output/arm-linux-gnueabihf/bitcoin-5bb7c5646a7f-arm-linux-gnueabihf.tar.gz
    34b27813a4d5482a5f351e0112357e5192ed3f1e20555f0f2a18c3467a524477  guix-build-5bb7c5646a7f/output/arm64-apple-darwin/SHA256SUMS.part
    c11de16355d8c33d521d1f5fb17a769989d37109f40653d567a3c5333a28009b  guix-build-5bb7c5646a7f/output/arm64-apple-darwin/bitcoin-5bb7c5646a7f-arm64-apple-darwin-codesigning.tar.gz
    d1517583daee3ef64e1eb0138118972e2b8b20b23dbc85407d6c9303b8354c46  guix-build-5bb7c5646a7f/output/arm64-apple-darwin/bitcoin-5bb7c5646a7f-arm64-apple-darwin-unsigned.tar.gz
    67f30239efddb5e10a797270faa1f554800908c58bdd47d0bea3372e1297ae47  guix-build-5bb7c5646a7f/output/arm64-apple-darwin/bitcoin-5bb7c5646a7f-arm64-apple-darwin-unsigned.zip
    178fe06c9a779524a5c08adadd5c6cf61f68cee14a478145dc198677e82dcf3d  guix-build-5bb7c5646a7f/output/dist-archive/bitcoin-5bb7c5646a7f.tar.gz
    3905651693195a782fdf6d061bf38f7079df296ec91a6a5e6475dcf5f2179739  guix-build-5bb7c5646a7f/output/powerpc64-linux-gnu/SHA256SUMS.part
    7228743512aaed6df997ad7579a4fad413fd4019e2a0e72d9619ad8175045f98  guix-build-5bb7c5646a7f/output/powerpc64-linux-gnu/bitcoin-5bb7c5646a7f-powerpc64-linux-gnu-debug.tar.gz
    6990909c38be000650f4baea5a13272a163c3318e3d94220c777324bff4f8f74  guix-build-5bb7c5646a7f/output/powerpc64-linux-gnu/bitcoin-5bb7c5646a7f-powerpc64-linux-gnu.tar.gz
    cd35c3746e58eb7fe02376adb0a6ff7d2b936b686dd1f56c8ea9e9d54e70b250  guix-build-5bb7c5646a7f/output/riscv64-linux-gnu/SHA256SUMS.part
    fe5f385d18666ea9b3354212652630ab6c0ec2bf7e06162866f1514ffe06ecf1  guix-build-5bb7c5646a7f/output/riscv64-linux-gnu/bitcoin-5bb7c5646a7f-riscv64-linux-gnu-debug.tar.gz
    92389fd4c86c1ad5d84ef1e11071af0318ffef06998702a9341195ba44f404d8  guix-build-5bb7c5646a7f/output/riscv64-linux-gnu/bitcoin-5bb7c5646a7f-riscv64-linux-gnu.tar.gz
    3f182fa5f357e6d46cb764f767dcc094a104427ccd4b1eddc5e1363ca74d1d2e  guix-build-5bb7c5646a7f/output/x86_64-apple-darwin/SHA256SUMS.part
    96797e16f8813c62a25be2eff7893c0d728fbf56da1d735ccb495a558d3df987  guix-build-5bb7c5646a7f/output/x86_64-apple-darwin/bitcoin-5bb7c5646a7f-x86_64-apple-darwin-codesigning.tar.gz
    147c85aa4a3032aeb964bd7c912d86586f45af3d0011d1d61bc6668f6a13a8fe  guix-build-5bb7c5646a7f/output/x86_64-apple-darwin/bitcoin-5bb7c5646a7f-x86_64-apple-darwin-unsigned.tar.gz
    735008f74e33fa165a926cdebadc5cbd5141bb2b317014cb85814b8f1a46e5dd  guix-build-5bb7c5646a7f/output/x86_64-apple-darwin/bitcoin-5bb7c5646a7f-x86_64-apple-darwin-unsigned.zip
    2835ed82bc12f93fae786f1fee755edd15b51d84cce77ee92b0024d777be3c7f  guix-build-5bb7c5646a7f/output/x86_64-linux-gnu/SHA256SUMS.part
    aea242c644076b6c5434d1b9304dc69f153146e0989a33438b3a629353edbe06  guix-build-5bb7c5646a7f/output/x86_64-linux-gnu/bitcoin-5bb7c5646a7f-x86_64-linux-gnu-debug.tar.gz
    5d036eb64b2a0858f404e78e7a3071e48a2930ac0cc279889f1fb9db570a771e  guix-build-5bb7c5646a7f/output/x86_64-linux-gnu/bitcoin-5bb7c5646a7f-x86_64-linux-gnu.tar.gz
    6fb65cda3efe7f1cf0545902e3dbc20bff2e4c37524c067dd6f5541b08b03410  guix-build-5bb7c5646a7f/output/x86_64-w64-mingw32/SHA256SUMS.part
    f1cbcf159f4e9149bfef1984bf1ede38fa0828974af10998cef79e4b71e1a752  guix-build-5bb7c5646a7f/output/x86_64-w64-mingw32/bitcoin-5bb7c5646a7f-win64-codesigning.tar.gz
    ef7eb1ad38f1c1c8ebf3db85610f011904fb172de50fbbc48acfb249b2075b3a  guix-build-5bb7c5646a7f/output/x86_64-w64-mingw32/bitcoin-5bb7c5646a7f-win64-debug.zip
    e0f195e34b50a47881087d3fbc62ed9ad16508b4b61a2326ab51cc8611f60d6b  guix-build-5bb7c5646a7f/output/x86_64-w64-mingw32/bitcoin-5bb7c5646a7f-win64-setup-unsigned.exe
    66c4d1717240ffb273e62593f83c9173a9f482083d0833d4cced5b825eb4cf58  guix-build-5bb7c5646a7f/output/x86_64-w64-mingw32/bitcoin-5bb7c5646a7f-win64-unsigned.zip
    
  27. hodlinator approved
  28. hodlinator commented at 5:52 PM on October 21, 2026: contributor

    re-ACK 5bb7c5646a7f11e910c620107ba873bb4ecb3f3f

    • Tagged PR HEAD with "block_commit_version" (in order to reduce embedding of commit hash)
    • Did a Guix build, renamed the resulting guix folder.
    • Moved the tag to PR base
    • Did another Guix build.

    Compared CMakeConfigureLog.xml for each platform through: diff <(cat /home/hodlinator/bitcoin/guix-build-block_commit_version/distsrc-block_commit_version-aarch64-linux-gnu/build/CMakeFiles/CMakeConfigureLog.yaml |grep -E \(variable:\|exitCode:\)) <(cat /home/hodlinator/bitcoin/guix-build-block_commit_version_PR/distsrc-block_commit_version-aarch64-linux-gnu/build/CMakeFiles/CMakeConfigureLog.yaml |grep -E \(variable:\|exitCode:\))

    <details><summary>Example of output being diffed</summary>

    ₿ cat /home/hodlinator/bitcoin/guix-build-block_commit_version/distsrc-block_commit_version-x86_64-w64-mingw32/build/CMakeFiles/CMakeConfigureLog.yaml |grep -E \(variable:\|exitCode:\)
          variable: "CMAKE_CXX_ABI_COMPILED"
          exitCode: 0
          variable: "CXX_SUPPORTS__WERROR"
          exitCode: 0
          variable: "CXX_SUPPORTS__G3"
          exitCode: 0
          variable: "LINKER_SUPPORTS__G3"
          exitCode: 0
          variable: "CXX_SUPPORTS__FTRAPV"
          exitCode: 0
          variable: "LINKER_SUPPORTS__FTRAPV"
          exitCode: 0
          variable: "HAVE_CTAD_FOR_AGGREGATES"
          exitCode: 0
          variable: "CMAKE_HAVE_LIBC_PTHREAD"
          exitCode: 0
          variable: "NO_DIAGNOSTICS_BOOST_NO_CXX98_FUNCTION_BASE"
          exitCode: 2
          variable: "HAVE_STDATOMIC"
          exitCode: 0
          variable: "HAVE_GETTIME"
          exitCode: 0
          variable: "HAVE_SHM_OPEN_SHM_UNLINK"
          exitCode: 2
          variable: "LINKER_SUPPORTS__WL___FATAL_WARNINGS"
          exitCode: 0
          variable: "CXX_SUPPORTS__WA__MUSE_UNALIGNED_VECTOR_MOVE"
          exitCode: 0
          variable: "LINKER_SUPPORTS__STATIC"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL___MAJOR_SUBSYSTEM_VERSION_6"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL___MINOR_SUBSYSTEM_VERSION_2"
          exitCode: 0
          variable: "CXX_SUPPORTS__WA__MBIG_OBJ"
          exitCode: 0
          variable: "HAVE_O_CLOEXEC"
          exitCode: 2
          variable: "HAVE_FDATASYNC"
          exitCode: 2
          variable: "HAVE_DECL_FORK"
          exitCode: 2
          variable: "HAVE_DECL_PIPE2"
          exitCode: 2
          variable: "HAVE_DECL_SETSID"
          exitCode: 2
          variable: "STD_ATOMIC_LINKS_WITHOUT_LIBATOMIC"
          exitCode: 0
          variable: "HAVE_STD_SYSTEM"
          exitCode: 0
          variable: "STRERROR_R_CHAR_P"
          exitCode: 2
          variable: "HAVE_MALLOC_INFO"
          exitCode: 2
          variable: "HAVE_MALLOPT_ARENA_MAX"
          exitCode: 2
          variable: "HAVE_POSIX_FALLOCATE"
          exitCode: 2
          variable: "HAVE_STRONG_GETAUXVAL"
          exitCode: 2
          variable: "HAVE_SOCKADDR_UN"
          exitCode: 2
          variable: "HAVE_GETRANDOM"
          exitCode: 2
          variable: "HAVE_GETENTROPY_RAND"
          exitCode: 2
          variable: "HAVE_SYSCTL"
          exitCode: 2
          variable: "HAVE_SYSCTL_ARND"
          exitCode: 2
          variable: "HAVE_SSE41"
          exitCode: 0
          variable: "HAVE_AVX2"
          exitCode: 0
          variable: "HAVE_X86_SHANI"
          exitCode: 0
          variable: "HAVE_ARM_SHANI"
          exitCode: 2
          variable: "CXX_SUPPORTS__WALL"
          exitCode: 0
          variable: "CXX_SUPPORTS__WEXTRA"
          exitCode: 0
          variable: "CXX_SUPPORTS__WGNU"
          exitCode: 2
          variable: "CXX_SUPPORTS__WCOVERED_SWITCH_DEFAULT"
          exitCode: 2
          variable: "CXX_SUPPORTS__WFORMAT__WFORMAT_SECURITY"
          exitCode: 0
          variable: "CXX_SUPPORTS__WVLA"
          exitCode: 0
          variable: "CXX_SUPPORTS__WSHADOW_FIELD"
          exitCode: 2
          variable: "CXX_SUPPORTS__WTHREAD_SAFETY"
          exitCode: 2
          variable: "CXX_SUPPORTS__WTHREAD_SAFETY_POINTER"
          exitCode: 2
          variable: "CXX_SUPPORTS__WLOOP_ANALYSIS"
          exitCode: 2
          variable: "CXX_SUPPORTS__WREDUNDANT_DECLS"
          exitCode: 0
          variable: "CXX_SUPPORTS__WUNUSED_MEMBER_FUNCTION"
          exitCode: 2
          variable: "CXX_SUPPORTS__WUNUSED_CONST_VARIABLE"
          exitCode: 0
          variable: "CXX_SUPPORTS__WUNUSED_EXCEPTION_PARAMETER"
          exitCode: 2
          variable: "CXX_SUPPORTS__WDATE_TIME"
          exitCode: 0
          variable: "CXX_SUPPORTS__WCONDITIONAL_UNINITIALIZED"
          exitCode: 2
          variable: "CXX_SUPPORTS__WDUPLICATED_BRANCHES"
          exitCode: 0
          variable: "CXX_SUPPORTS__WDUPLICATED_COND"
          exitCode: 0
          variable: "CXX_SUPPORTS__WLOGICAL_OP"
          exitCode: 0
          variable: "CXX_SUPPORTS__WOVERLOADED_VIRTUAL"
          exitCode: 0
          variable: "CXX_SUPPORTS__WSUGGEST_OVERRIDE"
          exitCode: 0
          variable: "CXX_SUPPORTS__WIMPLICIT_FALLTHROUGH"
          exitCode: 0
          variable: "CXX_SUPPORTS__WUNREACHABLE_CODE"
          exitCode: 0
          variable: "CXX_SUPPORTS__WDOCUMENTATION"
          exitCode: 2
          variable: "CXX_SUPPORTS__WSELF_ASSIGN"
          exitCode: 2
          variable: "CXX_SUPPORTS__WBIDI_CHARS_ANY"
          exitCode: 0
          variable: "CXX_SUPPORTS__WUNDEF"
          exitCode: 0
          variable: "CXX_SUPPORTS__WLEADING_WHITESPACE_SPACES"
          exitCode: 2
          variable: "CXX_SUPPORTS__WTRAILING_WHITESPACE_ANY"
          exitCode: 2
          variable: "CXX_SUPPORTS__WUNUSED_PARAMETER"
          exitCode: 0
          variable: "CXX_SUPPORTS__FNO_EXTENDED_IDENTIFIERS"
          exitCode: 0
          variable: "CXX_SUPPORTS__FMACRO_PREFIX_MAP_A_B"
          exitCode: 0
          variable: "CXX_SUPPORTS__FSTACK_REUSE_NONE"
          exitCode: 0
          variable: "LINKER_SUPPORTS__FSTACK_REUSE_NONE"
          exitCode: 0
          variable: "CXX_SUPPORTS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_3_2d08"
          exitCode: 0
          variable: "LINKER_SUPPORTS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_3_2d08"
          exitCode: 0
          variable: "CXX_SUPPORTS__WSTACK_PROTECTOR"
          exitCode: 0
          variable: "CXX_SUPPORTS__FSTACK_PROTECTOR_ALL"
          exitCode: 0
          variable: "LINKER_SUPPORTS__FSTACK_PROTECTOR_ALL"
          exitCode: 0
          variable: "CXX_SUPPORTS__FCF_PROTECTION_FULL"
          exitCode: 0
          variable: "LINKER_SUPPORTS__FCF_PROTECTION_FULL"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL___ENABLE_RELOC_SECTION"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL___DYNAMICBASE"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL___NXCOMPAT"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL___HIGH_ENTROPY_VA"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL__Z_RELRO"
          exitCode: 2
          variable: "LINKER_SUPPORTS__WL__Z_NOW"
          exitCode: 2
          variable: "LINKER_SUPPORTS__WL__Z_SEPARATE_CODE"
          exitCode: 2
          variable: "LINKER_SUPPORTS__WL___EXCLUDE_LIBS_ALL"
          exitCode: 0
          variable: "LINKER_SUPPORTS__WL__NO_EXPORTED_SYMBOLS"
          exitCode: 2
          variable: "HAVE_BUILTIN_PREFETCH"
          exitCode: 0
          variable: "HAVE_MM_PREFETCH"
          exitCode: 0
          variable: "HAVE_SSE42"
          exitCode: 0
          variable: "HAVE_ARM64_CRC32C"
          exitCode: 2
          variable: "HAVE_FULLFSYNC"
          exitCode: 2
          variable: "HAVE_CLMUL"
          exitCode: 0
          variable: "CMAKE_C_ABI_COMPILED"
          exitCode: 0
          variable: "HAVE_X86_64_ASM"
          exitCode: 0
          variable: "C_SUPPORTS__WALL"
          exitCode: 0
          variable: "C_SUPPORTS__PEDANTIC"
          exitCode: 0
          variable: "C_SUPPORTS__WCAST_ALIGN"
          exitCode: 0
          variable: "C_SUPPORTS__WCAST_ALIGN_STRICT"
          exitCode: 0
          variable: "C_SUPPORTS__WCONDITIONAL_UNINITIALIZED"
          exitCode: 2
          variable: "C_SUPPORTS__WEXTRA"
          exitCode: 0
          variable: "C_SUPPORTS__WLEADING_WHITESPACE_SPACES"
          exitCode: 2
          variable: "C_SUPPORTS__WNESTED_EXTERNS"
          exitCode: 0
          variable: "C_SUPPORTS__WNO_LONG_LONG"
          exitCode: 0
          variable: "C_SUPPORTS__WNO_OVERLENGTH_STRINGS"
          exitCode: 0
          variable: "C_SUPPORTS__WNO_UNUSED_FUNCTION"
          exitCode: 0
          variable: "C_SUPPORTS__WRESERVED_IDENTIFIER"
          exitCode: 2
          variable: "C_SUPPORTS__WSHADOW"
          exitCode: 0
          variable: "C_SUPPORTS__WSTRICT_PROTOTYPES"
          exitCode: 0
          variable: "C_SUPPORTS__WTRAILING_WHITESPACE_ANY"
          exitCode: 2
          variable: "C_SUPPORTS__WUNDEF"
          exitCode: 0
    

    </details>

    Built and compared: x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu powerpc64-linux-gnu powerpc64le-linux-gnu x86_64-w64-mingw32

    Limitation: Did not perform any Mac builds.


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-10-30 09:40 UTC