cmake: Detect and log MinGW-w64 version when cross-compiling for Windows #36029

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:260819-migw-version changing 2 files +36 −0
  1. hebasto commented at 9:19 PM on August 19, 2026: member

    The behaviour of cross-compiled Windows binaries depends heavily on the toolchain components, including MinGW-w64. When the toolchain is not provided by a distro package manager, determining the exact version being used can be difficult.

    This PR detects and logs the MinGW-w64 version when cross-compiling for Windows, simplifying debugging when issues like this arise.

  2. cmake: Detect and log MinGW-w64 version when cross-compiling for Windows 09cdb3c488
  3. hebasto added the label Windows on Aug 19, 2026
  4. hebasto added the label Build system on Aug 19, 2026
  5. DrahtBot commented at 9:19 PM on August 19, 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 ViniciusCestarii, sedited, willcl-ark

    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-->

  6. ViniciusCestarii commented at 8:36 PM on August 22, 2026: contributor

    tACK 09cdb3c48872b7a89a70abfaba86830655cc5007

    Cross-compiled for Windows on Arch Linux and the configure summary reports:

    Cross compiling ....................... TRUE, for Windows, x86_64, using MinGW-w64 14.0.0

    which matches the mingw-w64 version installed on my system.

  7. sedited approved
  8. sedited commented at 9:55 AM on October 6, 2026: contributor

    ACK 09cdb3c48872b7a89a70abfaba86830655cc5007

    Seems fine to add, but not sure how often this will actually be useful.

  9. sedited commented at 6:33 PM on October 6, 2026: contributor

    Guix build:

    fa74c818a0051ac5164b8be0287574cf192f1ad81291ccac82b2262fe2d35c6a  guix-build-09cdb3c48872/output/aarch64-linux-gnu/SHA256SUMS.part
    07dba3f0b78ada6b04b9ee2b72d384002769d5345cf09a8e6f0a518f610f7277  guix-build-09cdb3c48872/output/aarch64-linux-gnu/bitcoin-09cdb3c48872-aarch64-linux-gnu-debug.tar.gz
    87d4f69f95337c46721e8af60a498e38c7c0d9db9e7f38ff72191c24b672a224  guix-build-09cdb3c48872/output/aarch64-linux-gnu/bitcoin-09cdb3c48872-aarch64-linux-gnu.tar.gz
    11bb923348d4a70bd18d90dad0a0afca9cf656e9f2b4bd708a1cbd9cab6957ad  guix-build-09cdb3c48872/output/arm-linux-gnueabihf/SHA256SUMS.part
    e7babab91acc6e712b30b5acfe653f7623f94e622a02904530b7d2986740c4f9  guix-build-09cdb3c48872/output/arm-linux-gnueabihf/bitcoin-09cdb3c48872-arm-linux-gnueabihf-debug.tar.gz
    a0d0cce5ed9c0996ce221aa6bc6245a3b5f04e2cdeef90b56bf80035bffaf5aa  guix-build-09cdb3c48872/output/arm-linux-gnueabihf/bitcoin-09cdb3c48872-arm-linux-gnueabihf.tar.gz
    78b2ba6210ade593588181f5bbb2a5b2cbfd51481c401be9dfdd592e3a13606f  guix-build-09cdb3c48872/output/arm64-apple-darwin/SHA256SUMS.part
    5587214457573d9c7e9938a6699b8082fcc44e9a6221212419a6428983cb8ddf  guix-build-09cdb3c48872/output/arm64-apple-darwin/bitcoin-09cdb3c48872-arm64-apple-darwin-codesigning.tar.gz
    9893707ea5b777984423060665480dcb254281894a7491aa97aac445589ee68b  guix-build-09cdb3c48872/output/arm64-apple-darwin/bitcoin-09cdb3c48872-arm64-apple-darwin-unsigned.tar.gz
    9c69bc0011f54dd37145bfa36efc595ba52125d68950305d7425ce7b6446f2f9  guix-build-09cdb3c48872/output/arm64-apple-darwin/bitcoin-09cdb3c48872-arm64-apple-darwin-unsigned.zip
    c3fcbbf756ac492deda393548b58a84d52b1c4c08cee9ecc1a4ea8454b855ff5  guix-build-09cdb3c48872/output/dist-archive/bitcoin-09cdb3c48872.tar.gz
    d471bf924b5896d406df514c4f01a673ee4249a53a3fc43a9ff9b7f21d3814ac  guix-build-09cdb3c48872/output/powerpc64-linux-gnu/SHA256SUMS.part
    1872ae531e26c2adec7625f0bcd8cdb4057784eef7db60f37d89ae657fa48540  guix-build-09cdb3c48872/output/powerpc64-linux-gnu/bitcoin-09cdb3c48872-powerpc64-linux-gnu-debug.tar.gz
    82f8b5366dad47e5025ec6567bd0c28c85877dc39b8358fe11e4c224f0d564ff  guix-build-09cdb3c48872/output/powerpc64-linux-gnu/bitcoin-09cdb3c48872-powerpc64-linux-gnu.tar.gz
    3bbbe9177883ba3d5f97a0034a8d06876980ab18e12a296f7ef9c6b658dc7338  guix-build-09cdb3c48872/output/riscv64-linux-gnu/SHA256SUMS.part
    dfc3b5a62a1f826e1ddcb5ced31425166b4fd9715a64f01927666ca29c14bed4  guix-build-09cdb3c48872/output/riscv64-linux-gnu/bitcoin-09cdb3c48872-riscv64-linux-gnu-debug.tar.gz
    99c53a43c562917661cfd566afd23d6b28bfc3a74011d961756fc3401a288b94  guix-build-09cdb3c48872/output/riscv64-linux-gnu/bitcoin-09cdb3c48872-riscv64-linux-gnu.tar.gz
    a6c7783028e369807bc177d5df2d6dca3d3c99b2c59e45a472bae9935c0c7188  guix-build-09cdb3c48872/output/x86_64-apple-darwin/SHA256SUMS.part
    9d04c835550c5c7468e9fc4f7b55e1f19adb9017e0bcc61c9d9b1fd6745551fc  guix-build-09cdb3c48872/output/x86_64-apple-darwin/bitcoin-09cdb3c48872-x86_64-apple-darwin-codesigning.tar.gz
    6cd886be9eb5204edcf565cffa4687f94ee248ee767ae3206e87c76f533f3338  guix-build-09cdb3c48872/output/x86_64-apple-darwin/bitcoin-09cdb3c48872-x86_64-apple-darwin-unsigned.tar.gz
    0918d253827091e65a04e5915176649b0532f9ede880bb149f2cf6b3594f2de9  guix-build-09cdb3c48872/output/x86_64-apple-darwin/bitcoin-09cdb3c48872-x86_64-apple-darwin-unsigned.zip
    1de0fca0b5715b1de052c76b54708b59da01b041bbc910bd98d4009368d22222  guix-build-09cdb3c48872/output/x86_64-linux-gnu/SHA256SUMS.part
    42fcd6a5b6f901e53fb1053b0942382acc087676c59d6b07089a0da84d5d282b  guix-build-09cdb3c48872/output/x86_64-linux-gnu/bitcoin-09cdb3c48872-x86_64-linux-gnu-debug.tar.gz
    44ef944d1be69f8cb63124f37bdaf602d5bb868aec8a33010cbf491cdbb26ae0  guix-build-09cdb3c48872/output/x86_64-linux-gnu/bitcoin-09cdb3c48872-x86_64-linux-gnu.tar.gz
    eccbc71b5fa447652b244de844855e26a69f0fac153d8c3eefd168c887afe3cb  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/SHA256SUMS.part
    a06880a8a1616ea5e6ba7538a3937e82846b4de5aaf86aa7edaa0fe9b5bc2e6c  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-codesigning.tar.gz
    0ee6dbe6c690aa2902406ad55b366710c0b89ecf91f55f07f883c8635cd460f9  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-debug.zip
    3a750d4d180106b33bbacd8c4d57fff33468f48fa5340dc707f41458f86a8ed5  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-setup-unsigned.exe
    1e7022bed539ab0a65ccb8fb4c02d26e6532cf604edc27e82f10b9d27935b039  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-unsigned.zip
    
  10. willcl-ark commented at 11:31 AM on October 7, 2026: member

    Guix build using an unprivileged guix installation on NixOS:

    bitcoin/worktrees/pr-36029 on  pr-36029 [$] via △ v4.4.2 via 🐍 v3.14.7 via ❄️  impure (nix-shell-env) took 17s
    ❯ eza -al /gnu/store | head
    drwxr-xr-x     - guix-daemon  6 Oct 10:50 .links
    .r--r--r--  1.8k guix-daemon  1 Jan  1970 0a0h5xvaw4cfpw5r761k8awqqa54m5zw-xpra-6.4-install_libs.patch
    .r--r--r--   911 guix-daemon  1 Jan  1970 0a04vjhhv5jni6y658gxv4bzzwwxp3zr-rust-schannel-0.1.28.tar.gz.drv
    .r--r--r--   906 guix-daemon  1 Jan  1970 0a06vd3hrhq41rhqlvrl9cl8yijy9n9c-rust-failure-0.1.8.tar.gz.drv
    .r--r--r--   900 guix-daemon  1 Jan  1970 0a07prna2rpfm7b55aim1y9mlcp7ir3p-rust-uuid-1.18.1.tar.gz.drv
    .r--r--r--   875 guix-daemon  1 Jan  1970 0a1gyb7hm80z27lqw7pcbz4zj2i9lab3-emote-0.1.1.tar.drv
    .r--r--r--  7.4k guix-daemon  1 Jan  1970 0a1kip7kf8yy88nv7s6d0sqdygwdid26-qmk-firmware-keychron-c1-pro-ansi-rgb-default-0.28.0.drv
    .r--r--r--   528 guix-daemon  1 Jan  1970 0a1r02lfm2prlqxagn0msj0xaxqpp5hd-vulkan-headers-1.4.335.0-checkout.drv
    .r--r--r--   16k guix-daemon  1 Jan  1970 0a1ry05b1as7b9a5mybj7vwngnr3dr0r-htmlq-0.4.0-builder
    .r--r--r--  1.5k guix-daemon  1 Jan  1970 0a1v4v5nq1z1q4xdb3i4p92hwsswcq91-bitcoin-depends-libxkbcommon-x86_64-linux-gnu-0.8.4.drv
    
    x86_64
    fa74c818a0051ac5164b8be0287574cf192f1ad81291ccac82b2262fe2d35c6a  guix-build-09cdb3c48872/output/aarch64-linux-gnu/SHA256SUMS.part
    07dba3f0b78ada6b04b9ee2b72d384002769d5345cf09a8e6f0a518f610f7277  guix-build-09cdb3c48872/output/aarch64-linux-gnu/bitcoin-09cdb3c48872-aarch64-linux-gnu-debug.tar.gz
    87d4f69f95337c46721e8af60a498e38c7c0d9db9e7f38ff72191c24b672a224  guix-build-09cdb3c48872/output/aarch64-linux-gnu/bitcoin-09cdb3c48872-aarch64-linux-gnu.tar.gz
    11bb923348d4a70bd18d90dad0a0afca9cf656e9f2b4bd708a1cbd9cab6957ad  guix-build-09cdb3c48872/output/arm-linux-gnueabihf/SHA256SUMS.part
    e7babab91acc6e712b30b5acfe653f7623f94e622a02904530b7d2986740c4f9  guix-build-09cdb3c48872/output/arm-linux-gnueabihf/bitcoin-09cdb3c48872-arm-linux-gnueabihf-debug.tar.gz
    a0d0cce5ed9c0996ce221aa6bc6245a3b5f04e2cdeef90b56bf80035bffaf5aa  guix-build-09cdb3c48872/output/arm-linux-gnueabihf/bitcoin-09cdb3c48872-arm-linux-gnueabihf.tar.gz
    78b2ba6210ade593588181f5bbb2a5b2cbfd51481c401be9dfdd592e3a13606f  guix-build-09cdb3c48872/output/arm64-apple-darwin/SHA256SUMS.part
    5587214457573d9c7e9938a6699b8082fcc44e9a6221212419a6428983cb8ddf  guix-build-09cdb3c48872/output/arm64-apple-darwin/bitcoin-09cdb3c48872-arm64-apple-darwin-codesigning.tar.gz
    9893707ea5b777984423060665480dcb254281894a7491aa97aac445589ee68b  guix-build-09cdb3c48872/output/arm64-apple-darwin/bitcoin-09cdb3c48872-arm64-apple-darwin-unsigned.tar.gz
    9c69bc0011f54dd37145bfa36efc595ba52125d68950305d7425ce7b6446f2f9  guix-build-09cdb3c48872/output/arm64-apple-darwin/bitcoin-09cdb3c48872-arm64-apple-darwin-unsigned.zip
    c3fcbbf756ac492deda393548b58a84d52b1c4c08cee9ecc1a4ea8454b855ff5  guix-build-09cdb3c48872/output/dist-archive/bitcoin-09cdb3c48872.tar.gz
    d471bf924b5896d406df514c4f01a673ee4249a53a3fc43a9ff9b7f21d3814ac  guix-build-09cdb3c48872/output/powerpc64-linux-gnu/SHA256SUMS.part
    1872ae531e26c2adec7625f0bcd8cdb4057784eef7db60f37d89ae657fa48540  guix-build-09cdb3c48872/output/powerpc64-linux-gnu/bitcoin-09cdb3c48872-powerpc64-linux-gnu-debug.tar.gz
    82f8b5366dad47e5025ec6567bd0c28c85877dc39b8358fe11e4c224f0d564ff  guix-build-09cdb3c48872/output/powerpc64-linux-gnu/bitcoin-09cdb3c48872-powerpc64-linux-gnu.tar.gz
    3bbbe9177883ba3d5f97a0034a8d06876980ab18e12a296f7ef9c6b658dc7338  guix-build-09cdb3c48872/output/riscv64-linux-gnu/SHA256SUMS.part
    dfc3b5a62a1f826e1ddcb5ced31425166b4fd9715a64f01927666ca29c14bed4  guix-build-09cdb3c48872/output/riscv64-linux-gnu/bitcoin-09cdb3c48872-riscv64-linux-gnu-debug.tar.gz
    99c53a43c562917661cfd566afd23d6b28bfc3a74011d961756fc3401a288b94  guix-build-09cdb3c48872/output/riscv64-linux-gnu/bitcoin-09cdb3c48872-riscv64-linux-gnu.tar.gz
    a6c7783028e369807bc177d5df2d6dca3d3c99b2c59e45a472bae9935c0c7188  guix-build-09cdb3c48872/output/x86_64-apple-darwin/SHA256SUMS.part
    9d04c835550c5c7468e9fc4f7b55e1f19adb9017e0bcc61c9d9b1fd6745551fc  guix-build-09cdb3c48872/output/x86_64-apple-darwin/bitcoin-09cdb3c48872-x86_64-apple-darwin-codesigning.tar.gz
    6cd886be9eb5204edcf565cffa4687f94ee248ee767ae3206e87c76f533f3338  guix-build-09cdb3c48872/output/x86_64-apple-darwin/bitcoin-09cdb3c48872-x86_64-apple-darwin-unsigned.tar.gz
    0918d253827091e65a04e5915176649b0532f9ede880bb149f2cf6b3594f2de9  guix-build-09cdb3c48872/output/x86_64-apple-darwin/bitcoin-09cdb3c48872-x86_64-apple-darwin-unsigned.zip
    1de0fca0b5715b1de052c76b54708b59da01b041bbc910bd98d4009368d22222  guix-build-09cdb3c48872/output/x86_64-linux-gnu/SHA256SUMS.part
    42fcd6a5b6f901e53fb1053b0942382acc087676c59d6b07089a0da84d5d282b  guix-build-09cdb3c48872/output/x86_64-linux-gnu/bitcoin-09cdb3c48872-x86_64-linux-gnu-debug.tar.gz
    44ef944d1be69f8cb63124f37bdaf602d5bb868aec8a33010cbf491cdbb26ae0  guix-build-09cdb3c48872/output/x86_64-linux-gnu/bitcoin-09cdb3c48872-x86_64-linux-gnu.tar.gz
    eccbc71b5fa447652b244de844855e26a69f0fac153d8c3eefd168c887afe3cb  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/SHA256SUMS.part
    a06880a8a1616ea5e6ba7538a3937e82846b4de5aaf86aa7edaa0fe9b5bc2e6c  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-codesigning.tar.gz
    0ee6dbe6c690aa2902406ad55b366710c0b89ecf91f55f07f883c8635cd460f9  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-debug.zip
    3a750d4d180106b33bbacd8c4d57fff33468f48fa5340dc707f41458f86a8ed5  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-setup-unsigned.exe
    1e7022bed539ab0a65ccb8fb4c02d26e6532cf604edc27e82f10b9d27935b039  guix-build-09cdb3c48872/output/x86_64-w64-mingw32/bitcoin-09cdb3c48872-win64-unsigned.zip
    
  11. willcl-ark commented at 11:35 AM on October 7, 2026: member

    ACK 09cdb3c48872b7a89a70abfaba86830655cc5007

    Seems fine to add, but not sure how often this will actually be useful.

    I'm of about the same opinion.

    Code seems correct though and not too much maintenance burden. Might help debug things every once in a while :)

  12. sedited merged this on Oct 7, 2026
  13. sedited closed this on Oct 7, 2026

  14. in cmake/module/GetMingwVersion.cmake:9 in 09cdb3c488
       0 | @@ -0,0 +1,30 @@
       1 | +# Copyright (c) The Bitcoin Core developers
       2 | +# Distributed under the MIT software license, see the accompanying
       3 | +# file COPYING or https://opensource.org/license/mit/.
       4 | +
       5 | +# Gets the version of the MinGW-w64 used by the C++ compiler.
       6 | +# Sets ${version_var} in the parent scope, or leaves it unset if
       7 | +# the `_mingw_mac.h` header cannot be located or parsed.
       8 | +function(get_mingw_version version_var)
       9 | +  if(NOT MINGW)
    


    fanquake commented at 7:15 AM on October 9, 2026:

    Dead code?


    hebasto commented at 6:32 AM on October 11, 2026:

    It’s unreachable with the current call site. It was meant as a precondition check for the function, to catch misuse if the call site is refactored.

  15. hebasto deleted the branch on Oct 11, 2026

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-23 04:51 UTC

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