build: use macOS 14 SDK (Xcode 15.0) #28622

pull fanquake wants to merge 3 commits into bitcoin:master from fanquake:macos_sdk_15 changing 7 files +58 −32
  1. fanquake commented at 1:51 pm on October 9, 2023: member
    This fixes: #28349 (comment) (cross-compiling with C++20 for macOS). See https://developer.apple.com/xcode/cpp/#c++20 for C++20 support in Apples libc++, some features landed with Xcode 14.3, although many more landed with Xcode 15.0.
  2. fanquake added this to the milestone 27.0 on Oct 9, 2023
  3. DrahtBot commented at 1:51 pm on October 9, 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 hebasto, TheCharlatan
    Concept ACK theuni

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

    Conflicts

    No conflicts as of last run.

  4. DrahtBot added the label Build system on Oct 9, 2023
  5. hebasto commented at 1:53 pm on October 9, 2023: member
    Concept ACK.
  6. maflcko commented at 2:00 pm on October 9, 2023: member
    Does this affect which versions of macos the app can be run on?
  7. hebasto commented at 2:01 pm on October 9, 2023: member

    Does this affect which versions of macos the app can be run on?

    It depends on the -mmacosx-version-min option?

  8. maflcko added the label DrahtBot Guix build requested on Oct 9, 2023
  9. DrahtBot added the label CI failed on Oct 9, 2023
  10. maflcko removed the label DrahtBot Guix build requested on Oct 11, 2023
  11. in contrib/macdeploy/README.md:25 in bbc4d250b9 outdated
    26+and search for [`Xcode 15`](https://developer.apple.com/download/all/?q=Xcode%2015).
    27 
    28 An Apple ID and cookies enabled for the hostname are needed to download this.
    29 
    30-The `sha256sum` of the downloaded XIP archive should be `28d352f8c14a43d9b8a082ac6338dc173cb153f964c6e8fb6ba389e5be528bd0`.
    31+The `sha256sum` of the downloaded XIP archive should be `4daaed2ef2253c9661779fa40bfff50655dc7ec45801aba5a39653e7bcdde48e`.
    


    Sjors commented at 11:39 am on October 12, 2023:
    I verified that I get the same checksum (4daaed2ef2253c9661779fa40bfff50655dc7ec45801aba5a39653e7bcdde48e).
  12. in contrib/macdeploy/README.md:55 in bbc4d250b9 outdated
    70 ./contrib/macdeploy/gen-sdk '/path/to/Xcode.app'
    71 ```
    72 
    73-The `sha256sum` of the generated TAR.GZ archive should be `df75d30ecafc429e905134333aeae56ac65fac67cb4182622398fd717df77619`.
    74+The generated archive should be: `Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz`.
    75+The `sha256sum` should be `50073e35975a5336f7db3abb275c00b372e07ff2372d7e78508c722abd746b9f`.
    


    Sjors commented at 12:40 pm on October 12, 2023:

    On (Intel) macOS Ventura 13.6 and on Ubuntu 23.10 I get a different checksum:

    0c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d  Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
    

    sums.txt

    (note to reviewers: be very careful to delete the extracted Xcode.app folder before extracting the zip, or you may get confused)


    fanquake commented at 1:14 pm on October 17, 2023:
    Can you retry with the new script.

    Sjors commented at 5:41 am on October 23, 2023:
    Will do soon(tm)
  13. DrahtBot added the label Needs rebase on Oct 16, 2023
  14. fanquake force-pushed on Oct 17, 2023
  15. DrahtBot removed the label Needs rebase on Oct 17, 2023
  16. fanquake force-pushed on Oct 17, 2023
  17. fanquake force-pushed on Oct 17, 2023
  18. fanquake commented at 1:14 pm on October 17, 2023: member
    Pushed up a new version, that reduces the size of the SDK tarball by ~90%. Should reduce the potential for random difference/non-determinism in the tarballs.
  19. Sjors commented at 10:39 am on October 23, 2023: member

    Still getting a different hash when using the gen-sdk script in f638625ad416f9749633925bec827e29b5ea3f79:

    070cccc19df2fc1746bfddf939bf7370eb0b3d8f5f7198896358fa1ebde37e9e7  Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
    

    Both on macOS and Ubuntu.

  20. josibake commented at 12:10 pm on October 23, 2023: member

    I’m getting the same as @Sjors :

    070cccc19df2fc1746bfddf939bf7370eb0b3d8f5f7198896358fa1ebde37e9e7  Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
    
  21. fanquake commented at 12:51 pm on October 23, 2023: member
    Updated the hash. Also going to test the 15.1 beta, to see if that fixes the Qt build issues.
  22. fanquake force-pushed on Oct 23, 2023
  23. in contrib/macdeploy/gen-sdk:101 in d9271fe71b outdated
     95@@ -99,16 +96,15 @@ def run():
     96             return tarinfo
     97         with cd(dir_to_add):
     98             # recursion already adds entries in sorted order
     99-            tarfp.add(".", recursive=True, filter=change_tarinfo_base)
    100+            tarfp.add("./usr/include", recursive=True, filter=change_tarinfo_base)
    101+            tarfp.add("./usr/lib", recursive=True, filter=change_tarinfo_base)
    


    hebasto commented at 2:44 pm on October 25, 2023:
    This change causes fatal error: 'CoreFoundation/CoreFoundation.h' file not found when building the qt package in depends.

    fanquake commented at 3:30 pm on October 30, 2023:
    Looks like we have to retain System/Library/ for Qt. Will return in the next push.
  24. fanquake force-pushed on Oct 30, 2023
  25. fanquake commented at 4:35 pm on October 30, 2023: member

    Also going to test the 15.1 beta, to see if that fixes the Qt build issues.

    No difference with Xcode 15.1-beta2. Qt still fails to build the same way as described in the PR description.

  26. fanquake referenced this in commit 023e8c2001 on Nov 2, 2023
  27. hebasto commented at 11:38 am on November 2, 2023: member

    Qt still fails to build the same way as described in the PR description.

    The following patch fixes the Qt build for me:

     0--- a/depends/hosts/darwin.mk
     1+++ b/depends/hosts/darwin.mk
     2@@ -1,4 +1,5 @@
     3 OSX_MIN_VERSION=11.0
     4+_OSX_MIN_VERSION=110000
     5 OSX_SDK_VERSION=14.0
     6 XCODE_VERSION=15.0.1
     7 XCODE_BUILD_ID=15A507
     8@@ -75,7 +76,7 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(
     9 darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
    10               -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
    11               -u LIBRARY_PATH \
    12-            $(clang_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
    13+            $(clang_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) -D__MAC_OS_X_VERSION_MIN_REQUIRED=$(_OSX_MIN_VERSION) \
    14               -B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
    15               -isysroot$(OSX_SDK) -nostdlibinc \
    16               -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
    17@@ -83,7 +84,7 @@ darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
    18 darwin_CXX=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
    19                -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
    20                -u LIBRARY_PATH \
    21-             $(clangxx_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \
    22+             $(clangxx_prog) --target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) -D__MAC_OS_X_VERSION_MIN_REQUIRED=$(_OSX_MIN_VERSION) \
    23                -B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \
    24                -isysroot$(OSX_SDK) -nostdlibinc \
    25                -iwithsysroot/usr/include/c++/v1 \
    

    However, the underlying issue still needs to be investigated further.

  28. fanquake commented at 11:46 am on November 2, 2023: member

    The following patch fixes the Qt build for me:

    We wont be taking that patch, but if the problem is that qt fails to respect -mmacosx-version-min for some reason, I would assume that should make it fairly obvious where the problem is.

  29. fanquake force-pushed on Nov 2, 2023
  30. hebasto commented at 10:18 am on November 3, 2023: member

    The following patch fixes the Qt build for me:

    We wont be taking that patch, but if the problem is that qt fails to respect -mmacosx-version-min for some reason, I would assume that should make it fairly obvious where the problem is.

    Apparently, direct tests show that env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/hebasto/git/bitcoin/depends/x86_64-apple-darwin/native/bin/clang++ --target=x86_64-apple-darwin -mmacosx-version-min=11.0 -B/home/hebasto/git/bitcoin/depends/x86_64-apple-darwin/native/bin -mlinker-version=711 -isysroot/home/hebasto/SDKs/Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers -nostdlibinc -iwithsysroot/usr/include/c++/v1 -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks -pipe -std=c++17 does not define the __MAC_OS_X_VERSION_MIN_REQUIRED macro.

  31. fanquake force-pushed on Nov 8, 2023
  32. fanquake force-pushed on Nov 11, 2023
  33. hebasto commented at 4:23 pm on November 11, 2023: member
    The PR description looks outdated after the recent push :)
  34. fanquake commented at 4:24 pm on November 11, 2023: member
    Going to wait and see if it actually works first.
  35. hebasto commented at 4:26 pm on November 11, 2023: member
    Is new macOS SDK available at https://bitcoincore.org/depends-sources/sdks/?
  36. fanquake commented at 4:29 pm on November 11, 2023: member
    Nothing has been uploaded yet. I don’t think there would be any real difference, but 15.0.1 has been released, and 15.1 is currently in beta 2, so we may pick a slightly different SDK.
  37. hebasto commented at 4:32 pm on November 11, 2023: member

    Nothing has been uploaded yet. I don’t think there would be any real difference, but 15.0.1 has been released, and 15.1 is currently in beta 2, so we may pick a slightly different SDK.

    I mean, that CI fails due to not being able to download the SDK…

  38. fanquake commented at 4:36 pm on November 11, 2023: member
    Yea, anyone that wants to test should create the new SDK, check the new shasum, and then do a Guix build. If that works, the CI will.
  39. fanquake commented at 5:10 pm on November 11, 2023: member
    Looks like we’ll have to add a -Wl,-platform_version into ldflags here.
  40. fanquake force-pushed on Nov 15, 2023
  41. fanquake commented at 10:52 am on November 15, 2023: member

    The PR description looks outdated after the recent push :)

    Updated the description, and rebased on #28880 instead, now that we can do that.

  42. in contrib/devtools/symbol-check.py:238 in acb3332fb0 outdated
    235@@ -236,7 +236,7 @@ def check_MACHO_min_os(binary) -> bool:
    236     return False
    237 
    238 def check_MACHO_sdk(binary) -> bool:
    239-    if binary.build_version.sdk == [11, 0, 0]:
    240+    if binary.build_version.sdk == [14, 0, 0]:
    


    fanquake commented at 11:07 am on November 15, 2023:

    The SDK version in a Guix built bitcoind is still being set to 11.0:

    0Load command 11
    1      cmd LC_BUILD_VERSION
    2  cmdsize 32
    3 platform 1
    4    minos 11.0
    5      sdk 11.0
    6   ntools 1
    7     tool 3
    8  version 711.0
    

    fanquake commented at 11:47 am on November 15, 2023:

    Looks like we’ll have to add a -Wl,-platform_version into ldflags here.

    Should be resolved now.

  43. fanquake force-pushed on Nov 15, 2023
  44. fanquake force-pushed on Nov 15, 2023
  45. fanquake commented at 12:34 pm on November 15, 2023: member

    Guix Build (aarch64):

    03b9d19ed8a1d4429ec5228afc9d8d9cddb76dfaa7a403edca7ab9b24751f22ef  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/SHA256SUMS.part
    17371c9750834e778fff18d3ea2b8e98cec90fdcf3219e0a1e6d13841c6877d70  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/bitcoin-cf8353a9cf9c-arm64-apple-darwin-unsigned.tar.gz
    2d8e271154e572f716b853cf525b9c83bc9b7ca2a07f8862a8eb45a327f6193e3  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/bitcoin-cf8353a9cf9c-arm64-apple-darwin-unsigned.zip
    35f06b4b7c124809485a3c4606f33a06abb793239b689b1f38b6e77d00bd16456  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/bitcoin-cf8353a9cf9c-arm64-apple-darwin.tar.gz
    481b27791a4d38f503bc7971de905b026e537daaa08b69e6cda890b7e117644f2  guix-build-cf8353a9cf9c/output/dist-archive/bitcoin-cf8353a9cf9c.tar.gz
    5fd436ffe66254b4d321398b6250d8b8d43b8b9b8c85527363351e92b2f3ecdba  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/SHA256SUMS.part
    6194ffdad2f243a7cc8c4498518f48962cbf5fe372eb957f6dfc78620dad6c795  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/bitcoin-cf8353a9cf9c-x86_64-apple-darwin-unsigned.tar.gz
    7d3c807b22291e7b168d3d3e8c89dbf1b8c19e638b4a2f2b4ee24993d11081a5a  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/bitcoin-cf8353a9cf9c-x86_64-apple-darwin-unsigned.zip
    8209aaeac2b3b6ca0550f6bb53c9a489ee4e0b6a9d2c71e76e9fc3df474eb5337  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/bitcoin-cf8353a9cf9c-x86_64-apple-darwin.tar.gz
    
  46. hebasto commented at 5:58 pm on November 15, 2023: member

    My SDK hash:

    0$ sha256sum Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz 
    16afb7c24461729167c5f5976ce56e774657a97b052f44f1618e9717da67fddb7  Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
    

    and Guix builds:

    0x86_64
    1fa1db57217fe8646c529f312ba5af6fee9f3085768d2033359b2f1ec9f1c4624  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/SHA256SUMS.part
    2e64ee8bf9901e5a37cbb67cb5ed23daaa7d0086b256b64870b26a94d5ac3ee4e  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/bitcoin-cf8353a9cf9c-arm64-apple-darwin-unsigned.tar.gz
    3398fe7d07c783bd9a9f5649946e4f98379fe8aebaa4bd0446b019d70391148af  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/bitcoin-cf8353a9cf9c-arm64-apple-darwin-unsigned.zip
    4f12ae881d2704b79f038275f53f8e035a33d56ab4128574625812df01b6dceea  guix-build-cf8353a9cf9c/output/arm64-apple-darwin/bitcoin-cf8353a9cf9c-arm64-apple-darwin.tar.gz
    581b27791a4d38f503bc7971de905b026e537daaa08b69e6cda890b7e117644f2  guix-build-cf8353a9cf9c/output/dist-archive/bitcoin-cf8353a9cf9c.tar.gz
    6fd436ffe66254b4d321398b6250d8b8d43b8b9b8c85527363351e92b2f3ecdba  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/SHA256SUMS.part
    7194ffdad2f243a7cc8c4498518f48962cbf5fe372eb957f6dfc78620dad6c795  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/bitcoin-cf8353a9cf9c-x86_64-apple-darwin-unsigned.tar.gz
    8d3c807b22291e7b168d3d3e8c89dbf1b8c19e638b4a2f2b4ee24993d11081a5a  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/bitcoin-cf8353a9cf9c-x86_64-apple-darwin-unsigned.zip
    9209aaeac2b3b6ca0550f6bb53c9a489ee4e0b6a9d2c71e76e9fc3df474eb5337  guix-build-cf8353a9cf9c/output/x86_64-apple-darwin/bitcoin-cf8353a9cf9c-x86_64-apple-darwin.tar.gz
    

    There is a mismatch for arm64-apple-darwin.

  47. DrahtBot added the label Needs rebase on Nov 24, 2023
  48. fanquake force-pushed on Nov 24, 2023
  49. DrahtBot removed the label Needs rebase on Nov 24, 2023
  50. fanquake referenced this in commit 160d23677a on Dec 1, 2023
  51. fanquake force-pushed on Dec 1, 2023
  52. fanquake commented at 8:32 pm on December 1, 2023: member
    Rebased for #28851 and dropped the LLVM changes.
  53. fanquake marked this as ready for review on Dec 1, 2023
  54. Sjors commented at 2:29 pm on December 4, 2023: member

    Running into a build error with 78859dc3338f5dfd4f80452722e0c39ec6f68656:

     0compiling tools/qmap.cpp
     1In file included from global/qoperatingsystemversion.cpp:46:
     2In file included from ../../include/QtCore/5.15.11/QtCore/private/qcore_mac_p.h:1:
     3../../include/QtCore/5.15.11/QtCore/private/../../../../../src/corelib/kernel/qcore_mac_p.h:68:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found
     4#include <CoreFoundation/CoreFoundation.h>
     5         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     6In file included from global/qlibraryinfo.cpp:64:
     7In file included from ../../include/QtCore/5.15.11/QtCore/private/qcore_mac_p.h:1:
     8../../include/QtCore/5.15.11/QtCore/private/../../../../../src/corelib/kernel/qcore_mac_p.h:68:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found
     9#include <CoreFoundation/CoreFoundation.h>
    10         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    11In file included from thread/qthread_unix.cpp:45:
    12In file included from ../../include/QtCore/5.15.11/QtCore/private/qcoreapplication_p.h:1:
    13In file included from ../../include/QtCore/5.15.11/QtCore/private/../../../../../src/corelib/kernel/qcoreapplication_p.h:68:
    14In file included from ../../include/QtCore/5.15.11/QtCore/private/qcore_mac_p.h:1:
    15../../include/QtCore/5.15.11/QtCore/private/../../../../../src/corelib/kernel/qcore_mac_p.h:68:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found
    16#include <CoreFoundation/CoreFoundation.h>
    17         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    181 error generated.
    191 error generated.
    20make[4]: *** [Makefile:20625: .obj/qlibraryinfo.o] Error 1
    21make[4]: *** Waiting for unfinished jobs....
    22make[4]: *** [Makefile:21027: .obj/qoperatingsystemversion.o] Error 1
    23In file included from global/qglobal.cpp:2106:
    24In file included from ../../include/QtCore/5.15.11/QtCore/private/qcore_mac_p.h:1:
    25../../include/QtCore/5.15.11/QtCore/private/../../../../../src/corelib/kernel/qcore_mac_p.h:68:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found
    26#include <CoreFoundation/CoreFoundation.h>
    27         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    28In file included from global/qlogging.cpp:60:
    29In file included from ../../include/QtCore/5.15.11/QtCore/private/qcoreapplication_p.h:1:
    30In file included from ../../include/QtCore/5.15.11/QtCore/private/../../../../../src/corelib/kernel/qcoreapplication_p.h:68:
    31In file included from ../../include/QtCore/5.15.11/QtCore/private/qcore_mac_p.h:1:
    32../../include/QtCore/5.15.11/QtCore/private/../../../../../src/corelib/kernel/qcore_mac_p.h:68:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found
    33#include <CoreFoundation/CoreFoundation.h>
    34         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    351 error generated.
    36make[4]: *** [Makefile:20448: .obj/qglobal.o] Error 1
    371 error generated.
    38make[4]: *** [Makefile:21987: .obj/qthread_unix.o] Error 1
    391 error generated.
    40make[4]: *** [Makefile:21221: .obj/qlogging.o] Error 1
    41make[4]: Leaving directory '/bitcoin/depends/work/build/x86_64-apple-darwin/qt/5.15.11-9a5885aeb40/qtbase/src/corelib'
    42make[3]: *** [Makefile:224: sub-corelib-make_first] Error 2
    43make[3]: Leaving directory '/bitcoin/depends/work/build/x86_64-apple-darwin/qt/5.15.11-9a5885aeb40/qtbase/src'
    44make[2]: *** [Makefile:58: sub-src-make_first] Error 2
    45make[2]: Leaving directory '/bitcoin/depends/work/build/x86_64-apple-darwin/qt/5.15.11-9a5885aeb40/qtbase'
    46make[1]: *** [Makefile:56: sub-qtbase-make_first] Error 2
    47make[1]: Leaving directory '/bitcoin/depends/work/build/x86_64-apple-darwin/qt/5.15.11-9a5885aeb40'
    48make: *** [funcs.mk:291: /bitcoin/depends/work/build/x86_64-apple-darwin/qt/5.15.11-9a5885aeb40/./.stamp_built] Error 2
    49make: Leaving directory '/bitcoin/depends'
    

    Ubuntu 23.10 on AMD

  55. fanquake force-pushed on Dec 4, 2023
  56. fanquake commented at 2:32 pm on December 4, 2023: member
    Should be fixed now. Forgot that we needed to revert to including basically the entire SDK here, to accomodate Qt.
  57. fanquake force-pushed on Dec 4, 2023
  58. fanquake commented at 3:05 pm on December 4, 2023: member
    4daaed2ef2253c9661779fa40bfff50655dc7ec45801aba5a39653e7bcdde48e Xcode_15.xip. c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz.
  59. in contrib/macdeploy/README.md:55 in 984cbe4f84 outdated
    70 ./contrib/macdeploy/gen-sdk '/path/to/Xcode.app'
    71 ```
    72 
    73-The `sha256sum` of the generated TAR.GZ archive should be `df75d30ecafc429e905134333aeae56ac65fac67cb4182622398fd717df77619`.
    74+The generated archive should be: `Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz`.
    75+The `sha256sum` should be `c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d`.
    


    Sjors commented at 4:40 pm on December 4, 2023:
    This matches for me, as of 984cbe4f84a6eb32153f7fc46c220a0ccb2746f9
  60. theuni commented at 4:48 pm on December 4, 2023: member

    c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz

    Has been generated and is ready for use now by c-i.

  61. fanquake force-pushed on Dec 4, 2023
  62. fanquake commented at 4:50 pm on December 4, 2023: member

    Has been generated and is ready for use now by c-i.

    Force pushed for a CI run.

  63. in depends/hosts/darwin.mk:74 in a2b964f95f outdated
    70@@ -71,6 +71,10 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(
    71 #
    72 #         Adds the desired paths from the SDK
    73 #
    74+#     -platform_version
    


    theuni commented at 4:54 pm on December 4, 2023:
    Does this obsolete/interact with mlinker-version at all?

    fanquake commented at 5:16 pm on December 4, 2023:
    From having another look now, Clang still uses -mlinker-version, in it’s decision making about whether to use -platform_version (by default), which it does if the linker version is > 520. If we are passing -platform_version ourselves, then maybe we can drop -mlinker-version, but I would have to look again, to see if there are other side effects, and this is probably ok to leave for now, and revisit when we do the lld switch, as I assume more flags are going to change there as well.
  64. Sjors commented at 4:54 pm on December 4, 2023: member

    Guix hashes: (will bake new ones for 95163cc later if CI actually passes)

    0fedbab3012043b4277a19fbd0a1abdb5d8e895446bba470981cef361064cdba6  guix-build-984cbe4f84a6/output/arm64-apple-darwin/SHA256SUMS.part
    1e40c88780560f4aa1e15657373cf6e6149878c90c1acb2980a6015c368378485  guix-build-984cbe4f84a6/output/arm64-apple-darwin/bitcoin-984cbe4f84a6-arm64-apple-darwin-unsigned.tar.gz
    2795221e68c86cb46684dcb80e729e6dd887402930bc8f911b97840f563c4fab8  guix-build-984cbe4f84a6/output/arm64-apple-darwin/bitcoin-984cbe4f84a6-arm64-apple-darwin-unsigned.zip
    3079058ec4d3ddc91092166609f6adc5254a60eae0b2f8787747177c749b97858  guix-build-984cbe4f84a6/output/arm64-apple-darwin/bitcoin-984cbe4f84a6-arm64-apple-darwin.tar.gz
    4cae9d3794b0709f732f7298bc0a969c1a96db9094c64f2de127757b538d935ef  guix-build-984cbe4f84a6/output/dist-archive/bitcoin-984cbe4f84a6.tar.gz
    54a6f58cdc176a7d533d4018603f2f20fc6439524ab9ca3d1b4d675e41b2938c2  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/SHA256SUMS.part
    66483c6749d7568321dfaba94b91d5940f9b6699b3c7816029a6b8eb9e031eaf2  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/bitcoin-984cbe4f84a6-x86_64-apple-darwin-unsigned.tar.gz
    7662d49b36ff53c19f11cdc02319bb4066ee8033343d90f898eeef063be189ed2  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/bitcoin-984cbe4f84a6-x86_64-apple-darwin-unsigned.zip
    818e670ae7679c0b9317d57412839bd2676b322ae0d18a599bad6c1beddef2413  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/bitcoin-984cbe4f84a6-x86_64-apple-darwin.tar.gz
    

    Lightly tested the binary on Intel macOS 13.6.1 and 14.1.2.

  65. theuni commented at 4:55 pm on December 4, 2023: member
    Concept ACK. My generated tarball hash matches @fanquake’s.
  66. fanquake commented at 4:59 pm on December 4, 2023: member

    Guix build (aarch64):

    0fedbab3012043b4277a19fbd0a1abdb5d8e895446bba470981cef361064cdba6  guix-build-984cbe4f84a6/output/arm64-apple-darwin/SHA256SUMS.part
    1e40c88780560f4aa1e15657373cf6e6149878c90c1acb2980a6015c368378485  guix-build-984cbe4f84a6/output/arm64-apple-darwin/bitcoin-984cbe4f84a6-arm64-apple-darwin-unsigned.tar.gz
    2795221e68c86cb46684dcb80e729e6dd887402930bc8f911b97840f563c4fab8  guix-build-984cbe4f84a6/output/arm64-apple-darwin/bitcoin-984cbe4f84a6-arm64-apple-darwin-unsigned.zip
    3079058ec4d3ddc91092166609f6adc5254a60eae0b2f8787747177c749b97858  guix-build-984cbe4f84a6/output/arm64-apple-darwin/bitcoin-984cbe4f84a6-arm64-apple-darwin.tar.gz
    4cae9d3794b0709f732f7298bc0a969c1a96db9094c64f2de127757b538d935ef  guix-build-984cbe4f84a6/output/dist-archive/bitcoin-984cbe4f84a6.tar.gz
    54a6f58cdc176a7d533d4018603f2f20fc6439524ab9ca3d1b4d675e41b2938c2  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/SHA256SUMS.part
    66483c6749d7568321dfaba94b91d5940f9b6699b3c7816029a6b8eb9e031eaf2  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/bitcoin-984cbe4f84a6-x86_64-apple-darwin-unsigned.tar.gz
    7662d49b36ff53c19f11cdc02319bb4066ee8033343d90f898eeef063be189ed2  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/bitcoin-984cbe4f84a6-x86_64-apple-darwin-unsigned.zip
    818e670ae7679c0b9317d57412839bd2676b322ae0d18a599bad6c1beddef2413  guix-build-984cbe4f84a6/output/x86_64-apple-darwin/bitcoin-984cbe4f84a6-x86_64-apple-darwin.tar.gz
    
  67. maflcko commented at 5:29 pm on December 4, 2023: member

    https://cirrus-ci.com/task/4855730595954688?logs=ci#L8068

    0configure:33916: error: External signing is not supported for this Boost version
    
  68. fanquake commented at 5:45 pm on December 4, 2023: member

    https://cirrus-ci.com/task/4855730595954688?logs=ci#L8068 configure:33916: error: External signing is not supported for this Boost version

    Nice. It’s this issue https://github.com/boostorg/process/issues/342 & change https://github.com/boostorg/process/pull/343 from upstream Boost Process.

  69. depends: add -platform_version to macOS build flags
    ```bash
    -platform_version platform min_version sdk_version
        This is set to indicate the platform, oldest supported version
        of that platform that output is to be used on, and the SDK that
        the output was built against.
    ```
    423949a13b
  70. build: patch boost process for macOS 14 SDK 51c97ffb69
  71. build: use macOS 14 SDK (Xcode 15.0) 8ea45e626e
  72. fanquake force-pushed on Dec 5, 2023
  73. DrahtBot removed the label CI failed on Dec 5, 2023
  74. fanquake commented at 10:55 am on December 5, 2023: member
    Added the upstream patch to fix Boost Process.
  75. maflcko added the label DrahtBot Guix build requested on Dec 5, 2023
  76. fanquake commented at 12:12 pm on December 5, 2023: member

    Guix Build (aarch64):

    0cb84be46cc7139072879655a87a36303027ee1faefbf251e5827ee69220458cf  guix-build-8ea45e626e5a/output/arm64-apple-darwin/SHA256SUMS.part
    1e064e0380ffa84a0da5e6196d59639011f7860bf61b13c2626e9fdacd0e6ebc0  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin-unsigned.tar.gz
    27ca6da72095dc2fcf9ad30fcebffb4d5de58bc26c9f890eec34067610d55472f  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin-unsigned.zip
    3dede67b0ebbb9d05703748aa8e2819f30503d20da22b56503922005a79ddc81e  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin.tar.gz
    48f1dcce3498f37485e6cccaeacc61d505d31542ecfd2f345eb785562e95ee434  guix-build-8ea45e626e5a/output/dist-archive/bitcoin-8ea45e626e5a.tar.gz
    5852cdf940cd26f5d1be65f95405585950d32052be0be8ea859e6b7596d277d9a  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/SHA256SUMS.part
    66b2a666ceb784d4bc740df0b425c2aa42af8d1d44b44cd338ab360ee42ccc5ab  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin-unsigned.tar.gz
    7c982ef2ce2c55113b46cfbe8312f4ad01eea24935bbaa19bc26ca8aaed329345  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin-unsigned.zip
    806433a4f20a037f738fd5de5d8928442e32e3671ffe4878bed18aa322bade0f9  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin.tar.gz
    
  77. Sjors commented at 1:59 pm on December 5, 2023: member

    Why did the Boost issue stop CI, but not the Guix build?

    0cb84be46cc7139072879655a87a36303027ee1faefbf251e5827ee69220458cf  guix-build-8ea45e626e5a/output/arm64-apple-darwin/SHA256SUMS.part
    1e064e0380ffa84a0da5e6196d59639011f7860bf61b13c2626e9fdacd0e6ebc0  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin-unsigned.tar.gz
    27ca6da72095dc2fcf9ad30fcebffb4d5de58bc26c9f890eec34067610d55472f  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin-unsigned.zip
    3dede67b0ebbb9d05703748aa8e2819f30503d20da22b56503922005a79ddc81e  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin.tar.gz
    48f1dcce3498f37485e6cccaeacc61d505d31542ecfd2f345eb785562e95ee434  guix-build-8ea45e626e5a/output/dist-archive/bitcoin-8ea45e626e5a.tar.gz
    5852cdf940cd26f5d1be65f95405585950d32052be0be8ea859e6b7596d277d9a  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/SHA256SUMS.part
    66b2a666ceb784d4bc740df0b425c2aa42af8d1d44b44cd338ab360ee42ccc5ab  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin-unsigned.tar.gz
    7c982ef2ce2c55113b46cfbe8312f4ad01eea24935bbaa19bc26ca8aaed329345  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin-unsigned.zip
    806433a4f20a037f738fd5de5d8928442e32e3671ffe4878bed18aa322bade0f9  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin.tar.gz
    
  78. fanquake commented at 2:00 pm on December 5, 2023: member
    Because the CI explicitly passes –enable-external-signer.
  79. bitcoin deleted a comment on Dec 5, 2023
  80. bitcoin deleted a comment on Dec 5, 2023
  81. hebasto approved
  82. hebasto commented at 3:24 pm on December 5, 2023: member

    ACK 8ea45e626e5a0482ee11d4376f961d8126ce7c7b.

    I’ve got the same hashes for SDK on both platforms:

    • macOS:
    0% shasum -a 256 Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz 
    1c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d  Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
    
    • Linux:
    0$ sha256sum Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz 
    1c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d  Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
    

    My Guix build hashes are the same for x86_64 and aarch64:

    0cb84be46cc7139072879655a87a36303027ee1faefbf251e5827ee69220458cf  guix-build-8ea45e626e5a/output/arm64-apple-darwin/SHA256SUMS.part
    1e064e0380ffa84a0da5e6196d59639011f7860bf61b13c2626e9fdacd0e6ebc0  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin-unsigned.tar.gz
    27ca6da72095dc2fcf9ad30fcebffb4d5de58bc26c9f890eec34067610d55472f  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin-unsigned.zip
    3dede67b0ebbb9d05703748aa8e2819f30503d20da22b56503922005a79ddc81e  guix-build-8ea45e626e5a/output/arm64-apple-darwin/bitcoin-8ea45e626e5a-arm64-apple-darwin.tar.gz
    48f1dcce3498f37485e6cccaeacc61d505d31542ecfd2f345eb785562e95ee434  guix-build-8ea45e626e5a/output/dist-archive/bitcoin-8ea45e626e5a.tar.gz
    5852cdf940cd26f5d1be65f95405585950d32052be0be8ea859e6b7596d277d9a  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/SHA256SUMS.part
    66b2a666ceb784d4bc740df0b425c2aa42af8d1d44b44cd338ab360ee42ccc5ab  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin-unsigned.tar.gz
    7c982ef2ce2c55113b46cfbe8312f4ad01eea24935bbaa19bc26ca8aaed329345  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin-unsigned.zip
    806433a4f20a037f738fd5de5d8928442e32e3671ffe4878bed18aa322bade0f9  guix-build-8ea45e626e5a/output/x86_64-apple-darwin/bitcoin-8ea45e626e5a-x86_64-apple-darwin.tar.gz
    

    Guix builds are configured properly:

    0Options used to compile and link:
    1  external signer = yes
    

    Can we get rid of linker warnings:

    0ld: warning: passed two min versions (11.0, 11.0) for platform macOS. Using 11.0.
    

    ?

  83. DrahtBot requested review from theuni on Dec 5, 2023
  84. maflcko removed the label DrahtBot Guix build requested on Dec 5, 2023
  85. fanquake commented at 12:02 pm on December 6, 2023: member

    Can we get rid of linker warnings:

    I assume this is a combination of -mmacosx-version-min, -Wl,-platform_version and maybe cctools. Note that the warnings have also already been appearing in our security checks/tests, for some time. This should dissapear when we switch to lld, so it might not be worth making more changes now.

  86. fanquake requested review from TheCharlatan on Dec 6, 2023
  87. TheCharlatan approved
  88. TheCharlatan commented at 10:29 pm on December 6, 2023: contributor

    ACK 8ea45e626e5a0482ee11d4376f961d8126ce7c7b

    Get the same build hashes and SDK hashes. Ran the binary on macOS 11.1. Completed a depends build on my linux dev box. Verified the boost process patch.

  89. fanquake merged this on Dec 7, 2023
  90. fanquake closed this on Dec 7, 2023

  91. fanquake deleted the branch on Dec 7, 2023

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-21 15:12 UTC

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