-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Add cross compilation for OSX ARM64 (Apple Silicon) #10981
Add cross compilation for OSX ARM64 (Apple Silicon) #10981
Conversation
This should allow Prysm to compile on Ubuntu 21.10 and 22.04
…grail-bazel-toolchain
…grail-bazel-toolchain
8dda652
to
3a2bd72
Compare
3a2bd72
to
decd317
Compare
Hi, thanks so much for getting this to work! I have tried it locally and my eyes were pleased to see a completed osx arm64 binary. Could you please provide instructions on how the SDK was generated? I can review that and then we can proceed with your nice list of action items. Thanks again, this is huge! |
These are more or less the steps I took to create the SDK on a AMD64 Ubuntu 22.04 system:
This will produce a MacOSX12.3.sdk.tar.xz (if you used xcode 13.3 series, the SDK version should be 12.3). Then we need to upload that somewhere so the script can download it, or include it in the repo, whatever you think it is best. |
Working on review of this now. |
…/cross-compilation-apple-silicon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Absolutely amazing work! Thanks so much for this change and your patience with code review.
These changes look great. The only remaining task is that I will need to build a new image for our CI runner as it is an extension of the rbe-worker image. Until then, we will see a few tasks failing in buildkite.
Seems like ci fails to build some images @prestonvanloon @leolara |
Yes, @prestonvanloon mentioned that this would happen in previous comment. I think the docker image should be built and uploaded to your registry. Then the code changed to point to your registry |
What type of PR is this?
Feature on compilation infrastructure
What does this PR do? Why is it needed?
Implements cross compilation from Linux AMD64 to OSX ARM64 (Apple Silicon)
In more detail it:
Which issues(s) does this PR fix?
Fixes #9385 #7950
Other notes for review
TODO (could be done by core team or me, as you wish):