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.

    <!--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-25 12:51 UTC

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