guix: use GCC 12.3.0 to build releases #27897

pull fanquake wants to merge 4 commits into bitcoin:master from fanquake:update_guix_post_25_branch_off changing 5 files +51 −21
  1. fanquake commented at 9:57 am on June 16, 2023: member

    Switch to using GCC 12.3.0 to build release binaries.

    Temporarily disables the powerpc64le-linux-gnu target due to non-determinism issues when building across aarch64 and x86_64. Trying to fix the non-determinism was going to require trying to selectively disable optimization flags, which is already not ideal (and didn’t fix all issues), and the migration to GCC 12 as our release compiler is now the blocker for multiple other (c++20 and similar) changes, so leaving this blocked on the powerpc64le binaries does not seem like a good tradeoff.

  2. DrahtBot commented at 9:57 am on June 16, 2023: contributor

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

    Code Coverage

    For detailed information about the code coverage, see the test coverage report.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK TheCharlatan
    Concept ACK hebasto, theuni

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

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #25972 (build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is set by fanquake)
    • #25573 ([POC] guix: produce a fully -static-pie bitcoind by fanquake)
    • #25391 (guix: Use LTO to build releases by fanquake)
    • #24123 (build: Pointer Authentication and Branch Target Identification for aarch64 Linux (Guix) by fanquake)
    • #21778 (build: LLD based macOS toolchain by fanquake)

    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.

  3. DrahtBot added the label Build system on Jun 16, 2023
  4. maflcko added the label DrahtBot Guix build requested on Jun 21, 2023
  5. fanquake force-pushed on Jun 21, 2023
  6. theuni commented at 5:24 pm on June 21, 2023: member

    Concept ACK.

    I’m having trouble finding where ppc64 became unsupported in guix though. There were lots of refactors and I’m guessing some wildcard change is maybe responsible? I’d like to understand why it was disabled just in case it was accidental. In that case, we’d want to upstream a fix I think?

  7. DrahtBot removed the label DrahtBot Guix build requested on Jun 21, 2023
  8. fanquake referenced this in commit 0c84a0e484 on Jun 22, 2023
  9. fanquake force-pushed on Jun 22, 2023
  10. maflcko commented at 9:01 am on June 23, 2023: member

    I think you forgot to bump the CI?

     0diff --git a/ci/test/00_setup_env_win64.sh b/ci/test/00_setup_env_win64.sh
     1index 3adfbf6e4..e0671e734 100755
     2--- a/ci/test/00_setup_env_win64.sh
     3+++ b/ci/test/00_setup_env_win64.sh
     4@@ -7,7 +7,7 @@
     5 export LC_ALL=C.UTF-8
     6 
     7 export CONTAINER_NAME=ci_win64
     8-export CI_IMAGE_NAME_TAG=ubuntu:22.04  # Check that Jammy can cross-compile to win64
     9+export CI_IMAGE_NAME_TAG=debian:bookworm  # Check that Bookworm (gcc 12, similar to guix) can cross-compile
    10 export HOST=x86_64-w64-mingw32
    11 export DPKG_ADD_ARCH="i386"
    12 export PACKAGES="python3 nsis g++-mingw-w64-x86-64-posix wine-binfmt wine64 wine32 file"
    

    and the same for arm? Similar to commit 0999999d1d2112e9fba473f6057c8096b4775852

  11. in contrib/guix/manifest.scm:83 in 648d9e7761 outdated
    115@@ -116,11 +116,9 @@ http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
    116       (build-system trivial-build-system)
    117       (arguments '(#:builder (begin (mkdir %output) #t)))
    118       (propagated-inputs
    119-       `(("binutils" ,xbinutils)
    120-         ("libc" ,xlibc)
    121-         ("libc:static" ,xlibc "static")
    122-         ("gcc" ,xgcc)
    123-         ("gcc-lib" ,xgcc "lib")))
    124+        (list xbinutils
    


    theuni commented at 2:09 pm on June 23, 2023:
    Could you explain these changes?
  12. in contrib/guix/libexec/build.sh:86 in 648d9e7761 outdated
    82@@ -83,34 +83,27 @@ case "$HOST" in
    83         # Determine output paths to use in CROSS_* environment variables
    84         CROSS_GLIBC="$(store_path "mingw-w64-x86_64-winpthreads")"
    85         CROSS_GCC="$(store_path "gcc-cross-${HOST}")"
    86-        CROSS_GCC_LIB_STORE="$(store_path "gcc-cross-${HOST}" lib)"
    


    theuni commented at 2:13 pm on June 23, 2023:
    Why are these no longer needed? Smarter gcc or guix changes?
  13. theuni commented at 2:15 pm on June 23, 2023: member

    Looking good to me.

    Mind adding a more verbose commit message for “guix: remove input labels”? I could use some help with the motivation for that one.

  14. DrahtBot added the label Needs rebase on Jun 27, 2023
  15. maflcko added the label DrahtBot Guix build requested on Jun 27, 2023
  16. hebasto commented at 9:41 am on June 27, 2023: member

    Switch to using GCC 12 to build release binaries.

    Concept ACK on this.

  17. hebasto commented at 12:19 pm on June 30, 2023: member

    macOS builds are failing because libtapi fails to configure against the newer GCC.

    FWIW, libtapi configuration step succeeds for the Guix master branch (94ac93042f09b4ba68b7b64ed1feeebd3dab1ea4). However, the further build step fails.

  18. fanquake force-pushed on Jun 30, 2023
  19. DrahtBot removed the label Needs rebase on Jun 30, 2023
  20. DrahtBot removed the label DrahtBot Guix build requested on Jul 1, 2023
  21. fanquake commented at 2:21 pm on July 3, 2023: member
    @theuni I will address your comments soon. Currently working on some additional changes so we can push the time-machine commit further along, and potentially take advantage of the now merged: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64100. I’ve opened one additional issue upstream: https://lists.gnu.org/archive/html/bug-guix/2023-07/msg00009.html.
  22. fanquake commented at 10:14 am on July 6, 2023: member
    Sent some additional patches upstream, to update packages we use: https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00159.html (mingw: Update to 11.0.0.) https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00138.html (nsis: Update to 3.09.) https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00104.html (python-asn1crypto: Update to 1.5.1.), https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00171.html (config: Update to 91f6a7f61…) https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00169.html (autoconf-archive: Update to 2023.02.20.).
  23. maflcko added the label DrahtBot Guix build requested on Jul 25, 2023
  24. maflcko removed the label DrahtBot Guix build requested on Jul 25, 2023
  25. fanquake renamed this:
    guix: use GCC 12.2.0 to build releases
    guix: use GCC 12.3.0 to build releases
    on Jul 27, 2023
  26. fanquake force-pushed on Jul 27, 2023
  27. fanquake commented at 10:14 am on July 27, 2023: member

    Pushed an update that incorporates a number of changes.

    • Updated to latest time-machine, which includes a number of updates for packages we’ve upstreamed.
    • Reworked our manifest to a state that I think is an improvement over what it used to be, and which avoids Guix build failures, i.e https://lists.gnu.org/archive/html/bug-guix/2023-07/msg00009.html.
    • WIP commits are now split per platform.

    Still todo:

    • macOS libtapi failure.
    • Re-enable / follow up with powerpc64-linux-gnu builds.
    • Other stuff.
  28. maflcko added the label DrahtBot Guix build requested on Jul 27, 2023
  29. DrahtBot removed the label DrahtBot Guix build requested on Jul 27, 2023
  30. fanquake force-pushed on Aug 2, 2023
  31. fanquake force-pushed on Aug 2, 2023
  32. fanquake commented at 12:26 pm on August 2, 2023: member

    Rebased on master. Updated the time-machine to current Guix master. Fixed macOS builds by retaining GCC 10 in it’s manifest. This seems like the most straight-forward way to proceed here, given this code is going to be removed soon in any case (and GCC isn’t used for the bitcoind builds).

    There is currently a non-determinism issue (x86_64 vs aarch64) with the powerpc64le-linux-gnu build.

  33. DrahtBot added the label DrahtBot Guix build requested on Aug 2, 2023
  34. DrahtBot removed the label DrahtBot Guix build requested on Aug 3, 2023
  35. fanquake commented at 3:04 pm on August 8, 2023: member

    Upstreamed a patch to (re-)add powerpc64-linux as a platform definition in Guix: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65151. Using a self-compiled Guix with this patch, fixes building our cross-compilation toolchain for powerpc64-linux-gnu, and means we’d just drop 26ee1fc5998cce6808f022fd1a4e1764115c2d57 from this PR.

    Also pushed a patch to update mingw-w64 to 11.0.1: https://lists.gnu.org/archive/html/guix-patches/2023-08/msg00299.html.

  36. fanquake force-pushed on Aug 14, 2023
  37. fanquake commented at 11:49 am on August 14, 2023: member
    https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65151 landed in Guix. So I’ve updated the time-machine to include that change, and removed the commit dropping supported for powerpc64-linux-gnu. The last TODO here is resolve the determinism issue with the powerpc64le-linux-gnu build.
  38. maflcko added the label DrahtBot Guix build requested on Aug 14, 2023
  39. DrahtBot removed the label DrahtBot Guix build requested on Aug 15, 2023
  40. fanquake force-pushed on Aug 17, 2023
  41. DrahtBot added the label CI failed on Aug 18, 2023
  42. fanquake referenced this in commit 00fe455019 on Aug 18, 2023
  43. fanquake referenced this in commit 51324c9517 on Aug 18, 2023
  44. fanquake referenced this in commit 4c3ebc7669 on Aug 18, 2023
  45. fanquake referenced this in commit e1a075eafe on Aug 22, 2023
  46. fanquake referenced this in commit 8372ab0ea3 on Aug 22, 2023
  47. DrahtBot added the label Needs rebase on Aug 22, 2023
  48. fanquake force-pushed on Aug 23, 2023
  49. DrahtBot removed the label CI failed on Aug 23, 2023
  50. DrahtBot removed the label Needs rebase on Aug 23, 2023
  51. fanquake force-pushed on Aug 23, 2023
  52. fanquake commented at 1:13 pm on August 23, 2023: member
    This is now based on #28324 and #28328. Please review those first.
  53. fanquake force-pushed on Aug 23, 2023
  54. fanquake referenced this in commit f3cc29fc5f on Aug 24, 2023
  55. DrahtBot added the label Needs rebase on Aug 24, 2023
  56. fanquake force-pushed on Aug 24, 2023
  57. DrahtBot removed the label Needs rebase on Aug 24, 2023
  58. fanquake referenced this in commit 03675b2ba3 on Aug 26, 2023
  59. fanquake force-pushed on Aug 26, 2023
  60. fanquake force-pushed on Aug 27, 2023
  61. fanquake marked this as ready for review on Aug 27, 2023
  62. fanquake commented at 2:04 pm on August 27, 2023: member
    Moved this out of draft now that there are no-longer any dependencies. Should still have 1 determinism issue to fixup, and not completely happy with the gcc-toolchain split, so might see if we can work around it another way. Otherwise, ready for review/feedback. Not sure if I want to include CI/docs changes here.
  63. maflcko commented at 2:18 pm on August 27, 2023: member

    Not sure if I want to include CI/docs changes here.

    Any reason not to, given that they should be trivial and all you need to do is to cherry-pick them?

    See #27897 (comment)

  64. TheCharlatan commented at 8:20 pm on August 27, 2023: contributor

    Guix builds:

     0find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     154e4c8a44c1ff9b43a3a83512f537f6f6ec61aa2f40915d864ef4b02d0f4e45c  guix-build-e15292367880/output/aarch64-linux-gnu/SHA256SUMS.part
     2e71e92c26eb5e7327dbdfdd51a4182e9ffdd8cae3f07a414b2119f0e8cd134c6  guix-build-e15292367880/output/aarch64-linux-gnu/bitcoin-e15292367880-aarch64-linux-gnu-debug.tar.gz
     3946abe083201148a14ad579ec10ded0990780fd75c22de1e6915b2c14f9d95f3  guix-build-e15292367880/output/aarch64-linux-gnu/bitcoin-e15292367880-aarch64-linux-gnu.tar.gz
     4896110801178db5b0234a0597c8b9a22d25544c48e9fbcee439e715976bbc3b7  guix-build-e15292367880/output/arm-linux-gnueabihf/SHA256SUMS.part
     5a0acadd9591bf707433b86d16013699eded3361088c06cd1ba7dd0eca7f834bb  guix-build-e15292367880/output/arm-linux-gnueabihf/bitcoin-e15292367880-arm-linux-gnueabihf-debug.tar.gz
     66a4254909c634228dd721b46da9bdd69901b5302968a36e9f79a8d7c8674ef64  guix-build-e15292367880/output/arm-linux-gnueabihf/bitcoin-e15292367880-arm-linux-gnueabihf.tar.gz
     7721bd7226bb187e6db0d4d84269396527146f0e9847b1ab3787968be69161ef8  guix-build-e15292367880/output/arm64-apple-darwin/SHA256SUMS.part
     81f68146160024f37879f293bd17ad36993a15cd848f3b849d59e386958efe150  guix-build-e15292367880/output/arm64-apple-darwin/bitcoin-e15292367880-arm64-apple-darwin-unsigned.dmg
     9effb7c344fe2fdd9e5b06221ee1d2d8fa1e16dca02aa13a9822ad47c52e802dd  guix-build-e15292367880/output/arm64-apple-darwin/bitcoin-e15292367880-arm64-apple-darwin-unsigned.tar.gz
    109a94889e115f5adba9c11cfc63dea45cb135337b68dd822c5dfb500fe21df71f  guix-build-e15292367880/output/arm64-apple-darwin/bitcoin-e15292367880-arm64-apple-darwin.tar.gz
    11ab3d002efcd1abb8a1bb0d773d3e4adfea5599e1570fab261fd15a5bf58563b3  guix-build-e15292367880/output/dist-archive/bitcoin-e15292367880.tar.gz
    129c7377d5ae4511c83ab08560c03611dc8041bbf15a501e4de9448336e419bf59  guix-build-e15292367880/output/powerpc64-linux-gnu/SHA256SUMS.part
    1343f3637bdf2c7d98c44b0bd823757c8b3b61d35bb701727e5c47644c6c00ff47  guix-build-e15292367880/output/powerpc64-linux-gnu/bitcoin-e15292367880-powerpc64-linux-gnu-debug.tar.gz
    1407b90bbaeb9975d069aceb63cb8a9e16823b16a29db50782685c93a7bfa65754  guix-build-e15292367880/output/powerpc64-linux-gnu/bitcoin-e15292367880-powerpc64-linux-gnu.tar.gz
    157e15282d481dfa24b570a5f19be39b57a50201d2b54de7a4ac75a4ec0aa10c4e  guix-build-e15292367880/output/powerpc64le-linux-gnu/SHA256SUMS.part
    1673d901ebc7303a8a52477192cd8d24ee6a76dd187ac8905e1d29b034b3aba9e8  guix-build-e15292367880/output/powerpc64le-linux-gnu/bitcoin-e15292367880-powerpc64le-linux-gnu-debug.tar.gz
    17523e0941a8d4fe6937df42833919bbdbce651449c89076b89cf65f135bab0fd5  guix-build-e15292367880/output/powerpc64le-linux-gnu/bitcoin-e15292367880-powerpc64le-linux-gnu.tar.gz
    18faaec7f129c18c4b058f17660969804f3a375cc4095d6c2f6a7a3e37c7c349fc  guix-build-e15292367880/output/riscv64-linux-gnu/SHA256SUMS.part
    19471f5cd43f9a7cd164a9a27340fe9d557cbcfa9be1d13a0f58d993a7a7b39179  guix-build-e15292367880/output/riscv64-linux-gnu/bitcoin-e15292367880-riscv64-linux-gnu-debug.tar.gz
    20caf14f95985d9a888e329c3df8ad113c7995bd44fb66860fe0598c70575d07d8  guix-build-e15292367880/output/riscv64-linux-gnu/bitcoin-e15292367880-riscv64-linux-gnu.tar.gz
    2157d227dc7e182a24c9eb61e310420b63fac2bd5299c8a336a9969aae7bf8d7bd  guix-build-e15292367880/output/x86_64-apple-darwin/SHA256SUMS.part
    22351c555f0c41082998bcc39ab9da1aca1c2fd81b362b5dc86426c1bc1cce35de  guix-build-e15292367880/output/x86_64-apple-darwin/bitcoin-e15292367880-x86_64-apple-darwin-unsigned.dmg
    232a90e041e8356e7d7bee4c17f0071b2662c73bf567064e4c6537ce17ab39d919  guix-build-e15292367880/output/x86_64-apple-darwin/bitcoin-e15292367880-x86_64-apple-darwin-unsigned.tar.gz
    24c6035a43ee6d8ad90854c668dea9f650c9ce0e7d293287789029cc57472a3183  guix-build-e15292367880/output/x86_64-apple-darwin/bitcoin-e15292367880-x86_64-apple-darwin.tar.gz
    25ff61eb886c74a3741ee29ddb896f9cf2a9e799b9715b59c55edb5806cb1ee6a5  guix-build-e15292367880/output/x86_64-linux-gnu/SHA256SUMS.part
    26b1a20e05ee5b76c11f32fafd753c133b4a5a0765b4a213e83aa7d70018797cdc  guix-build-e15292367880/output/x86_64-linux-gnu/bitcoin-e15292367880-x86_64-linux-gnu-debug.tar.gz
    27a4326824010aedad3117e42ce6527c74c0786d42f766203932eacc055e5d1cdc  guix-build-e15292367880/output/x86_64-linux-gnu/bitcoin-e15292367880-x86_64-linux-gnu.tar.gz
    28557fa87d58d7d01464e94322b3f37f90fcf9cb85523edad01f5ad4c6e41c66c0  guix-build-e15292367880/output/x86_64-w64-mingw32/SHA256SUMS.part
    29e65ec9cdd040ad24a5688b3f19451b78e5ac8769f47250d4de1531e2d0f87540  guix-build-e15292367880/output/x86_64-w64-mingw32/bitcoin-e15292367880-win64-debug.zip
    30acfedb291dfba08ec535ef2b584afbafe9f4704bacbabad1a33af101e5629091  guix-build-e15292367880/output/x86_64-w64-mingw32/bitcoin-e15292367880-win64-setup-unsigned.exe
    3174992c01cff7de4985791be3d9dceab5961d5808fa0de1671e1a29a4e1002ae0  guix-build-e15292367880/output/x86_64-w64-mingw32/bitcoin-e15292367880-win64-unsigned.tar.gz
    324ef39715b28398ffddc8c55694ea3ecc202a29cf91b91c4fe50579a12e6c983c  guix-build-e15292367880/output/x86_64-w64-mingw32/bitcoin-e15292367880-win64.zip
    

    Built this twice and it matched, so not sure if there really is a determinism issue here.

  65. fanquake commented at 8:24 pm on August 27, 2023: member

    Built this twice and it matched, so not sure if there really is a determinism issue here.

    Was that both on the same arch? Where I’d seen the issue was building on x86_64 vs aarch64.

  66. TheCharlatan commented at 8:31 pm on August 27, 2023: contributor

    Was that both on the same arch? Where I’d seen the issue was building on x86_64 vs aarch64.

    Yes, on the same arch.

  67. maflcko commented at 10:31 am on August 28, 2023: member

    Yes, on the same arch.

    I think it would be good to include the output of uname --machine when sharing guix builds.

  68. maflcko commented at 10:32 am on August 28, 2023: member

    uname --machine && find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum:

     0aarch64
     154e4c8a44c1ff9b43a3a83512f537f6f6ec61aa2f40915d864ef4b02d0f4e45c  guix-build-e15292367880/output/aarch64-linux-gnu/SHA256SUMS.part
     2e71e92c26eb5e7327dbdfdd51a4182e9ffdd8cae3f07a414b2119f0e8cd134c6  guix-build-e15292367880/output/aarch64-linux-gnu/bitcoin-e15292367880-aarch64-linux-gnu-debug.tar.gz
     3946abe083201148a14ad579ec10ded0990780fd75c22de1e6915b2c14f9d95f3  guix-build-e15292367880/output/aarch64-linux-gnu/bitcoin-e15292367880-aarch64-linux-gnu.tar.gz
     4896110801178db5b0234a0597c8b9a22d25544c48e9fbcee439e715976bbc3b7  guix-build-e15292367880/output/arm-linux-gnueabihf/SHA256SUMS.part
     5a0acadd9591bf707433b86d16013699eded3361088c06cd1ba7dd0eca7f834bb  guix-build-e15292367880/output/arm-linux-gnueabihf/bitcoin-e15292367880-arm-linux-gnueabihf-debug.tar.gz
     66a4254909c634228dd721b46da9bdd69901b5302968a36e9f79a8d7c8674ef64  guix-build-e15292367880/output/arm-linux-gnueabihf/bitcoin-e15292367880-arm-linux-gnueabihf.tar.gz
     7721bd7226bb187e6db0d4d84269396527146f0e9847b1ab3787968be69161ef8  guix-build-e15292367880/output/arm64-apple-darwin/SHA256SUMS.part
     81f68146160024f37879f293bd17ad36993a15cd848f3b849d59e386958efe150  guix-build-e15292367880/output/arm64-apple-darwin/bitcoin-e15292367880-arm64-apple-darwin-unsigned.dmg
     9effb7c344fe2fdd9e5b06221ee1d2d8fa1e16dca02aa13a9822ad47c52e802dd  guix-build-e15292367880/output/arm64-apple-darwin/bitcoin-e15292367880-arm64-apple-darwin-unsigned.tar.gz
    109a94889e115f5adba9c11cfc63dea45cb135337b68dd822c5dfb500fe21df71f  guix-build-e15292367880/output/arm64-apple-darwin/bitcoin-e15292367880-arm64-apple-darwin.tar.gz
    11ab3d002efcd1abb8a1bb0d773d3e4adfea5599e1570fab261fd15a5bf58563b3  guix-build-e15292367880/output/dist-archive/bitcoin-e15292367880.tar.gz
    129c7377d5ae4511c83ab08560c03611dc8041bbf15a501e4de9448336e419bf59  guix-build-e15292367880/output/powerpc64-linux-gnu/SHA256SUMS.part
    1343f3637bdf2c7d98c44b0bd823757c8b3b61d35bb701727e5c47644c6c00ff47  guix-build-e15292367880/output/powerpc64-linux-gnu/bitcoin-e15292367880-powerpc64-linux-gnu-debug.tar.gz
    1407b90bbaeb9975d069aceb63cb8a9e16823b16a29db50782685c93a7bfa65754  guix-build-e15292367880/output/powerpc64-linux-gnu/bitcoin-e15292367880-powerpc64-linux-gnu.tar.gz
    15eb6e38f0dbc4682a10fadc5a8132c44ed11757f08367bf6c20a1ab23ae9b33cd  guix-build-e15292367880/output/powerpc64le-linux-gnu/SHA256SUMS.part
    1605ddfd44cfb4e363983c40bb4f01ada130f33f6f6391faaecee4b51debbb6643  guix-build-e15292367880/output/powerpc64le-linux-gnu/bitcoin-e15292367880-powerpc64le-linux-gnu-debug.tar.gz
    173530ffa891d764098f3072689fc238369239a1276adae5a89e627596464ebbf3  guix-build-e15292367880/output/powerpc64le-linux-gnu/bitcoin-e15292367880-powerpc64le-linux-gnu.tar.gz
    18faaec7f129c18c4b058f17660969804f3a375cc4095d6c2f6a7a3e37c7c349fc  guix-build-e15292367880/output/riscv64-linux-gnu/SHA256SUMS.part
    19471f5cd43f9a7cd164a9a27340fe9d557cbcfa9be1d13a0f58d993a7a7b39179  guix-build-e15292367880/output/riscv64-linux-gnu/bitcoin-e15292367880-riscv64-linux-gnu-debug.tar.gz
    20caf14f95985d9a888e329c3df8ad113c7995bd44fb66860fe0598c70575d07d8  guix-build-e15292367880/output/riscv64-linux-gnu/bitcoin-e15292367880-riscv64-linux-gnu.tar.gz
    2157d227dc7e182a24c9eb61e310420b63fac2bd5299c8a336a9969aae7bf8d7bd  guix-build-e15292367880/output/x86_64-apple-darwin/SHA256SUMS.part
    22351c555f0c41082998bcc39ab9da1aca1c2fd81b362b5dc86426c1bc1cce35de  guix-build-e15292367880/output/x86_64-apple-darwin/bitcoin-e15292367880-x86_64-apple-darwin-unsigned.dmg
    232a90e041e8356e7d7bee4c17f0071b2662c73bf567064e4c6537ce17ab39d919  guix-build-e15292367880/output/x86_64-apple-darwin/bitcoin-e15292367880-x86_64-apple-darwin-unsigned.tar.gz
    24c6035a43ee6d8ad90854c668dea9f650c9ce0e7d293287789029cc57472a3183  guix-build-e15292367880/output/x86_64-apple-darwin/bitcoin-e15292367880-x86_64-apple-darwin.tar.gz
    25ff61eb886c74a3741ee29ddb896f9cf2a9e799b9715b59c55edb5806cb1ee6a5  guix-build-e15292367880/output/x86_64-linux-gnu/SHA256SUMS.part
    26b1a20e05ee5b76c11f32fafd753c133b4a5a0765b4a213e83aa7d70018797cdc  guix-build-e15292367880/output/x86_64-linux-gnu/bitcoin-e15292367880-x86_64-linux-gnu-debug.tar.gz
    27a4326824010aedad3117e42ce6527c74c0786d42f766203932eacc055e5d1cdc  guix-build-e15292367880/output/x86_64-linux-gnu/bitcoin-e15292367880-x86_64-linux-gnu.tar.gz
    
  69. maflcko commented at 10:33 am on August 28, 2023: member
    So yeah, powerpc64le has a mismatch.
  70. fanquake commented at 10:35 am on August 28, 2023: member

    Any reason not to, given that they should be trivial and all you need to do is to cherry-pick them?

    Can you point to the complete set of commits I need to cherry pick. I didn’t want to include non guix/builds changes here because that just makes getting review for the entire set of changes harder. Basically the inverse reasoning of #28210 (comment).

  71. maflcko commented at 10:46 am on August 28, 2023: member

    I think we should keep the cross tasks (windows, macos, and one linux) in sync with the guix config, to catch guix gcc compile errors in CI before merge or before doing a guix build.

    For macos-cross, no changes are needed, because it doesn’t use the system compiler. However, for the other tasks, the system should be picked, so that it matches the guix compiler, no?

    Thus, my recommended changes are:

     0diff --git a/ci/test/00_setup_env_arm.sh b/ci/test/00_setup_env_arm.sh
     1index 65d37f01d9..c80036164f 100755
     2--- a/ci/test/00_setup_env_arm.sh
     3+++ b/ci/test/00_setup_env_arm.sh
     4@@ -1,6 +1,6 @@
     5 #!/usr/bin/env bash
     6 #
     7-# Copyright (c) 2019-2021 The Bitcoin Core developers
     8+# Copyright (c) 2019-present The Bitcoin Core developers
     9 # Distributed under the MIT software license, see the accompanying
    10 # file COPYING or http://www.opensource.org/licenses/mit-license.php.
    11 
    12@@ -10,7 +10,7 @@ export HOST=arm-linux-gnueabihf
    13 export DPKG_ADD_ARCH="armhf"
    14 export PACKAGES="python3-zmq g++-arm-linux-gnueabihf busybox libc6:armhf libstdc++6:armhf libfontconfig1:armhf libxcb1:armhf"
    15 export CONTAINER_NAME=ci_arm_linux
    16-export CI_IMAGE_NAME_TAG="docker.io/arm64v8/debian:bookworm"
    17+export CI_IMAGE_NAME_TAG="docker.io/arm64v8/debian:bookworm"  # Check that https://packages.debian.org/bookworm/g++-arm-linux-gnueabihf (version 12.2, similar to guix) can cross-compile
    18 export USE_BUSY_BOX=true
    19 export RUN_UNIT_TESTS=true
    20 export RUN_FUNCTIONAL_TESTS=false
    21diff --git a/ci/test/00_setup_env_win64.sh b/ci/test/00_setup_env_win64.sh
    22index ebd4487c52..4cd845c065 100755
    23--- a/ci/test/00_setup_env_win64.sh
    24+++ b/ci/test/00_setup_env_win64.sh
    25@@ -7,7 +7,7 @@
    26 export LC_ALL=C.UTF-8
    27 
    28 export CONTAINER_NAME=ci_win64
    29-export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:22.04"  # Check that Jammy can cross-compile to win64
    30+export CI_IMAGE_NAME_TAG="docker.io/amd64/debian:bookworm"  # Check that https://packages.debian.org/bookworm/g++-mingw-w64-x86-64-posix (version 12.2, similar to guix) can cross-compile
    31 export HOST=x86_64-w64-mingw32
    32 export DPKG_ADD_ARCH="i386"
    33 export PACKAGES="nsis g++-mingw-w64-x86-64-posix wine-binfmt wine64 wine32 file"
    
  72. fanquake commented at 11:20 am on August 28, 2023: member

    The difference I’m seeing in the aarch64 vs x86_64 builds is re-ordering of lines in debug output (which then shows up in the bins via the .dbg checksum). i.e:

     0--- a.txt
     1+++ b.txt
     2@@ -1,9 +1,9 @@
     3 
     4-aarch64/powerpc64le-linux-gnu/bitcoin-e15292367880/bin/bitcoind:     file format elf64-powerpcle
     5+x86_64/powerpc64le-linux-gnu/bitcoin-e15292367880/bin/bitcoind:     file format elf64-powerpcle
     6 
     7 
     8 Disassembly of section .init:
     9 
    10 0000000000060000 <.init>:
    11    60000:	18 00 41 f8 	std     r2,24(r1)
    12    60004:	ff ff 82 3d 	addis   r12,r2,-1
    13@@ -250613,16 +250613,16 @@
    14   155710:	00 00 29 2c 	cmpdi   r9,0
    15   155714:	20 00 40 3b 	li      r26,32
    16   155718:	00 00 20 3b 	li      r25,0
    17   15571c:	00 00 c0 3b 	li      r30,0
    18   155720:	88 01 82 40 	bne     1558a8 <__glink_PLTresolve-0xb889d0>
    19   155724:	8c 03 00 10 	vspltisw v0,0
    20   155728:	40 f8 24 7c 	cmpld   r4,r31
    21-  15572c:	14 c2 3e 7d 	add     r9,r30,r24
    22-  155730:	10 00 40 39 	li      r10,16
    23+  15572c:	10 00 40 39 	li      r10,16
    24+  155730:	14 c2 3e 7d 	add     r9,r30,r24
    25   155734:	56 02 00 f0 	xxswapd vs0,vs32
    26   155738:	98 c7 1e 7c 	stxvd2x vs0,r30,r24
    27   15573c:	98 57 09 7c 	stxvd2x vs0,r9,r10
    28   155740:	6c 00 82 41 	beq     1557ac <__glink_PLTresolve-0xb88acc>
    29   155744:	50 20 3f 7d 	subf    r9,r31,r4
    30   155748:	78 f3 c7 7f 	mr      r7,r30
    31   15574c:	e0 ff 29 39 	addi    r9,r9,-32
    32@@ -707486,30 +707486,30 @@
    33   3139b4:	e0 00 41 f9 	std     r10,224(r1)
    34   3139b8:	d0 00 41 e9 	ld      r10,208(r1)
    35   3139bc:	20 00 09 39 	addi    r8,r9,32
    36   3139c0:	f0 01 c1 90 	stw     r6,496(r1)
    37   3139c4:	50 50 ff 7c 	subf    r7,r31,r10
    38   3139c8:	40 38 28 7c 	cmpld   r8,r7
    39   3139cc:	34 0f 81 41 	bgt     314900 <__glink_PLTresolve-0x9c9978>
    40-  3139d0:	14 4a 7f 7c 	add     r3,r31,r9
    41-  3139d4:	10 00 80 38 	li      r4,16
    42+  3139d0:	10 00 80 38 	li      r4,16
    43+  3139d4:	14 4a 7f 7c 	add     r3,r31,r9
    44   3139d8:	98 4e 9f 7d 	lxvd2x  vs12,r31,r9
    45   3139dc:	54 ff a0 38 	li      r5,-172
    46   3139e0:	98 26 03 7c 	lxvd2x  vs0,r3,r4
    47   3139e4:	b0 02 61 38 	addi    r3,r1,688
    48   3139e8:	44 ff 80 38 	li      r4,-188
    49   3139ec:	98 27 83 7d 	stxvd2x vs12,r3,r4
    50   3139f0:	98 2f 03 7c 	stxvd2x vs0,r3,r5
    51   3139f4:	14 09 82 41 	beq     314308 <__glink_PLTresolve-0x9c9f70>
    52   3139f8:	40 00 29 39 	addi    r9,r9,64
    53   3139fc:	e0 00 01 f9 	std     r8,224(r1)
    54   313a00:	40 48 27 7c 	cmpld   r7,r9
    55   313a04:	18 09 80 41 	blt     31431c <__glink_PLTresolve-0x9c9f5c>
    56-  313a08:	14 42 7f 7c 	add     r3,r31,r8
    57-  313a0c:	10 00 80 38 	li      r4,16
    58+  313a08:	10 00 80 38 	li      r4,16
    59+  313a0c:	14 42 7f 7c 	add     r3,r31,r8
    60   313a10:	98 46 9f 7d 	lxvd2x  vs12,r31,r8
    61   313a14:	64 ff a0 38 	li      r5,-156
    62   313a18:	74 ff 00 39 	li      r8,-140
    63   313a1c:	98 26 03 7c 	lxvd2x  vs0,r3,r4
    64   313a20:	b0 02 81 38 	addi    r4,r1,688
    65   313a24:	98 2f 84 7d 	stxvd2x vs12,r4,r5
    66   313a28:	98 47 04 7c 	stxvd2x vs0,r4,r8
    67@@ -718192,17 +718192,17 @@
    68   31e0fc:	00 00 00 60 	nop
    69   31e100:	00 00 00 60 	nop
    70   31e104:	88 10 62 e8 	ld      r3,4232(r2)
    71   31e108:	d8 ff e0 38 	li      r7,-40
    72   31e10c:	70 00 a1 38 	addi    r5,r1,112
    73   31e110:	58 00 01 e9 	ld      r8,88(r1)
    74   31e114:	00 00 00 60 	nop
    75-  31e118:	60 00 5d 39 	addi    r10,r29,96
    76+  31e118:	18 00 20 39 	li      r9,24
    77   31e11c:	98 3e 05 7c 	lxvd2x  vs0,r5,r7
    78-  31e120:	18 00 20 39 	li      r9,24
    79+  31e120:	60 00 5d 39 	addi    r10,r29,96
    80   31e124:	00 00 23 2c 	cmpdi   r3,0
    81   31e128:	98 10 82 e8 	ld      r4,4248(r2)
    82   31e12c:	98 10 02 f9 	std     r8,4248(r2)
    83   31e130:	98 4f 0a 7c 	stxvd2x vs0,r10,r9
    84   31e134:	10 00 82 41 	beq     31e144 <__glink_PLTresolve-0x9c0134>
    85   31e138:	50 20 83 7c 	subf    r4,r3,r4
    86   31e13c:	cd 84 88 48 	bl      ba6608 <__glink_PLTresolve-0x137c70>
    

    Note that cli, util & tx are not effected:

    0shasum -a 256 aarch64/powerpc64le-linux-gnu/debug/bin/*
    1f7152143ece28007be25c819e6ac5a0c7e90583b45880cba2600feb3319626ec  aarch64/powerpc64le-linux-gnu/debug/bin/bitcoin-cli.dbg
    2080c9a21119429290ca1a8563774570d08fef08ffca5c5fdd1c14063e36621fa  aarch64/powerpc64le-linux-gnu/debug/bin/bitcoin-qt.dbg
    38df9da66eede077a372a02c7a37a1101aa9979dde265702ca6bbb7b1e4fbef28  aarch64/powerpc64le-linux-gnu/debug/bin/bitcoin-tx.dbg
    4a5f7655cdf2fad867688a8ec21c3c298d3ff0af1f9e88fb31ae75ecbbf7f652a  aarch64/powerpc64le-linux-gnu/debug/bin/bitcoin-util.dbg
    5f96e1d7c855f51a5c6ba2e93aada74eaee7f5e595e681960ca90abb74ce4220d  aarch64/powerpc64le-linux-gnu/debug/bin/bitcoin-wallet.dbg
    66b8409ef8bd3ebde1a6593e62eaa072963e79b6990b5a6d68a265fa33fb0f300  aarch64/powerpc64le-linux-gnu/debug/bin/bitcoind.dbg
    7177db9550f33c3e26f90231ffc14fd6f8233222dade1eda628a9540b06f04ced  aarch64/powerpc64le-linux-gnu/debug/bin/test_bitcoin.dbg
    
    0shasum -a 256 x86_64/powerpc64le-linux-gnu/debug/bin/*
    1f7152143ece28007be25c819e6ac5a0c7e90583b45880cba2600feb3319626ec  x86_64/powerpc64le-linux-gnu/debug/bin/bitcoin-cli.dbg
    2d4b6008306ddf085e02f62550ee5d165e1757383c5fcedc50c3782f885d5309e  x86_64/powerpc64le-linux-gnu/debug/bin/bitcoin-qt.dbg
    38df9da66eede077a372a02c7a37a1101aa9979dde265702ca6bbb7b1e4fbef28  x86_64/powerpc64le-linux-gnu/debug/bin/bitcoin-tx.dbg
    4a5f7655cdf2fad867688a8ec21c3c298d3ff0af1f9e88fb31ae75ecbbf7f652a  x86_64/powerpc64le-linux-gnu/debug/bin/bitcoin-util.dbg
    59936f37848db6ef859ccaa1c06946f025eb8ad7870e09f5bfd3a8ed998297ac3  x86_64/powerpc64le-linux-gnu/debug/bin/bitcoin-wallet.dbg
    62745aa4ce2679d4c05638b644c4bef2134be1c97cb12e1a444834920bd738b18  x86_64/powerpc64le-linux-gnu/debug/bin/bitcoind.dbg
    7ba9dedb9c4396ce2e14b4df99ab77fe5317e5211f6899c12963db6f801db3be1  x86_64/powerpc64le-linux-gnu/debug/bin/test_bitcoin.dbg
    
  73. fanquake commented at 3:55 pm on August 28, 2023: member

    Note that there is also non-determinism with GCC-11, i.e this branch https://github.com/fanquake/bitcoin/commits/test_11:

    0# aarch64
    1bf9f56b82664bb4a55a26383223606dec5b3c2da9808cd2508f21e946281f301  guix-build-f32e838e392a/output/dist-archive/bitcoin-f32e838e392a.tar.gz
    29e64cd455f7959e268158ee1fa820ffc249d64abae72667bb89087b3493db450  guix-build-f32e838e392a/output/powerpc64le-linux-gnu/SHA256SUMS.part
    324989c424b67c44f0cd3c8431afbcc90d0e028f0e773644bdd4de7bbb5dfb188  guix-build-f32e838e392a/output/powerpc64le-linux-gnu/bitcoin-f32e838e392a-powerpc64le-linux-gnu-debug.tar.gz
    44e34473f86abf709e6b21a5f7256230c0417ffbdcf24772c428620cfc1dec1d9  guix-build-f32e838e392a/output/powerpc64le-linux-gnu/bitcoin-f32e838e392a-powerpc64le-linux-gnu.tar.gz
    
    0# x86_64
    1bf9f56b82664bb4a55a26383223606dec5b3c2da9808cd2508f21e946281f301  guix-build-f32e838e392a/output/dist-archive/bitcoin-f32e838e392a.tar.gz
    26f81d82496142d466368b5f218dac17d6d684b55e41ef7ab66a3a0ea6acc8747  guix-build-f32e838e392a/output/powerpc64le-linux-gnu/SHA256SUMS.part
    3e871d58ae93ef65bd742511244224f99c9de3903295015a46f2a211134dcbc66  guix-build-f32e838e392a/output/powerpc64le-linux-gnu/bitcoin-f32e838e392a-powerpc64le-linux-gnu-debug.tar.gz
    4fa6171a209cd3dbffa8f2e3fe2eea5201fc5b873a72433b387ed4b982ca8a367  guix-build-f32e838e392a/output/powerpc64le-linux-gnu/bitcoin-f32e838e392a-powerpc64le-linux-gnu.tar.gz
    
  74. fanquake force-pushed on Aug 29, 2023
  75. fanquake commented at 8:44 am on August 29, 2023: member

    Thus, my recommended changes are:

    Implented & rebased.

  76. fanquake commented at 10:34 am on August 29, 2023: member

    This can be isolated to void std::vector<uint256, std::allocator<uint256> >::_M_realloc_insert<>(__gnu_cxx::__normal_iterator<uint256*, std::vector<uint256, std::allocator<uint256> > >) in src/wallet/libbitcoin_wallet_a-walletdb.cpp.

    If you dump out the contents of _ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_ from that object file i.e

    0objdump -d --section=.text._ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_ aarch64/distsrc-e15292367880-powerpc64le-linux-gnu/src/wallet/libbitcoin_wallet_a-walletdb.o > a.txt
    1objdump -d --section=.text._ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_ x86_64/distsrc-e15292367880-powerpc64le-linux-gnu/src/wallet/libbitcoin_wallet_a-walletdb.o > b.txt
    

    you should get:

     0-aarch64/distsrc-e15292367880-powerpc64le-linux-gnu/src/wallet/libbitcoin_wallet_a-walletdb.o:     file format elf64-powerpcle
     1+x86_64/distsrc-e15292367880-powerpc64le-linux-gnu/src/wallet/libbitcoin_wallet_a-walletdb.o:     file format elf64-powerpcle
     2 
     3 
     4 Disassembly of section .text._ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_:
     5 
     6 0000000000000000 <_ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_>:
     7    0:	00 00 4c 3c 	addis   r2,r12,0
     8    4:	00 00 42 38 	addi    r2,r2,0
     9@@ -40,16 +40,16 @@
    10   80:	00 00 29 2c 	cmpdi   r9,0
    11   84:	20 00 40 3b 	li      r26,32
    12   88:	00 00 20 3b 	li      r25,0
    13   8c:	00 00 c0 3b 	li      r30,0
    14   90:	88 01 82 40 	bne     218 <_ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_+0x218>
    15   94:	8c 03 00 10 	vspltisw v0,0
    16   98:	40 f8 24 7c 	cmpld   r4,r31
    17-  9c:	14 c2 3e 7d 	add     r9,r30,r24
    18-  a0:	10 00 40 39 	li      r10,16
    19+  9c:	10 00 40 39 	li      r10,16
    20+  a0:	14 c2 3e 7d 	add     r9,r30,r24
    21   a4:	56 02 00 f0 	xxswapd vs0,vs32
    22   a8:	98 c7 1e 7c 	stxvd2x vs0,r30,r24
    23   ac:	98 57 09 7c 	stxvd2x vs0,r9,r10
    24   b0:	6c 00 82 41 	beq     11c <_ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_+0x11c>
    25   b4:	50 20 3f 7d 	subf    r9,r31,r4
    26   b8:	78 f3 c7 7f 	mr      r7,r30
    27   bc:	e0 ff 29 39 	addi    r9,r9,-32
    
  77. DrahtBot added the label CI failed on Aug 29, 2023
  78. theuni commented at 1:00 pm on August 29, 2023: member

    FWIW, c++filt output:

    0 $ echo "_ZNSt6vectorI7uint256SaIS0_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_" | c++filt
    

    void std::vector<uint256, std::allocator<uint256> >::_M_realloc_insert<>(__gnu_cxx::__normal_iterator<uint256*, std::vector<uint256, std::allocator<uint256> > >)

    I believe this is the function in question. Though it’s not clear to me if the function has anything to do with the determinism problem, or if the compiler just happens to run into some pattern here.

  79. fanquake commented at 1:09 pm on August 29, 2023: member

    I believe this is the function in question.

    Yea, I was looking at the same thing.

    Note this can be further reduced down by inspecting the verbose (-Wa,-alh,-L) assembler output (see https://github.com/fanquake/bitcoin/commit/7b36a3c9d63d7e12c325d01ce010fdfcba112064):

     0--- c.txt
     1+++ d.txt
     2@@ -1,13 +1,13 @@
     3   31:./uint256.h   **** 
     4  204978              	 .loc 19 31 29 view .LVU42877
     5- 204979 009c 14C23E7D 	 add 9,30,24
     6- 204980              	.LVL10372:
     7+ 204979 009c 10004039 	 li 10,16
     8+ 204980 00a0 14C23E7D 	 add 9,30,24
     9+ 204981              	.LVL10372:
    10   31:./uint256.h   **** 
    11- 204981              	 .loc 19 31 29 view .LVU42878
    12- 204982 00a0 10004039 	 li 10,16
    13+ 204982              	 .loc 19 31 29 view .LVU42878
    14  204983 00a4 560200F0 	 xxpermdi 0,32,32,2
    15  204984 00a8 98C71E7C 	 stxvd2x 0,30,24
    16  204985 00ac 9857097C 	 stxvd2x 0,9,10
    17  204986              	.LVL10373:
    18   31:./uint256.h   **** 
    19  204987              	 .loc 19 31 29 view .LVU42879
    

    .loc 19 31 29 view .LVU42877

    is file 19 line 31 colum 29 which is

    https://github.com/bitcoin/bitcoin/blob/ab42b2ebdbf61225e636e4c00068fd29b2790d41/src/uint256.h#L31

  80. fanquake commented at 11:21 am on August 30, 2023: member

    I assume the Win64 native CI failure is sporadic, but I guess the win64 cross-compile failure will need actual changes:

    0test/system_tests.cpp(59): error: in "system_tests/run_command": check e.code().value() == expected_error has failed [2 != 6]
    1test/system_tests.cpp(26): Leaving test case "run_command"; testing time: 495559us
    2test/system_tests.cpp(15): Leaving test suite "system_tests"; testing time: 537416us
    

    Not sure why we’ve got unit tests that seem to be dependant on the host OS/library versions (seems to be Wine here) on the system? cc @hebasto.

  81. maflcko commented at 11:44 am on August 30, 2023: member
    The CI task name says no boost::process, so I think the fix would be to remove boost::process from that task or fix the task name along with the test issue (in a separate pull), no?
  82. maflcko commented at 11:52 am on August 30, 2023: member

    Can you try with:

     0diff --git a/src/test/system_tests.cpp b/src/test/system_tests.cpp
     1index 740f461548..260f7f6645 100644
     2--- a/src/test/system_tests.cpp
     3+++ b/src/test/system_tests.cpp
     4@@ -49,11 +49,7 @@ BOOST_AUTO_TEST_CASE(run_command)
     5     }
     6     {
     7         // An invalid command is handled by Boost
     8-#ifdef WIN32
     9-        const int expected_error{wine_runtime ? 6 : 2};
    10-#else
    11         const int expected_error{2};
    12-#endif
    13         BOOST_CHECK_EXCEPTION(RunCommandParseJSON("invalid_command"), boost::process::process_error, [&](const boost::process::process_error& e) {
    14             BOOST_CHECK(std::string(e.what()).find("RunCommandParseJSON error:") == std::string::npos);
    15             BOOST_CHECK_EQUAL(e.code().value(), expected_error);
    
  83. fanquake force-pushed on Aug 30, 2023
  84. fanquake commented at 12:32 pm on August 30, 2023: member

    The CI task name says no boost::process,

    Yea I guess that is wrong, as the config explicitly enables --enable-external-signer. Pushed up your suggested diff as part of the Win CI commit for now (can be split out too).

  85. DrahtBot removed the label CI failed on Aug 30, 2023
  86. fanquake referenced this in commit 505ea30b47 on Aug 30, 2023
  87. fanquake force-pushed on Aug 30, 2023
  88. hebasto commented at 2:51 pm on September 1, 2023: member

    FWIW, using the -O1 optimization level fixes cross-platform reproducibility.

    Perhaps, it is feasible to use an approach similar to #25643?

  89. theuni commented at 3:23 pm on September 1, 2023: member

    FWIW, using the -O1 optimization level fixes cross-platform reproducibility.

    Perhaps, it is feasible to use an approach similar to #25643?

    Agree that would work, but hopefully as a last resort.

    The ideal fix would be to track down the actual gcc issue. A possible route to doing so: Since we know the non-determinism is introduced by one or more optimizations, one-by-one, append the individual -O2 sub-options on top of -O1 until the culprit is found.

    For ex, the gcc docs say that -O2 is the same as -O1 plus:

     0-falign-functions  -falign-jumps
     1-falign-labels  -falign-loops
     2-fcaller-saves
     3-fcode-hoisting
     4-fcrossjumping
     5-fcse-follow-jumps  -fcse-skip-blocks
     6-fdelete-null-pointer-checks
     7-fdevirtualize  -fdevirtualize-speculatively
     8-fexpensive-optimizations
     9-ffinite-loops
    10-fgcse  -fgcse-lm
    11-fhoist-adjacent-loads
    12-finline-functions
    13-finline-small-functions
    14-findirect-inlining
    15-fipa-bit-cp  -fipa-cp  -fipa-icf
    16-fipa-ra  -fipa-sra  -fipa-vrp
    17-fisolate-erroneous-paths-dereference
    18-flra-remat
    19-foptimize-sibling-calls
    20-foptimize-strlen
    21-fpartial-inlining
    22-fpeephole2
    23-freorder-blocks-algorithm=stc
    24-freorder-blocks-and-partition  -freorder-functions
    25-frerun-cse-after-loop
    26-fschedule-insns  -fschedule-insns2
    27-fsched-interblock  -fsched-spec
    28-fstore-merging
    29-fstrict-aliasing
    30-fthread-jumps
    31-ftree-builtin-call-dce
    32-ftree-loop-vectorize
    33-ftree-pre
    34-ftree-slp-vectorize
    35-ftree-switch-conversion  -ftree-tail-merge
    36-ftree-vrp
    37-fvect-cost-model=very-cheap
    

    So.. start with -O1 -falign-functions, -O1 -falign-jumps, -O1 -fcaller-saves etc. until the non-determinism is introduced. Hopefully it’s a single flag.

    From there, presumably we’d know which class or pass of optimization is the problem. We could use that to narrow down a bisection, since I believe we also know which version of gcc introduced the problem.

  90. maflcko commented at 3:33 pm on September 1, 2023: member
    What is the easiest way in guix to bisect gcc? Can I modify the gcc package description locally without having guix check any signatures on it when putting it in the time machine?
  91. fanquake force-pushed on Sep 6, 2023
  92. fanquake marked this as a draft on Sep 6, 2023
  93. fanquake commented at 3:46 pm on September 6, 2023: member

    What is the easiest way in guix to bisect gcc?

    I will post a guide for doing this.

    In the mean time, turning this back into a draft as it’s now based off #28422, which if done, means we don’t have to split our native toolchains between GCC 12 and GCC 10, which is much cleaner.

  94. fanquake referenced this in commit b097a689ed on Sep 7, 2023
  95. fanquake force-pushed on Sep 7, 2023
  96. fanquake marked this as ready for review on Sep 7, 2023
  97. fanquake commented at 2:32 pm on September 7, 2023: member
    Rebased, undrafted, updated PR description. The changes here are now smaller.
  98. Frank-GER referenced this in commit d367953adb on Sep 8, 2023
  99. Frank-GER referenced this in commit 74569677f6 on Sep 8, 2023
  100. Frank-GER referenced this in commit b3b8f40a4f on Sep 8, 2023
  101. Frank-GER referenced this in commit a5c099f5a4 on Sep 8, 2023
  102. fanquake commented at 1:03 pm on September 11, 2023: member
    From what I can see, the pair of optimisation flags causing the issue is -fgcse & -fschedule-insns. When both are passed we get non-determinism, independently (at -O1) they are deterministic.
  103. in src/test/system_tests.cpp:60 in ae2cd3fe25 outdated
    48@@ -49,11 +49,7 @@ BOOST_AUTO_TEST_CASE(run_command)
    49     }
    50     {
    51         // An invalid command is handled by Boost
    52-#ifdef WIN32
    53-        const int expected_error{wine_runtime ? 6 : 2};
    54-#else
    55         const int expected_error{2};
    56-#endif
    


    hebasto commented at 12:52 pm on September 13, 2023:

    9a04ca1cd0921c80f4836a07f2a2198fbd43cf05

    The error reporting has been changed in Wine 8.0 (Debian Bookworm, Ubuntu Lunar):

    • in Wine 6.x and 7.x, it was:
      • message: “CreateProcess failed: No such device or address”
      • code: 6
    • in Wine 8.0:
      • message: “CreateProcess failed: File not found”
      • code: 2

    I’m not sure about the exact commit, though.

    I agree with these changes and don’t want to introduce more testing code to handle different Wine versions.

    However, I’m suggesting to document that Wine 8+ is required to run Windows unit tests.


    fanquake commented at 12:55 pm on September 13, 2023:
    Do you want to split commit this into a separate PR, and add the documentation?

    maflcko commented at 12:58 pm on September 13, 2023:
    I think documentation was missing previously either way on the required wine version, so this seems unrelated?

    fanquake commented at 1:01 pm on September 13, 2023:
    I guess this will also means anyone that wants to run the windows unit tests will need to be running Lunar or later, or install Wine themselves.

    hebasto commented at 1:02 pm on September 13, 2023:
    Or skip/ignore this particular test.
  104. fanquake commented at 3:09 pm on September 13, 2023: member

    Tracking down what looks like the final issue, in test_bitcoin.dbg. Building with this branch, https://github.com/fanquake/bitcoin/tree/gcc_12_debug, which excludes the two problematic options, I see a diff in the debug symbols. Note that the diff isn’t as big as the difference in addresses makes it seem:

     0diff --git a/c.txt b/c.txt
     1index 85e71d2..45615e3 100644
     2--- a/c.txt
     3+++ b/c.txt
     4@@ -11,30 +11,28 @@
     5   [0x0019028c]  Special opcode 32: advance Address by 8 to 0x1e7d34 and Line by -1 to 72
     6   [0x0019028d]  Set column to 27
     7   [0x0019028f]  Copy (view 1)
     8-  [0x00190290]  Set column to 28
     9+  [0x00190290]  Set column to 23
    10   [0x00190292]  Set is_stmt to 0
    11   [0x00190293]  Special opcode 6: advance Address by 0 to 0x1e7d34 and Line by 1 to 73 (view 2)
    12-  [0x00190294]  Set column to 23
    13-  [0x00190296]  Special opcode 19: advance Address by 4 to 0x1e7d38 and Line by 0 to 73
    14-  [0x00190297]  Set column to 9
    15-  [0x00190299]  Set is_stmt to 1
    16-  [0x0019029a]  Special opcode 60: advance Address by 16 to 0x1e7d48 and Line by -1 to 72
    17-  [0x0019029b]  Set column to 27
    18-  [0x0019029d]  Copy (view 1)
    19-  [0x0019029e]  Set is_stmt to 0
    20-  [0x0019029f]  Special opcode 47: advance Address by 12 to 0x1e7d54 and Line by 0 to 72
    21-  [0x001902a0]  Set column to 37
    22-  [0x001902a2]  Advance Line by 97 to 169
    23-  [0x001902a5]  Copy (view 1)
    24-  [0x001902a6]  Set column to 33
    25-  [0x001902a8]  Special opcode 19: advance Address by 4 to 0x1e7d58 and Line by 0 to 169
    26-  [0x001902a9]  Set column to 37
    27-  [0x001902ab]  Special opcode 19: advance Address by 4 to 0x1e7d5c and Line by 0 to 169
    28-  [0x001902ac]  Set column to 26
    29-  [0x001902ae]  Special opcode 19: advance Address by 4 to 0x1e7d60 and Line by 0 to 169
    30-  [0x001902af]  Set is_stmt to 1
    31-  [0x001902b0]  Special opcode 47: advance Address by 12 to 0x1e7d6c and Line by 0 to 169
    32-  [0x001902b1]  Set column to 37
    33-  [0x001902b3]  Set is_stmt to 0
    34-  [0x001902b4]  Copy (view 1)
    35-  [0x001902b5]  Set column to 33
    36+  [0x00190294]  Set column to 9
    37+  [0x00190296]  Set is_stmt to 1
    38+  [0x00190297]  Special opcode 74: advance Address by 20 to 0x1e7d48 and Line by -1 to 72
    39+  [0x00190298]  Set column to 27
    40+  [0x0019029a]  Copy (view 1)
    41+  [0x0019029b]  Set is_stmt to 0
    42+  [0x0019029c]  Special opcode 47: advance Address by 12 to 0x1e7d54 and Line by 0 to 72
    43+  [0x0019029d]  Set column to 37
    44+  [0x0019029f]  Advance Line by 97 to 169
    45+  [0x001902a2]  Copy (view 1)
    46+  [0x001902a3]  Set column to 33
    47+  [0x001902a5]  Special opcode 19: advance Address by 4 to 0x1e7d58 and Line by 0 to 169
    48+  [0x001902a6]  Set column to 37
    49+  [0x001902a8]  Special opcode 19: advance Address by 4 to 0x1e7d5c and Line by 0 to 169
    50+  [0x001902a9]  Set column to 26
    51+  [0x001902ab]  Special opcode 19: advance Address by 4 to 0x1e7d60 and Line by 0 to 169
    52+  [0x001902ac]  Set is_stmt to 1
    53+  [0x001902ad]  Special opcode 47: advance Address by 12 to 0x1e7d6c and Line by 0 to 169
    54+  [0x001902ae]  Set column to 37
    55+  [0x001902b0]  Set is_stmt to 0
    56+  [0x001902b1]  Copy (view 1)
    57+  [0x001902b2]  Set column to 33
    
  105. fanquake force-pushed on Sep 20, 2023
  106. fanquake force-pushed on Oct 2, 2023
  107. Retropex referenced this in commit 3916135aee on Oct 4, 2023
  108. Retropex referenced this in commit 5f62ed90f6 on Oct 4, 2023
  109. PastaPastaPasta referenced this in commit 7675bd4fa1 on Oct 11, 2023
  110. fanquake added this to the milestone 27.0 on Oct 23, 2023
  111. PastaPastaPasta referenced this in commit d8cf7655ba on Oct 27, 2023
  112. fanquake force-pushed on Nov 9, 2023
  113. fanquake force-pushed on Nov 13, 2023
  114. fanquake force-pushed on Nov 13, 2023
  115. fanquake force-pushed on Nov 22, 2023
  116. fanquake force-pushed on Nov 29, 2023
  117. maflcko commented at 7:05 pm on November 29, 2023: member

    What is the easiest way in guix to bisect gcc?

    I will post a guide for doing this.

    :eye: :eyes: :eyeglasses:

  118. PastaPastaPasta referenced this in commit 65141f80ae on Dec 6, 2023
  119. maflcko commented at 6:36 pm on December 14, 2023: member

    Note that there is also non-determinism with GCC-11, i.e this branch https://github.com/fanquake/bitcoin/commits/test_11:

    Did you also try gcc-13.2, which may be an alternative at this point?

  120. fanquake commented at 7:04 pm on December 14, 2023: member
    Yes, iirc. I’ll get back to this now that it’s becoming more of a blocker. I’ve been sick of continually dealing with/having to track down problems in gui and similar non-critical code, when it comes to these kinds of changes (i.e LLVM bump also blocked on the GUI).
  121. fanquake force-pushed on Dec 18, 2023
  122. fanquake force-pushed on Jan 2, 2024
  123. hebasto commented at 10:21 am on January 3, 2024: member
     0$ env HOSTS=x86_64-apple-darwin ./contrib/guix/guix-build 
     1...
     2make: Entering directory '/bitcoin/depends'
     3Extracting native_libtapi...
     4/bitcoin/depends/sources/eb33a59f2e30ff9724dc1ea8bee8b5229b0557c9.tar.gz: OK
     5Preprocessing native_libtapi...
     6patching file build.sh
     7Configuring native_libtapi...
     8Building native_libtapi...
     9-- The C compiler identification is Clang 17.0.6
    10-- The CXX compiler identification is Clang 17.0.6
    11-- The ASM compiler identification is Clang with GNU-like command-line
    12-- Found assembler: /home/hebasto/.guix-profile/bin/clang
    13-- Detecting C compiler ABI info
    14-- Detecting C compiler ABI info - done
    15-- Check for working C compiler: /home/hebasto/.guix-profile/bin/clang - skipped
    16-- Detecting C compile features
    17-- Detecting C compile features - done
    18-- Detecting CXX compiler ABI info
    19-- Detecting CXX compiler ABI info - done
    20-- Check for working CXX compiler: /home/hebasto/.guix-profile/bin/clang++ - skipped
    21-- Detecting CXX compile features
    22-- Detecting CXX compile features - done
    23-- clang project is enabled
    24-- clang-tools-extra project is disabled
    25-- compiler-rt project is disabled
    26-- debuginfo-tests project is disabled
    27-- libc project is disabled
    28-- libclc project is disabled
    29-- libcxx project is disabled
    30-- libcxxabi project is disabled
    31-- libunwind project is disabled
    32-- lld project is disabled
    33-- lldb project is disabled
    34-- mlir project is disabled
    35-- openmp project is disabled
    36-- parallel-libs project is disabled
    37-- polly project is disabled
    38-- pstl project is disabled
    39-- tapi project is enabled
    40-- flang project is disabled
    41-- Performing Test LLVM_LIBSTDCXX_MIN
    42-- Performing Test LLVM_LIBSTDCXX_MIN - Success
    43-- Performing Test LLVM_LIBSTDCXX_SOFT_ERROR
    44-- Performing Test LLVM_LIBSTDCXX_SOFT_ERROR - Failed
    45CMake Error at cmake/modules/CheckCompilerVersion.cmake:119 (message):
    46  libstdc++ version should be at least 5.1 because LLVM will soon use new C++
    47  features which your toolchain version doesn't support.  You can temporarily
    48  opt out using LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN, but very soon your
    49  toolchain won't be supported.
    50Call Stack (most recent call first):
    51  cmake/config-ix.cmake:14 (include)
    52  CMakeLists.txt:691 (include)
    53
    54
    55-- Configuring incomplete, errors occurred!
    56See also "/bitcoin/depends/work/build/x86_64-apple-darwin/native_libtapi/eb33a59f2e30ff9724dc1ea8bee8b5229b0557c9-860be6e1562/build/CMakeFiles/CMakeOutput.log".
    57See also "/bitcoin/depends/work/build/x86_64-apple-darwin/native_libtapi/eb33a59f2e30ff9724dc1ea8bee8b5229b0557c9-860be6e1562/build/CMakeFiles/CMakeError.log".
    58make: *** [funcs.mk:291: /bitcoin/depends/work/build/x86_64-apple-darwin/native_libtapi/eb33a59f2e30ff9724dc1ea8bee8b5229b0557c9-860be6e1562/./.stamp_built] Error 1
    59make: Leaving directory '/bitcoin/depends'
    
  124. fanquake commented at 3:28 pm on January 5, 2024: member
    Drafting this until (may rebase on top of) #21778, which fixes the macOS build failures by just deleting the offending code.
  125. fanquake marked this as a draft on Jan 5, 2024
  126. DrahtBot added the label CI failed on Jan 13, 2024
  127. fanquake removed this from the milestone 27.0 on Feb 1, 2024
  128. fanquake force-pushed on Feb 22, 2024
  129. DrahtBot removed the label CI failed on Feb 22, 2024
  130. fanquake force-pushed on Mar 7, 2024
  131. maflcko added the label DrahtBot Guix build requested on Mar 12, 2024
  132. ci: use Debian Bookworm (GCC 12) for win64 job
    Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
    0da6451c58
  133. ci: use Debian Bookworm (GCC 12) for ARM ci job
    Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
    ce54330cf6
  134. guix: use GCC 12.3.0
    Retain native GCC 10 toolchain for macOS, to prevent compile failures in
    native tools (this will be removed entirely when we tansition to LLD).
    Update the vmov-alignment patch, for changes in GCC 12.
    001412a4d2
  135. guix: temporarily disable powerpcle taget
    There non-determinism issues when compiling for this target across
    x86_64 and aarch64.
    10d56530e0
  136. fanquake force-pushed on Mar 12, 2024
  137. fanquake marked this as ready for review on Mar 12, 2024
  138. fanquake commented at 6:10 pm on March 12, 2024: member

    Guix Build (aarch64):

     06dcb27a8e89def2e9ab3de7a79b9923795353bbf5dcb29832820a8105f701f07  guix-build-10d56530e097/output/aarch64-linux-gnu/SHA256SUMS.part
     1bd8242c2ce7cf1e5f5b6ae76a6d5d79061919b86cb80860fcd0a38f9e65a5ea6  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu-debug.tar.gz
     2d2f4525d5a65e76ec2f62697be2e5b2f4d52d584ab63ab708471f674977b8fea  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu.tar.gz
     38e922ca2ec17e3987ad92cc378fac1accad5fd1b1c9e2ecb68bdabf1b905e12b  guix-build-10d56530e097/output/arm-linux-gnueabihf/SHA256SUMS.part
     406ef9e7bc84f470509f97c4dfb7a23a3cde770eaff78f6b93faa94afc40454c2  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf-debug.tar.gz
     5d2c2486a35b9935d68d71ef3cdcc4f58522887910a165868e441085337ba0639  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf.tar.gz
     6721f036529908cd406e3e1e0f6a2451b34e77c4cadb68e0fb8c711fad4853cd5  guix-build-10d56530e097/output/arm64-apple-darwin/SHA256SUMS.part
     7a777361b7bcc9fd3353a91e185d48508079ef5ec88494970d12eeaf9e8106c22  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.tar.gz
     88de7ba4927de09308e02b9c05b84d8cf75bf8e46e87a8330d72682e873e8fdfd  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.zip
     96bd05be85a6e32c1a99949400bc390a84c7b7f79cf40facf4e1db7a99e354dba  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin.tar.gz
    10a18b6aeabfb3b201b5b68305968505e3d10d50e1fd1f8e142da97d8878664c8a  guix-build-10d56530e097/output/dist-archive/bitcoin-10d56530e097.tar.gz
    11cf0f43b1d9ac91d7993c7ee63316e938935ee6998d7c00409a7a1f8e71b59249  guix-build-10d56530e097/output/powerpc64-linux-gnu/SHA256SUMS.part
    1280beedf085d1a1bb15ced0a411f9d74668e7bbafce6f1701ebbcb1895634023b  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu-debug.tar.gz
    13d12eac8a15649fd343773738fb3893bba4a90ddce4a5ccd397ff24bd36dea7a8  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu.tar.gz
    140ab804612d75915d84a89221167ce411483a5cbcba40b46663de0391fbe427a2  guix-build-10d56530e097/output/riscv64-linux-gnu/SHA256SUMS.part
    157a980cfdf17b4f0ad51dd6fcc59a923e2d825352dc06dc51c8021ff43ceb3d32  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu-debug.tar.gz
    1606aad03534b5986d1a091f0f04289c38197041342b5a398205feb7b5fa94a880  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu.tar.gz
    17c82ca396f11e6383f5d4a9c616fd070d642702841c477001f2577a0830c96a82  guix-build-10d56530e097/output/x86_64-apple-darwin/SHA256SUMS.part
    18835cc72a7582e8d049efeca7d074aa4ce73699dc7c9f0545a4b69cf8f72a3b01  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.tar.gz
    1937af26f6761bd0a731c355b66d6f763f179142f6c6661c81e45bca8e5458fc50  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.zip
    20b239b17dd90875baf50cb4426115a5b26f3c64fc817124ec157183c58bccaef1  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin.tar.gz
    21b6a114afbce9f51332feeda77e51360fce8c9e090dbdd51f5d7953f3b53024e9  guix-build-10d56530e097/output/x86_64-linux-gnu/SHA256SUMS.part
    2299a2d0f622a9b9e99e5c334ec97f0dfb60ae2d1e159a84ae3d764aff7f05c973  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu-debug.tar.gz
    23eac4a6d47595f28dd92fa770ad361c649123fc01c2337f5160f82937ee3c1ced  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu.tar.gz
    249ce4d66d6d89efcb90d4cff27e0430267930484244a420254b0842eb2255c63d  guix-build-10d56530e097/output/x86_64-w64-mingw32/SHA256SUMS.part
    25c3c0420b702965b2a4b7f9d5528f75ac067f3717df33c26d79d2c6a43e62271d  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-debug.zip
    26402938d010fed8140953425e77d6c0adf432bc0b6c3bc41b202fc3ab57dc3e78  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-setup-unsigned.exe
    2798c9a31988b46554a696d30576590b7999a8957020bf8942caf0e499094794f7  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-unsigned.tar.gz
    2837360c7fd4fae718c581a76e820bf495ea4470d6938c02c7ff3561523bcca3ca  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64.zip
    
  139. theuni commented at 6:16 pm on March 12, 2024: member

    Re- Concept ACK.

    Removing ppcle for now is less than ideal, but it’s not worth having as a blocker for basically all pending toolchain/c++20 work.

    Only suggestion is: Are there any upstream non-determinism bug reports we can link to? If not, IMO we should file them so the knowledge exists somewhere other than in your head :)

  140. fanquake commented at 6:20 pm on March 12, 2024: member

    (copying what I added to the PR description)

    Temporarily disables the powerpc64le-linux-gnu target due to non-determinism issues when building across aarch64 and x86_64. Trying to fix the non-determinism was going to require trying to selectively disable optimization flags, which is already not ideal (and didn’t fix all issues), and the migration to GCC 12 as our release compiler is now the blocker for multiple other (c++20 and similar) changes, so leaving this blocked on the powerpc64le binaries does not seem like a good tradeoff.

    Are there any upstream non-determinism bug reports we can link to?

    Not yet. We still need to minify a reproducer, which is also non-trivial. I will work on doing that, but also don’t want it as a blocker to moving forward here.

  141. fanquake commented at 7:15 pm on March 12, 2024: member

    Guix build (x86_64) (matches aarch64):

     06dcb27a8e89def2e9ab3de7a79b9923795353bbf5dcb29832820a8105f701f07  guix-build-10d56530e097/output/aarch64-linux-gnu/SHA256SUMS.part
     1bd8242c2ce7cf1e5f5b6ae76a6d5d79061919b86cb80860fcd0a38f9e65a5ea6  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu-debug.tar.gz
     2d2f4525d5a65e76ec2f62697be2e5b2f4d52d584ab63ab708471f674977b8fea  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu.tar.gz
     38e922ca2ec17e3987ad92cc378fac1accad5fd1b1c9e2ecb68bdabf1b905e12b  guix-build-10d56530e097/output/arm-linux-gnueabihf/SHA256SUMS.part
     406ef9e7bc84f470509f97c4dfb7a23a3cde770eaff78f6b93faa94afc40454c2  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf-debug.tar.gz
     5d2c2486a35b9935d68d71ef3cdcc4f58522887910a165868e441085337ba0639  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf.tar.gz
     6721f036529908cd406e3e1e0f6a2451b34e77c4cadb68e0fb8c711fad4853cd5  guix-build-10d56530e097/output/arm64-apple-darwin/SHA256SUMS.part
     7a777361b7bcc9fd3353a91e185d48508079ef5ec88494970d12eeaf9e8106c22  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.tar.gz
     88de7ba4927de09308e02b9c05b84d8cf75bf8e46e87a8330d72682e873e8fdfd  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.zip
     96bd05be85a6e32c1a99949400bc390a84c7b7f79cf40facf4e1db7a99e354dba  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin.tar.gz
    10a18b6aeabfb3b201b5b68305968505e3d10d50e1fd1f8e142da97d8878664c8a  guix-build-10d56530e097/output/dist-archive/bitcoin-10d56530e097.tar.gz
    11cf0f43b1d9ac91d7993c7ee63316e938935ee6998d7c00409a7a1f8e71b59249  guix-build-10d56530e097/output/powerpc64-linux-gnu/SHA256SUMS.part
    1280beedf085d1a1bb15ced0a411f9d74668e7bbafce6f1701ebbcb1895634023b  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu-debug.tar.gz
    13d12eac8a15649fd343773738fb3893bba4a90ddce4a5ccd397ff24bd36dea7a8  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu.tar.gz
    140ab804612d75915d84a89221167ce411483a5cbcba40b46663de0391fbe427a2  guix-build-10d56530e097/output/riscv64-linux-gnu/SHA256SUMS.part
    157a980cfdf17b4f0ad51dd6fcc59a923e2d825352dc06dc51c8021ff43ceb3d32  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu-debug.tar.gz
    1606aad03534b5986d1a091f0f04289c38197041342b5a398205feb7b5fa94a880  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu.tar.gz
    17c82ca396f11e6383f5d4a9c616fd070d642702841c477001f2577a0830c96a82  guix-build-10d56530e097/output/x86_64-apple-darwin/SHA256SUMS.part
    18835cc72a7582e8d049efeca7d074aa4ce73699dc7c9f0545a4b69cf8f72a3b01  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.tar.gz
    1937af26f6761bd0a731c355b66d6f763f179142f6c6661c81e45bca8e5458fc50  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.zip
    20b239b17dd90875baf50cb4426115a5b26f3c64fc817124ec157183c58bccaef1  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin.tar.gz
    21b6a114afbce9f51332feeda77e51360fce8c9e090dbdd51f5d7953f3b53024e9  guix-build-10d56530e097/output/x86_64-linux-gnu/SHA256SUMS.part
    2299a2d0f622a9b9e99e5c334ec97f0dfb60ae2d1e159a84ae3d764aff7f05c973  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu-debug.tar.gz
    23eac4a6d47595f28dd92fa770ad361c649123fc01c2337f5160f82937ee3c1ced  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu.tar.gz
    249ce4d66d6d89efcb90d4cff27e0430267930484244a420254b0842eb2255c63d  guix-build-10d56530e097/output/x86_64-w64-mingw32/SHA256SUMS.part
    25c3c0420b702965b2a4b7f9d5528f75ac067f3717df33c26d79d2c6a43e62271d  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-debug.zip
    26402938d010fed8140953425e77d6c0adf432bc0b6c3bc41b202fc3ab57dc3e78  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-setup-unsigned.exe
    2798c9a31988b46554a696d30576590b7999a8957020bf8942caf0e499094794f7  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-unsigned.tar.gz
    2837360c7fd4fae718c581a76e820bf495ea4470d6938c02c7ff3561523bcca3ca  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64.zip
    
  142. tobtoht commented at 10:46 pm on March 12, 2024: none
     0$ uname --machine && find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1x86_64
     26dcb27a8e89def2e9ab3de7a79b9923795353bbf5dcb29832820a8105f701f07  guix-build-10d56530e097/output/aarch64-linux-gnu/SHA256SUMS.part
     3bd8242c2ce7cf1e5f5b6ae76a6d5d79061919b86cb80860fcd0a38f9e65a5ea6  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu-debug.tar.gz
     4d2f4525d5a65e76ec2f62697be2e5b2f4d52d584ab63ab708471f674977b8fea  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu.tar.gz
     58e922ca2ec17e3987ad92cc378fac1accad5fd1b1c9e2ecb68bdabf1b905e12b  guix-build-10d56530e097/output/arm-linux-gnueabihf/SHA256SUMS.part
     606ef9e7bc84f470509f97c4dfb7a23a3cde770eaff78f6b93faa94afc40454c2  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf-debug.tar.gz
     7d2c2486a35b9935d68d71ef3cdcc4f58522887910a165868e441085337ba0639  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf.tar.gz
     8721f036529908cd406e3e1e0f6a2451b34e77c4cadb68e0fb8c711fad4853cd5  guix-build-10d56530e097/output/arm64-apple-darwin/SHA256SUMS.part
     9a777361b7bcc9fd3353a91e185d48508079ef5ec88494970d12eeaf9e8106c22  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.tar.gz
    108de7ba4927de09308e02b9c05b84d8cf75bf8e46e87a8330d72682e873e8fdfd  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.zip
    116bd05be85a6e32c1a99949400bc390a84c7b7f79cf40facf4e1db7a99e354dba  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin.tar.gz
    12a18b6aeabfb3b201b5b68305968505e3d10d50e1fd1f8e142da97d8878664c8a  guix-build-10d56530e097/output/dist-archive/bitcoin-10d56530e097.tar.gz
    13cf0f43b1d9ac91d7993c7ee63316e938935ee6998d7c00409a7a1f8e71b59249  guix-build-10d56530e097/output/powerpc64-linux-gnu/SHA256SUMS.part
    1480beedf085d1a1bb15ced0a411f9d74668e7bbafce6f1701ebbcb1895634023b  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu-debug.tar.gz
    15d12eac8a15649fd343773738fb3893bba4a90ddce4a5ccd397ff24bd36dea7a8  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu.tar.gz
    160ab804612d75915d84a89221167ce411483a5cbcba40b46663de0391fbe427a2  guix-build-10d56530e097/output/riscv64-linux-gnu/SHA256SUMS.part
    177a980cfdf17b4f0ad51dd6fcc59a923e2d825352dc06dc51c8021ff43ceb3d32  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu-debug.tar.gz
    1806aad03534b5986d1a091f0f04289c38197041342b5a398205feb7b5fa94a880  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu.tar.gz
    19c82ca396f11e6383f5d4a9c616fd070d642702841c477001f2577a0830c96a82  guix-build-10d56530e097/output/x86_64-apple-darwin/SHA256SUMS.part
    20835cc72a7582e8d049efeca7d074aa4ce73699dc7c9f0545a4b69cf8f72a3b01  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.tar.gz
    2137af26f6761bd0a731c355b66d6f763f179142f6c6661c81e45bca8e5458fc50  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.zip
    22b239b17dd90875baf50cb4426115a5b26f3c64fc817124ec157183c58bccaef1  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin.tar.gz
    23b6a114afbce9f51332feeda77e51360fce8c9e090dbdd51f5d7953f3b53024e9  guix-build-10d56530e097/output/x86_64-linux-gnu/SHA256SUMS.part
    2499a2d0f622a9b9e99e5c334ec97f0dfb60ae2d1e159a84ae3d764aff7f05c973  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu-debug.tar.gz
    25eac4a6d47595f28dd92fa770ad361c649123fc01c2337f5160f82937ee3c1ced  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu.tar.gz
    269ce4d66d6d89efcb90d4cff27e0430267930484244a420254b0842eb2255c63d  guix-build-10d56530e097/output/x86_64-w64-mingw32/SHA256SUMS.part
    27c3c0420b702965b2a4b7f9d5528f75ac067f3717df33c26d79d2c6a43e62271d  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-debug.zip
    28402938d010fed8140953425e77d6c0adf432bc0b6c3bc41b202fc3ab57dc3e78  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-setup-unsigned.exe
    2998c9a31988b46554a696d30576590b7999a8957020bf8942caf0e499094794f7  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-unsigned.tar.gz
    3037360c7fd4fae718c581a76e820bf495ea4470d6938c02c7ff3561523bcca3ca  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64.zip
    
  143. DrahtBot commented at 3:07 am on March 13, 2024: contributor

    Guix builds (on x86_64)

    File commit a945f09fa6e0f94cc424da9e06516f9cfa192545(master) commit 7f0706f295ca13ff7b16fe34c9839a4658c731f7(master and this pull)
    SHA256SUMS.part 53f80f146bc8ab69... 4b9e6171e4cc4638...
    *-aarch64-linux-gnu-debug.tar.gz dbe0d1d1eb074739... 7f9937e310de4441...
    *-aarch64-linux-gnu.tar.gz 955c88325ca1cb74... 1151ca899061b256...
    *-arm-linux-gnueabihf-debug.tar.gz e5e17199f24f1d0e... dca93994ef6b5a8c...
    *-arm-linux-gnueabihf.tar.gz a6b2defa7bdfb7d2... 6b6828d740c9d536...
    *-arm64-apple-darwin-unsigned.tar.gz 030aa291751e430d... 72dd9625fb3a8f9b...
    *-arm64-apple-darwin-unsigned.zip 44a5227e210c924e... a5915e582e9842ac...
    *-arm64-apple-darwin.tar.gz a7a8145bd773616e... 9f97d1819f0193ad...
    *-powerpc64-linux-gnu-debug.tar.gz 450b38fbde9bea0e... 42b8c0dca86cfda8...
    *-powerpc64-linux-gnu.tar.gz 340f198fc527ced9... 24556f4ac1e34466...
    *-powerpc64le-linux-gnu-debug.tar.gz f3e4e82504b7a2fb... 4cc4bb05e79b05ac...
    *-powerpc64le-linux-gnu.tar.gz a7e058daa9c4e72c... 7ebb9b70f1c67dc7...
    *-riscv64-linux-gnu-debug.tar.gz 9feec25b9a221ace... 06b510662200a19b...
    *-riscv64-linux-gnu.tar.gz 7a006a21a5802228... ae628ccc41ea9209...
    *-x86_64-apple-darwin-unsigned.tar.gz 4dd8fa5f1767c90f... 58be111bf9e3ca58...
    *-x86_64-apple-darwin-unsigned.zip 256a5e877dbfc918... 97fdeedd4d560777...
    *-x86_64-apple-darwin.tar.gz 2fc9a5821c776103... f1f92ce4f26ac5c8...
    *-x86_64-linux-gnu-debug.tar.gz ece840d2037f8278... afd13c1438bdcbe7...
    *-x86_64-linux-gnu.tar.gz 29cf3509e6c8b97f... 25a1eea577a19fd8...
    *.tar.gz 220e536d0844a859... 974e6423b8e877db...
    guix_build.log ed6d8eac5cc222b1... fdcf75de1b6a2fc9...
    guix_build.log.diff 1e28349d0be9291a...
  144. DrahtBot removed the label DrahtBot Guix build requested on Mar 13, 2024
  145. TheCharlatan commented at 12:27 pm on March 13, 2024: contributor
    Concept ACK
  146. TheCharlatan commented at 4:57 pm on March 13, 2024: contributor

    Guix builds (x86 & aarch64)

     06dcb27a8e89def2e9ab3de7a79b9923795353bbf5dcb29832820a8105f701f07  guix-build-10d56530e097/output/aarch64-linux-gnu/SHA256SUMS.part
     1bd8242c2ce7cf1e5f5b6ae76a6d5d79061919b86cb80860fcd0a38f9e65a5ea6  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu-debug.tar.gz
     2d2f4525d5a65e76ec2f62697be2e5b2f4d52d584ab63ab708471f674977b8fea  guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu.tar.gz
     38e922ca2ec17e3987ad92cc378fac1accad5fd1b1c9e2ecb68bdabf1b905e12b  guix-build-10d56530e097/output/arm-linux-gnueabihf/SHA256SUMS.part
     406ef9e7bc84f470509f97c4dfb7a23a3cde770eaff78f6b93faa94afc40454c2  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf-debug.tar.gz
     5d2c2486a35b9935d68d71ef3cdcc4f58522887910a165868e441085337ba0639  guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf.tar.gz
     6721f036529908cd406e3e1e0f6a2451b34e77c4cadb68e0fb8c711fad4853cd5  guix-build-10d56530e097/output/arm64-apple-darwin/SHA256SUMS.part
     7a777361b7bcc9fd3353a91e185d48508079ef5ec88494970d12eeaf9e8106c22  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.tar.gz
     88de7ba4927de09308e02b9c05b84d8cf75bf8e46e87a8330d72682e873e8fdfd  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.zip
     96bd05be85a6e32c1a99949400bc390a84c7b7f79cf40facf4e1db7a99e354dba  guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin.tar.gz
    10a18b6aeabfb3b201b5b68305968505e3d10d50e1fd1f8e142da97d8878664c8a  guix-build-10d56530e097/output/dist-archive/bitcoin-10d56530e097.tar.gz
    11cf0f43b1d9ac91d7993c7ee63316e938935ee6998d7c00409a7a1f8e71b59249  guix-build-10d56530e097/output/powerpc64-linux-gnu/SHA256SUMS.part
    1280beedf085d1a1bb15ced0a411f9d74668e7bbafce6f1701ebbcb1895634023b  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu-debug.tar.gz
    13d12eac8a15649fd343773738fb3893bba4a90ddce4a5ccd397ff24bd36dea7a8  guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu.tar.gz
    140ab804612d75915d84a89221167ce411483a5cbcba40b46663de0391fbe427a2  guix-build-10d56530e097/output/riscv64-linux-gnu/SHA256SUMS.part
    157a980cfdf17b4f0ad51dd6fcc59a923e2d825352dc06dc51c8021ff43ceb3d32  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu-debug.tar.gz
    1606aad03534b5986d1a091f0f04289c38197041342b5a398205feb7b5fa94a880  guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu.tar.gz
    17c82ca396f11e6383f5d4a9c616fd070d642702841c477001f2577a0830c96a82  guix-build-10d56530e097/output/x86_64-apple-darwin/SHA256SUMS.part
    18835cc72a7582e8d049efeca7d074aa4ce73699dc7c9f0545a4b69cf8f72a3b01  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.tar.gz
    1937af26f6761bd0a731c355b66d6f763f179142f6c6661c81e45bca8e5458fc50  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.zip
    20b239b17dd90875baf50cb4426115a5b26f3c64fc817124ec157183c58bccaef1  guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin.tar.gz
    21b6a114afbce9f51332feeda77e51360fce8c9e090dbdd51f5d7953f3b53024e9  guix-build-10d56530e097/output/x86_64-linux-gnu/SHA256SUMS.part
    2299a2d0f622a9b9e99e5c334ec97f0dfb60ae2d1e159a84ae3d764aff7f05c973  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu-debug.tar.gz
    23eac4a6d47595f28dd92fa770ad361c649123fc01c2337f5160f82937ee3c1ced  guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu.tar.gz
    249ce4d66d6d89efcb90d4cff27e0430267930484244a420254b0842eb2255c63d  guix-build-10d56530e097/output/x86_64-w64-mingw32/SHA256SUMS.part
    25c3c0420b702965b2a4b7f9d5528f75ac067f3717df33c26d79d2c6a43e62271d  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-debug.zip
    26402938d010fed8140953425e77d6c0adf432bc0b6c3bc41b202fc3ab57dc3e78  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-setup-unsigned.exe
    2798c9a31988b46554a696d30576590b7999a8957020bf8942caf0e499094794f7  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-unsigned.tar.gz
    2837360c7fd4fae718c581a76e820bf495ea4470d6938c02c7ff3561523bcca3ca  guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64.zip
    
  147. TheCharlatan approved
  148. TheCharlatan commented at 4:58 pm on March 13, 2024: contributor
    ACK 10d56530e097cbf70f7ecbc464550d89b4d91b87
  149. DrahtBot requested review from theuni on Mar 13, 2024
  150. DrahtBot requested review from hebasto on Mar 13, 2024
  151. fanquake merged this on Mar 14, 2024
  152. fanquake closed this on Mar 14, 2024

  153. fanquake deleted the branch on Mar 14, 2024
  154. hebasto commented at 3:30 pm on March 18, 2024: member

    Post-merge ACK 10d56530e097cbf70f7ecbc464550d89b4d91b87.

    I’m still a bit confused as to why the new -mcrtdll option for MinGW target is still not recognized by the compiler.

  155. fanquake commented at 10:40 am on March 22, 2024: member

    I’m still a bit confused as to why the new -mcrtdll option for MinGW target is still not recognized by the compiler.

    That option hasn’t yet been released in any version of GCC (it will be in GCC 14).


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: 2024-11-17 03:12 UTC

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