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-
fanquake commented at 1:51 pm on October 9, 2023: memberThis 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.
-
fanquake added this to the milestone 27.0 on Oct 9, 2023
-
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.
-
DrahtBot added the label Build system on Oct 9, 2023
-
hebasto commented at 1:53 pm on October 9, 2023: memberConcept ACK.
-
maflcko commented at 2:00 pm on October 9, 2023: memberDoes this affect which versions of macos the app can be run on?
-
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? -
maflcko added the label DrahtBot Guix build requested on Oct 9, 2023
-
DrahtBot added the label CI failed on Oct 9, 2023
-
maflcko removed the label DrahtBot Guix build requested on Oct 11, 2023
-
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
).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
(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)DrahtBot added the label Needs rebase on Oct 16, 2023fanquake force-pushed on Oct 17, 2023DrahtBot removed the label Needs rebase on Oct 17, 2023fanquake force-pushed on Oct 17, 2023fanquake force-pushed on Oct 17, 2023fanquake commented at 1:14 pm on October 17, 2023: memberPushed 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.Sjors commented at 10:39 am on October 23, 2023: memberStill 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.
fanquake commented at 12:51 pm on October 23, 2023: memberUpdated the hash. Also going to test the 15.1 beta, to see if that fixes the Qt build issues.fanquake force-pushed on Oct 23, 2023in 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 causesfatal error: 'CoreFoundation/CoreFoundation.h' file not found
when building theqt
package in depends.
fanquake commented at 3:30 pm on October 30, 2023:Looks like we have to retainSystem/Library/
for Qt. Will return in the next push.fanquake force-pushed on Oct 30, 2023fanquake commented at 4:35 pm on October 30, 2023: memberAlso 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.
fanquake referenced this in commit 023e8c2001 on Nov 2, 2023hebasto commented at 11:38 am on November 2, 2023: memberQt 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.
fanquake commented at 11:46 am on November 2, 2023: memberThe 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.fanquake force-pushed on Nov 2, 2023hebasto commented at 10:18 am on November 3, 2023: memberThe 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.fanquake force-pushed on Nov 8, 2023fanquake force-pushed on Nov 11, 2023hebasto commented at 4:23 pm on November 11, 2023: memberThe PR description looks outdated after the recent push :)fanquake commented at 4:24 pm on November 11, 2023: memberGoing to wait and see if it actually works first.hebasto commented at 4:26 pm on November 11, 2023: memberIs new macOS SDK available at https://bitcoincore.org/depends-sources/sdks/?fanquake commented at 4:29 pm on November 11, 2023: memberNothing 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.hebasto commented at 4:32 pm on November 11, 2023: memberNothing 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…
fanquake commented at 4:36 pm on November 11, 2023: memberYea, 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.fanquake commented at 5:10 pm on November 11, 2023: memberLooks like we’ll have to add a-Wl,-platform_version
into ldflags here.fanquake force-pushed on Nov 15, 2023in 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.
fanquake force-pushed on Nov 15, 2023fanquake force-pushed on Nov 15, 2023fanquake commented at 12:34 pm on November 15, 2023: memberGuix 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
hebasto commented at 5:58 pm on November 15, 2023: memberMy 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
.DrahtBot added the label Needs rebase on Nov 24, 2023fanquake force-pushed on Nov 24, 2023DrahtBot removed the label Needs rebase on Nov 24, 2023fanquake referenced this in commit 160d23677a on Dec 1, 2023fanquake force-pushed on Dec 1, 2023fanquake marked this as ready for review on Dec 1, 2023Sjors commented at 2:29 pm on December 4, 2023: memberRunning 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
fanquake force-pushed on Dec 4, 2023fanquake commented at 2:32 pm on December 4, 2023: memberShould be fixed now. Forgot that we needed to revert to including basically the entire SDK here, to accomodate Qt.fanquake force-pushed on Dec 4, 2023fanquake commented at 3:05 pm on December 4, 2023: member4daaed2ef2253c9661779fa40bfff50655dc7ec45801aba5a39653e7bcdde48e Xcode_15.xip
.c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
.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 984cbe4f84a6eb32153f7fc46c220a0ccb2746f9theuni commented at 4:48 pm on December 4, 2023: memberc0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz
Has been generated and is ready for use now by c-i.
fanquake force-pushed on Dec 4, 2023fanquake commented at 4:50 pm on December 4, 2023: memberHas been generated and is ready for use now by c-i.
Force pushed for a CI run.
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.Sjors commented at 4:54 pm on December 4, 2023: memberGuix 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.
fanquake commented at 4:59 pm on December 4, 2023: memberGuix 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
maflcko commented at 5:29 pm on December 4, 2023: memberhttps://cirrus-ci.com/task/4855730595954688?logs=ci#L8068
0configure:33916: error: External signing is not supported for this Boost version
fanquake commented at 5:45 pm on December 4, 2023: memberhttps://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.
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. ```
build: patch boost process for macOS 14 SDK 51c97ffb69build: use macOS 14 SDK (Xcode 15.0) 8ea45e626efanquake force-pushed on Dec 5, 2023DrahtBot removed the label CI failed on Dec 5, 2023fanquake commented at 10:55 am on December 5, 2023: memberAdded the upstream patch to fix Boost Process.maflcko added the label DrahtBot Guix build requested on Dec 5, 2023fanquake commented at 12:12 pm on December 5, 2023: memberGuix 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
Sjors commented at 1:59 pm on December 5, 2023: memberWhy 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
fanquake commented at 2:00 pm on December 5, 2023: memberBecause the CI explicitly passes –enable-external-signer.bitcoin deleted a comment on Dec 5, 2023bitcoin deleted a comment on Dec 5, 2023hebasto approvedhebasto commented at 3:24 pm on December 5, 2023: memberACK 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
andaarch64
: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.
?
DrahtBot requested review from theuni on Dec 5, 2023maflcko removed the label DrahtBot Guix build requested on Dec 5, 2023fanquake commented at 12:02 pm on December 6, 2023: memberCan 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.fanquake requested review from TheCharlatan on Dec 6, 2023TheCharlatan approvedTheCharlatan commented at 10:29 pm on December 6, 2023: contributorACK 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.
fanquake merged this on Dec 7, 2023fanquake closed this on Dec 7, 2023
fanquake deleted the branch on Dec 7, 2023
fanquake DrahtBot hebasto maflcko Sjors josibake theuni TheCharlatanLabels
Build systemMilestone
27.0
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