-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: macOS toolchain bump #19817
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: macOS toolchain bump #19817
Conversation
should someone verify if the right sources have been taken from upstream (unchanged)? Why is the snv suffix in the library name required? |
The build/tools/llvm-config/BuildVariables.inc
35:#define LLVM_DYLIB_VERSION "8svn"
build/include/llvm/Config/config.h
330:#define PACKAGE_STRING "LLVM 8.0.0svn"
333:#define PACKAGE_VERSION "8.0.0svn"
build/include/llvm/Config/llvm-config.h
78:#define LLVM_VERSION_STRING "8.0.0svn" etc.
I have done some diffs and can post them shortly. |
I've posted a diff of the Clang and libtapi sources here: https://gist.github.com/fanquake/1512109cc69d0a61f352e326f34bb90a. You can recreate the using the following steps: git clone https://github.com/apple/llvm-project
git clone https://github.com/tpoechtrager/apple-libtapi
cd llvm-project
git checkout 729748d085a90bd2a4af36efbfb2dc33b4704de3
rm -rf clang/test
rm -rf clang/unittests/
rm -rf clang/www
cd ..
# compare clang
diffoscope --exclude-directory-metadata=yes llvm-project/clang apple-libtapi/src/llvm/projects/clang/ libtapi: wget https://opensource.apple.com/tarballs/tapi/tapi-1100.0.11.tar.gz
tar xf tapi-1100.0.11.tar.gz
cd tapi-1100.0.11.tar.gz
rm -rf test/
rm -rf unittests/
cd ..
# compare libtapi
diffoscope --exclude-directory-metadata=yes tapi-1100.0.11 apple-libtapi/src/libtapi If anyone wants an intro to |
TIL, very nice! 👏 |
|
Steps to reproduce:
|
I've wanted this kind of thing forever. I wish this was cross-platform. |
This needs updating for a newer libtapi update, and one of either @dongcarl's or @hebasto's "fix building dependant libs" commits pulled in to fix the rebuilding. |
826d429
to
1a1fc87
Compare
@MarcoFalke: you need to clear the Tested ACK 1a1fc87 - tested with Xcode-12.2-12B45b |
depends should ideally detect missing or outdated sources automatically and download them. This is how it used to work, am I wrong? |
Seeing as this is now useful for a reason other than mentioned in the OP, I'll address outstanding issues and take this out of draft.
IIRC this has never been the case for the |
1a1fc87
to
061e155
Compare
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
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. |
061e155
to
a09d6db
Compare
I've modified this to be a macOS toolchain bump, based on #21457, rather than updating libtapi individually. |
merge bitcoin#19817, bitcoin#20470, bitcoin#22993: macOS C++17 bump
update build system for darwin cross-compile to match bitcoin upstream: - bitcoin/bitcoin#21457 - split libtapi and clang out of native_cctools - bitcoin/bitcoin#19817 - macOS toolchain bump
update build system for darwin cross-compile to match bitcoin upstream: - bitcoin/bitcoin#21457 - split libtapi and clang out of native_cctools - bitcoin/bitcoin#19817 - macOS toolchain bump
…ge)_download_file` assignments d644c45 build, refactor: Drop redundant `$(package)_download_file` assignments (Hennadii Stepanov) Pull request description: No need to specify `$(package)_download_file` when it is equal to `$(package)_file_name`. Historically, before bitcoin/bitcoin#19817, distinct `$(package)_download_file` and `$(package)_file_name` were used for better portability (I guess) by removing `+` characters from a file name. The only package which still use file renaming is `native_capnp`: https://github.com/bitcoin/bitcoin/blob/eca694a4e78d54ce4e29b388b3e81b06e55c2293/depends/packages/native_capnp.mk#L3-L5 ACKs for top commit: shaavan: ACK d644c45 fanquake: ACK d644c45 Tree-SHA512: 488dd0f55cea077174e78a75d8385bacb1a5463883cadeb5fd7c9426865ea5f3a8bad0bd6e8e9d530bce6f0c1715349b3fbabb4e22634348cdd68f5fc8a3c53b
…load_file` assignments d644c45 build, refactor: Drop redundant `$(package)_download_file` assignments (Hennadii Stepanov) Pull request description: No need to specify `$(package)_download_file` when it is equal to `$(package)_file_name`. Historically, before bitcoin#19817, distinct `$(package)_download_file` and `$(package)_file_name` were used for better portability (I guess) by removing `+` characters from a file name. The only package which still use file renaming is `native_capnp`: https://github.com/bitcoin/bitcoin/blob/eca694a4e78d54ce4e29b388b3e81b06e55c2293/depends/packages/native_capnp.mk#L3-L5 ACKs for top commit: shaavan: ACK d644c45 fanquake: ACK d644c45 Tree-SHA512: 488dd0f55cea077174e78a75d8385bacb1a5463883cadeb5fd7c9426865ea5f3a8bad0bd6e8e9d530bce6f0c1715349b3fbabb4e22634348cdd68f5fc8a3c53b
…load_file` assignments d644c45 build, refactor: Drop redundant `$(package)_download_file` assignments (Hennadii Stepanov) Pull request description: No need to specify `$(package)_download_file` when it is equal to `$(package)_file_name`. Historically, before bitcoin#19817, distinct `$(package)_download_file` and `$(package)_file_name` were used for better portability (I guess) by removing `+` characters from a file name. The only package which still use file renaming is `native_capnp`: https://github.com/bitcoin/bitcoin/blob/eca694a4e78d54ce4e29b388b3e81b06e55c2293/depends/packages/native_capnp.mk#L3-L5 ACKs for top commit: shaavan: ACK d644c45 fanquake: ACK d644c45 Tree-SHA512: 488dd0f55cea077174e78a75d8385bacb1a5463883cadeb5fd7c9426865ea5f3a8bad0bd6e8e9d530bce6f0c1715349b3fbabb4e22634348cdd68f5fc8a3c53b
…load_file` assignments d644c45 build, refactor: Drop redundant `$(package)_download_file` assignments (Hennadii Stepanov) Pull request description: No need to specify `$(package)_download_file` when it is equal to `$(package)_file_name`. Historically, before bitcoin#19817, distinct `$(package)_download_file` and `$(package)_file_name` were used for better portability (I guess) by removing `+` characters from a file name. The only package which still use file renaming is `native_capnp`: https://github.com/bitcoin/bitcoin/blob/eca694a4e78d54ce4e29b388b3e81b06e55c2293/depends/packages/native_capnp.mk#L3-L5 ACKs for top commit: shaavan: ACK d644c45 fanquake: ACK d644c45 Tree-SHA512: 488dd0f55cea077174e78a75d8385bacb1a5463883cadeb5fd7c9426865ea5f3a8bad0bd6e8e9d530bce6f0c1715349b3fbabb4e22634348cdd68f5fc8a3c53b
…load_file` assignments d644c45 build, refactor: Drop redundant `$(package)_download_file` assignments (Hennadii Stepanov) Pull request description: No need to specify `$(package)_download_file` when it is equal to `$(package)_file_name`. Historically, before bitcoin#19817, distinct `$(package)_download_file` and `$(package)_file_name` were used for better portability (I guess) by removing `+` characters from a file name. The only package which still use file renaming is `native_capnp`: https://github.com/bitcoin/bitcoin/blob/eca694a4e78d54ce4e29b388b3e81b06e55c2293/depends/packages/native_capnp.mk#L3-L5 ACKs for top commit: shaavan: ACK d644c45 fanquake: ACK d644c45 Tree-SHA512: 488dd0f55cea077174e78a75d8385bacb1a5463883cadeb5fd7c9426865ea5f3a8bad0bd6e8e9d530bce6f0c1715349b3fbabb4e22634348cdd68f5fc8a3c53b
Bumps our macOS toolchain to be using the following:
which are currently the most recent releases available as open source. See upstream
cctools
andlibtapi
.This should improve the possibility of Apple ARM cross-compilation in depends.
This also removes our patching out of pthreads usage in
ld64
. There have been multiple changes sinceld64 450.3
, which have likely fixed the non-determinism we were working around. i.e from InputFiles.cpp:Guix Build:
Gitian Build: