guix: use GCC 14.3.0 over 13.3.0 #33775
pull fanquake wants to merge 7 commits into bitcoin:master from fanquake:guix_gcc_14 changing 8 files +75 −10-
fanquake commented at 1:12 pm on November 4, 2025: member
-
DrahtBot added the label Build system on Nov 4, 2025
-
DrahtBot commented at 1:13 pm on November 4, 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/33775.
Reviews
See the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #33593 (guix: Use UCRT runtime for Windows release binaries by hebasto)
- #32764 (guix: Build for macOS using Clang only 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.
-
hebasto commented at 1:13 pm on November 4, 2025: memberConcept ACK.
-
in contrib/guix/manifest.scm:99 in 9bebdf6303 outdated
92@@ -93,7 +93,17 @@ chain for " target " development.")) 93 (home-page (package-home-page xgcc)) 94 (license (package-license xgcc))))) 95 96-(define base-gcc gcc-13) ;; 13.3.0 97+(define base-gcc 98+ (package 99+ (inherit gcc-14) ;; 14.2.0 100+ (version "14.3.0")
hebasto commented at 1:18 pm on November 4, 2025:Why 14.3.0 specifically, and not 14.2.0?
(asking because 14.2.x is mentioned in https://gist.github.com/hebasto/dee3c918da49ee767ccf5eea43276407).
fanquake commented at 1:51 pm on November 4, 2025:I’d rather we use the version of the compiler with more bug fixes, and less known bugs.
hebasto commented at 11:57 pm on December 8, 2025:Why not use the same minor version for bothgcc-14andgcc-toolchain-14packages?
fanquake commented at 5:29 pm on December 10, 2025:It shouldn’t make any difference, for building host tools. It also seems non-trivial to swap out the version ingcc-toolchain-14.DrahtBot added the label CI failed on Nov 4, 2025DrahtBot removed the label CI failed on Nov 4, 2025fanquake force-pushed on Nov 4, 2025in ci/test/00_setup_env_arm.sh:13 in 4bcc7824cd
9@@ -10,7 +10,7 @@ export HOST=arm-linux-gnueabihf 10 export DPKG_ADD_ARCH="armhf" 11 export PACKAGES="python3-zmq g++-arm-linux-gnueabihf busybox libc6:armhf libstdc++6:armhf libfontconfig1:armhf libxcb1:armhf" 12 export CONTAINER_NAME=ci_arm_linux 13-export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04" # Check that https://packages.ubuntu.com/noble/g++-arm-linux-gnueabihf (version 13.x, similar to guix) can cross-compile 14+export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie" # Check that https://packages.ubuntu.com/noble/g++-arm-linux-gnueabihf (version 14.x, similar to guix) can cross-compile
maflcko commented at 8:03 am on November 5, 2025:url is wrong, and themaybe-uninitializedbelow can be removed?
fanquake commented at 10:07 am on November 5, 2025:and the maybe-uninitialized below can be removed?
Fixed the URL, I don’t think we can drop it yet: https://github.com/bitcoin/bitcoin/actions/runs/19074211079/job/54485090675?pr=33775#step:8:3723.
maflcko commented at 8:06 am on November 5, 2025: memberconcept ack. 14.3 should be sufficiently propagated and tested by now, to rely on it for release buildsfanquake force-pushed on Nov 5, 2025maflcko commented at 10:47 am on November 5, 2025: memberlgtm ACK 25ede968badadfeeaaa8358b38c9a8cfff7189f0DrahtBot requested review from hebasto on Nov 5, 2025fanquake marked this as ready for review on Nov 5, 2025maflcko added the label DrahtBot Guix build requested on Nov 5, 2025fanquake commented at 2:33 pm on November 5, 2025: memberGuix Build (x86_64):
06c31a0f19daec94c3d629e50d6bc2461ceb6e0fbb0823cb10a40bc735e37f9b5 guix-build-25ede968bada/output/aarch64-linux-gnu/SHA256SUMS.part 1f3ba2f0c5f1d99d377ea11ea2b9983187192d733c7db444060d112d1be48ecd2 guix-build-25ede968bada/output/aarch64-linux-gnu/bitcoin-25ede968bada-aarch64-linux-gnu-debug.tar.gz 2321db43f3a4327287813274b7f9874fb76799643fdc9cbbc9ee13bce10b6e004 guix-build-25ede968bada/output/aarch64-linux-gnu/bitcoin-25ede968bada-aarch64-linux-gnu.tar.gz 358f449098f98b7746c2ba9286a3582852aed3c32b3cc0327598c279d46eab5b7 guix-build-25ede968bada/output/arm-linux-gnueabihf/SHA256SUMS.part 40c51f7872d5f65ad2bd432d20f76c49b8e2dc765cacb53f696b0a0c5ea91b56b guix-build-25ede968bada/output/arm-linux-gnueabihf/bitcoin-25ede968bada-arm-linux-gnueabihf-debug.tar.gz 54f679e6074c745b2e91494721a6c8aa0ef24e19f18a3971ac53913441fdbf399 guix-build-25ede968bada/output/arm-linux-gnueabihf/bitcoin-25ede968bada-arm-linux-gnueabihf.tar.gz 68a66a9d3180f8fa386a0fdfc4ed1b80c716ec9b754921c35543cdc822ea35bf9 guix-build-25ede968bada/output/arm64-apple-darwin/SHA256SUMS.part 7cbbffbb237ca4a0174f457824a21412334d7ce7c1931c78fe293520029e97c32 guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-codesigning.tar.gz 8518312fec80b309a38393a7408cad0fda28f4cf7b52d08a5b4c2d1a26ea9b8d4 guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-unsigned.tar.gz 95a36a5ddea0070e3efd6e3db92528705483a2dd4ebc9287ed42c3d180537092a guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-unsigned.zip 10768446c9e4037d07b76df5379ff42482e2ce264db5e0ed61694af0c7ea49cd69 guix-build-25ede968bada/output/dist-archive/bitcoin-25ede968bada.tar.gz 11a85baf46acec900f79b9343f9bd918731bfc0f1fea7586b902f28e99cda59e37 guix-build-25ede968bada/output/powerpc64-linux-gnu/SHA256SUMS.part 12c01ac68acbdae911b56a6b3eb1762d9f57d4d7fc0dbedfa3f4c0905bf4be6853 guix-build-25ede968bada/output/powerpc64-linux-gnu/bitcoin-25ede968bada-powerpc64-linux-gnu-debug.tar.gz 13f08b8d0909eb6f6a7f4b483f338655b0c44ee85c219360b62c99165df5aed157 guix-build-25ede968bada/output/powerpc64-linux-gnu/bitcoin-25ede968bada-powerpc64-linux-gnu.tar.gz 14a2e1c4960965d6315e3c89579b7224970229d01f1c9b60ff8ec1698a1bebb884 guix-build-25ede968bada/output/riscv64-linux-gnu/SHA256SUMS.part 156b4958341f9648ddaf7c57a788db7b229d6be4cc7f9548f3acd84c2ce990909a guix-build-25ede968bada/output/riscv64-linux-gnu/bitcoin-25ede968bada-riscv64-linux-gnu-debug.tar.gz 162f03dcd2941388cecb4c7ae1d8e0b925e0bcc1c0f79f6676906b88ed3f98c1e0 guix-build-25ede968bada/output/riscv64-linux-gnu/bitcoin-25ede968bada-riscv64-linux-gnu.tar.gz 17a8b021adae39e2f9beaa37e6fa370eaa6fac033505cdfe8fdfcb01f6b6786ce1 guix-build-25ede968bada/output/x86_64-apple-darwin/SHA256SUMS.part 1810cd32f7b51cca2473d4c1a92cde51914ec36e5d90d46c623047b0bd4a6171ce guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-codesigning.tar.gz 19dfde14c907e39b547681600cf0a1056f88d4e26d67bda66bb0ebdacaa77755bb guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-unsigned.tar.gz 203a69e45b82a8397d4638ca3cf08d436f7fffa3ebab4a664ae5785b0e02726ed5 guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-unsigned.zip 21f490dc45e3401815c252e4f818d266a6076e225e17f8a83a64d0919f2ca419fd guix-build-25ede968bada/output/x86_64-linux-gnu/SHA256SUMS.part 22de096f32dd1396195723db299ae8f299f9a8a425f45a79f9414184b4ec98c252 guix-build-25ede968bada/output/x86_64-linux-gnu/bitcoin-25ede968bada-x86_64-linux-gnu-debug.tar.gz 231f035fbdcda7e22390b4dc89dfc765f98a01f95d3f39faf8a34be51c6dd4bb9f guix-build-25ede968bada/output/x86_64-linux-gnu/bitcoin-25ede968bada-x86_64-linux-gnu.tar.gz 2450437f34b662a2cf0dc55c6d54b8a74b19d5fcc02380490e1a5a6347a4c2520c guix-build-25ede968bada/output/x86_64-w64-mingw32/SHA256SUMS.part 25780df1f42e33f6d5203b818bc0081c7a420878de274295cebb4668f54653a735 guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-codesigning.tar.gz 268eec58e81a5a3f072c8ba2ec39cde884f725e0ce3a295dd8f0b37710c0874682 guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-debug.zip 27b7d9273ef4d2edf723442bedc570af20efa218afcd7cc85cfd66be065c3f6e58 guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-setup-unsigned.exe 2868a88570939913939f411cfd11e0f0d3260970c4767490b227d94a417f9a55db guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-unsigned.zipwillcl-ark commented at 2:36 pm on November 5, 2025: member0src/core/bitcoin on pr-33775 [$?] via △ v3.31.6 via 🐍 v3.13.5 via ❄️ impure (nix-shell-env) 1❯ uname -m; find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum 2x86_64 36c31a0f19daec94c3d629e50d6bc2461ceb6e0fbb0823cb10a40bc735e37f9b5 guix-build-25ede968bada/output/aarch64-linux-gnu/SHA256SUMS.part 4f3ba2f0c5f1d99d377ea11ea2b9983187192d733c7db444060d112d1be48ecd2 guix-build-25ede968bada/output/aarch64-linux-gnu/bitcoin-25ede968bada-aarch64-linux-gnu-debug.tar.gz 5321db43f3a4327287813274b7f9874fb76799643fdc9cbbc9ee13bce10b6e004 guix-build-25ede968bada/output/aarch64-linux-gnu/bitcoin-25ede968bada-aarch64-linux-gnu.tar.gz 658f449098f98b7746c2ba9286a3582852aed3c32b3cc0327598c279d46eab5b7 guix-build-25ede968bada/output/arm-linux-gnueabihf/SHA256SUMS.part 70c51f7872d5f65ad2bd432d20f76c49b8e2dc765cacb53f696b0a0c5ea91b56b guix-build-25ede968bada/output/arm-linux-gnueabihf/bitcoin-25ede968bada-arm-linux-gnueabihf-debug.tar.gz 84f679e6074c745b2e91494721a6c8aa0ef24e19f18a3971ac53913441fdbf399 guix-build-25ede968bada/output/arm-linux-gnueabihf/bitcoin-25ede968bada-arm-linux-gnueabihf.tar.gz 98a66a9d3180f8fa386a0fdfc4ed1b80c716ec9b754921c35543cdc822ea35bf9 guix-build-25ede968bada/output/arm64-apple-darwin/SHA256SUMS.part 10cbbffbb237ca4a0174f457824a21412334d7ce7c1931c78fe293520029e97c32 guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-codesigning.tar.gz 11518312fec80b309a38393a7408cad0fda28f4cf7b52d08a5b4c2d1a26ea9b8d4 guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-unsigned.tar.gz 125a36a5ddea0070e3efd6e3db92528705483a2dd4ebc9287ed42c3d180537092a guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-unsigned.zip 13768446c9e4037d07b76df5379ff42482e2ce264db5e0ed61694af0c7ea49cd69 guix-build-25ede968bada/output/dist-archive/bitcoin-25ede968bada.tar.gz 14a85baf46acec900f79b9343f9bd918731bfc0f1fea7586b902f28e99cda59e37 guix-build-25ede968bada/output/powerpc64-linux-gnu/SHA256SUMS.part 15c01ac68acbdae911b56a6b3eb1762d9f57d4d7fc0dbedfa3f4c0905bf4be6853 guix-build-25ede968bada/output/powerpc64-linux-gnu/bitcoin-25ede968bada-powerpc64-linux-gnu-debug.tar.gz 16f08b8d0909eb6f6a7f4b483f338655b0c44ee85c219360b62c99165df5aed157 guix-build-25ede968bada/output/powerpc64-linux-gnu/bitcoin-25ede968bada-powerpc64-linux-gnu.tar.gz 17a2e1c4960965d6315e3c89579b7224970229d01f1c9b60ff8ec1698a1bebb884 guix-build-25ede968bada/output/riscv64-linux-gnu/SHA256SUMS.part 186b4958341f9648ddaf7c57a788db7b229d6be4cc7f9548f3acd84c2ce990909a guix-build-25ede968bada/output/riscv64-linux-gnu/bitcoin-25ede968bada-riscv64-linux-gnu-debug.tar.gz 192f03dcd2941388cecb4c7ae1d8e0b925e0bcc1c0f79f6676906b88ed3f98c1e0 guix-build-25ede968bada/output/riscv64-linux-gnu/bitcoin-25ede968bada-riscv64-linux-gnu.tar.gz 20a8b021adae39e2f9beaa37e6fa370eaa6fac033505cdfe8fdfcb01f6b6786ce1 guix-build-25ede968bada/output/x86_64-apple-darwin/SHA256SUMS.part 2110cd32f7b51cca2473d4c1a92cde51914ec36e5d90d46c623047b0bd4a6171ce guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-codesigning.tar.gz 22dfde14c907e39b547681600cf0a1056f88d4e26d67bda66bb0ebdacaa77755bb guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-unsigned.tar.gz 233a69e45b82a8397d4638ca3cf08d436f7fffa3ebab4a664ae5785b0e02726ed5 guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-unsigned.zip 24f490dc45e3401815c252e4f818d266a6076e225e17f8a83a64d0919f2ca419fd guix-build-25ede968bada/output/x86_64-linux-gnu/SHA256SUMS.part 25de096f32dd1396195723db299ae8f299f9a8a425f45a79f9414184b4ec98c252 guix-build-25ede968bada/output/x86_64-linux-gnu/bitcoin-25ede968bada-x86_64-linux-gnu-debug.tar.gz 261f035fbdcda7e22390b4dc89dfc765f98a01f95d3f39faf8a34be51c6dd4bb9f guix-build-25ede968bada/output/x86_64-linux-gnu/bitcoin-25ede968bada-x86_64-linux-gnu.tar.gz 2750437f34b662a2cf0dc55c6d54b8a74b19d5fcc02380490e1a5a6347a4c2520c guix-build-25ede968bada/output/x86_64-w64-mingw32/SHA256SUMS.part 28780df1f42e33f6d5203b818bc0081c7a420878de274295cebb4668f54653a735 guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-codesigning.tar.gz 298eec58e81a5a3f072c8ba2ec39cde884f725e0ce3a295dd8f0b37710c0874682 guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-debug.zip 30b7d9273ef4d2edf723442bedc570af20efa218afcd7cc85cfd66be065c3f6e58 guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-setup-unsigned.exe 3168a88570939913939f411cfd11e0f0d3260970c4767490b227d94a417f9a55db guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-unsigned.zipfanquake commented at 3:13 pm on November 5, 2025: memberWindows is non-deterministic across x86_64 && aarch64. Guix build (aarch64):
06c31a0f19daec94c3d629e50d6bc2461ceb6e0fbb0823cb10a40bc735e37f9b5 guix-build-25ede968bada/output/aarch64-linux-gnu/SHA256SUMS.part 1f3ba2f0c5f1d99d377ea11ea2b9983187192d733c7db444060d112d1be48ecd2 guix-build-25ede968bada/output/aarch64-linux-gnu/bitcoin-25ede968bada-aarch64-linux-gnu-debug.tar.gz 2321db43f3a4327287813274b7f9874fb76799643fdc9cbbc9ee13bce10b6e004 guix-build-25ede968bada/output/aarch64-linux-gnu/bitcoin-25ede968bada-aarch64-linux-gnu.tar.gz 358f449098f98b7746c2ba9286a3582852aed3c32b3cc0327598c279d46eab5b7 guix-build-25ede968bada/output/arm-linux-gnueabihf/SHA256SUMS.part 40c51f7872d5f65ad2bd432d20f76c49b8e2dc765cacb53f696b0a0c5ea91b56b guix-build-25ede968bada/output/arm-linux-gnueabihf/bitcoin-25ede968bada-arm-linux-gnueabihf-debug.tar.gz 54f679e6074c745b2e91494721a6c8aa0ef24e19f18a3971ac53913441fdbf399 guix-build-25ede968bada/output/arm-linux-gnueabihf/bitcoin-25ede968bada-arm-linux-gnueabihf.tar.gz 68a66a9d3180f8fa386a0fdfc4ed1b80c716ec9b754921c35543cdc822ea35bf9 guix-build-25ede968bada/output/arm64-apple-darwin/SHA256SUMS.part 7cbbffbb237ca4a0174f457824a21412334d7ce7c1931c78fe293520029e97c32 guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-codesigning.tar.gz 8518312fec80b309a38393a7408cad0fda28f4cf7b52d08a5b4c2d1a26ea9b8d4 guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-unsigned.tar.gz 95a36a5ddea0070e3efd6e3db92528705483a2dd4ebc9287ed42c3d180537092a guix-build-25ede968bada/output/arm64-apple-darwin/bitcoin-25ede968bada-arm64-apple-darwin-unsigned.zip 10768446c9e4037d07b76df5379ff42482e2ce264db5e0ed61694af0c7ea49cd69 guix-build-25ede968bada/output/dist-archive/bitcoin-25ede968bada.tar.gz 11a85baf46acec900f79b9343f9bd918731bfc0f1fea7586b902f28e99cda59e37 guix-build-25ede968bada/output/powerpc64-linux-gnu/SHA256SUMS.part 12c01ac68acbdae911b56a6b3eb1762d9f57d4d7fc0dbedfa3f4c0905bf4be6853 guix-build-25ede968bada/output/powerpc64-linux-gnu/bitcoin-25ede968bada-powerpc64-linux-gnu-debug.tar.gz 13f08b8d0909eb6f6a7f4b483f338655b0c44ee85c219360b62c99165df5aed157 guix-build-25ede968bada/output/powerpc64-linux-gnu/bitcoin-25ede968bada-powerpc64-linux-gnu.tar.gz 14a2e1c4960965d6315e3c89579b7224970229d01f1c9b60ff8ec1698a1bebb884 guix-build-25ede968bada/output/riscv64-linux-gnu/SHA256SUMS.part 156b4958341f9648ddaf7c57a788db7b229d6be4cc7f9548f3acd84c2ce990909a guix-build-25ede968bada/output/riscv64-linux-gnu/bitcoin-25ede968bada-riscv64-linux-gnu-debug.tar.gz 162f03dcd2941388cecb4c7ae1d8e0b925e0bcc1c0f79f6676906b88ed3f98c1e0 guix-build-25ede968bada/output/riscv64-linux-gnu/bitcoin-25ede968bada-riscv64-linux-gnu.tar.gz 17a8b021adae39e2f9beaa37e6fa370eaa6fac033505cdfe8fdfcb01f6b6786ce1 guix-build-25ede968bada/output/x86_64-apple-darwin/SHA256SUMS.part 1810cd32f7b51cca2473d4c1a92cde51914ec36e5d90d46c623047b0bd4a6171ce guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-codesigning.tar.gz 19dfde14c907e39b547681600cf0a1056f88d4e26d67bda66bb0ebdacaa77755bb guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-unsigned.tar.gz 203a69e45b82a8397d4638ca3cf08d436f7fffa3ebab4a664ae5785b0e02726ed5 guix-build-25ede968bada/output/x86_64-apple-darwin/bitcoin-25ede968bada-x86_64-apple-darwin-unsigned.zip 21f490dc45e3401815c252e4f818d266a6076e225e17f8a83a64d0919f2ca419fd guix-build-25ede968bada/output/x86_64-linux-gnu/SHA256SUMS.part 22de096f32dd1396195723db299ae8f299f9a8a425f45a79f9414184b4ec98c252 guix-build-25ede968bada/output/x86_64-linux-gnu/bitcoin-25ede968bada-x86_64-linux-gnu-debug.tar.gz 231f035fbdcda7e22390b4dc89dfc765f98a01f95d3f39faf8a34be51c6dd4bb9f guix-build-25ede968bada/output/x86_64-linux-gnu/bitcoin-25ede968bada-x86_64-linux-gnu.tar.gz 24a290a73521d2c2e39a72fe370a41c54d1e154dd96f9d7f9573c8fc2bf9a467ac guix-build-25ede968bada/output/x86_64-w64-mingw32/SHA256SUMS.part 2586dd7a5f478f2878c3e6e6521395e06cc084ed60e56b99caa51abbac6dffa20c guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-codesigning.tar.gz 268eec58e81a5a3f072c8ba2ec39cde884f725e0ce3a295dd8f0b37710c0874682 guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-debug.zip 2763069bfc67f7560b5503a355b3f8e3bd4584c41292c37aa7aa88126a87e8463a guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-setup-unsigned.exe 287417cb50480fd5006fb8d9e47e4564929398f62860f6829930abd978ca32505b guix-build-25ede968bada/output/x86_64-w64-mingw32/bitcoin-25ede968bada-win64-unsigned.zipDrahtBot commented at 0:43 am on November 7, 2025: contributorGuix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use]
File commit 50d106a4d6acaa0f10548f9a542dd3f83dfd7e01(master) commit 768f3f3d84c5d4854844ddb3de2372a54219a4aa(pull/33775/merge) *-aarch64-linux-gnu-debug.tar.gz ad364abf85c33224...36593cb9a3295fbb...*-aarch64-linux-gnu.tar.gz e4747bcb603e9d22...499f1058095ecd74...*-arm-linux-gnueabihf-debug.tar.gz 46cdab38307b063d...f4170b1241c89728...*-arm-linux-gnueabihf.tar.gz 2609ba76281c224e...e01c9ac71d328170...*-arm64-apple-darwin-codesigning.tar.gz 6f4fbb4c20bd1ee5...885e0341fe7c8d1d...*-arm64-apple-darwin-unsigned.tar.gz 64438ffa1d21c8bc...4d2c1ef8611abcc4...*-arm64-apple-darwin-unsigned.zip e277424cc1f03706...d0404b42c1f537d2...*-powerpc64-linux-gnu-debug.tar.gz ad3e84af57784a31...840a2f06a929c0a6...*-powerpc64-linux-gnu.tar.gz 7da671ecf2906b5f...07121376f7622c47...*-riscv64-linux-gnu-debug.tar.gz 7cb690ed10d887b7...35aa84f5f41fe1a7...*-riscv64-linux-gnu.tar.gz dfee1ec9aa36781f...b810df486ddd2760...*-x86_64-apple-darwin-codesigning.tar.gz a8a9fb59f0bb2990...c2a4b435fb9e36b1...*-x86_64-apple-darwin-unsigned.tar.gz 905c6df93a71771a...e1c0938eca39a917...*-x86_64-apple-darwin-unsigned.zip 0b5455e26aaeb71d...622962d3489ac954...*-x86_64-linux-gnu-debug.tar.gz 82fa3fbc36f0b4dd...414de2dd4318646f...*-x86_64-linux-gnu.tar.gz c3eaf5985b80144b...51de4bcb2b017d53...*.tar.gz 9cacbb82e4362de8...0968f412a1730028...SHA256SUMS.part cb6d670feb127136...10a71a56d4875acc...guix_build.log b1fd8fa48f3dc5a0...bb12b235619992e3...guix_build.log.diff 326c5888cb327897...DrahtBot removed the label DrahtBot Guix build requested on Nov 7, 2025fanquake force-pushed on Nov 10, 2025fanquake force-pushed on Nov 10, 2025DrahtBot added the label CI failed on Nov 10, 2025DrahtBot removed the label CI failed on Nov 10, 2025fanquake force-pushed on Nov 11, 2025fanquake force-pushed on Nov 11, 2025willcl-ark commented at 10:16 am on November 12, 2025: memberI get a guix build failure @ 758da5a5732:
0g++ -pie -Wl,-z,now -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -pie -Wl,-z,now -static-libstdc++ -static-libgcc -o Tcollect2 \ 1 collect2.o collect2-aix.o vec.o ggc-none.o collect-utils.o file-find.o hash-table.o selftest.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/pic/libiberty.a ../libdecnumber/libdecnumber.a 2ld: ../libbacktrace/.libs/libbacktrace.a(backtrace.o): relocation R_X86_64_32 against `.text' can not be used when making a PIE object; recompile with -fPIE 3ld: failed to set dynamic section sizes: bad value 4collect2: error: ld returned 1 exit status 5make[2]: *** [Makefile:2409: collect2] Error 1 6make[2]: *** Waiting for unfinished jobs.... 7make[2]: Leaving directory '/tmp/guix-build-gcc-cross-sans-libc-x86_64-linux-gnu-14.3.0.drv-0/build/gcc' 8make[1]: *** [Makefile:4673: all-gcc] Error 2 9make[1]: Leaving directory '/tmp/guix-build-gcc-cross-sans-libc-x86_64-linux-gnu-14.3.0.drv-0/build' 10make: *** [Makefile:1040: all] Error 2 11error: in phase 'build': uncaught exception: 12%exception #<&invoke-error program: "make" arguments: ("-j" "16" "CFLAGS=-g0 -O2") exit-status: 2 term-signal: #f stop-signal: #f> 13phase `build' failed after 242.0 seconds 14command "make" "-j" "16" "CFLAGS=-g0 -O2" failed with status 2 15build process 18 exited with status 256fanquake force-pushed on Nov 12, 2025janb84 commented at 1:54 pm on November 12, 2025: contributorSame got build failure (2x) at 758da5a5732433807f1d9c8f043de934982218ab
0/ 'build' phasenote: keeping build directory `/tmp/guix-build-gcc-cross-x86_64-w64-mingw32-14.3.0.drv-0' 1builder for `/gnu/store/akfhrz7dsfj133vqrdr79ipdhgvc5352-gcc-cross-x86_64-w64-mingw32-14.3.0.drv' failed with 1 2build of /gnu/store/akfhrz7dsfj133vqrdr79ipdhgvc5352-gcc-cross-x86_64-w64-mingw32-14.3.0.drv failed 3View build log at '/var/log/guix/drvs/ak/fhrz7dsfj133vqrdr79ipdhgvc5352-gcc-cross-x86_64-w64-mingw32-14.3.0.dr. 4cannot build derivation `/gnu/store/nv2hxwckv673i17w54bzyr2y3ascg5pd-profile.drv': 1 dependencies couldn't be t 5guix shell: error: build of `/gnu/store/nv2hxwckv673i17w54bzyr2y3ascg5pd-profile.drv' failedMentioned log: fhrz7dsfj133vqrdr79ipdhgvc5352-gcc-cross-x86_64-w64-mingw32-14.3.0.drv.gz
willcl-ark commented at 2:17 pm on November 12, 2025: memberWithout the new flags I get:
0core/worktrees/pr-33775 on pr-33775 [$] via △ v3.31.6 via 🐍 v3.13.5 via ❄️ impure (nix-shell-env) took 3h44m19s 1❯ uname -m; find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum 2x86_64 336feb0fb0ca11e5c17e01704b2c0c2cf6e23f59a62f0dd1d76819db5dc9fc1a5 guix-build-fc564434b8fb/output/aarch64-linux-gnu/SHA256SUMS.part 41b88fb5d39140df4b14e67638f02bb07ff2d7525b7ad812f783b4c0f87531908 guix-build-fc564434b8fb/output/aarch64-linux-gnu/bitcoin-fc564434b8fb-aarch64-linux-gnu-debug.tar.gz 59175e16424510fb37ffd2a674aad4f7ef8eb639f260c076b518785a0f81ed3d6 guix-build-fc564434b8fb/output/aarch64-linux-gnu/bitcoin-fc564434b8fb-aarch64-linux-gnu.tar.gz 680efa6885b84ac84d103a48045cd179e8416dca998dee86a075558d1d596faaf guix-build-fc564434b8fb/output/arm-linux-gnueabihf/SHA256SUMS.part 72ba5ea3e1189f916849020c791fa09b618f376c5aaa61cc729745deaf0347dce guix-build-fc564434b8fb/output/arm-linux-gnueabihf/bitcoin-fc564434b8fb-arm-linux-gnueabihf-debug.tar.gz 8fd7c6c6a26a190b8545ba1db2352003c87c78c6164b911de929235180a75d78d guix-build-fc564434b8fb/output/arm-linux-gnueabihf/bitcoin-fc564434b8fb-arm-linux-gnueabihf.tar.gz 98d9a2b291a0b508a2abc1dcfdbf81eb2da06e1e3a6f45ae458152a2976fd3548 guix-build-fc564434b8fb/output/arm64-apple-darwin/SHA256SUMS.part 10c2eff8b7576a0de4450e70689bc883f19bf72ce60e27098e3589e995fb7592ec guix-build-fc564434b8fb/output/arm64-apple-darwin/bitcoin-fc564434b8fb-arm64-apple-darwin-codesigning.tar.gz 1127795225bfb45932d84716078c36bd5e46cbbc8f4025a1b275becd138fff8d9e guix-build-fc564434b8fb/output/arm64-apple-darwin/bitcoin-fc564434b8fb-arm64-apple-darwin-unsigned.tar.gz 12dde173ad4365dee349e4cc0317c4eb370b18756841f2ce17fe870ec95525b1a9 guix-build-fc564434b8fb/output/arm64-apple-darwin/bitcoin-fc564434b8fb-arm64-apple-darwin-unsigned.zip 137cfaeaf3fdfdd6525f73c0b95945b497bc37a875a16c5e2f87b3c3db370b1463 guix-build-fc564434b8fb/output/dist-archive/bitcoin-fc564434b8fb.tar.gz 14c9c6434a74c68b908f7ee2376017decdc2cdaafc7130efcd97ddd79a9ee30455 guix-build-fc564434b8fb/output/powerpc64-linux-gnu/SHA256SUMS.part 15e21646e7d4f1e6feacffa5fd6d7c7932b1933b18c505683af4d3cd29f6cec5ed guix-build-fc564434b8fb/output/powerpc64-linux-gnu/bitcoin-fc564434b8fb-powerpc64-linux-gnu-debug.tar.gz 16c327f0d153b54be042805c7039909c1fb499b53c6865251f804a422ccce076d0 guix-build-fc564434b8fb/output/powerpc64-linux-gnu/bitcoin-fc564434b8fb-powerpc64-linux-gnu.tar.gz 1717f6a43afeab0d604c622b6446cd0ce91941446583b0992dfe7de3ac373805a3 guix-build-fc564434b8fb/output/riscv64-linux-gnu/SHA256SUMS.part 18c55582b7a41b420d469718c3863cc4f422919ed9a40889b2158b55a70f0ca242 guix-build-fc564434b8fb/output/riscv64-linux-gnu/bitcoin-fc564434b8fb-riscv64-linux-gnu-debug.tar.gz 1959797ae9b27b5c4756d5b86ac3f96f42d3a516cdd51403302b990945e613f518 guix-build-fc564434b8fb/output/riscv64-linux-gnu/bitcoin-fc564434b8fb-riscv64-linux-gnu.tar.gz 20a647c87cbaebfe51d2b53ca87e84e9fb7f0ca1c18d7f1470df57f4b3fb7974f3 guix-build-fc564434b8fb/output/x86_64-apple-darwin/SHA256SUMS.part 21f33fb123db84d248aa50a228851dff5ec7fc3c49808b1b826bd3a6519f030432 guix-build-fc564434b8fb/output/x86_64-apple-darwin/bitcoin-fc564434b8fb-x86_64-apple-darwin-codesigning.tar.gz 22da4d7d1c9f2cbe77e46ea776e58111fd31be998707b9c29886712616f91f3cbb guix-build-fc564434b8fb/output/x86_64-apple-darwin/bitcoin-fc564434b8fb-x86_64-apple-darwin-unsigned.tar.gz 23e35de680539a1763d25d6ac5134786b693aeb3386124d8bb768d2cca36d5308c guix-build-fc564434b8fb/output/x86_64-apple-darwin/bitcoin-fc564434b8fb-x86_64-apple-darwin-unsigned.zip 24ac1a14a98dfeac54139b556725970f9fc11050b866324c5c7b489582d30146d0 guix-build-fc564434b8fb/output/x86_64-linux-gnu/SHA256SUMS.part 25df6e6062d4f4dc5c39eea4501beb7ea7c06fa286f3bc33905cdb550bb34464a4 guix-build-fc564434b8fb/output/x86_64-linux-gnu/bitcoin-fc564434b8fb-x86_64-linux-gnu-debug.tar.gz 26084839fecaaccf3f674dd63dcb5ad467f9892568e72d9493f622c388cc2cd80b guix-build-fc564434b8fb/output/x86_64-linux-gnu/bitcoin-fc564434b8fb-x86_64-linux-gnu.tar.gz 277731e0ebe19bb9f19491f87879debdc671dfc2c3b87de816577223ef95ab2b4d guix-build-fc564434b8fb/output/x86_64-w64-mingw32/SHA256SUMS.part 2866bce8603fd3a78b0f2b277352ddd81fe6e20a7468e5958ecedfa26d636f6938 guix-build-fc564434b8fb/output/x86_64-w64-mingw32/bitcoin-fc564434b8fb-win64-codesigning.tar.gz 291bc1e2341163ad8c9ac3c4e6cad4b8c53c445e3798f5e7ca2f2b8efe1956e3cf guix-build-fc564434b8fb/output/x86_64-w64-mingw32/bitcoin-fc564434b8fb-win64-debug.zip 30121ee4b1dd3cfb4406d851866130a6b4120a20ab16a142dd6b2fc68e9863b2bc guix-build-fc564434b8fb/output/x86_64-w64-mingw32/bitcoin-fc564434b8fb-win64-setup-unsigned.exe 318b57593558909a896394c7110e15515956a41c514c47f0b6b194563ca48dbd3b guix-build-fc564434b8fb/output/x86_64-w64-mingw32/bitcoin-fc564434b8fb-win64-unsigned.zipfanquake commented at 5:20 pm on November 12, 2025: memberDiffing
bitcoind.exebuilt on x86_64 and aarch64, the offending symbols are:0wallet::SQLiteDataFile(fs::path const&) 1wallet::ListDatabases[abi:cxx11](fs::path const&) 2std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >& std::vector<std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::emplace_back<fs::path const&, char const (&) [4]>(fs::path const&, char const (&) [4]).isra.0Seeing the following difference:
02c2 1< bitcoind_exe_aarch64: file format pei-x86-64 2--- 3> bitcoind_exe_x86_64: file format pei-x86-64 41039578,1039579c1039578,1039579 5< 1403f104f: 49 39 f5 cmp %rsi,%r13 6< 1403f1052: 48 89 f5 mov %rsi,%rbp 7--- 8> 1403f104f: 4c 39 ee cmp %r13,%rsi 9> 1403f1052: 4c 89 ed mov %r13,%rbp 101039581c1039581 11< 1403f1059: 49 0f 43 ed cmovae %r13,%rbp 12--- 13> 1403f1059: 48 0f 43 ee cmovae %rsi,%rbp 141043337,1043338c1043337,1043338 15< 1403f4b91: 4c 39 ef cmp %r13,%rdi 16< 1403f4b94: 4d 89 ee mov %r13,%r14 17--- 18> 1403f4b91: 49 39 fd cmp %rdi,%r13 19> 1403f4b94: 49 89 fe mov %rdi,%r14 201043340c1043340 21< 1403f4b9c: 4c 0f 43 f7 cmovae %rdi,%r14 22--- 23> 1403f4b9c: 4d 0f 43 f5 cmovae %r13,%r14fanquake force-pushed on Nov 14, 2025fanquake force-pushed on Nov 14, 2025janb84 commented at 7:00 pm on November 14, 2025: contributorGuix builds again :)
My Guix Build Output
Host architecture:
aarch64Commit:8ebf8d30 a80099915046f4771235180303b1c92664d36c8cb1564e0e8afc410d3a5eec19 guix-build-8ebf8d35eb1c/output/aarch64-linux-gnu/SHA256SUMS.part 1 1c3b7cd6548ba04ce58c3d8c7645941fd6cdda313d21f171d0ce10067e11087b guix-build-8ebf8d35eb1c/output/aarch64-linux-gnu/bitcoin-8ebf8d35eb1c-aarch64-linux-gnu-debug.tar.gz 2 e3738b32f546e48dca9a1e1adb63349c206d11a6528c73f639701e3d376dabe3 guix-build-8ebf8d35eb1c/output/aarch64-linux-gnu/bitcoin-8ebf8d35eb1c-aarch64-linux-gnu.tar.gz 3 9bb50c651cf6247510536e9b41253fd1e2b4b150bee76d807c78e316f0bf884d guix-build-8ebf8d35eb1c/output/arm-linux-gnueabihf/SHA256SUMS.part 4 5d952a2b1fa00f92b1602c15b88173f8024a941269284a02414f05cdac33e487 guix-build-8ebf8d35eb1c/output/arm-linux-gnueabihf/bitcoin-8ebf8d35eb1c-arm-linux-gnueabihf-debug.tar.gz 5 9506bacf3ce09e839636b4823b67520d90d7f7d6bf4c7ed9c5f1467bbed95db6 guix-build-8ebf8d35eb1c/output/arm-linux-gnueabihf/bitcoin-8ebf8d35eb1c-arm-linux-gnueabihf.tar.gz 6 115c6df3c26cfaf8dac75660c40dc0170c291d9caf808f0ff4ebf0059e81d287 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/SHA256SUMS.part 7 b9ca58563d392ce8a0231fdfbf16774a7067a597500cc20a3838ce5dcd974fd5 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/bitcoin-8ebf8d35eb1c-arm64-apple-darwin-codesigning.tar.gz 8 84922a3e184eb5be45f785b285a84d6a6d6d6bd6f9e2542f02c829bb84d324a5 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/bitcoin-8ebf8d35eb1c-arm64-apple-darwin-unsigned.tar.gz 9 d845db5ff5863c8cef4d3785f359c9680d8d2a11cfe0c27718acca457045f021 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/bitcoin-8ebf8d35eb1c-arm64-apple-darwin-unsigned.zip 10 02d6df9f30a295a66f183c456fba79bc4c19178a21ea4989361c8072325726bb guix-build-8ebf8d35eb1c/output/dist-archive/bitcoin-8ebf8d35eb1c.tar.gz 11 2d9c5dc7ea2b4f26e658ff77c1315f1c24481020afdf6cac3412d28250fb6d61 guix-build-8ebf8d35eb1c/output/powerpc64-linux-gnu/SHA256SUMS.part 12 6521021de7e5c9da45bd0248db37dbd75aba551b31d8fe946db616ca50f8c5e7 guix-build-8ebf8d35eb1c/output/powerpc64-linux-gnu/bitcoin-8ebf8d35eb1c-powerpc64-linux-gnu-debug.tar.gz 13 d31020d9705e471ccac6f87f14acd95ac83a6510271cf7b2db1bba8a449aada0 guix-build-8ebf8d35eb1c/output/powerpc64-linux-gnu/bitcoin-8ebf8d35eb1c-powerpc64-linux-gnu.tar.gz 14 75caf1478636f51c03cbc8e0dee11875ed16f9e6239bd0f64c9a193dbfaf2267 guix-build-8ebf8d35eb1c/output/riscv64-linux-gnu/SHA256SUMS.part 15 802b3b0f557e23f6c5ab34561e8d3bf8e4901784326f005f03e21ced25c60534 guix-build-8ebf8d35eb1c/output/riscv64-linux-gnu/bitcoin-8ebf8d35eb1c-riscv64-linux-gnu-debug.tar.gz 16 8f0062802004b91f295419312c3902dfc2df9ae36fbd6ae431a9ce0934c1c2fe guix-build-8ebf8d35eb1c/output/riscv64-linux-gnu/bitcoin-8ebf8d35eb1c-riscv64-linux-gnu.tar.gz 17 c6a2af5d9d796f506cb4ac53cdf3ff63e85298d2c1141b5cbc89c281c0e2db1a guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/SHA256SUMS.part 18 bddc105b833675b8e322979d5f2e0ed553f35fb984cf584db77e8559bb598348 guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/bitcoin-8ebf8d35eb1c-x86_64-apple-darwin-codesigning.tar.gz 19 5b19a7ed4dc9d0aecadfb76b11c6dbf4c4210a01f08f3f2c26316e623e970974 guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/bitcoin-8ebf8d35eb1c-x86_64-apple-darwin-unsigned.tar.gz 20 0b4d6d35930765566918ab5e0a8e725d7b731548da0bd956393f7a4bfa6b25ee guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/bitcoin-8ebf8d35eb1c-x86_64-apple-darwin-unsigned.zip 21 bef3cdc2e526752537c095e594104484aa07e5d8a25a19e3300a6868f17b52e2 guix-build-8ebf8d35eb1c/output/x86_64-linux-gnu/SHA256SUMS.part 22 6df3b7dfa686fa60b9d05e1977c8df0b9de21bb23a4ae3eeccb77d58af4379b7 guix-build-8ebf8d35eb1c/output/x86_64-linux-gnu/bitcoin-8ebf8d35eb1c-x86_64-linux-gnu-debug.tar.gz 23 684bfad555b0f1a9d6e6b49539fe81931d9a78bbaed126deda643b11540e6e52 guix-build-8ebf8d35eb1c/output/x86_64-linux-gnu/bitcoin-8ebf8d35eb1c-x86_64-linux-gnu.tar.gz 24 18447dfc12d611e651bd14bb0cd3a2e88fb9d8cc1472baa2ef0dbcd5aee7672d guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/SHA256SUMS.part 25 52d68e31227250a96c7d50fe11f9cf92749b9d10df18ccd45a3f16ffb81081fc guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-codesigning.tar.gz 26 79d649c9de2d7ae4281d689971e4d9804bca996b9c0ae6792a64a9e82b4ef3dd guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-debug.zip 27 77f25d148baefa9fdf788f3ff608b271e48997ddcd3d038cb122d2fbebb21216 guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-setup-unsigned.exe 28 91ffdbae0834ef8839bc8841a71474e0453da130f301df9c4b93359be9c09205 guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-unsigned.zipm3dwards commented at 2:28 pm on November 18, 2025: contributorAs I think we expected I got slightly different results on an x86 guix build for windows:
0x86_64 1a80099915046f4771235180303b1c92664d36c8cb1564e0e8afc410d3a5eec19 guix-build-8ebf8d35eb1c/output/aarch64-linux-gnu/SHA256SUMS.part 21c3b7cd6548ba04ce58c3d8c7645941fd6cdda313d21f171d0ce10067e11087b guix-build-8ebf8d35eb1c/output/aarch64-linux-gnu/bitcoin-8ebf8d35eb1c-aarch64-linux-gnu-debug.tar.gz 3e3738b32f546e48dca9a1e1adb63349c206d11a6528c73f639701e3d376dabe3 guix-build-8ebf8d35eb1c/output/aarch64-linux-gnu/bitcoin-8ebf8d35eb1c-aarch64-linux-gnu.tar.gz 49bb50c651cf6247510536e9b41253fd1e2b4b150bee76d807c78e316f0bf884d guix-build-8ebf8d35eb1c/output/arm-linux-gnueabihf/SHA256SUMS.part 55d952a2b1fa00f92b1602c15b88173f8024a941269284a02414f05cdac33e487 guix-build-8ebf8d35eb1c/output/arm-linux-gnueabihf/bitcoin-8ebf8d35eb1c-arm-linux-gnueabihf-debug.tar.gz 69506bacf3ce09e839636b4823b67520d90d7f7d6bf4c7ed9c5f1467bbed95db6 guix-build-8ebf8d35eb1c/output/arm-linux-gnueabihf/bitcoin-8ebf8d35eb1c-arm-linux-gnueabihf.tar.gz 7115c6df3c26cfaf8dac75660c40dc0170c291d9caf808f0ff4ebf0059e81d287 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/SHA256SUMS.part 8b9ca58563d392ce8a0231fdfbf16774a7067a597500cc20a3838ce5dcd974fd5 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/bitcoin-8ebf8d35eb1c-arm64-apple-darwin-codesigning.tar.gz 984922a3e184eb5be45f785b285a84d6a6d6d6bd6f9e2542f02c829bb84d324a5 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/bitcoin-8ebf8d35eb1c-arm64-apple-darwin-unsigned.tar.gz 10d845db5ff5863c8cef4d3785f359c9680d8d2a11cfe0c27718acca457045f021 guix-build-8ebf8d35eb1c/output/arm64-apple-darwin/bitcoin-8ebf8d35eb1c-arm64-apple-darwin-unsigned.zip 1102d6df9f30a295a66f183c456fba79bc4c19178a21ea4989361c8072325726bb guix-build-8ebf8d35eb1c/output/dist-archive/bitcoin-8ebf8d35eb1c.tar.gz 122d9c5dc7ea2b4f26e658ff77c1315f1c24481020afdf6cac3412d28250fb6d61 guix-build-8ebf8d35eb1c/output/powerpc64-linux-gnu/SHA256SUMS.part 136521021de7e5c9da45bd0248db37dbd75aba551b31d8fe946db616ca50f8c5e7 guix-build-8ebf8d35eb1c/output/powerpc64-linux-gnu/bitcoin-8ebf8d35eb1c-powerpc64-linux-gnu-debug.tar.gz 14d31020d9705e471ccac6f87f14acd95ac83a6510271cf7b2db1bba8a449aada0 guix-build-8ebf8d35eb1c/output/powerpc64-linux-gnu/bitcoin-8ebf8d35eb1c-powerpc64-linux-gnu.tar.gz 1575caf1478636f51c03cbc8e0dee11875ed16f9e6239bd0f64c9a193dbfaf2267 guix-build-8ebf8d35eb1c/output/riscv64-linux-gnu/SHA256SUMS.part 16802b3b0f557e23f6c5ab34561e8d3bf8e4901784326f005f03e21ced25c60534 guix-build-8ebf8d35eb1c/output/riscv64-linux-gnu/bitcoin-8ebf8d35eb1c-riscv64-linux-gnu-debug.tar.gz 178f0062802004b91f295419312c3902dfc2df9ae36fbd6ae431a9ce0934c1c2fe guix-build-8ebf8d35eb1c/output/riscv64-linux-gnu/bitcoin-8ebf8d35eb1c-riscv64-linux-gnu.tar.gz 18c6a2af5d9d796f506cb4ac53cdf3ff63e85298d2c1141b5cbc89c281c0e2db1a guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/SHA256SUMS.part 19bddc105b833675b8e322979d5f2e0ed553f35fb984cf584db77e8559bb598348 guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/bitcoin-8ebf8d35eb1c-x86_64-apple-darwin-codesigning.tar.gz 205b19a7ed4dc9d0aecadfb76b11c6dbf4c4210a01f08f3f2c26316e623e970974 guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/bitcoin-8ebf8d35eb1c-x86_64-apple-darwin-unsigned.tar.gz 210b4d6d35930765566918ab5e0a8e725d7b731548da0bd956393f7a4bfa6b25ee guix-build-8ebf8d35eb1c/output/x86_64-apple-darwin/bitcoin-8ebf8d35eb1c-x86_64-apple-darwin-unsigned.zip 22bef3cdc2e526752537c095e594104484aa07e5d8a25a19e3300a6868f17b52e2 guix-build-8ebf8d35eb1c/output/x86_64-linux-gnu/SHA256SUMS.part 236df3b7dfa686fa60b9d05e1977c8df0b9de21bb23a4ae3eeccb77d58af4379b7 guix-build-8ebf8d35eb1c/output/x86_64-linux-gnu/bitcoin-8ebf8d35eb1c-x86_64-linux-gnu-debug.tar.gz 24684bfad555b0f1a9d6e6b49539fe81931d9a78bbaed126deda643b11540e6e52 guix-build-8ebf8d35eb1c/output/x86_64-linux-gnu/bitcoin-8ebf8d35eb1c-x86_64-linux-gnu.tar.gz 25ebba76dfab046bdc8bc20a0b60e8a56b00f3e23422d281239e9cec75739fcca2 guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/SHA256SUMS.part 26ce2fbd0353b0c8316404694b0003b5a2d66feed3814dbb19d54cb666c5a438c3 guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-codesigning.tar.gz 2779d649c9de2d7ae4281d689971e4d9804bca996b9c0ae6792a64a9e82b4ef3dd guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-debug.zip 28834f93924b2729615178a4368e13ade9a2d7701b4d61c95949ea60dee2433f9f guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-setup-unsigned.exe 29d426d1f841770d7462a762342254f88fa7692bde45c3b42a7486f652b21ec7a1 guix-build-8ebf8d35eb1c/output/x86_64-w64-mingw32/bitcoin-8ebf8d35eb1c-win64-unsigned.zipfanquake force-pushed on Nov 20, 2025fanquake force-pushed on Nov 25, 2025fanquake force-pushed on Nov 27, 2025fanquake force-pushed on Nov 27, 2025fanquake force-pushed on Nov 28, 2025laanwj commented at 9:29 am on December 1, 2025: memberSeeing the following difference:
That’s such a strange difference. Just register selection.
We should probably aim to create a minimum reproduction, to be able to report and troubleshoot this. (running builds on x86_64, arm64 and riscv64)
fanquake commented at 5:05 pm on December 1, 2025: memberI tried comparing debug info from GCCs passes, the first one that seems to differ is
objsz1:0--- bitcoin_wallet.dir.aarch64/db.cpp.cpp.108t.objsz1 1+++ bitcoin_wallet.dir.x86_64/db.cpp.cpp.108t.objsz1 2@@ -9967,15 +9967,15 @@ 3 4 Computing maximum dynamic object size for _38: 5 Computing maximum object size for _38: 6 Computing maximum dynamic object size for _143: 7 Computing maximum object size for _143: 8 Computing maximum dynamic object size for _215: 9 _127: maximum dynamic object size _180 10-__cur_194: maximum dynamic object size _72 11+__cur_194: maximum dynamic object size _428 12 __cur_197: maximum dynamic object size _427 13 _201: maximum dynamic object size _426 14 _212: maximum dynamic object size _425 15 _215: maximum dynamic object size _424 16 __attribute__((returns_nonnull)) 17 void std::vector<std::pair<fs::path, std::__cxx11::basic_string<char> > >::emplace_back.isra (struct vector * const this, const struct path & __args#0, const char[4] & __args#1) 18 { 19@@ -11678,48 +11678,48 @@ 20 [/blah/include/c++/bits/stl_pair.h:295:17] gimple_assign <constructor, *__cur_194, {CLOBBER(bob)}, NULL, NULL> 21 [/blah/include/c++/bits/stl_pair.h:295:17] gimple_debug BIND <this, [/blah/include/c++/bits/stl_pair.h:295:17] &[/blah/include/c++/bits/stl_pair.h:295:17] __cur_194->first> 22 [/blah/include/c++/bits/stl_pair.h:295:17] gimple_debug BIND <D.445473, [/blah/include/c++/bits/stl_pair.h:295:17] &__first_195->first> 23 [/distsrc-base/distsrc-f98f7f7dc700-x86_64-w64-mingw32/src/util/fs.h:33:7] gimple_debug INLINE_ENTRY __ct 24 [/distsrc-base/distsrc-f98f7f7dc700-x86_64-w64-mingw32/src/util/fs.h:33:7] gimple_assign <constructor, MEM[(struct path *)__cur_194], {CLOBBER(bob)}, NULL, NULL> 25 gimple_assign <max_expr, _414, _72, _428, NULL> 26 gimple_assign <max_expr, _415, _72, _428, NULL> 27- gimple_assign <minus_expr, _412, _415, _72, NULL> 28+ gimple_assign <minus_expr, _412, _415, _428, NULL> 29 gimple_assign <max_expr, _413, _412, _414, NULL> 30 gimple_assign <max_expr, _410, _72, _428, NULL> 31- gimple_assign <minus_expr, _411, _72, _410, NULL> 32+ gimple_assign <minus_expr, _411, _428, _410, NULL> 33 gimple_assign <plus_expr, _426, _411, _413, NULL> 34 [/distsrc-base/distsrc-f98f7f7dc700-x86_64-w64-mingw32/src/util/fs.h:33:7] gimple_assign <addr_expr, _201, [/distsrc-base/distsrc-f98f7f7dc700-x86_64-w64-mingw32/src/util/fs.h:33:7] &MEM[(struct path *)__cur_194].D.230438, NULL, NULL> 35 [/distsrc-base/distsrc-f98f7f7dc700-x86_64-w64-mingw32/src/util/fs.h:33:7] gimple_assign <addr_expr, _202, &MEM[(struct path &)__first_195].D.230438, NULL, NULL> 36 [/distsrc-base/distsrc-f98f7f7dc700-x86_64-w64-mingw32/src/util/fs.h:33:7] gimple_debug BIND <this, _201> 37 [/distsrc-base/distsrc-f98f7f7dc700-x86_64-w64-mingw32/src/util/fs.h:33:7] gimple_debug BIND <__p, _202> 38 [/blah/include/c++/bits/fs_path.h:319:5] gimple_debug INLINE_ENTRY __ct 39 [/blah/include/c++/bits/fs_path.h:320:5] gimple_assign <constructor, *_201, {CLOBBER(bob)}, NULL, NULL> 40- gimple_assign <max_expr, _408, _426, _428, NULL> 41- gimple_assign <max_expr, _409, _426, _428, NULL> 42+ gimple_assign <max_expr, _408, _72, _426, NULL> 43+ gimple_assign <max_expr, _409, _72, _426, NULL> 44 gimple_assign <minus_expr, _351, _409, _426, NULL> 45 gimple_assign <max_expr, _333, _351, _408, NULL> 46- gimple_assign <max_expr, _152, _426, _428, NULL> 47+ gimple_assign <max_expr, _152, _72, _426, NULL>for:
0;; Function std::vector<std::pair<fs::path, std::__cxx11::basic_string<char> > >::emplace_back.isra (_ZNSt6vectorISt4pairIN2fs4pathENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE12emplace_backIJRKS2_RA4_KcEEERS9_DpOT_.isra.0, funcdef_no=21902, decl_uid=442677, cgraph_uid=16207, symbol_order=19816)So that seems like
compute_builtin_object_sizeis returning a different value based on the host arch?laanwj commented at 8:17 pm on December 1, 2025: memberSo that seems like compute_builtin_object_size is returning a different value based on the host arch?
Wonder if there’s any windows-specific code paths for that in mingw64? After all, we’re not seeing it when building for the other targets and architectures.
laanwj commented at 12:20 pm on December 3, 2025: memberLooks like
riscv64matchesaarch64.x86_64is the odd one out.0riscv64 1c2846f9bc4a7c48e5fb09b68292cd8edb70e6be0ec5d3682b9f381c785907400 guix-build-c4da80608710/output/x86_64-w64-mingw32/SHA256SUMS.part 2c2b3dce93b4dbf010e3d3654a0db9fdad198cffdc466e5a93d9c3e0be1b19b1d guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-codesigning.tar.gz 3ee71b615d28df400f7a97fc19939be0687f1587307809b1d22266ffd5dc7b27e guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-debug.zip 4fb679e08631d6529c0e09d488b121705805d09df2ab530fc22134ec4eff3eff7 guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-setup-unsigned.exe 54cad3571478f51b0451e877fa611ddab4e362244e7b220fadf132433febe07bb guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-unsigned.zip0aarch64 1c2846f9bc4a7c48e5fb09b68292cd8edb70e6be0ec5d3682b9f381c785907400 guix-build-c4da80608710/output/x86_64-w64-mingw32/SHA256SUMS.part 2c2b3dce93b4dbf010e3d3654a0db9fdad198cffdc466e5a93d9c3e0be1b19b1d guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-codesigning.tar.gz 3ee71b615d28df400f7a97fc19939be0687f1587307809b1d22266ffd5dc7b27e guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-debug.zip 4fb679e08631d6529c0e09d488b121705805d09df2ab530fc22134ec4eff3eff7 guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-setup-unsigned.exe 54cad3571478f51b0451e877fa611ddab4e362244e7b220fadf132433febe07bb guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-unsigned.zip0x86_64 1f3894ddc5016fc136a335c93785191b8cda214a6fc07f7959c0824d86d2c45af guix-build-c4da80608710/output/x86_64-w64-mingw32/SHA256SUMS.part 2dce811d466f4b63e3fbd41d91df051a7c70380a9caf05268afc474b97d1482f1 guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-codesigning.tar.gz 3ee71b615d28df400f7a97fc19939be0687f1587307809b1d22266ffd5dc7b27e guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-debug.zip 442261a034d465126596abf13acb0db14081307742b22ebe42b277a1341fd992a guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-setup-unsigned.exe 5dffda43ea71a65b0fbb47ea782836c45a45d310f43b1177713de50e9d89bca41 guix-build-c4da80608710/output/x86_64-w64-mingw32/bitcoin-c4da80608710-win64-unsigned.ziplaanwj commented at 2:38 pm on December 3, 2025: memberThis is a minimum C++ file (independent from bitcoin core headers) that will reproduce the issue:
0#include <filesystem> 1#include <string> 2#include <fstream> 3#include <vector> 4 5#include <cstring> // Unused, but removing this makes it determinstic 6 7namespace fs { 8 9using namespace std::filesystem; 10 11// Dummy class. Using "path = std::filesystem::path" makes it deterministic. 12class path : public std::filesystem::path 13{ 14public: 15 using std::filesystem::path::path; 16 17 path(std::filesystem::path path) : std::filesystem::path::path(std::move(path)) {} 18}; 19 20} 21 22bool IsBDBFile(const fs::path& path) 23{ 24 // Removing this condition makes it deterministic. 25 if (!fs::exists(path)) return false; 26 return true; 27} 28 29bool IsSQLiteFile(const fs::path& path) 30{ 31 // Removing this condition makes it deterministic. 32 if (!fs::exists(path)) return false; 33 return true; 34} 35 36std::vector<std::pair<fs::path, std::string>> ListDatabases(const fs::path& wallet_dir) 37{ 38 std::vector<std::pair<fs::path, std::string>> paths; 39 std::error_code ec; 40 41 for (auto it = fs::recursive_directory_iterator(wallet_dir, ec); it != fs::recursive_directory_iterator(); it.increment(ec)) { 42 const fs::path path{it->path().lexically_relative(wallet_dir)}; 43 44 if (it->status().type() == fs::file_type::directory) { 45 if (IsBDBFile(it->path())) { 46 paths.emplace_back(path, "bdb"); 47 } else if (IsSQLiteFile(it->path())) { 48 paths.emplace_back(path, "sqlite"); 49 } 50 } else if (it.depth() == 0 && it->symlink_status().type() == fs::file_type::regular && it->path().extension() != ".bak") { 51 if (it->path().filename() == "wallet.dat") { 52 if (IsBDBFile(it->path())) { 53 paths.emplace_back(fs::path(), "bdb"); 54 } else if (IsSQLiteFile(it->path())) { 55 paths.emplace_back(fs::path(), "sqlite"); 56 } 57 } else if (IsBDBFile(it->path())) { 58 paths.emplace_back(path, "bdb"); 59 } 60 } 61 } 62 63 return paths; 64}To build, i’m currently carefully reproducing the conditions of Bitcoin Core’s build system. i’m not sure in how far this is necessary, but remapping the
/gnu/storeprefixes is important, otherwise the platforms output differs.0# CFLAGS 1HOST_CFLAGS="-O2 -g" 2HOST_CFLAGS+=$(find /gnu/store -maxdepth 1 -mindepth 1 -type d -exec echo -n " -ffile-prefix-map={}=/usr" \;) 3case "$HOST" in 4 *mingw*) HOST_CFLAGS+=" -fno-ident" ;; 5 *darwin*) unset HOST_CFLAGS ;; 6esac 7 8# CXXFLAGS 9HOST_CXXFLAGS="$HOST_CFLAGS" 10 11EXTRA_CXXFLAGS="-fdump-tree-all" 12 13OUT_OBJ=test.cpp.obj 14cd /distsrc-base/distsrc-c4da80608710-x86_64-w64-mingw32/build && \ 15 x86_64-w64-mingw32-g++ -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DNOMINMAX -DWIN32 -DWIN32_LEAN_AND_MEAN -D_MT -D_WIN32_IE=0x0A00 -D_WIN32_WINNT=0x0A00 -D_WINDOWS \ 16 ${HOST_CXXFLAGS} \ 17 ${EXTRA_CXXFLAGS} \ 18 -O2 -O2 -g -fvisibility=hidden -Wa,-muse-unaligned-vector-move -fno-extended-identifiers -fdebug-prefix-map=/distsrc-base/distsrc-c4da80608710-x86_64-w64-mingw32/src=. -fmacro-prefix-map=/distsrc-base/distsrc-c4da80608710-x86_64-w64-mingw32/src=. -fstack-reuse=none -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -Wstack-protector -fstack-protector-all -fcf-protection=full -Wall -Wextra -Wformat -Wformat-security -Wvla -Wredundant-decls -Wdate-time -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Woverloaded-virtual -Wsuggest-override -Wimplicit-fallthrough -Wunreachable-code -Wbidi-chars=any -Wundef -Wno-unused-parameter -std=c++20 \ 19 -MD -MT ${OUT_OBJ} -MF ${OUT_OBJ} -o ${OUT_OBJ} -c \ 20 /bitcoin/test.cpp && \ 21 sha256sum ${OUT_OBJ}These are critical, without them, the non-determinism goes away:
#include <cstring>- Defining and using
fs::path IsBDBFileandIsSQLiteFileare defined and used, and have some logic in them
i think these are purely to prevent the compiler from inlining
std::vector<std::pair<fs::path, std::string>>::emplace_back, which would cause the logic that causes the divergence inobjsz1to not be hit.fanquake referenced this in commit 65f4cf3e26 on Dec 3, 2025fanquake commented at 5:46 pm on December 3, 2025: member@laanwj nice! I’ve re-integrated this into Guix (to build with
./contrib/guix/guix-build), and minified the flags further, see this branch: https://github.com/fanquake/bitcoin/tree/repro_33775_minimal. With the top commit, the diff is still the register swapping:0--- a.txt 1+++ b.txt 2@@ -1,9 +1,9 @@ 3 4-test.cpp.obj.aarch64: file format pe-x86-64 5+test.cpp.obj.x86_64: file format pe-x86-64 6 7 8 Disassembly of section .text: 9 10 0000000000000000 <IsBDBFile(fs::path const&)>: 11 0: 48 83 ec 28 sub $0x28,%rsp 12 4: e8 00 00 00 00 call 9 <IsBDBFile(fs::path const&)+0x9> 13@@ -223,18 +223,18 @@ 14 332: 48 39 eb cmp %rbp,%rbx 15 335: 48 0f 42 dd cmovb %rbp,%rbx 16 339: 49 83 c7 48 add $0x48,%r15 17 33d: 49 83 c4 48 add $0x48,%r12 18 341: 48 8d 74 1e b8 lea -0x48(%rsi,%rbx,1),%rsi 19 346: 4c 39 f7 cmp %r14,%rdi 20 349: 0f 84 51 01 00 00 je 4a0 <std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >& std::vector<std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::emplace_back<fs::path const&, char const (&) [4]>(fs::path const&, char const (&) [4]) [clone .isra.0]+0x460> 21- 34f: 49 39 f5 cmp %rsi,%r13 22- 352: 48 89 f5 mov %rsi,%rbp 23+ 34f: 4c 39 ee cmp %r13,%rsi 24+ 352: 4c 89 ed mov %r13,%rbp 25 355: 49 8d 4f 10 lea 0x10(%r15),%rcx 26- 359: 49 0f 43 ed cmovae %r13,%rbp 27+ 359: 48 0f 43 ee cmovae %rsi,%rbp 28 35d: 49 89 0f mov %rcx,(%r15) 29 360: 49 8b 06 mov (%r14),%rax 30 363: 48 89 eb mov %rbp,%rbx 31 366: 48 29 f3 sub %rsi,%rbx 32 369: 48 29 ee sub %rbp,%rsi 33 36c: 4c 39 e0 cmp %r12,%rax 34 36f: 0f 85 23 ff ff ff jne 298 <std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >& std::vector<std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<fs::path, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::emplace_back<fs::path const&, char const (&) [4]>(fs::path const&, char const (&) [4]) [clone .isra.0]+0x258>fanquake commented at 6:28 pm on December 3, 2025: memberThe non-determinism also goes away if you build with_FORTIFY_SOURCE=2instead of_FORTIFY_SOURCE=3. The difference there should be that the headers are using__builtin_dynamic_object_sizein the=3case, instead of__builtin_object_size.fanquake referenced this in commit 32bbaf0055 on Dec 4, 2025fanquake commented at 11:44 am on December 4, 2025: member@maflcko suggested just declaring the util functions. This has reduced test.cpp further, with the same non-determinism (https://github.com/fanquake/bitcoin/commit/c12ef2a5312cb66cd01a2f1230fe4e976759f4e1).fanquake commented at 3:29 pm on December 4, 2025: memberMinified a little more (https://github.com/fanquake/bitcoin/tree/repro_33775_minimal):
0#include <filesystem> 1#include <string> 2#include <vector> 3 4#include <cstring> // Unused, but removing this makes it determinstic 5 6namespace fs { 7 8using namespace std::filesystem; 9 10// Dummy class. Using "path = std::filesystem::path" makes it deterministic. 11class path : public std::filesystem::path 12{ 13public: 14 using std::filesystem::path::path; 15 16 path(std::filesystem::path path) : std::filesystem::path::path(std::move(path)) {} 17}; 18 19} 20 21bool func(); 22 23std::vector<std::pair<fs::path, std::string>> ListDatabases(const fs::path& wallet_dir) 24{ 25 std::vector<std::pair<fs::path, std::string>> paths; 26 std::error_code ec; 27 28 for (auto it = fs::recursive_directory_iterator(wallet_dir, ec); it != fs::recursive_directory_iterator(); it.increment(ec)) { 29 const fs::path path{it->path().lexically_relative(wallet_dir)}; 30 31 if (func()) { 32 if (func()) { 33 paths.emplace_back(path, "aaa"); 34 paths.emplace_back(path, "aaaaaa"); 35 } 36 } 37 if (func()) { 38 if (func()) { 39 paths.emplace_back(fs::path(), "aaa"); 40 paths.emplace_back(fs::path(), "aaaaaa"); 41 paths.emplace_back(path, "aaaaaaaaaaaaa"); 42 } 43 } 44 } 45 46 return paths; 47}Which still gives me:
0-test.cpp.obj.aarch64: file format pe-x86-64 1+test.cpp.obj.x86_64: file format pe-x86-64 2 3 4 Disassembly of section .text: 5 6 0000000000000000 <ListDatabases[abi:cxx11](fs::path const&)>: 7 0: 41 57 push %r15 8 2: 41 56 push %r14 9@@ -782,18 +782,18 @@ 10 c73: 48 39 de cmp %rbx,%rsi 11 c76: 48 0f 42 f3 cmovb %rbx,%rsi 12 c7a: 49 83 c5 48 add $0x48,%r13 13 c7e: 49 83 c7 48 add $0x48,%r15 14 c82: 48 8d 6c 35 b8 lea -0x48(%rbp,%rsi,1),%rbp 15 c87: 4c 39 e7 cmp %r12,%rdi 16 c8a: 0f 84 60 01 00 00 je df0 <ListDatabases[abi:cxx11](fs::path const&)+0xdf0> 17- c90: 4c 39 f5 cmp %r14,%rbp 18- c93: 4c 89 f3 mov %r14,%rbx 19+ c90: 49 39 ee cmp %rbp,%r14 20+ c93: 48 89 eb mov %rbp,%rbx 21 c96: 49 8d 4d 10 lea 0x10(%r13),%rcx 22- c9a: 48 0f 43 dd cmovae %rbp,%rbx 23+ c9a: 49 0f 43 de cmovae %r14,%rbx 24 c9e: 49 89 4d 00 mov %rcx,0x0(%r13) 25 ca2: 49 8b 04 24 mov (%r12),%rax 26 ca6: 48 89 de mov %rbx,%rsi 27 ca9: 48 29 ee sub %rbp,%rsi 28 cac: 48 29 dd sub %rbx,%rbp 29 caf: 4c 39 f8 cmp %r15,%rax 30 cb2: 0f 85 10 ff ff ff jne bc8 <ListDatabases[abi:cxx11](fs::path const&)+0xbc8>fanquake referenced this in commit e72a422254 on Dec 5, 2025fanquake referenced this in commit 5b80f08ca9 on Dec 5, 2025laanwj commented at 11:23 am on December 5, 2025: memberHere’s a patch to
manifest.scmthat makes it easier to test with arbitrary gcc commits: https://github.com/laanwj/bitcoin/commit/3ab504a97997dc0a2bb0b7b0e849459e42d3c316Allows:
0GCC_COMMIT=953536524a198efa932ee2cccf5d29d4fc1d24f3 GCC_HASH=3b59e003321ac50462f626bba07826c2d4c203d4fd1500c64d2ea332e61eaab0 HOSTS="x86_64-w64-mingw32" contrib/guix/guix-build- GCC_COMMIT is any arbitrary commit from the gcc repository (any will work as long as the patches apply).
- GCC_HASH is the hex sha256sum of the tar.gz file for the commit. Sadly guix won’t work without a hash, but unlike the base32 ones this one is easy to pre-generate with stock utilities.
FWIW i’ve checked
0bb24b4c804f3d95b0ba95b74965bd04f425f8467 (releases/gcc-14.3.0) bad [as expected] 1c035a7c30c310ff928988cbcf445f3f21be10aa1 (releases/gcc-14.2.0) bad 2ed10445fe222d3973ae13eda9bf211f315c5e3f9 (releases/gcc-14.1.0) bad 3953536524a198efa932ee2cccf5d29d4fc1d24f3 (releases/gcc-13.3.0) good [as expected] 4ad3e759c172272f6f2ba66631e7e7bd03fb2b436 (between merge-base and releases/gcc-14.1.0) bad 58e08c7886eed5824bebd0e011526ec302d622844 (merge base) could not patch 6021a0cd4494463026226a10d9556a0eedc422e5e could not patch 72e087957d911150258f199050bb602a6b098848c could not patch 8418bd6427e3b7e06d031fef037bbc36d529be23f good 9e36d5f424a0dcb984620a172c73da989f215dc42 good 10dcf4395fc67a6fc83e50329d92bea82b2fdf4254 bad 11b8592186611b671d6dc47332ecaf4a4b9c3802fb good 121f61f81d6ce2fe9c0ee0d833d216b848e0ad0ae4 good 1332ce90c60154c21789225ed36faae59af8416cb4 bad 14c187fe4bceb90643b88a55a54c4040ab9e40e659 good 15ae156936cf4f15d9cc2b7d4e39f2e6b8fe22a9c3 bad 168faae311a60a552ed3d506de28c50c77fa49b229 (in progress - 2 revisions left to test after this (roughly 2 steps) )bisecting wlll go back to an ancient merge base (8e08c7886eed5824bebd0e011526ec302d622844) that breaks guix’s patching, sadly.
It might be possible to cut down the toolchain (reduce the number of stages) for faster builds. Especially if we pre-preprocess test.cpp. But i haven’t looked into this yet.
fanquake commented at 11:36 am on December 5, 2025: memberSlightly more minified:
0#include <filesystem> 1#include <string> 2#include <vector> 3#include <cstring> // Unused, but removing this makes it determinstic 4 5namespace fs { 6 7using namespace std::filesystem; 8 9// Dummy class. Using "path = std::filesystem::path" makes it deterministic. 10class path : public std::filesystem::path 11{ 12public: 13 using std::filesystem::path::path; 14 15 path(std::filesystem::path path) : std::filesystem::path::path(std::move(path)) {} 16}; 17 18} 19 20bool func(); 21 22std::vector<std::pair<fs::path, std::string>> Func(const fs::path& wallet_dir) { 23 24 std::vector<std::pair<fs::path, std::string>> paths; 25 std::error_code ec; 26 27 for (auto it = fs::recursive_directory_iterator(wallet_dir, ec); it != fs::recursive_directory_iterator(); it.increment(ec)) { 28 const fs::path path{it->path().lexically_relative(wallet_dir)}; 29 30 if (func()) { 31 paths.emplace_back(path, "aaa"); 32 paths.emplace_back(path, "aaaaaa"); 33 paths.emplace_back(fs::path(), "aaa"); 34 paths.emplace_back(fs::path(), "aaaaaa"); 35 paths.emplace_back(path, "aaaaaaaaaaaaa"); 36 } 37 } 38 39 return paths; 40}0-test.cpp.obj.aarch64: file format pe-x86-64 1+test.cpp.obj.x86_64: file format pe-x86-64 2 3 4 Disassembly of section .text: 5 6 0000000000000000 <Func[abi:cxx11](fs::path const&)>: 7 0: 41 57 push %r15 8 2: 41 56 push %r14 9@@ -714,18 +714,18 @@ 10 b3f: 49 39 f5 cmp %rsi,%r13 11 b42: 4c 0f 42 ee cmovb %rsi,%r13 12 b46: 49 83 c6 48 add $0x48,%r14 13 b4a: 4f 8d 64 2c b8 lea -0x48(%r12,%r13,1),%r12 14 b4f: 49 39 ff cmp %rdi,%r15 15 b52: 0f 84 78 0d 00 00 je 18d0 <Func[abi:cxx11](fs::path const&)+0x18d0> 16 b58: 48 89 c5 mov %rax,%rbp 17- b5b: 4c 39 e3 cmp %r12,%rbx 18- b5e: 4c 89 e6 mov %r12,%rsi 19+ b5b: 49 39 dc cmp %rbx,%r12 20+ b5e: 48 89 de mov %rbx,%rsi 21 b61: 48 8d 4d 10 lea 0x10(%rbp),%rcx 22- b65: 48 0f 43 f3 cmovae %rbx,%rsi 23+ b65: 49 0f 43 f4 cmovae %r12,%rsi 24 b69: 48 89 4d 00 mov %rcx,0x0(%rbp) 25 b6d: 49 8b 07 mov (%r15),%rax 26 b70: 49 89 f5 mov %rsi,%r13 27 b73: 4d 29 e5 sub %r12,%r13 28 b76: 49 29 f4 sub %rsi,%r12 29 b79: 4c 39 f0 cmp %r14,%rax 30 b7c: 0f 85 1e ff ff ff jne aa0 <Func[abi:cxx11](fs::path const&)+0xaa0>laanwj commented at 6:25 am on December 7, 2025: memberFWIW: My bisect is not done yet (2 steps to go, it will likely finish today), but in the current commit range https://github.com/gcc-mirror/gcc/commit/1d82fc2e6824bf83159389729c31a942f7b91b04
optimize std::vector::push_backis the most suspicious as it affects vector appending. It’s a change tolibstdc++-v3, not the compiler, so it doesn’t directly point at a root cause. (it would be an easy thing to revert though, and experimenting with it is less involved than having to recompile the compiler)Edit: confirmed:
0$ git bisect good 1250858ac9c1426da06116823bd3e1fca64c7d56 11d82fc2e6824bf83159389729c31a942f7b91b04 is the first bad commit 2commit 1d82fc2e6824bf83159389729c31a942f7b91b04 3Author: Jan Hubicka <jh@suse.cz> 4Date: Tue Nov 21 15:17:16 2023 +0100 5 6 optimize std::vector::push_back 7 8 this patch speeds up the push_back at -O3 significantly by making the 9 reallocation to be inlined by default. _M_realloc_insert is general 10 insertion that takes iterator pointing to location where the value 11 should be inserted. As such it contains code to move other entries around 12 that is quite large. 13 14 Since appending to the end of array is common operation, I think we should 15 have specialized code for that. Sadly it is really hard to work out this 16 from IPA passes, since we basically care whether the iterator points to 17 the same place as the end pointer, which are both passed by reference. 18 This is inter-procedural value numbering that is quite out of reach. 19 20 I also added extra check making it clear that the new length of the vector 21 is non-zero. This saves extra conditionals. Again it is quite hard case 22 since _M_check_len seem to be able to return 0 if its parameter is 0. 23 This never happens here, but we are not able to propagate this early nor 24 at IPA stage. 25 26 libstdc++-v3/ChangeLog: 27 28 PR libstdc++/110287 29 PR middle-end/109811 30 PR middle-end/109849 31 * include/bits/stl_vector.h (_M_realloc_append): New member function. 32 (push_back): Use it. 33 * include/bits/vector.tcc: (emplace_back): Use it. 34 (_M_realloc_insert): Let compiler know that new vector size is non-zero. 35 (_M_realloc_append): New member function. 36 37 libstdc++-v3/include/bits/stl_vector.h | 10 +++++++++- 38 libstdc++-v3/include/bits/vector.tcc | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 39 2 files changed, 133 insertions(+), 2 deletions(-)Edit2: Here’s a branch that upgrades gcc to 14.3.0 but reverts that commit: https://github.com/laanwj/bitcoin/tree/2025-12-gcc-upgrade . It currently does this for all platforms, whereas mingw would be enough, but it’s just for testing.
Output matches, as expected:
0aarch64 175c5322892d4851445fb178f7cc860e8190a0f10a3e56cb07ae655fcbbfda803 guix-build-91571e3e7198/output/dist-archive/bitcoin-91571e3e7198.tar.gz 2a78e13a910da55a8a574d26c2ad00b97ab63bf817f476025b06eede6365d96b0 guix-build-91571e3e7198/output/x86_64-w64-mingw32/SHA256SUMS.part 32a7ef2aec0b395366e8a2443b040d81f2142eec82d6beb51397882394ebed526 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-codesigning.tar.gz 4d4e5607b7b80835342417be799b73c385c0db998636e04b5be1cdd1a13f18552 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-debug.zip 54b5eddb8e02e08964ed85774186ea9faa64febe53e8e0a2557ebaaf003d92289 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-setup-unsigned.exe 6ec3f22315bc0eaf9135fe4b376626459d95d41a229b9cb335ef5312001dcbb10 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-unsigned.zip0x86_64 175c5322892d4851445fb178f7cc860e8190a0f10a3e56cb07ae655fcbbfda803 guix-build-91571e3e7198/output/dist-archive/bitcoin-91571e3e7198.tar.gz 2a78e13a910da55a8a574d26c2ad00b97ab63bf817f476025b06eede6365d96b0 guix-build-91571e3e7198/output/x86_64-w64-mingw32/SHA256SUMS.part 32a7ef2aec0b395366e8a2443b040d81f2142eec82d6beb51397882394ebed526 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-codesigning.tar.gz 4d4e5607b7b80835342417be799b73c385c0db998636e04b5be1cdd1a13f18552 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-debug.zip 54b5eddb8e02e08964ed85774186ea9faa64febe53e8e0a2557ebaaf003d92289 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-setup-unsigned.exe 6ec3f22315bc0eaf9135fe4b376626459d95d41a229b9cb335ef5312001dcbb10 guix-build-91571e3e7198/output/x86_64-w64-mingw32/bitcoin-91571e3e7198-win64-unsigned.zipfanquake force-pushed on Dec 8, 2025laanwj commented at 10:56 am on December 8, 2025: memberNew reproduction branch in https://github.com/laanwj/bitcoin/tree/2025-12-repro-33775 :
0x86_64 1ad9ef7b0ee55a233ad01dc71b91c435df6525a5b20cc2781feae715aba712fe7 test-original.cpp.obj 2e07ba1f07faf254d2b192bf8494949769af2c13a3f75cba926120eb90b2c60f5 test-reverted.cpp.obj0aarch64 17d2cc20e0528d9f2a72ece935ae72a158f9f2483cd4bdbe56950db9e28f3c762 test-original.cpp.obj 2e07ba1f07faf254d2b192bf8494949769af2c13a3f75cba926120eb90b2c60f5 test-reverted.cpp.objThe first variant (
test-original.cpp.i) is preprocessed with gcc-Ewith the original gcc 14.3.0 headers, the second one (test-reverted.cpp.i) with the reverted commit. Note that we could now dropHOST_CXXFLAGSwith the remaps (as well as all the explicitCROSS_environment setup) as the file was preprocessed on one host, having the same paths.fanquake force-pushed on Dec 8, 2025fanquake commented at 3:05 pm on December 8, 2025: memberI’ve pulled in a commit from @laanwj that is a partial reversion of https://github.com/gcc-mirror/gcc/commit/1d82fc2e6824bf83159389729c31a942f7b91b04.hebasto commented at 11:06 pm on December 8, 2025: memberMy Guix build:
0aarch64 102de261cf6c90f15a69d42b43e63485a6c0cdb3d745b5916b6834278a1d63dbc guix-build-a72ff31b879f/output/aarch64-linux-gnu/SHA256SUMS.part 2cf2d9615338be34f5082940d7d2b1a4c085226a410a75dceec764e42cd5df5ee guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu-debug.tar.gz 3e18f34ce40036367f611451ae4dfe39e7dedeb53e549f229cff118bf2c2836a8 guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu.tar.gz 417cd0a5fad2a4e648128a7a5fce4b46a894153b45ca96bb1c7ad874c5946bc5d guix-build-a72ff31b879f/output/arm-linux-gnueabihf/SHA256SUMS.part 5dd2f24c67be7635f13e250594d82d78b22cb9414d89e447f41e8927b98d15b34 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf-debug.tar.gz 6b2f6d967da6402885fc4a7271da9996c90350d02fc9395c7660191f5f855bb46 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf.tar.gz 763d80dd6a617ace6ce43ae11fc4c388eaf809341fba7304c76ed8d30a7608e0b guix-build-a72ff31b879f/output/arm64-apple-darwin/SHA256SUMS.part 8148af422c55455b91f9e7947bde53546aca9705eaedae4240d7eb439425c4c8d guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-codesigning.tar.gz 98d5056542c7e47d4674328f65e05c4e8b871b823c33132c949eafd36a7dc5b7c guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.tar.gz 105a9748970538e1bf99a1c14ef0acab693e238ec212db6a3531d6743c117de725 guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.zip 11094363086ca8986f8460c8355abd7ff4f7b2e3dbdafab2a0c68c51e93b432e79 guix-build-a72ff31b879f/output/dist-archive/bitcoin-a72ff31b879f.tar.gz 12a8bd7171de3fd69925f55cd24a3d76da19e7b6f11cc01ee101e29f81eb0f9df1 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/SHA256SUMS.part 1306ef995f52f14fd1b780f297898c41232c10b64931b2053622228642bf04afc5 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu-debug.tar.gz 14c71593027c636481c7ec706947876c0086baa58e43170a8d4871568db6689234 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu.tar.gz 15c44e49c68906657e90c328b8b05ee76d92bb6dc3280d13d0f82521cf66529c51 guix-build-a72ff31b879f/output/riscv64-linux-gnu/SHA256SUMS.part 16576f0f27c4ea2ff720e548b502f265efaeebc0896c20d2ba40839728710bae8a guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu-debug.tar.gz 17403c010fc0f9363eb6536875b9a6181ef835eb86b8ae538f9fd9430bd67e93f6 guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu.tar.gz 188c6f83e6686cb3e486568b7353a08562e361b3abd4281ad08c47d0e74d071ea8 guix-build-a72ff31b879f/output/x86_64-apple-darwin/SHA256SUMS.part 198271c2bd3c6d4dc17ce6eb316e4094c759b8be15fd3b308ccd6856ceb0a09b86 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-codesigning.tar.gz 20c70b4b4a3a23ca9ffb442d00257f6bf8233792785e4a3d391be132cceaec1e81 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.tar.gz 213abbf804472200486f757181c44e7e19aeb8119f825a6580d735d98e144ee2cd guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.zip 2201b1696b94b9f22531c364a0c3f30a9064a5b2baff59a8333a0b38aa19be2a7b guix-build-a72ff31b879f/output/x86_64-linux-gnu/SHA256SUMS.part 2386acfda0a08f9b4eddab48bf4cd723c9015b5b2d84bffecdf8175df57dac5051 guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu-debug.tar.gz 2430a3c4ef58e4bef72c712631c7b61099e2da8391b06926863a7c2003ca8dc97b guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu.tar.gz 256fafb7b8801eb37d37abd1ea4907e6c93bbac06f2fc6b59d4cd771b38ba97e89 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/SHA256SUMS.part 263e214aacaf379fefead8694b1962c4f4c38b2754eae7069de6bfb259ad80e3c3 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-codesigning.tar.gz 27fb3f9479336034177b9309390f667047c833fb1e944dbcccbd6a097e6988de8c guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-debug.zip 28b0ff4b5811fca1bc654e35d77828a4b025fe756e71314b6f91501f27375bd81a guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-setup-unsigned.exe 29d7a2204da3f11afcd9851804fb56132d596cb5157c1a558045eb2b2689a6259f guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-unsigned.zipUPDATE: Same hashes on
x86_64.hebasto commented at 11:58 pm on December 8, 2025: memberApproach ACK a72ff31b879f164ca7875c0121953af93d799aee.laanwj commented at 9:13 am on December 9, 2025: member0x86_64 102de261cf6c90f15a69d42b43e63485a6c0cdb3d745b5916b6834278a1d63dbc guix-build-a72ff31b879f/output/aarch64-linux-gnu/SHA256SUMS.part 2cf2d9615338be34f5082940d7d2b1a4c085226a410a75dceec764e42cd5df5ee guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu-debug.tar.gz 3e18f34ce40036367f611451ae4dfe39e7dedeb53e549f229cff118bf2c2836a8 guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu.tar.gz 417cd0a5fad2a4e648128a7a5fce4b46a894153b45ca96bb1c7ad874c5946bc5d guix-build-a72ff31b879f/output/arm-linux-gnueabihf/SHA256SUMS.part 5dd2f24c67be7635f13e250594d82d78b22cb9414d89e447f41e8927b98d15b34 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf-debug.tar.gz 6b2f6d967da6402885fc4a7271da9996c90350d02fc9395c7660191f5f855bb46 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf.tar.gz 763d80dd6a617ace6ce43ae11fc4c388eaf809341fba7304c76ed8d30a7608e0b guix-build-a72ff31b879f/output/arm64-apple-darwin/SHA256SUMS.part 8148af422c55455b91f9e7947bde53546aca9705eaedae4240d7eb439425c4c8d guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-codesigning.tar.gz 98d5056542c7e47d4674328f65e05c4e8b871b823c33132c949eafd36a7dc5b7c guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.tar.gz 105a9748970538e1bf99a1c14ef0acab693e238ec212db6a3531d6743c117de725 guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.zip 11094363086ca8986f8460c8355abd7ff4f7b2e3dbdafab2a0c68c51e93b432e79 guix-build-a72ff31b879f/output/dist-archive/bitcoin-a72ff31b879f.tar.gz 12a8bd7171de3fd69925f55cd24a3d76da19e7b6f11cc01ee101e29f81eb0f9df1 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/SHA256SUMS.part 1306ef995f52f14fd1b780f297898c41232c10b64931b2053622228642bf04afc5 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu-debug.tar.gz 14c71593027c636481c7ec706947876c0086baa58e43170a8d4871568db6689234 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu.tar.gz 15c44e49c68906657e90c328b8b05ee76d92bb6dc3280d13d0f82521cf66529c51 guix-build-a72ff31b879f/output/riscv64-linux-gnu/SHA256SUMS.part 16576f0f27c4ea2ff720e548b502f265efaeebc0896c20d2ba40839728710bae8a guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu-debug.tar.gz 17403c010fc0f9363eb6536875b9a6181ef835eb86b8ae538f9fd9430bd67e93f6 guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu.tar.gz 188c6f83e6686cb3e486568b7353a08562e361b3abd4281ad08c47d0e74d071ea8 guix-build-a72ff31b879f/output/x86_64-apple-darwin/SHA256SUMS.part 198271c2bd3c6d4dc17ce6eb316e4094c759b8be15fd3b308ccd6856ceb0a09b86 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-codesigning.tar.gz 20c70b4b4a3a23ca9ffb442d00257f6bf8233792785e4a3d391be132cceaec1e81 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.tar.gz 213abbf804472200486f757181c44e7e19aeb8119f825a6580d735d98e144ee2cd guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.zip 2201b1696b94b9f22531c364a0c3f30a9064a5b2baff59a8333a0b38aa19be2a7b guix-build-a72ff31b879f/output/x86_64-linux-gnu/SHA256SUMS.part 2386acfda0a08f9b4eddab48bf4cd723c9015b5b2d84bffecdf8175df57dac5051 guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu-debug.tar.gz 2430a3c4ef58e4bef72c712631c7b61099e2da8391b06926863a7c2003ca8dc97b guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu.tar.gz 256fafb7b8801eb37d37abd1ea4907e6c93bbac06f2fc6b59d4cd771b38ba97e89 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/SHA256SUMS.part 263e214aacaf379fefead8694b1962c4f4c38b2754eae7069de6bfb259ad80e3c3 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-codesigning.tar.gz 27fb3f9479336034177b9309390f667047c833fb1e944dbcccbd6a097e6988de8c guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-debug.zip 28b0ff4b5811fca1bc654e35d77828a4b025fe756e71314b6f91501f27375bd81a guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-setup-unsigned.exe 29d7a2204da3f11afcd9851804fb56132d596cb5157c1a558045eb2b2689a6259f guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-unsigned.zip0aarch64 102de261cf6c90f15a69d42b43e63485a6c0cdb3d745b5916b6834278a1d63dbc guix-build-a72ff31b879f/output/aarch64-linux-gnu/SHA256SUMS.part 2cf2d9615338be34f5082940d7d2b1a4c085226a410a75dceec764e42cd5df5ee guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu-debug.tar.gz 3e18f34ce40036367f611451ae4dfe39e7dedeb53e549f229cff118bf2c2836a8 guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu.tar.gz 417cd0a5fad2a4e648128a7a5fce4b46a894153b45ca96bb1c7ad874c5946bc5d guix-build-a72ff31b879f/output/arm-linux-gnueabihf/SHA256SUMS.part 5dd2f24c67be7635f13e250594d82d78b22cb9414d89e447f41e8927b98d15b34 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf-debug.tar.gz 6b2f6d967da6402885fc4a7271da9996c90350d02fc9395c7660191f5f855bb46 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf.tar.gz 763d80dd6a617ace6ce43ae11fc4c388eaf809341fba7304c76ed8d30a7608e0b guix-build-a72ff31b879f/output/arm64-apple-darwin/SHA256SUMS.part 8148af422c55455b91f9e7947bde53546aca9705eaedae4240d7eb439425c4c8d guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-codesigning.tar.gz 98d5056542c7e47d4674328f65e05c4e8b871b823c33132c949eafd36a7dc5b7c guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.tar.gz 105a9748970538e1bf99a1c14ef0acab693e238ec212db6a3531d6743c117de725 guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.zip 11094363086ca8986f8460c8355abd7ff4f7b2e3dbdafab2a0c68c51e93b432e79 guix-build-a72ff31b879f/output/dist-archive/bitcoin-a72ff31b879f.tar.gz 12a8bd7171de3fd69925f55cd24a3d76da19e7b6f11cc01ee101e29f81eb0f9df1 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/SHA256SUMS.part 1306ef995f52f14fd1b780f297898c41232c10b64931b2053622228642bf04afc5 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu-debug.tar.gz 14c71593027c636481c7ec706947876c0086baa58e43170a8d4871568db6689234 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu.tar.gz 15c44e49c68906657e90c328b8b05ee76d92bb6dc3280d13d0f82521cf66529c51 guix-build-a72ff31b879f/output/riscv64-linux-gnu/SHA256SUMS.part 16576f0f27c4ea2ff720e548b502f265efaeebc0896c20d2ba40839728710bae8a guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu-debug.tar.gz 17403c010fc0f9363eb6536875b9a6181ef835eb86b8ae538f9fd9430bd67e93f6 guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu.tar.gz 188c6f83e6686cb3e486568b7353a08562e361b3abd4281ad08c47d0e74d071ea8 guix-build-a72ff31b879f/output/x86_64-apple-darwin/SHA256SUMS.part 198271c2bd3c6d4dc17ce6eb316e4094c759b8be15fd3b308ccd6856ceb0a09b86 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-codesigning.tar.gz 20c70b4b4a3a23ca9ffb442d00257f6bf8233792785e4a3d391be132cceaec1e81 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.tar.gz 213abbf804472200486f757181c44e7e19aeb8119f825a6580d735d98e144ee2cd guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.zip 2201b1696b94b9f22531c364a0c3f30a9064a5b2baff59a8333a0b38aa19be2a7b guix-build-a72ff31b879f/output/x86_64-linux-gnu/SHA256SUMS.part 2386acfda0a08f9b4eddab48bf4cd723c9015b5b2d84bffecdf8175df57dac5051 guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu-debug.tar.gz 2430a3c4ef58e4bef72c712631c7b61099e2da8391b06926863a7c2003ca8dc97b guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu.tar.gz 256fafb7b8801eb37d37abd1ea4907e6c93bbac06f2fc6b59d4cd771b38ba97e89 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/SHA256SUMS.part 263e214aacaf379fefead8694b1962c4f4c38b2754eae7069de6bfb259ad80e3c3 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-codesigning.tar.gz 27fb3f9479336034177b9309390f667047c833fb1e944dbcccbd6a097e6988de8c guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-debug.zip 28b0ff4b5811fca1bc654e35d77828a4b025fe756e71314b6f91501f27375bd81a guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-setup-unsigned.exe 29d7a2204da3f11afcd9851804fb56132d596cb5157c1a558045eb2b2689a6259f guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-unsigned.zipRISC-V build still underway.
hebasto commented at 12:32 pm on December 9, 2025: memberMy partial Guix build on RISC-V:
0riscv64 1094363086ca8986f8460c8355abd7ff4f7b2e3dbdafab2a0c68c51e93b432e79 guix-build-a72ff31b879f/output/dist-archive/bitcoin-a72ff31b879f.tar.gz 26fafb7b8801eb37d37abd1ea4907e6c93bbac06f2fc6b59d4cd771b38ba97e89 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/SHA256SUMS.part 33e214aacaf379fefead8694b1962c4f4c38b2754eae7069de6bfb259ad80e3c3 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-codesigning.tar.gz 4fb3f9479336034177b9309390f667047c833fb1e944dbcccbd6a097e6988de8c guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-debug.zip 5b0ff4b5811fca1bc654e35d77828a4b025fe756e71314b6f91501f27375bd81a guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-setup-unsigned.exe 6d7a2204da3f11afcd9851804fb56132d596cb5157c1a558045eb2b2689a6259f guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-unsigned.zipjanb84 commented at 2:48 pm on December 10, 2025: contributormy Guix Build Output (matches, also with the partial RISC-V from hebasto)
Host architecture:
aarch64Commit:a72ff31b879f002de261cf6c90f15a69d42b43e63485a6c0cdb3d745b5916b6834278a1d63dbc guix-build-a72ff31b879f/output/aarch64-linux-gnu/SHA256SUMS.part 1cf2d9615338be34f5082940d7d2b1a4c085226a410a75dceec764e42cd5df5ee guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu-debug.tar.gz 2e18f34ce40036367f611451ae4dfe39e7dedeb53e549f229cff118bf2c2836a8 guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu.tar.gz 317cd0a5fad2a4e648128a7a5fce4b46a894153b45ca96bb1c7ad874c5946bc5d guix-build-a72ff31b879f/output/arm-linux-gnueabihf/SHA256SUMS.part 4dd2f24c67be7635f13e250594d82d78b22cb9414d89e447f41e8927b98d15b34 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf-debug.tar.gz 5b2f6d967da6402885fc4a7271da9996c90350d02fc9395c7660191f5f855bb46 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf.tar.gz 663d80dd6a617ace6ce43ae11fc4c388eaf809341fba7304c76ed8d30a7608e0b guix-build-a72ff31b879f/output/arm64-apple-darwin/SHA256SUMS.part 7148af422c55455b91f9e7947bde53546aca9705eaedae4240d7eb439425c4c8d guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-codesigning.tar.gz 88d5056542c7e47d4674328f65e05c4e8b871b823c33132c949eafd36a7dc5b7c guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.tar.gz 95a9748970538e1bf99a1c14ef0acab693e238ec212db6a3531d6743c117de725 guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.zip 10094363086ca8986f8460c8355abd7ff4f7b2e3dbdafab2a0c68c51e93b432e79 guix-build-a72ff31b879f/output/dist-archive/bitcoin-a72ff31b879f.tar.gz 11a8bd7171de3fd69925f55cd24a3d76da19e7b6f11cc01ee101e29f81eb0f9df1 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/SHA256SUMS.part 1206ef995f52f14fd1b780f297898c41232c10b64931b2053622228642bf04afc5 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu-debug.tar.gz 13c71593027c636481c7ec706947876c0086baa58e43170a8d4871568db6689234 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu.tar.gz 14c44e49c68906657e90c328b8b05ee76d92bb6dc3280d13d0f82521cf66529c51 guix-build-a72ff31b879f/output/riscv64-linux-gnu/SHA256SUMS.part 15576f0f27c4ea2ff720e548b502f265efaeebc0896c20d2ba40839728710bae8a guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu-debug.tar.gz 16403c010fc0f9363eb6536875b9a6181ef835eb86b8ae538f9fd9430bd67e93f6 guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu.tar.gz 178c6f83e6686cb3e486568b7353a08562e361b3abd4281ad08c47d0e74d071ea8 guix-build-a72ff31b879f/output/x86_64-apple-darwin/SHA256SUMS.part 188271c2bd3c6d4dc17ce6eb316e4094c759b8be15fd3b308ccd6856ceb0a09b86 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-codesigning.tar.gz 19c70b4b4a3a23ca9ffb442d00257f6bf8233792785e4a3d391be132cceaec1e81 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.tar.gz 203abbf804472200486f757181c44e7e19aeb8119f825a6580d735d98e144ee2cd guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.zip 2101b1696b94b9f22531c364a0c3f30a9064a5b2baff59a8333a0b38aa19be2a7b guix-build-a72ff31b879f/output/x86_64-linux-gnu/SHA256SUMS.part 2286acfda0a08f9b4eddab48bf4cd723c9015b5b2d84bffecdf8175df57dac5051 guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu-debug.tar.gz 2330a3c4ef58e4bef72c712631c7b61099e2da8391b06926863a7c2003ca8dc97b guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu.tar.gz 246fafb7b8801eb37d37abd1ea4907e6c93bbac06f2fc6b59d4cd771b38ba97e89 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/SHA256SUMS.part 253e214aacaf379fefead8694b1962c4f4c38b2754eae7069de6bfb259ad80e3c3 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-codesigning.tar.gz 26fb3f9479336034177b9309390f667047c833fb1e944dbcccbd6a097e6988de8c guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-debug.zip 27b0ff4b5811fca1bc654e35d77828a4b025fe756e71314b6f91501f27375bd81a guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-setup-unsigned.exe 28d7a2204da3f11afcd9851804fb56132d596cb5157c1a558045eb2b2689a6259f guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-unsigned.ziplaanwj commented at 5:32 pm on December 11, 2025: memberFull RISC-V build. Matches the others.
0riscv64 102de261cf6c90f15a69d42b43e63485a6c0cdb3d745b5916b6834278a1d63dbc guix-build-a72ff31b879f/output/aarch64-linux-gnu/SHA256SUMS.part 2cf2d9615338be34f5082940d7d2b1a4c085226a410a75dceec764e42cd5df5ee guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu-debug.tar.gz 3e18f34ce40036367f611451ae4dfe39e7dedeb53e549f229cff118bf2c2836a8 guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu.tar.gz 417cd0a5fad2a4e648128a7a5fce4b46a894153b45ca96bb1c7ad874c5946bc5d guix-build-a72ff31b879f/output/arm-linux-gnueabihf/SHA256SUMS.part 5dd2f24c67be7635f13e250594d82d78b22cb9414d89e447f41e8927b98d15b34 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf-debug.tar.gz 6b2f6d967da6402885fc4a7271da9996c90350d02fc9395c7660191f5f855bb46 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf.tar.gz 763d80dd6a617ace6ce43ae11fc4c388eaf809341fba7304c76ed8d30a7608e0b guix-build-a72ff31b879f/output/arm64-apple-darwin/SHA256SUMS.part 8148af422c55455b91f9e7947bde53546aca9705eaedae4240d7eb439425c4c8d guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-codesigning.tar.gz 98d5056542c7e47d4674328f65e05c4e8b871b823c33132c949eafd36a7dc5b7c guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.tar.gz 105a9748970538e1bf99a1c14ef0acab693e238ec212db6a3531d6743c117de725 guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.zip 11094363086ca8986f8460c8355abd7ff4f7b2e3dbdafab2a0c68c51e93b432e79 guix-build-a72ff31b879f/output/dist-archive/bitcoin-a72ff31b879f.tar.gz 12a8bd7171de3fd69925f55cd24a3d76da19e7b6f11cc01ee101e29f81eb0f9df1 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/SHA256SUMS.part 1306ef995f52f14fd1b780f297898c41232c10b64931b2053622228642bf04afc5 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu-debug.tar.gz 14c71593027c636481c7ec706947876c0086baa58e43170a8d4871568db6689234 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu.tar.gz 15c44e49c68906657e90c328b8b05ee76d92bb6dc3280d13d0f82521cf66529c51 guix-build-a72ff31b879f/output/riscv64-linux-gnu/SHA256SUMS.part 16576f0f27c4ea2ff720e548b502f265efaeebc0896c20d2ba40839728710bae8a guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu-debug.tar.gz 17403c010fc0f9363eb6536875b9a6181ef835eb86b8ae538f9fd9430bd67e93f6 guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu.tar.gz 188c6f83e6686cb3e486568b7353a08562e361b3abd4281ad08c47d0e74d071ea8 guix-build-a72ff31b879f/output/x86_64-apple-darwin/SHA256SUMS.part 198271c2bd3c6d4dc17ce6eb316e4094c759b8be15fd3b308ccd6856ceb0a09b86 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-codesigning.tar.gz 20c70b4b4a3a23ca9ffb442d00257f6bf8233792785e4a3d391be132cceaec1e81 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.tar.gz 213abbf804472200486f757181c44e7e19aeb8119f825a6580d735d98e144ee2cd guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.zip 2201b1696b94b9f22531c364a0c3f30a9064a5b2baff59a8333a0b38aa19be2a7b guix-build-a72ff31b879f/output/x86_64-linux-gnu/SHA256SUMS.part 2386acfda0a08f9b4eddab48bf4cd723c9015b5b2d84bffecdf8175df57dac5051 guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu-debug.tar.gz 2430a3c4ef58e4bef72c712631c7b61099e2da8391b06926863a7c2003ca8dc97b guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu.tar.gz 256fafb7b8801eb37d37abd1ea4907e6c93bbac06f2fc6b59d4cd771b38ba97e89 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/SHA256SUMS.part 263e214aacaf379fefead8694b1962c4f4c38b2754eae7069de6bfb259ad80e3c3 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-codesigning.tar.gz 27fb3f9479336034177b9309390f667047c833fb1e944dbcccbd6a097e6988de8c guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-debug.zip 28b0ff4b5811fca1bc654e35d77828a4b025fe756e71314b6f91501f27375bd81a guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-setup-unsigned.exe 29d7a2204da3f11afcd9851804fb56132d596cb5157c1a558045eb2b2689a6259f guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-unsigned.zipmaflcko commented at 1:25 pm on December 15, 2025: member0# uname --machine && find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum 1riscv64 202de261cf6c90f15a69d42b43e63485a6c0cdb3d745b5916b6834278a1d63dbc guix-build-a72ff31b879f/output/aarch64-linux-gnu/SHA256SUMS.part 3cf2d9615338be34f5082940d7d2b1a4c085226a410a75dceec764e42cd5df5ee guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu-debug.tar.gz 4e18f34ce40036367f611451ae4dfe39e7dedeb53e549f229cff118bf2c2836a8 guix-build-a72ff31b879f/output/aarch64-linux-gnu/bitcoin-a72ff31b879f-aarch64-linux-gnu.tar.gz 517cd0a5fad2a4e648128a7a5fce4b46a894153b45ca96bb1c7ad874c5946bc5d guix-build-a72ff31b879f/output/arm-linux-gnueabihf/SHA256SUMS.part 6dd2f24c67be7635f13e250594d82d78b22cb9414d89e447f41e8927b98d15b34 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf-debug.tar.gz 7b2f6d967da6402885fc4a7271da9996c90350d02fc9395c7660191f5f855bb46 guix-build-a72ff31b879f/output/arm-linux-gnueabihf/bitcoin-a72ff31b879f-arm-linux-gnueabihf.tar.gz 863d80dd6a617ace6ce43ae11fc4c388eaf809341fba7304c76ed8d30a7608e0b guix-build-a72ff31b879f/output/arm64-apple-darwin/SHA256SUMS.part 9148af422c55455b91f9e7947bde53546aca9705eaedae4240d7eb439425c4c8d guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-codesigning.tar.gz 108d5056542c7e47d4674328f65e05c4e8b871b823c33132c949eafd36a7dc5b7c guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.tar.gz 115a9748970538e1bf99a1c14ef0acab693e238ec212db6a3531d6743c117de725 guix-build-a72ff31b879f/output/arm64-apple-darwin/bitcoin-a72ff31b879f-arm64-apple-darwin-unsigned.zip 12094363086ca8986f8460c8355abd7ff4f7b2e3dbdafab2a0c68c51e93b432e79 guix-build-a72ff31b879f/output/dist-archive/bitcoin-a72ff31b879f.tar.gz 13a8bd7171de3fd69925f55cd24a3d76da19e7b6f11cc01ee101e29f81eb0f9df1 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/SHA256SUMS.part 1406ef995f52f14fd1b780f297898c41232c10b64931b2053622228642bf04afc5 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu-debug.tar.gz 15c71593027c636481c7ec706947876c0086baa58e43170a8d4871568db6689234 guix-build-a72ff31b879f/output/powerpc64-linux-gnu/bitcoin-a72ff31b879f-powerpc64-linux-gnu.tar.gz 16c44e49c68906657e90c328b8b05ee76d92bb6dc3280d13d0f82521cf66529c51 guix-build-a72ff31b879f/output/riscv64-linux-gnu/SHA256SUMS.part 17576f0f27c4ea2ff720e548b502f265efaeebc0896c20d2ba40839728710bae8a guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu-debug.tar.gz 18403c010fc0f9363eb6536875b9a6181ef835eb86b8ae538f9fd9430bd67e93f6 guix-build-a72ff31b879f/output/riscv64-linux-gnu/bitcoin-a72ff31b879f-riscv64-linux-gnu.tar.gz 198c6f83e6686cb3e486568b7353a08562e361b3abd4281ad08c47d0e74d071ea8 guix-build-a72ff31b879f/output/x86_64-apple-darwin/SHA256SUMS.part 208271c2bd3c6d4dc17ce6eb316e4094c759b8be15fd3b308ccd6856ceb0a09b86 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-codesigning.tar.gz 21c70b4b4a3a23ca9ffb442d00257f6bf8233792785e4a3d391be132cceaec1e81 guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.tar.gz 223abbf804472200486f757181c44e7e19aeb8119f825a6580d735d98e144ee2cd guix-build-a72ff31b879f/output/x86_64-apple-darwin/bitcoin-a72ff31b879f-x86_64-apple-darwin-unsigned.zip 2301b1696b94b9f22531c364a0c3f30a9064a5b2baff59a8333a0b38aa19be2a7b guix-build-a72ff31b879f/output/x86_64-linux-gnu/SHA256SUMS.part 2486acfda0a08f9b4eddab48bf4cd723c9015b5b2d84bffecdf8175df57dac5051 guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu-debug.tar.gz 2530a3c4ef58e4bef72c712631c7b61099e2da8391b06926863a7c2003ca8dc97b guix-build-a72ff31b879f/output/x86_64-linux-gnu/bitcoin-a72ff31b879f-x86_64-linux-gnu.tar.gz 266fafb7b8801eb37d37abd1ea4907e6c93bbac06f2fc6b59d4cd771b38ba97e89 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/SHA256SUMS.part 273e214aacaf379fefead8694b1962c4f4c38b2754eae7069de6bfb259ad80e3c3 guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-codesigning.tar.gz 28fb3f9479336034177b9309390f667047c833fb1e944dbcccbd6a097e6988de8c guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-debug.zip 29b0ff4b5811fca1bc654e35d77828a4b025fe756e71314b6f91501f27375bd81a guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-setup-unsigned.exe 30d7a2204da3f11afcd9851804fb56132d596cb5157c1a558045eb2b2689a6259f guix-build-a72ff31b879f/output/x86_64-w64-mingw32/bitcoin-a72ff31b879f-win64-unsigned.ziphebasto commented at 2:19 pm on December 15, 2025: memberIn 92f275aabf12ebfc0d6d0ccbd83af7e4f88dad25:
From the partially reverted commit message, it follows that the commit affects code generation at
-O3. This is somewhat confusing, as we use-O2.Based on that commit message, I conclude that reverting only the two checks, rather than the entire commit, is safe. Nevertheless, why not revert the whole commit, which would make review of this PR much easier?
maflcko commented at 2:24 pm on December 15, 2025: memberBased on that commit message, I conclude that reverting only the two checks, rather than the entire commit, is safe. Nevertheless, why not revert the whole commit, which would make review of this PR much easier?
I’d say it is easier to check that dead/unreachable code has been removed than to check the correct port of a optimization reversion across gcc minor or even major versions?
laanwj commented at 2:24 pm on December 15, 2025: memberBased on that commit message, I conclude that reverting only the two checks, rather than the entire commit, is safe. Nevertheless, why not revert the whole commit, which would make review of this PR much easier?
IMO this is safer. It removes only unreachable code, which is enough to remove the non-determinism. Reverting the optimization seems more risky especially for platforms where this is not needed. (and there’s no reason to believe that the optimization is unsafe and needs to be reverted? the problem is only the non-determinism)
fanquake force-pushed on Dec 17, 2025maflcko commented at 9:05 am on December 27, 2025: memberNew reproduction branch in https://github.com/laanwj/bitcoin/tree/2025-12-repro-33775 :
0x86_64 1ad9ef7b0ee55a233ad01dc71b91c435df6525a5b20cc2781feae715aba712fe7 test-original.cpp.obj 2e07ba1f07faf254d2b192bf8494949769af2c13a3f75cba926120eb90b2c60f5 test-reverted.cpp.obj0aarch64 17d2cc20e0528d9f2a72ece935ae72a158f9f2483cd4bdbe56950db9e28f3c762 test-original.cpp.obj 2e07ba1f07faf254d2b192bf8494949769af2c13a3f75cba926120eb90b2c60f5 test-reverted.cpp.objThe first variant (
test-original.cpp.i) is preprocessed with gcc-Ewith the original gcc 14.3.0 headers, the second one (test-reverted.cpp.i) with the reverted commit. Note that we could now dropHOST_CXXFLAGSwith the remaps (as well as all the explicitCROSS_environment setup) as the file was preprocessed on one host, having the same paths.Nice reproduction branch. In theory this can be used directly to be put into
creduce. I spun up two fresh guix boxes on amd64 and arm64, then used the following “interestingness script”:0#!/bin/bash 1# 2# Note: Currently not parallelism-safe. Start with: creduce --n 1 ./interestingness-test.sh foo.c 3set -e 4 5REMOTE1=ipv6::1 # guix aarch64 6REMOTE2=ipv6::2 # guix amd64 x86_64 7REMOTEPATH=/root/temp-creduce/test-original.i 8REMOTEPATH_OBJ=/root/temp-creduce/test-original.cpp.obj 9# overwrite the obj on compile failure, to mark it not interesting, 10REMOTE_CMD="bash -c '( echo test-original.cpp.obj DUMMY && ( echo compile-failure-251a03efd96f46c3f93a9e0220edb86c > /root/temp-creduce/test-original.cpp.obj ) && cd ~/temp-creduce && FORCE_DIRTY_WORKTREE=1 V=1 VERBOSE=1 JOBS=1 ./contrib/guix/guix-build ) | grep test-original.cpp.obj'" 11 12# Copy the file under test (C-Reduce provides it as ./foo.c, or whatever name you passed) 13scp -i ~/.ssh/id_hetz ./foo.c "root@[$REMOTE1]:$REMOTEPATH" & P1=$! 14scp -i ~/.ssh/id_hetz ./foo.c "root@[$REMOTE2]:$REMOTEPATH" & P2=$! 15wait $P1 16wait $P2 17 18ssh -i ~/.ssh/id_hetz "root@$REMOTE1" "$REMOTE_CMD" > /tmp/hash1.$$ & P3=$! 19ssh -i ~/.ssh/id_hetz "root@$REMOTE2" "$REMOTE_CMD" > /tmp/hash2.$$ & P4=$! 20wait $P3 21wait $P4 22 23HASH1=$(</tmp/hash1.$$) 24HASH2=$(</tmp/hash2.$$) 25rm -f /tmp/hash1.$$ /tmp/hash2.$$ 26 27echo ===== 28echo $HASH1 29echo $HASH2 30echo ===== 31 32if [ "$HASH1" != "$HASH2" ]; then 33 # also store a recovery version in /tmp/, in case of an interrupt. 34 cp /root/temp-creduce/test-original.i /tmp/recovered 35 echo "NICE, the bug still reproduces!" 36 exit 0 37else 38 echo "BAD, the bug is gone :(" 39 exit 1 40fiHowever, going through guix each time seems to add a delay, and the script isn’t parallelism-safe, so can only be run via
creduce --n 1 ./interestingness-test.sh foo.c.So I gave up after more than a week and wrote a new test.sh, which runs GCC directly on the Trixie hosts without guix:
0#!/bin/bash 1# 2# Start via creduce test.sh bar.cpp 3set -e 4 5REMOTE1=ipv6::3 # trixie aarch64 6REMOTE2=ipv6::4 # trixie amd64 x86_64 7PATH_EL="$$_$(date +%s%N)" 8REMOTE_DIR=/root/scratch/$PATH_EL 9REMOTEPATH=/root/scratch/$PATH_EL/input.cpp 10REMOTEPATH_OBJ=/root/scratch/$PATH_EL/out.obj 11 12# TODO the cleanup of the remote dir should be done with a context manager to 13# clean up even after scp/ssh failures.. I guess i shouldn't write bash scripts 14# and just use python or so. 15# So for now, this will fill the storage while the script is running. 16ssh -i ~/.ssh/id_hetz "root@$REMOTE1" "mkdir $REMOTE_DIR" 17ssh -i ~/.ssh/id_hetz "root@$REMOTE2" "mkdir $REMOTE_DIR" 18 19# overwrite the obj on compile failure, to mark it not interesting, 20REMOTE_CMD="bash -c '( echo $REMOTEPATH_OBJ DUMMY && ( echo compile-failure > $REMOTEPATH_OBJ ) && cd /root/scratch && unset LIBRARY_PATH CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH OBJCPLUS_INCLUDE_PATH; x86_64-w64-mingw32-g++ -DNOMINMAX -DWIN32 -DWIN32_LEAN_AND_MEAN -D_MT -D_WIN32_IE=0x0A00 -D_WIN32_WINNT=0x0A00 -D_WINDOWS -Werror -O2 -g -fvisibility=hidden -fstack-reuse=none -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -std=c++20 -MD -save-temps -ffile-prefix-map=$REMOTE_DIR=. -o $REMOTEPATH_OBJ -c $REMOTEPATH && sha256sum $REMOTEPATH_OBJ ) | grep $REMOTEPATH_OBJ'" 21 22# Copy the file under test (C-Reduce provides it as ./bar.cpp, or whatever name you passed) 23scp -i ~/.ssh/id_hetz ./bar.cpp "root@[$REMOTE1]:$REMOTEPATH" & P1=$! 24scp -i ~/.ssh/id_hetz ./bar.cpp "root@[$REMOTE2]:$REMOTEPATH" & P2=$! 25wait $P1 26wait $P2 27 28ssh -i ~/.ssh/id_hetz "root@$REMOTE1" "$REMOTE_CMD" > /tmp/hash1.$PATH_EL & P3=$! 29ssh -i ~/.ssh/id_hetz "root@$REMOTE2" "$REMOTE_CMD" > /tmp/hash2.$PATH_EL & P4=$! 30wait $P3 31wait $P4 32 33HASH1=$(</tmp/hash1.$PATH_EL) 34HASH2=$(</tmp/hash2.$PATH_EL) 35rm -f /tmp/hash1.$PATH_EL /tmp/hash2.$PATH_EL 36 37echo ===== 38echo $HASH1 39echo $HASH2 40echo ===== 41 42if [ "$HASH1" != "$HASH2" ]; then 43 # also store a recovery version in /tmp/, in case of an interrupt. 44 cp $REMOTEPATH /tmp/recovered 45 ssh -i ~/.ssh/id_hetz "root@$REMOTE1" "rm -r $REMOTE_DIR" 46 ssh -i ~/.ssh/id_hetz "root@$REMOTE2" "rm -r $REMOTE_DIR" 47 exit 0 48else 49 ssh -i ~/.ssh/id_hetz "root@$REMOTE1" "rm -r $REMOTE_DIR" 50 ssh -i ~/.ssh/id_hetz "root@$REMOTE2" "rm -r $REMOTE_DIR" 51 exit 1 52fiBasically the changes to the flags were adding
-ffile-prefix-map=$REMOTE_DIR=.to allow parallel execution, and-Werrorto avoid reducing into obvious UB. The final reproducer is probably still filled with UB. Though, I’d say it shouldn’t matter, because we’d still want the same object file hash, even if there is UB?So running via
~/creduce/creduce/creduce --n 256 test.sh bar.cpp, and some manual fixups (because the creduce-inline step was skipped because it kept crashing llvm-18), i got:0void b(void *h) { 1 void *c; 2 long f; 3 long b = __builtin_dynamic_object_size(h, 0); 4 __builtin___memcpy_chk(h, c, f, b); 5} 6class A { 7public: 8 struct ay { 9 ay(); 10 } az; 11 int ba[]; 12 A(A &) { b(ba); } 13}; 14class C { 15 A bq; 16}; 17void *operator new(unsigned long long, void *j) { return j; } 18int *n(void) { 19 long g; 20 return static_cast<int *>(operator new(g)); 21} 22void bi(int *h, int *j) { 23 alignas(C) char temp_obj[sizeof(C)]; 24 for (; h; j += sizeof(C)) { 25 new (reinterpret_cast<C *>(j)) C(*reinterpret_cast<C *>(temp_obj)); 26 } 27} 28template <class k> void bm(int, int *j, k) { 29 int i; 30 bi(&i, j); 31} 32void a() { 33 int *d(n()); 34 int r; 35 bm(r, d, 0); 36}Not sure how to proceed from here.
Though, it seems the GCC bug reproduces across all versions from 13, to 15:
I didn’t want to ssh into different boxes, to i just used the slow qemu for the different arches:
0#!/usr/bin/env bash 1 2set -o errexit -o pipefail -o xtrace 3 4ARCHS=("amd64" "arm64") 5DISTROS=( 6 "ubuntu:24.04" 7 "ubuntu:26.04" 8 "debian:bookworm" 9 "debian:trixie" 10 "debian:forky" 11) 12 13OUTFILE="sha-output.txt" 14: > "$OUTFILE" 15 16for ARCH in "${ARCHS[@]}"; do 17 for DISTRO in "${DISTROS[@]}"; do 18 NAME="${DISTRO//:/-}-${ARCH}" 19 IMAGE="docker.io/library/${DISTRO}" 20 21 podman run --replace --detach --rm --platform "linux/${ARCH}" --name "$NAME" "$IMAGE" bash -c "sleep infinity" 22 podman cp ./bar.cpp "$NAME":/tmp/bar.cpp 23 24 podman exec "$NAME" bash -c "apt-get update -qq && apt-get install -y -qq g++-mingw-w64-x86-64" 25 26 RESULT=$(podman exec "$NAME" bash -c ' 27 x86_64-w64-mingw32-g++ -DNOMINMAX -DWIN32 -DWIN32_LEAN_AND_MEAN -D_MT \ 28 -D_WIN32_IE=0x0A00 -D_WIN32_WINNT=0x0A00 -D_WINDOWS -Werror -O2 -g \ 29 -fvisibility=hidden -fstack-reuse=none -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 \ 30 -std=c++20 -MD -save-temps -ffile-prefix-map=/tmp=. \ 31 -o /tmp/bar.o -c /tmp/bar.cpp >/dev/null 2>&1 32 33 HASH=$(sha256sum /tmp/bar.o | awk "{print \$1}") 34 VER=$(x86_64-w64-mingw32-g++ --version | head -n 1) 35 36 echo "$HASH $VER" 37 ') 38 39 echo "$DISTRO $ARCH $RESULT" >> "$OUTFILE" 40 done 41doneThe script was printing:
0# cat sha-output.txt |sort 1debian:bookworm amd64 d4a2ba2e6e13ca0629498619e695f785fe6fe85859454fa2fd502f8558dad354 x86_64-w64-mingw32-g++ (GCC) 12-win32 2debian:bookworm arm64 9aa8f93b310968c1e5a7dc5612ecd7780f586f218dc1ba7b428400623734b4e3 x86_64-w64-mingw32-g++ (GCC) 12-win32 3debian:forky amd64 e867b28474eeadc5764c96080f3c4a5c751cd5446ee5fb9aa337975ec0995322 x86_64-w64-mingw32-g++ (GCC) 15-win32 4debian:forky arm64 7b01377d4ff452aa6702280bf463dcb5f7a7719c7812382d3415dda946f8bcb8 x86_64-w64-mingw32-g++ (GCC) 15-win32 5debian:trixie amd64 3f10ad5a6aeea9c89d7bd3f6b32c901114d3c779227bf9050cef5e387280f94d x86_64-w64-mingw32-g++ (GCC) 14-win32 6debian:trixie arm64 66e6a16a0bfd6cbf8cc71d43a16cdd08a5cc9ce1b9a9d582a4fea24a7c4ccb9e x86_64-w64-mingw32-g++ (GCC) 14-win32 7ubuntu:24.04 amd64 fce3dd846de8d5b8f173cb5d6a99ceaf359b1245175a6003c53f377f0deefabf x86_64-w64-mingw32-g++ (GCC) 13-win32 8ubuntu:24.04 arm64 23b9f0bd61c65ef13147cb6454387b6a841041c928766ff8c403ad7d1f00d90e x86_64-w64-mingw32-g++ (GCC) 13-win32 9ubuntu:26.04 amd64 fce3dd846de8d5b8f173cb5d6a99ceaf359b1245175a6003c53f377f0deefabf x86_64-w64-mingw32-g++ (GCC) 13-win32 10ubuntu:26.04 arm64 23b9f0bd61c65ef13147cb6454387b6a841041c928766ff8c403ad7d1f00d90e x86_64-w64-mingw32-g++ (GCC) 13-win32Edit: I also went ahead to de-reduce the above reproducer, so that it can be run on earlier versions of GCC. The non-determinism only happens in later GCC versions:
0#include <cstddef> 1#include <cstring> 2#include <memory> 3#include <new> 4 5void unsafe_copy(void *dest) { 6 void *c; 7 unsigned f; 8 std::memcpy(dest, c, f); 9} 10 11class A { 12public: 13 struct ay { 14 ay(); 15 } az; 16 int ba[]; 17 A(A &other) { unsafe_copy(ba); } 18}; 19 20class C { 21 A bq; 22}; 23 24int *n(void) { 25 unsigned g; 26 return static_cast<int *>(::operator new(g)); 27} 28 29void construct_objects(int *h, int *j) { 30 int temp_obj = 0; 31 for (; h; ++j) { 32 new (reinterpret_cast<C *>(std::addressof(*j))) 33 C(*reinterpret_cast<C *>(std::addressof(temp_obj))); 34 } 35} 36 37template <class T> void construct_with_template(int, int *j, T) { 38 int dummy; 39 construct_objects(&dummy, j); 40} 41 42void main_function() { 43 int *data_ptr(n()); 44 int dummy_var; 45 construct_with_template(dummy_var, data_ptr, 0); 46}With the matrix script modified to set C++11 as standard, and some distros added, it prints:
0debian:bookworm amd64 d886f2ba8a4e36eea2573f41d0a8ebd8b0669be2a1d3809626865a2f449bbe9b x86_64-w64-mingw32-g++ (GCC) 12-win32 1debian:bookworm arm64 d886f2ba8a4e36eea2573f41d0a8ebd8b0669be2a1d3809626865a2f449bbe9b x86_64-w64-mingw32-g++ (GCC) 12-win32 2debian:forky amd64 42152ea4455c43b56555719a1a9935813306fb5431ffee696f5c06e68273f11c x86_64-w64-mingw32-g++ (GCC) 15-win32 3debian:forky arm64 338524ec534729bb84262354b963e9e7b0c2a040c95c5e90198de8982124158c x86_64-w64-mingw32-g++ (GCC) 15-win32 4debian:trixie amd64 91b222c3f70b6b8a3fa3c91cf6390673f6bdb3e3de20eefced41d9d52e026f47 x86_64-w64-mingw32-g++ (GCC) 14-win32 5debian:trixie arm64 46373b1bc9a010d2620609906e5b22dda4067764b2d2ab33912a86663c0b757c x86_64-w64-mingw32-g++ (GCC) 14-win32 6ubuntu:20.04 amd64 f1edf695c84ec8070a74774a3fe4c625214a043ba78d73fc7d9cfd77b0574d09 x86_64-w64-mingw32-g++ (GCC) 9.3-win32 20200320 7ubuntu:20.04 arm64 f1edf695c84ec8070a74774a3fe4c625214a043ba78d73fc7d9cfd77b0574d09 x86_64-w64-mingw32-g++ (GCC) 9.3-win32 20200320 8ubuntu:22.04 amd64 a586651c8f4e52d91114b56d8f780a593e89db0f17adeecc6ba258f20e16148c x86_64-w64-mingw32-g++ (GCC) 10-win32 20220113 9ubuntu:22.04 arm64 a586651c8f4e52d91114b56d8f780a593e89db0f17adeecc6ba258f20e16148c x86_64-w64-mingw32-g++ (GCC) 10-win32 20220113 10ubuntu:24.04 amd64 f1566ddc60e1c42986387851993410a989a37cae4e4b13a5df0fddfe94412dad x86_64-w64-mingw32-g++ (GCC) 13-win32 11ubuntu:24.04 arm64 f6862c2354ffa66a17b76029740f9e022defa801a2f6ebda94323bc54ed655e0 x86_64-w64-mingw32-g++ (GCC) 13-win32 12ubuntu:26.04 amd64 69140cb4097a91e37a17b5116fe538c1b935aa124b122e425a90b6210d40bbaf x86_64-w64-mingw32-g++ (GCC) 13-win32 13ubuntu:26.04 arm64 a94b27a01da82d3ccf90e6d88e6181be7f3c8769b50073ea82c664a1dd0300d2 x86_64-w64-mingw32-g++ (GCC) 13-win32fanquake force-pushed on Dec 29, 2025maflcko commented at 5:41 pm on December 30, 2025: memberI didn’t feel good about the UB in my reduced test case, and it looks too tedious to remove the UB again, so I started from scratch from the reproducer in #33775 (comment) and minimized it manually down to a C++-11 reproducer:
0#include <cstring> // Unused, but removing this makes it deterministic 1#include <string> 2#include <utility> 3#include <vector> 4 5struct Item { 6 Item(std::wstring path, std::string value) 7 : path(std::move(path)), value(std::move(value)) {} 8 std::wstring path; 9 std::string value; 10}; 11 12bool has_new_paths(); 13std::vector<Item> Func() { 14 std::vector<Item> paths; 15 if (has_new_paths()) { 16 paths.emplace_back(std::wstring(), "a"); 17 paths.emplace_back(std::wstring(), "aa"); 18 paths.emplace_back(std::wstring(), "a"); 19 paths.emplace_back(std::wstring(), "aa"); 20 } 21 return paths; 22}It was possible to reduce it further to still reproduce inside guix, but further reduction lead to matching hashes in my matrix.sh script for some unknown reason.
Also, the reproducer only hit for GCC 14, and GCC 15, as expected, due to the
std::vectorstdlib commit.So I went ahead and dropped
std::vectorfor aMiniVector:0#include <algorithm> 1#include <cstring> // Unused, but removing this makes it deterministic 2#include <memory> 3#include <stdexcept> 4#include <string> 5#include <utility> 6 7struct Item { 8 Item(std::wstring path, std::string value) 9 : path(std::move(path)), value(std::move(value)) {} 10 std::wstring path; 11 std::string value; 12}; 13 14struct MiniVector { 15 using allocator_type = std::allocator<Item>; 16 using allocator_traits = std::allocator_traits<allocator_type>; 17 18 MiniVector() = default; 19 20 MiniVector(MiniVector&& other) noexcept 21 : _M_alloc(std::move(other._M_alloc)), 22 _M_start(other._M_start), 23 _M_finish(other._M_finish), 24 _M_end_of_storage(other._M_end_of_storage) { 25 other._M_start = nullptr; 26 other._M_finish = nullptr; 27 other._M_end_of_storage = nullptr; 28 } 29 30 MiniVector& operator=(MiniVector&& other) noexcept { 31 if (this != &other) { 32 clear(); 33 if (_M_start) { 34 _M_deallocate(_M_start, _M_end_of_storage - _M_start); 35 } 36 _M_alloc = std::move(other._M_alloc); 37 _M_start = other._M_start; 38 _M_finish = other._M_finish; 39 _M_end_of_storage = other._M_end_of_storage; 40 other._M_start = nullptr; 41 other._M_finish = nullptr; 42 other._M_end_of_storage = nullptr; 43 } 44 return *this; 45 } 46 47 ~MiniVector() { 48 clear(); 49 if (_M_start) { 50 _M_deallocate(_M_start, _M_end_of_storage - _M_start); 51 } 52 } 53 54 MiniVector(const MiniVector&) = delete; 55 MiniVector& operator=(const MiniVector&) = delete; 56 57 size_t size() const { return static_cast<size_t>(_M_finish - _M_start); } 58 59 void clear() { 60 _M_destroy(_M_start, _M_finish); 61 _M_finish = _M_start; 62 } 63 64 template <typename... Args> 65 void emplace_back(Args&&... args) { 66 if (_M_finish != _M_end_of_storage) { 67 _M_construct(_M_finish, std::forward<Args>(args)...); 68 ++_M_finish; 69 return; 70 } 71 realloc_append(std::forward<Args>(args)...); 72 } 73 74 template <typename... Args> 75 void realloc_append(Args&&... args) { 76 const size_t __len = _M_check_len(1, "vector::_M_realloc_append"); 77 size_t new_len = __len; 78 if (new_len == 0) __builtin_unreachable(); 79 80 Item* __old_start = _M_start; 81 Item* __old_finish = _M_finish; 82 Item* __new_start = _M_allocate(__len); 83 Item* __new_finish = __new_start; 84 85 try { 86 Item* dst = __new_start; 87 for (Item* src = __old_start; src != __old_finish; ++src, ++dst) { 88 _M_construct(dst, std::move(*src)); 89 } 90 __new_finish = dst; 91 _M_construct(__new_finish, std::forward<Args>(args)...); 92 ++__new_finish; 93 } catch (...) { 94 _M_destroy(__new_start, __new_finish); 95 _M_deallocate(__new_start, __len); 96 throw; 97 } 98 99 _M_destroy(__old_start, __old_finish); 100 if (__old_start) { 101 _M_deallocate(__old_start, _M_end_of_storage - __old_start); 102 } 103 104 _M_start = __new_start; 105 _M_finish = __new_finish; 106 _M_end_of_storage = __new_start + __len; 107 } 108 109 private: 110 size_t _M_check_len(size_t __n, const char* __s) const { 111 const size_t __sz = size(); 112 const size_t __max = max_size(); 113 if (__max - __sz < __n) throw std::length_error(__s); 114 size_t __len = __sz + std::max(__sz, __n); 115 if (__len < __sz || __len > __max) __len = __max; 116 return __len; 117 } 118 119 size_t max_size() const { return allocator_traits::max_size(_M_alloc); } 120 121 Item* _M_allocate(size_t __n) { 122 return __n != 0 ? allocator_traits::allocate(_M_alloc, __n) : nullptr; 123 } 124 125 void _M_deallocate(Item* __p, size_t __n) { 126 if (__p) allocator_traits::deallocate(_M_alloc, __p, __n); 127 } 128 129 template <typename... Args> 130 void _M_construct(Item* __p, Args&&... __args) { 131 allocator_traits::construct(_M_alloc, __p, std::forward<Args>(__args)...); 132 } 133 134 void _M_destroy(Item* __first, Item* __last) { 135 while (__last != __first) { 136 --__last; 137 allocator_traits::destroy(_M_alloc, __last); 138 } 139 } 140 141 allocator_type _M_alloc; 142 Item* _M_start = nullptr; 143 Item* _M_finish = nullptr; 144 Item* _M_end_of_storage = nullptr; 145}; 146 147bool has_new_paths(); 148MiniVector Func() { 149 MiniVector paths; 150 if (has_new_paths()) { 151 paths.emplace_back(std::wstring(), "a"); 152 paths.emplace_back(std::wstring(), "aa"); 153 paths.emplace_back(std::wstring(), "a"); 154 paths.emplace_back(std::wstring(), "aa"); 155 } 156 return paths; 157}The matrix script output looks more promising to be able to find a “real” bisect result.
0 $ cat sha-output-MiniVec.txt 1 debian:bookworm amd64 1c7ab0499cfb79636511fbc4283b84699a50a190ebfef78748840032428cbb12 x86_64-w64-mingw32-g++ (GCC) 12-win32 2 debian:bookworm arm64 1c7ab0499cfb79636511fbc4283b84699a50a190ebfef78748840032428cbb12 x86_64-w64-mingw32-g++ (GCC) 12-win32 3 debian:bullseye amd64 4c2070234162566d4725c175f971fe92318dd488c77c6367e0d9b951ca6a4b48 x86_64-w64-mingw32-g++ (GCC) 10-win32 20210110 4 debian:bullseye arm64 4c2070234162566d4725c175f971fe92318dd488c77c6367e0d9b951ca6a4b48 x86_64-w64-mingw32-g++ (GCC) 10-win32 20210110 5 debian:forky amd64 6f8bf4cc87a2913fffd8f67c6eb5a98d687d275a9df03d82723cd3b0a460040c x86_64-w64-mingw32-g++ (GCC) 15-win32 6 debian:forky arm64 29ada99bc36372adbf6872b7e756f0fb6fbfe8ee332e0a4b576423c53f6d7648 x86_64-w64-mingw32-g++ (GCC) 15-win32 7 debian:trixie amd64 f803cc906b3d97c2cc672c65fb51f09ebe7afafcfec1ef34b899fb951e20b871 x86_64-w64-mingw32-g++ (GCC) 14-win32 8 debian:trixie arm64 a83bdd31114d01239cc7ebe74afd598ae8c60f0495bfe84df209db6fd50da2f5 x86_64-w64-mingw32-g++ (GCC) 14-win32 9 ubuntu:20.04 amd64 694a2840b9f5316a49582cd91c4133a13b52f63bf3509a8e62c9be9a30c5804c x86_64-w64-mingw32-g++ (GCC) 9.3-win32 20200320 10 ubuntu:20.04 arm64 694a2840b9f5316a49582cd91c4133a13b52f63bf3509a8e62c9be9a30c5804c x86_64-w64-mingw32-g++ (GCC) 9.3-win32 20200320 11 ubuntu:22.04 amd64 59617571be4a284e60ae2a8aff563aaf0aa64ba057b094cbd8046fa8064d4fe0 x86_64-w64-mingw32-g++ (GCC) 10-win32 20220113 12 ubuntu:22.04 arm64 59617571be4a284e60ae2a8aff563aaf0aa64ba057b094cbd8046fa8064d4fe0 x86_64-w64-mingw32-g++ (GCC) 10-win32 20220113 13 ubuntu:24.04 amd64 05fb5a332c62e9404d37790c118f3d7c06fb4f9d2b83718c63f934da48a74bb2 x86_64-w64-mingw32-g++ (GCC) 13-win32 14 ubuntu:24.04 arm64 4f5c4e9eabc7550beaae93060bbd284236f1f1e1b73c483f9e0f4aa75014abbe x86_64-w64-mingw32-g++ (GCC) 13-win32 15 ubuntu:26.04 amd64 0111cfb12987ae47314c9165fa89a9376d27320e9bdab6d55ce1505c770a89db x86_64-w64-mingw32-g++ (GCC) 13-win32 16 ubuntu:26.04 arm64 e4399a493a1a5d1107b8b524dbd8ab13b58d9efbdf66377c8d717505542d9f92 x86_64-w64-mingw32-g++ (GCC) 13-win32 17 18 $ cat sha-output-std-vec.txt 19 debian:bookworm amd64 a8cfe03467be5259b9e4ff12acc9fbe21adb324df53cccd013dbfc7a0e8f259f x86_64-w64-mingw32-g++ (GCC) 12-win32 20 debian:bookworm arm64 a8cfe03467be5259b9e4ff12acc9fbe21adb324df53cccd013dbfc7a0e8f259f x86_64-w64-mingw32-g++ (GCC) 12-win32 21 debian:bullseye amd64 be3c68a6ee61550786ca349aac0bb41f9b8df85d3f516b325a6cde8154bc8305 x86_64-w64-mingw32-g++ (GCC) 10-win32 20210110 22 debian:bullseye arm64 be3c68a6ee61550786ca349aac0bb41f9b8df85d3f516b325a6cde8154bc8305 x86_64-w64-mingw32-g++ (GCC) 10-win32 20210110 23 debian:forky amd64 7cfc86de43f52339c80f5ce4175267b725ec1adfd972ad8349125cffe89b664a x86_64-w64-mingw32-g++ (GCC) 15-win32 24 debian:forky arm64 0e3ebb14919f05f6074daebd6f14adb88f5308563b5b20240f197dd95976f6bb x86_64-w64-mingw32-g++ (GCC) 15-win32 25 debian:trixie amd64 ce9e8688a2d4592d306e70b0815ef7178c420fd629d548a4cfde4d4493ce896a x86_64-w64-mingw32-g++ (GCC) 14-win32 26 debian:trixie arm64 8947fa89d6b99322d38dc44130cecbb7416edf2eaf3b423f1e1108508330827a x86_64-w64-mingw32-g++ (GCC) 14-win32 27 ubuntu:20.04 amd64 c85301bb44140c1f42c93d2a7e782160ec665c706b46aee270ae98ecc3327d30 x86_64-w64-mingw32-g++ (GCC) 9.3-win32 20200320 28 ubuntu:20.04 arm64 c85301bb44140c1f42c93d2a7e782160ec665c706b46aee270ae98ecc3327d30 x86_64-w64-mingw32-g++ (GCC) 9.3-win32 20200320 29 ubuntu:22.04 amd64 5dafd08f92db0ead63e2cbbf301ebedbf3ea744d1861449dd9f7805170449854 x86_64-w64-mingw32-g++ (GCC) 10-win32 20220113 30 ubuntu:22.04 arm64 5dafd08f92db0ead63e2cbbf301ebedbf3ea744d1861449dd9f7805170449854 x86_64-w64-mingw32-g++ (GCC) 10-win32 20220113 31 ubuntu:24.04 amd64 674f3f7ffcf5ebe791cbd08a749818c0bc95aebf28e0eda667b32ae794337152 x86_64-w64-mingw32-g++ (GCC) 13-win32 32 ubuntu:24.04 arm64 674f3f7ffcf5ebe791cbd08a749818c0bc95aebf28e0eda667b32ae794337152 x86_64-w64-mingw32-g++ (GCC) 13-win32 33 ubuntu:26.04 amd64 de713975c844396957cc1cc33d07e3a5262e843422076682a224abbc6aa2eb21 x86_64-w64-mingw32-g++ (GCC) 13-win32 34 ubuntu:26.04 arm64 de713975c844396957cc1cc33d07e3a5262e843422076682a224abbc6aa2eb21 x86_64-w64-mingw32-g++ (GCC) 13-win32maflcko commented at 7:15 pm on December 30, 2025: memberSo “MiniVector” leads the bisect to https://github.com/gcc-mirror/gcc/commit/53ba8d669550d3a1f809048428b97ca607f95cf5, which means that-fno-ipa-vrpcould be used as another workaround.in contrib/guix/patches/gcc-revert-optimize-std-vector-push_back.patch:7 in 73b68ee4d3 outdated
0@@ -0,0 +1,38 @@ 1+From 7f8f0478457fb8588331460834d62c14d7726c18 Mon Sep 17 00:00:00 2001 2+From: Mara van der Laan <126646+laanwj@users.noreply.github.com> 3+Date: Mon, 8 Dec 2025 13:30:42 +0100 4+Subject: [PATCH] Revert builtin_unreachable introduced in commit 5+ 1d82fc2e6824bf83159389729c31a942f7b91b04. 6+ 7+For some reason, these make the build non-deterministic between
maflcko commented at 9:16 am on December 31, 2025:
fanquake commented at 12:02 pm on December 31, 2025:Nice. Pulled into the patch.
maflcko commented at 9:38 am on January 6, 2026:I submitted https://github.com/gcc-mirror/gcc/commit/c6085ca0ed4cef3bcf4eb382cb71e44219c10f6e, which is probably easier to review? Also, it could make sense to use that commit, so that it can be easier dropped, once backported.fanquake force-pushed on Dec 31, 2025DrahtBot added the label CI failed on Dec 31, 2025maflcko removed the label CI failed on Jan 1, 20267735901ed2guix: disable building libgomp in GCC
Prunes: libgomp.a libgomp.la libgomp.so libgomp.so.1 libgomp.so.1.0.0 libgomp.spec
6f54e267d0guix: disable libquadmath in GCC
Prunes: libquadmath.a libquadmath.la libquadmath.so libquadmath.so.0 libquadmath.so.0.0.0
guix: build GCC with --enable-host-bind-now ea29329eb7guix: disable gprofng in GCC 47be9122a734909799feguix: use GCC 14.3.0 over 13.3.0
This will eventually be needed for #25573, and could be useful for #30210.
fanquake force-pushed on Jan 6, 2026fb0e6edfe8guix: Apply SSA generation patch to maintain determinism
See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123351 https://gcc.gnu.org/pipermail/gcc-patches/2026-January/704817.html
ci: migrate some jobs to Debian Trixie, use GCC 14 2a746500fafanquake force-pushed on Jan 6, 2026DrahtBot added the label CI failed on Jan 6, 2026DrahtBot removed the label CI failed on Jan 6, 2026hebasto commented at 2:14 pm on January 6, 2026: memberMy Guix build:
0x86_64 140ad33c821da20854bd5c01127e0aeec4b387ca44c485655bfadc0c65a80e9ce guix-build-2a746500fa76/output/aarch64-linux-gnu/SHA256SUMS.part 2fe01b5d9c7619a9f8b01cccad0655c9dfe3703ea053ff9438c6941d6e8b13c78 guix-build-2a746500fa76/output/aarch64-linux-gnu/bitcoin-2a746500fa76-aarch64-linux-gnu-debug.tar.gz 38d12bb46c0e4a6b178c821817250cdd00e6b16fa2e77e129b9224973e9ad0445 guix-build-2a746500fa76/output/aarch64-linux-gnu/bitcoin-2a746500fa76-aarch64-linux-gnu.tar.gz 4600393616d9275202807b2f83a966f55f47d7313d9b9291587e3a4e9f23b6181 guix-build-2a746500fa76/output/arm-linux-gnueabihf/SHA256SUMS.part 59c75f854b3f3f92dd81081af789f32b60661fd0f5d1bd9973ccd7c3cff884196 guix-build-2a746500fa76/output/arm-linux-gnueabihf/bitcoin-2a746500fa76-arm-linux-gnueabihf-debug.tar.gz 608ac981dd5d5fb4dd943f0ea93a6281387a46b3c42c9b06a7ff0c99e39868f65 guix-build-2a746500fa76/output/arm-linux-gnueabihf/bitcoin-2a746500fa76-arm-linux-gnueabihf.tar.gz 72dbdffc0dcde53df241d8d67e1cce6a155425c3de55f08fc3483aa62181cfae9 guix-build-2a746500fa76/output/arm64-apple-darwin/SHA256SUMS.part 850e4268ff7039ca10c6b21b58322513c455a28477afeb61240a178ea23a72ab9 guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-codesigning.tar.gz 98137daa7a41a08279382fb63f2030802ddc538a32fe0cedae6db8e7897d53f29 guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-unsigned.tar.gz 102994d09b304cc0860b1b92553715933f3a54d53555cb60dcb6ebf57c2dc58a6e guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-unsigned.zip 112af7c1cb984b6eec476ff441e04fcc3f5a7d26f88a9e00f8773f08cd74e88a7b guix-build-2a746500fa76/output/dist-archive/bitcoin-2a746500fa76.tar.gz 12dac539f42ea8115867ac3693e925f86c5ee7fbda7374e045f8c01473fceafb41 guix-build-2a746500fa76/output/powerpc64-linux-gnu/SHA256SUMS.part 131b66865391c52292a0739a6fa69024bf850c6b41f0768d4e9db045aeffc4c5c8 guix-build-2a746500fa76/output/powerpc64-linux-gnu/bitcoin-2a746500fa76-powerpc64-linux-gnu-debug.tar.gz 141faa4b649573ead908d51a43a78298ae0cd2015e6054bd8790d19acbdde74a5d guix-build-2a746500fa76/output/powerpc64-linux-gnu/bitcoin-2a746500fa76-powerpc64-linux-gnu.tar.gz 150388e0e34f28e1f65c1a0315603a8664529996871e062aa53bc10657663353c0 guix-build-2a746500fa76/output/riscv64-linux-gnu/SHA256SUMS.part 160f09706414d5a15456e146819aaefd08783c8f0732a4c38bfe105bb9d50387d0 guix-build-2a746500fa76/output/riscv64-linux-gnu/bitcoin-2a746500fa76-riscv64-linux-gnu-debug.tar.gz 170b3ef8bb5ec28d888f3c37ccf1ae95312fb4645c4c55770c95073091abe7fde4 guix-build-2a746500fa76/output/riscv64-linux-gnu/bitcoin-2a746500fa76-riscv64-linux-gnu.tar.gz 18bcbb8f2a8e79874a6142e4eb605cf591a331f6a0448eac1801fe01996df22835 guix-build-2a746500fa76/output/x86_64-apple-darwin/SHA256SUMS.part 193d3abd9904e286562c22a7ab10bb992aa837b37554a4c151b7051bf2cdbaf483 guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-codesigning.tar.gz 2063181d3518d3a913ce25bd3e220e8385701a76891209431ed6b6efe4e419a9bc guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-unsigned.tar.gz 214ea713112c04b367d257676966cab796a2ff00208a393df2c8fc2f8a5af73f0a guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-unsigned.zip 22ace818bca8fc5041483b10ceeb9e1336fd26363781167decbc32c31cbb60fdd9 guix-build-2a746500fa76/output/x86_64-linux-gnu/SHA256SUMS.part 2376628eb51a70ed7a47f7f8da72b414654a94a952f27ea0722d0625c5952bd505 guix-build-2a746500fa76/output/x86_64-linux-gnu/bitcoin-2a746500fa76-x86_64-linux-gnu-debug.tar.gz 242e65bee126f47702020d52c8c8f23871a39e121e983b5e5d6d04f5d9103dde57 guix-build-2a746500fa76/output/x86_64-linux-gnu/bitcoin-2a746500fa76-x86_64-linux-gnu.tar.gz 257b228241e4f8c8740424f9663b0fdfc362619897fdeb4eac69eee49aff4ebd45 guix-build-2a746500fa76/output/x86_64-w64-mingw32/SHA256SUMS.part 26782fce8cfcaba112dc1633ee18a0d81a3a739186bbbd250303cb4393c4b5ba76 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-codesigning.tar.gz 277b1da47aa555de00bf1f0720ad7464c2d3ccc40ebc257aa27fc1c02407d74ebd guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-debug.zip 28ed26ec5df9f62a063c6239698008b71acf82f6e0d7e3ca0a023f7e7ff2094427 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-setup-unsigned.exe 29356fad06147ecc21007445ab5be5c72ea3125877f907e5ebc072686b610e2b35 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-unsigned.zipUPDATE: Got the same hashes on
aarch64.fanquake commented at 3:43 pm on January 6, 2026: memberGuix Build (aarch64):
040ad33c821da20854bd5c01127e0aeec4b387ca44c485655bfadc0c65a80e9ce guix-build-2a746500fa76/output/aarch64-linux-gnu/SHA256SUMS.part 1fe01b5d9c7619a9f8b01cccad0655c9dfe3703ea053ff9438c6941d6e8b13c78 guix-build-2a746500fa76/output/aarch64-linux-gnu/bitcoin-2a746500fa76-aarch64-linux-gnu-debug.tar.gz 28d12bb46c0e4a6b178c821817250cdd00e6b16fa2e77e129b9224973e9ad0445 guix-build-2a746500fa76/output/aarch64-linux-gnu/bitcoin-2a746500fa76-aarch64-linux-gnu.tar.gz 3600393616d9275202807b2f83a966f55f47d7313d9b9291587e3a4e9f23b6181 guix-build-2a746500fa76/output/arm-linux-gnueabihf/SHA256SUMS.part 49c75f854b3f3f92dd81081af789f32b60661fd0f5d1bd9973ccd7c3cff884196 guix-build-2a746500fa76/output/arm-linux-gnueabihf/bitcoin-2a746500fa76-arm-linux-gnueabihf-debug.tar.gz 508ac981dd5d5fb4dd943f0ea93a6281387a46b3c42c9b06a7ff0c99e39868f65 guix-build-2a746500fa76/output/arm-linux-gnueabihf/bitcoin-2a746500fa76-arm-linux-gnueabihf.tar.gz 62dbdffc0dcde53df241d8d67e1cce6a155425c3de55f08fc3483aa62181cfae9 guix-build-2a746500fa76/output/arm64-apple-darwin/SHA256SUMS.part 750e4268ff7039ca10c6b21b58322513c455a28477afeb61240a178ea23a72ab9 guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-codesigning.tar.gz 88137daa7a41a08279382fb63f2030802ddc538a32fe0cedae6db8e7897d53f29 guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-unsigned.tar.gz 92994d09b304cc0860b1b92553715933f3a54d53555cb60dcb6ebf57c2dc58a6e guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-unsigned.zip 102af7c1cb984b6eec476ff441e04fcc3f5a7d26f88a9e00f8773f08cd74e88a7b guix-build-2a746500fa76/output/dist-archive/bitcoin-2a746500fa76.tar.gz 11dac539f42ea8115867ac3693e925f86c5ee7fbda7374e045f8c01473fceafb41 guix-build-2a746500fa76/output/powerpc64-linux-gnu/SHA256SUMS.part 121b66865391c52292a0739a6fa69024bf850c6b41f0768d4e9db045aeffc4c5c8 guix-build-2a746500fa76/output/powerpc64-linux-gnu/bitcoin-2a746500fa76-powerpc64-linux-gnu-debug.tar.gz 131faa4b649573ead908d51a43a78298ae0cd2015e6054bd8790d19acbdde74a5d guix-build-2a746500fa76/output/powerpc64-linux-gnu/bitcoin-2a746500fa76-powerpc64-linux-gnu.tar.gz 140388e0e34f28e1f65c1a0315603a8664529996871e062aa53bc10657663353c0 guix-build-2a746500fa76/output/riscv64-linux-gnu/SHA256SUMS.part 150f09706414d5a15456e146819aaefd08783c8f0732a4c38bfe105bb9d50387d0 guix-build-2a746500fa76/output/riscv64-linux-gnu/bitcoin-2a746500fa76-riscv64-linux-gnu-debug.tar.gz 160b3ef8bb5ec28d888f3c37ccf1ae95312fb4645c4c55770c95073091abe7fde4 guix-build-2a746500fa76/output/riscv64-linux-gnu/bitcoin-2a746500fa76-riscv64-linux-gnu.tar.gz 17bcbb8f2a8e79874a6142e4eb605cf591a331f6a0448eac1801fe01996df22835 guix-build-2a746500fa76/output/x86_64-apple-darwin/SHA256SUMS.part 183d3abd9904e286562c22a7ab10bb992aa837b37554a4c151b7051bf2cdbaf483 guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-codesigning.tar.gz 1963181d3518d3a913ce25bd3e220e8385701a76891209431ed6b6efe4e419a9bc guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-unsigned.tar.gz 204ea713112c04b367d257676966cab796a2ff00208a393df2c8fc2f8a5af73f0a guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-unsigned.zip 21ace818bca8fc5041483b10ceeb9e1336fd26363781167decbc32c31cbb60fdd9 guix-build-2a746500fa76/output/x86_64-linux-gnu/SHA256SUMS.part 2276628eb51a70ed7a47f7f8da72b414654a94a952f27ea0722d0625c5952bd505 guix-build-2a746500fa76/output/x86_64-linux-gnu/bitcoin-2a746500fa76-x86_64-linux-gnu-debug.tar.gz 232e65bee126f47702020d52c8c8f23871a39e121e983b5e5d6d04f5d9103dde57 guix-build-2a746500fa76/output/x86_64-linux-gnu/bitcoin-2a746500fa76-x86_64-linux-gnu.tar.gz 247b228241e4f8c8740424f9663b0fdfc362619897fdeb4eac69eee49aff4ebd45 guix-build-2a746500fa76/output/x86_64-w64-mingw32/SHA256SUMS.part 25782fce8cfcaba112dc1633ee18a0d81a3a739186bbbd250303cb4393c4b5ba76 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-codesigning.tar.gz 267b1da47aa555de00bf1f0720ad7464c2d3ccc40ebc257aa27fc1c02407d74ebd guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-debug.zip 27ed26ec5df9f62a063c6239698008b71acf82f6e0d7e3ca0a023f7e7ff2094427 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-setup-unsigned.exe 28356fad06147ecc21007445ab5be5c72ea3125877f907e5ebc072686b610e2b35 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-unsigned.ziphebasto approvedhebasto commented at 3:55 pm on January 6, 2026: memberACK 2a746500fa769f83405349bcffa3f0971b92a2de. I have reviewed the code and it looks OK. The new GCC patch looks reasonable.DrahtBot requested review from maflcko on Jan 6, 2026in contrib/guix/manifest.scm:424 in ea29329eb7
420@@ -421,6 +421,7 @@ inspecting signatures in Mach-O binaries.") 421 ;; https://gcc.gnu.org/install/configure.html 422 (list "--enable-threads=posix", 423 "--enable-default-ssp=yes", 424+ "--enable-host-bind-now=yes",
theuni commented at 5:16 pm on January 12, 2026:For context:
Specify that the host executables should be linked with the option -Wl,-z,now, which means that the dynamic linker will resolve all symbols when the executables are started, and that in turn allows RELRO to mark the GOT read-only, resulting in better security.
in contrib/guix/manifest.scm:425 in 7735901ed2
421@@ -422,6 +422,7 @@ inspecting signatures in Mach-O binaries.") 422 (list "--enable-threads=posix", 423 "--enable-default-ssp=yes", 424 "--disable-gcov", 425+ "--disable-libgomp",
theuni commented at 5:37 pm on January 12, 2026:Are we sure that none of our dependencies use this anywhere? From a quick look, it doesn’t seem like gcc itself does. And libstdc++ does, but only for the experimental
parallel/*ts.I’d hate to see us quietly losing performance somewhere. But as far as I can tell, none of our deps are using it at the moment.
in contrib/guix/manifest.scm:126 in fb0e6edfe8
122@@ -123,7 +123,7 @@ desirable for building Bitcoin Core release binaries." 123 124 (define (gcc-libgcc-patches gcc) 125 (package-with-extra-patches gcc 126- (search-our-patches "gcc-remap-guix-store.patch"))) 127+ (search-our-patches "gcc-remap-guix-store.patch" "gcc-ssa-generation.patch")))
theuni approvedtheuni commented at 5:39 pm on January 12, 2026: memberutACK 2a746500fa769f83405349bcffa3f0971b92a2de
Left a comment about usage of openmp, though I don’t think it’s a problem.
Out of curiosity though, is it only disabled to safe on compilation time and size? Or does it avoid some problem?
fanquake referenced this in commit e0aa6f80d4 on Jan 13, 2026fanquake requested review from sedited on Jan 13, 2026sedited commented at 8:10 pm on January 13, 2026: contributorNice work @maflcko!
Guix build (aarch64):
040ad33c821da20854bd5c01127e0aeec4b387ca44c485655bfadc0c65a80e9ce guix-build-2a746500fa76/output/aarch64-linux-gnu/SHA256SUMS.part 1fe01b5d9c7619a9f8b01cccad0655c9dfe3703ea053ff9438c6941d6e8b13c78 guix-build-2a746500fa76/output/aarch64-linux-gnu/bitcoin-2a746500fa76-aarch64-linux-gnu-debug.tar.gz 28d12bb46c0e4a6b178c821817250cdd00e6b16fa2e77e129b9224973e9ad0445 guix-build-2a746500fa76/output/aarch64-linux-gnu/bitcoin-2a746500fa76-aarch64-linux-gnu.tar.gz 3600393616d9275202807b2f83a966f55f47d7313d9b9291587e3a4e9f23b6181 guix-build-2a746500fa76/output/arm-linux-gnueabihf/SHA256SUMS.part 49c75f854b3f3f92dd81081af789f32b60661fd0f5d1bd9973ccd7c3cff884196 guix-build-2a746500fa76/output/arm-linux-gnueabihf/bitcoin-2a746500fa76-arm-linux-gnueabihf-debug.tar.gz 508ac981dd5d5fb4dd943f0ea93a6281387a46b3c42c9b06a7ff0c99e39868f65 guix-build-2a746500fa76/output/arm-linux-gnueabihf/bitcoin-2a746500fa76-arm-linux-gnueabihf.tar.gz 62dbdffc0dcde53df241d8d67e1cce6a155425c3de55f08fc3483aa62181cfae9 guix-build-2a746500fa76/output/arm64-apple-darwin/SHA256SUMS.part 750e4268ff7039ca10c6b21b58322513c455a28477afeb61240a178ea23a72ab9 guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-codesigning.tar.gz 88137daa7a41a08279382fb63f2030802ddc538a32fe0cedae6db8e7897d53f29 guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-unsigned.tar.gz 92994d09b304cc0860b1b92553715933f3a54d53555cb60dcb6ebf57c2dc58a6e guix-build-2a746500fa76/output/arm64-apple-darwin/bitcoin-2a746500fa76-arm64-apple-darwin-unsigned.zip 102af7c1cb984b6eec476ff441e04fcc3f5a7d26f88a9e00f8773f08cd74e88a7b guix-build-2a746500fa76/output/dist-archive/bitcoin-2a746500fa76.tar.gz 11dac539f42ea8115867ac3693e925f86c5ee7fbda7374e045f8c01473fceafb41 guix-build-2a746500fa76/output/powerpc64-linux-gnu/SHA256SUMS.part 121b66865391c52292a0739a6fa69024bf850c6b41f0768d4e9db045aeffc4c5c8 guix-build-2a746500fa76/output/powerpc64-linux-gnu/bitcoin-2a746500fa76-powerpc64-linux-gnu-debug.tar.gz 131faa4b649573ead908d51a43a78298ae0cd2015e6054bd8790d19acbdde74a5d guix-build-2a746500fa76/output/powerpc64-linux-gnu/bitcoin-2a746500fa76-powerpc64-linux-gnu.tar.gz 140388e0e34f28e1f65c1a0315603a8664529996871e062aa53bc10657663353c0 guix-build-2a746500fa76/output/riscv64-linux-gnu/SHA256SUMS.part 150f09706414d5a15456e146819aaefd08783c8f0732a4c38bfe105bb9d50387d0 guix-build-2a746500fa76/output/riscv64-linux-gnu/bitcoin-2a746500fa76-riscv64-linux-gnu-debug.tar.gz 160b3ef8bb5ec28d888f3c37ccf1ae95312fb4645c4c55770c95073091abe7fde4 guix-build-2a746500fa76/output/riscv64-linux-gnu/bitcoin-2a746500fa76-riscv64-linux-gnu.tar.gz 17bcbb8f2a8e79874a6142e4eb605cf591a331f6a0448eac1801fe01996df22835 guix-build-2a746500fa76/output/x86_64-apple-darwin/SHA256SUMS.part 183d3abd9904e286562c22a7ab10bb992aa837b37554a4c151b7051bf2cdbaf483 guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-codesigning.tar.gz 1963181d3518d3a913ce25bd3e220e8385701a76891209431ed6b6efe4e419a9bc guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-unsigned.tar.gz 204ea713112c04b367d257676966cab796a2ff00208a393df2c8fc2f8a5af73f0a guix-build-2a746500fa76/output/x86_64-apple-darwin/bitcoin-2a746500fa76-x86_64-apple-darwin-unsigned.zip 21ace818bca8fc5041483b10ceeb9e1336fd26363781167decbc32c31cbb60fdd9 guix-build-2a746500fa76/output/x86_64-linux-gnu/SHA256SUMS.part 2276628eb51a70ed7a47f7f8da72b414654a94a952f27ea0722d0625c5952bd505 guix-build-2a746500fa76/output/x86_64-linux-gnu/bitcoin-2a746500fa76-x86_64-linux-gnu-debug.tar.gz 232e65bee126f47702020d52c8c8f23871a39e121e983b5e5d6d04f5d9103dde57 guix-build-2a746500fa76/output/x86_64-linux-gnu/bitcoin-2a746500fa76-x86_64-linux-gnu.tar.gz 247b228241e4f8c8740424f9663b0fdfc362619897fdeb4eac69eee49aff4ebd45 guix-build-2a746500fa76/output/x86_64-w64-mingw32/SHA256SUMS.part 25782fce8cfcaba112dc1633ee18a0d81a3a739186bbbd250303cb4393c4b5ba76 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-codesigning.tar.gz 267b1da47aa555de00bf1f0720ad7464c2d3ccc40ebc257aa27fc1c02407d74ebd guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-debug.zip 27ed26ec5df9f62a063c6239698008b71acf82f6e0d7e3ca0a023f7e7ff2094427 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-setup-unsigned.exe 28356fad06147ecc21007445ab5be5c72ea3125877f907e5ebc072686b610e2b35 guix-build-2a746500fa76/output/x86_64-w64-mingw32/bitcoin-2a746500fa76-win64-unsigned.zipsedited approvedsedited commented at 8:28 pm on January 13, 2026: contributorACK 2a746500fa769f83405349bcffa3f0971b92a2deglozow merged this on Jan 13, 2026glozow closed this on Jan 13, 2026
fanquake deleted the branch on Jan 14, 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-01-28 21:13 UTC
This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me