fanquake
commented at 8:11 am on August 27, 2020:
member
Bumps our macOS toolchain to be using the following:
Clang 10.0.1 (gitian) & Clang 10.0.0 (Guix)
ld64 609
libtapi 1100.0.11
cctools 973.0.1
Xcode 12.1
macOS SDK 10.15.6
which are currently the most recent releases available as open source. See upstream cctools and libtapi.
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 since ld64 450.3, which have likely fixed the non-determinism we were working around. i.e from InputFiles.cpp:
0// <rdar://problem/15002251> make implicit dylib order be deterministic by sorting by install_name
1 std::sort(implicitDylibs.begin(), implicitDylibs.end(), DylibByInstallNameSorter());
0// <rdar://problem/42675402> ld64 output is not deterministic due to dylib processing order
1 std::sort(unprocessedDylibs.begin(), unprocessedDylibs.end(), [](const ld::dylib::File* lhs, const ld::dylib::File* rhs) {
2returnstrcmp(lhs->path(), rhs->path()) <0;
3 });
Why is the snv suffix in the library name required?
fanquake
commented at 2:24 pm on August 27, 2020:
member
Why is the snv suffix in the library name required?
The .8svn suffix comes from LLVMs dylib naming, which is the LLVM major version number + the LLVM version suffix (svn). After building you can grep and find:
DrahtBot removed the label
Needs Guix build
on Aug 29, 2020
DrahtBot removed the label
Needs gitian build
on Aug 29, 2020
MarcoFalke
commented at 5:46 pm on August 29, 2020:
member
0make: Entering directory '/home/ubuntu/build/bitcoin/depends'1Extracting native_cctools...2/home/ubuntu/cache/common/55562e4073dea0fbfd0b20e0bf69ffe6390c7f97.tar.gz: OK
3/home/ubuntu/cache/common/clang-llvm-8.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz: OK
4sha256sum: /home/ubuntu/cache/common/86f43cdb62a3ceb39f3ee6e4568eded67a4912e8.tar.gz: No such file or directory
5/home/ubuntu/cache/common/86f43cdb62a3ceb39f3ee6e4568eded67a4912e8.tar.gz: FAILED open or read
6sha256sum: WARNING: 1 listed file could not be read
7funcs.mk:260: recipe for target '/home/ubuntu/build/bitcoin/depends/work/build/x86_64-apple-darwin16/native_cctools/55562e4073dea0fbfd0b20e0bf69ffe6390c7f97-cd4b9b6d54b/.stamp_extracted' failed
8make: *** [/home/ubuntu/build/bitcoin/depends/work/build/x86_64-apple-darwin16/native_cctools/55562e4073dea0fbfd0b20e0bf69ffe6390c7f97-cd4b9b6d54b/.stamp_extracted] Error 19make: Leaving directory '/home/ubuntu/build/bitcoin/depends'
MarcoFalke
commented at 7:03 pm on August 29, 2020:
member
Steps to reproduce:
0 git checkout bitcoin-core/master
1 cd depends/2 make download HOST=x86_64-apple-darwin16
3 git cherry-pick 826d42903da5a927f296be1fa86096bce53d5f1b
4 make HOST=x86_64-apple-darwin16
laanwj
commented at 10:22 am on September 3, 2020:
member
I’ve wanted this kind of thing forever. I wish this was cross-platform.
fanquake marked this as a draft
on Sep 15, 2020
fanquake
commented at 8:44 am on September 15, 2020:
member
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.
fanquake force-pushed
on Sep 19, 2020
jonasschnelli
commented at 10:01 am on December 4, 2020:
contributor
@MarcoFalke: you need to clear the depends/sources/ dir (a make clean) is not sufficient.
Tested ACK1a1fc87169bc18db6a9897595401cf81c9b7427a - tested with Xcode-12.2-12B45b
MarcoFalke
commented at 10:09 am on December 4, 2020:
member
depends should ideally detect missing or outdated sources automatically and download them. This is how it used to work, am I wrong?
fanquake
commented at 1:15 pm on December 9, 2020:
member
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.
depends should ideally detect missing or outdated sources automatically and download them. This is how it used to work, am I wrong?
IIRC this has never been the case for the native_cctools package. However it’s always been masked by the fact that we’d always be bumping Clang when changing libtapi, so you’d always be rebuilding anyways.
fanquake force-pushed
on Jan 29, 2021
DrahtBot
commented at 4:07 pm on March 17, 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:
#21420 (build, qt: No longer need to patch translation.pro by hebasto)
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.
fanquake renamed this:
build: libtapi 1100.0.11
build: macOS toolchain bump
on Mar 18, 2021
fanquake force-pushed
on Mar 18, 2021
fanquake
commented at 2:47 am on March 18, 2021:
member
I’ve modified this to be a macOS toolchain bump, based on #21457, rather than updating libtapi individually.
fanquake added this to the milestone 22.0
on Mar 18, 2021
MarcoFalke deleted a comment
on Mar 18, 2021
MarcoFalke deleted a comment
on Mar 18, 2021
fanquake referenced this in commit
1a0d1452a0
on Mar 31, 2021
hebasto
commented at 0:30 am on March 31, 2021:
member
un-draft?
:)
fanquake force-pushed
on Mar 31, 2021
fanquake marked this as ready for review
on Mar 31, 2021
sidhujag referenced this in commit
621eab9ff7
on Mar 31, 2021
hebasto
commented at 3:31 am on March 31, 2021:
member
Dark mode is ok on my side after a clean rebuild and make deploy:
Note that I’ve re ran all build steps from the build-osx readme to avoid any version conflicts.
hebasto
commented at 4:47 pm on March 31, 2021:
member
Dark mode is ok on my side after a clean rebuild and make deploy:
Actually, I tested bitcoin-1e18d58d10d6-osx-unsigned.dmg gitian build. And broken dark mode support looks weird.
hebasto
commented at 4:59 pm on March 31, 2021:
member
Tested 1e18d58
On macOS Big Sur 11.2.3 (20D91) the dark mode (bitcoin-core/gui#154) does not work.
@fanquake
Could bumping Xcode/SDK be premature?
Qt docs mention only Xcode 10 (10.14 SDK) for Qt 5.12 :man_shrugging:
Maybe postpone it until bumping Qt version to 5.15?
fanquake
commented at 0:14 am on April 1, 2021:
member
Could bumping Xcode/SDK be premature?
Qt docs mention only Xcode 10 (10.14 SDK) for Qt 5.12 🤷♂️
Just because Xcode 10 is listed on that page, doesn’t mean it’s the only version that will work (I assume 10 was just the latest Xcode release at the time). We are already building with Xcode 11 (the Xcode version is also basically irrelevant, and Xcode itself is not even present when cross-compiling), and the 10.15 SDK, and anyone building depends on a macOS machine is already building using Xcode 12+ and an 11.x version of the SDK, and that all currently works fine.
hebasto
commented at 1:04 am on April 1, 2021:
member
FWIW, gitian build with dropped “build: Xcode 12.1, macOS SDK 10.15.6” commit also has a dark mode regression.
Assuming that the root of problem lies elsewhere…
hebasto
commented at 3:26 am on April 1, 2021:
member
Here are results of my tests:
dark mode works if commit “build: Clang 10.0.1” is dropped
substitute depends/x86_64-apple-darwin18/native/bin/clang and depends/x86_64-apple-darwin18/native/lib/clang/ with ones compiled with the new toolchain
substitute depends/x86_64-apple-darwin18/native/bin/clang and depends/x86_64-apple-darwin18/native/lib/clang/ with ones compiled with the old toolchain
make deploy
test Bitcoin-Core.dmg on macOS 11.2.3
Result: the dark mode works as expected.
fanquake force-pushed
on Apr 28, 2021
fanquake
commented at 3:50 am on April 28, 2021:
member
Added a commit to start using -stdlib++-isystem now that we are using Clang 10.
MarcoFalke deleted a comment
on Apr 28, 2021
MarcoFalke removed the label
Needs Guix build
on Apr 28, 2021
MarcoFalke added the label
Needs gitian build
on Apr 28, 2021
MarcoFalke added the label
Needs Guix build
on Apr 28, 2021
hebasto
commented at 5:18 pm on April 28, 2021:
member
DrahtBot removed the label
Needs gitian build
on Apr 30, 2021
build: libtapi 1100.0.119b193cd2a3
build: Clang 10.0.1
LLVM 8 has inherent nondeterminism in the compiler, fixed in LLVM 9+.
f48f187cce
build: native cctools 973.0.1, ld64 6099ed2f19d38
build: Xcode 12.1, macOS SDK 10.15.6c29cba44b3
build: no longer patch threading out of ld64
Changes introduced in ld64-450.3 have likely removed the need for us to
patch out pthreads. See:
https://opensource.apple.com/source/ld64/ld64-450.3/src/ld/InputFiles.cpp.auto.html.
b80a6af9e5
guix: use Clang 10 for the macOS cross compile51d9d1607f
build: use -stdlib++-isystem with Clang 10a5550f877a
fanquake force-pushed
on May 1, 2021
fanquake removed the label
Needs Guix build
on May 1, 2021
fanquake added the label
Needs gitian build
on May 1, 2021
fanquake added the label
Needs Guix build
on May 1, 2021
fanquake
commented at 6:09 am on May 1, 2021:
member
Rebased for #21793. Will add updated gitian and guix build hashes to the PR description.
MarcoFalke deleted a comment
on May 1, 2021
hebasto approved
hebasto
commented at 10:54 am on May 1, 2021:
member
Do we want to leapfrog to Xcode 12.5 or just leave this? There is a new SDK version 10.15.7 which was a security update, but I don’t know if it’s relevant to the things we use.
0Compiling libtapi_1100011 MacOS
1--- Building for focal amd64 ---
2Stopping target if it is up
3Error response from daemon: No such container: gitian-target
4Error: No such container: gitian-target
5Making a new image copy
6Starting target
7Checking if target is upUnable to find image 'base-focal-amd64:latest' locally
8docker: Error response from daemon: pull access denied for base-focal-amd64, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
9See 'docker run --help'.
10..............................
11Error: No such container: gitian-target
hebasto
commented at 2:03 pm on May 1, 2021:
member
Having some trouble doing a gitian build, probably unrelated to this PR though…
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-18 21:12 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me