build: Bump clang version to fix non-determinism #20454

pull hebasto wants to merge 2 commits into bitcoin:master from hebasto:201122-clang changing 3 files +5 −69
  1. hebasto commented at 10:43 pm on November 22, 2020: member

    Bumping clang from 6.0.1 to 8.0.0 in 5c2c835433a80c204da1335daa51a014670c7324 (#19240) came with inherent non-determinism, that was fixed in LLVM 9.

    This PR suggests the first option from:

    • Bump to clang9 where this is fixed
    • As dongcarl suggested: rewrite the some of the qt function (qt_intersect_spans in qpaintengine_raster.cpp) to avoid hitting the non-determinism
    • Disable the buggy behavior via cmdline option

    This is an alternative to #20436, #20440 and #20447. No patches :)

  2. hebasto commented at 10:44 pm on November 22, 2020: member
  3. DrahtBot added the label Build system on Nov 23, 2020
  4. fanquake commented at 3:52 am on November 23, 2020: member
    While we will likely end up doing this for 22.0, concept NACK on switching compilers in the RC stage of a release. I’m somewhat surprised this works as is. Normally there are other minor changes required, like adjusting a path, or fixing up a .so name etc, however that’s good to know.
  5. hebasto commented at 6:56 am on November 23, 2020: member

    While we will likely end up doing this for 22.0, concept NACK on switching compilers in the RC stage of a release.

    Correct. My intention is to get this merged into the master branch, not into the 0.21. For the 0.21 branch I’ve already ACKed #20447.

  6. MarcoFalke added the label Needs gitian build on Nov 23, 2020
  7. MarcoFalke added the label Needs Guix build on Nov 23, 2020
  8. laanwj commented at 10:03 am on November 23, 2020: member

    This has been my preferred way to resolve this from the beginning.

    Code review ACK 5ebb747d2a147fd9500f282104936a4a79075c58 Did not check determinism though.

  9. hebasto commented at 2:44 pm on November 23, 2020: member

    My gitian macOS build:

    0Generating report
    1a723c3ce3816387f6f4df75b31a7cd8afe41115c37d75eb3f37ec8b19bad9e06  bitcoin-5ebb747d2a14-osx-unsigned.dmg
    23ba163f8979ee9d68e19861f44d4c9757b1bd9a2af82ba902d9bc6c234ad0c47  bitcoin-5ebb747d2a14-osx-unsigned.tar.gz
    3e122c0511048ff7066d244277a3c83d91429b4c237a2835d17dbe96328700ebb  bitcoin-5ebb747d2a14-osx64.tar.gz
    4ea036d6b0e29a48a4f4776f1cee9e65e766cb74ba87130d03af2c299ff080b82  src/bitcoin-5ebb747d2a14.tar.gz
    5ac7c1d432f4db182cf5765bae2511881cc4a8615eccbe1c5ac6d53870789020c  bitcoin-core-osx-22-res.yml
    6Done.
    
  10. fanquake referenced this in commit 31c9987976 on Nov 24, 2020
  11. sidhujag referenced this in commit b5fbf10b7d on Nov 24, 2020
  12. DrahtBot removed the label Needs Guix build on Nov 27, 2020
  13. DrahtBot removed the label Needs gitian build on Nov 30, 2020
  14. laanwj commented at 8:41 am on March 4, 2021: member
    I think we still need to do this? @dongcarl @fanquake
  15. build: Bump clang version to fix non-determinism
    LLVM 8 has inherent nondeterminism in the compiler, fixed in LLVM 9.
    ac5e771f44
  16. Revert "Fix QPainter non-determinism on macOS"
    This reverts commit 8f7d1b39efbe65ab2747c593cc3560d4a449a333.
    8df1170895
  17. hebasto force-pushed on Mar 11, 2021
  18. hebasto commented at 11:53 am on March 11, 2021: member
    Rebased on top of the #21376.
  19. hebasto commented at 12:59 pm on March 11, 2021: member

    Gitian builds:

     0Generating report
     1df3ab808f69e38bf263981e202247c253191ebba6f1e5a2d847cf1f493a73cdd  bitcoin-8df117089569-osx-unsigned.dmg
     2e9f3ef47f067a0145b013ce502175ccdd8465f2a1f00277e2abb2eb8e90f860d  bitcoin-8df117089569-osx-unsigned.tar.gz
     30b1b52aa8c1b20bcd1e9bc75053acfdcc436de8ce382f26068ac7f7c9483d1b9  bitcoin-8df117089569-osx64.tar.gz
     43196530732e8ff0388a59a30c7bad17ecb7496f844af29a3813404d6523c6284  src/bitcoin-8df117089569.tar.gz
     5d7f9d053360ba8ad6ba8853059b22519b4d593bbcda91071ff0eae8e5bb7d346  bitcoin-core-osx-22-res.yml
     6Done.
     7
     8# cache was not cleared
     9Generating report
    10df3ab808f69e38bf263981e202247c253191ebba6f1e5a2d847cf1f493a73cdd  bitcoin-8df117089569-osx-unsigned.dmg
    11e9f3ef47f067a0145b013ce502175ccdd8465f2a1f00277e2abb2eb8e90f860d  bitcoin-8df117089569-osx-unsigned.tar.gz
    120b1b52aa8c1b20bcd1e9bc75053acfdcc436de8ce382f26068ac7f7c9483d1b9  bitcoin-8df117089569-osx64.tar.gz
    133196530732e8ff0388a59a30c7bad17ecb7496f844af29a3813404d6523c6284  src/bitcoin-8df117089569.tar.gz
    14d7f9d053360ba8ad6ba8853059b22519b4d593bbcda91071ff0eae8e5bb7d346  bitcoin-core-osx-22-res.yml
    15Done.
    16
    17# cache was cleared
    18Generating report
    19df3ab808f69e38bf263981e202247c253191ebba6f1e5a2d847cf1f493a73cdd  bitcoin-8df117089569-osx-unsigned.dmg
    20e9f3ef47f067a0145b013ce502175ccdd8465f2a1f00277e2abb2eb8e90f860d  bitcoin-8df117089569-osx-unsigned.tar.gz
    210b1b52aa8c1b20bcd1e9bc75053acfdcc436de8ce382f26068ac7f7c9483d1b9  bitcoin-8df117089569-osx64.tar.gz
    223196530732e8ff0388a59a30c7bad17ecb7496f844af29a3813404d6523c6284  src/bitcoin-8df117089569.tar.gz
    2355c5c0a8f8863508f7544568d5a0c8214529f9aa57200a2babcd92486c9ec334  bitcoin-core-osx-22-res.yml
    24Done.
    

    Guix build:

    0$ find output -type f -name *$(git rev-parse --short HEAD)*.* -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    171fb6c229b472a34a80c8efa62c8926078ca66c47ec4eceac4dcb1689879228a  output/bitcoin-8df117089569-osx-unsigned.dmg
    2d86bb1f041ae104eeb524f346349a3568f3549919618f36a1c0d72186fa763e7  output/bitcoin-8df117089569-osx-unsigned.tar.gz
    37b5a0f09c8c21df67aca61fcf5cb9a18c2944a71e769f50d87beb1ce1861cfaa  output/bitcoin-8df117089569-osx64.tar.gz
    43196530732e8ff0388a59a30c7bad17ecb7496f844af29a3813404d6523c6284  output/src/bitcoin-8df117089569.tar.gz
    
  20. jarolrod commented at 4:47 pm on March 11, 2021: member

    Contributing GUIX hashes, mine line up with hebasto’s

    0find output -type f -name *$(git rev-parse --short HEAD)*.* -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    1
    271fb6c229b472a34a80c8efa62c8926078ca66c47ec4eceac4dcb1689879228a  output/bitcoin-8df117089569-osx-unsigned.dmg
    3d86bb1f041ae104eeb524f346349a3568f3549919618f36a1c0d72186fa763e7  output/bitcoin-8df117089569-osx-unsigned.tar.gz
    47b5a0f09c8c21df67aca61fcf5cb9a18c2944a71e769f50d87beb1ce1861cfaa  output/bitcoin-8df117089569-osx64.tar.gz
    53196530732e8ff0388a59a30c7bad17ecb7496f844af29a3813404d6523c6284  output/src/bitcoin-8df117089569.tar.gz
    
  21. MarcoFalke deleted a comment on Mar 11, 2021
  22. MarcoFalke deleted a comment on Mar 11, 2021
  23. MarcoFalke added the label Needs gitian build on Mar 11, 2021
  24. MarcoFalke added the label Needs Guix build on Mar 11, 2021
  25. DrahtBot commented at 8:09 am on March 12, 2021: member

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

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #21462 (guix: Add guix-{attest,verify} scripts by dongcarl)
    • #21457 (build: split libtapi and clang out of native_cctools by fanquake)
    • #21420 (build, qt: No longer need to patch translation.pro by hebasto)
    • #21375 (guix: Misc feedback-based fixes + hier restructuring by dongcarl)
    • #21304 (guix: Add guix-clean script + establish gc-root for container profiles by dongcarl)

    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.

  26. DrahtBot commented at 2:35 pm on March 17, 2021: member

    Guix builds

    File commit e0bc27a14ceb18bfe3dd9ebdae6bef447c4ec922(master) commit 292695d5402a528532f8f19c7d1955586b7b532a(master and this pull)
    *-aarch64-linux-gnu-debug.tar.gz 3b30f4198b68fadf... fbd9cb3b0f69a69d...
    *-aarch64-linux-gnu.tar.gz 176d561bd8a2aa0d... a9b968b656d7712e...
    *-arm-linux-gnueabihf-debug.tar.gz ea017c7dff2b99be... 2fdbb8f2d6436870...
    *-arm-linux-gnueabihf.tar.gz 3ce0b418bce0f580... 6d8015f2beecb429...
    *-osx-unsigned.dmg 772d2aa9989e8d40... ae6b831da7906043...
    *-osx-unsigned.tar.gz 0d8003ee2c879e13... d30926a1853c162e...
    *-osx64.tar.gz 135d20c9d45b8193... 38aa5adb89864d4e...
    *-powerpc64-linux-gnu-debug.tar.gz 0f86fbb3da88d75b... d6c25a4366e2d466...
    *-powerpc64-linux-gnu.tar.gz 8fffb547da793622... 69c37461a0d145b9...
    *-powerpc64le-linux-gnu-debug.tar.gz 25bc9f40d7593a0e... 1d00255a50763a3e...
    *-powerpc64le-linux-gnu.tar.gz 00ffc2de444f9f45... 85f59c2c327b6c6f...
    *-riscv64-linux-gnu-debug.tar.gz 13259ba2232c7908... 2c0490e4fa7a6627...
    *-riscv64-linux-gnu.tar.gz 277fa4286cd1acc3... c4f2f1a3649d305d...
    *-win-unsigned.tar.gz 586f395e11db7d10... 8134e2c6173da988...
    *-win64-debug.zip a47083334cbdcfa3... ecbcf562502612bf...
    *-win64-setup-unsigned.exe 926f391d3ea1f345... 43177ebda8aa3611...
    *-win64.zip cbfc8629325db892... e69e51bbda561174...
    *-x86_64-linux-gnu-debug.tar.gz ed183a137ae13cd4... ab1188a63ee0bd68...
    *-x86_64-linux-gnu.tar.gz f24558a571c69c68... 22157c0fc560511d...
    *.tar.gz 86c28332470cb476... 21d580fcb713968c...
    guix_build.log 456643eedd9954da... 8c8ae81656e1e9e7...
    guix_build.log.diff beff8b72b7e6ca52...
  27. DrahtBot removed the label Needs Guix build on Mar 17, 2021
  28. fanquake commented at 2:48 am on March 18, 2021: member
    I’ve now included this in #19817, as part of a toolchain bump, which also means we’d move to Clang 10.
  29. fanquake closed this on Mar 18, 2021

  30. MarcoFalke removed the label Needs gitian build on Mar 20, 2021
  31. fanquake referenced this in commit 1a0d1452a0 on Mar 31, 2021
  32. sidhujag referenced this in commit 621eab9ff7 on Mar 31, 2021
  33. DrahtBot locked this on Aug 16, 2022

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-12-19 03:12 UTC

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