-
Notifications
You must be signed in to change notification settings - Fork 492
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
Support arm cross compile #2923
Support arm cross compile #2923
Conversation
did you test the resulting binaries on Raspberry PI ? |
I want to but I don't have an armv6 raspberry pi. Do you happen to have one handy? |
I have one in the office - could you send me the produced binary and I'll give it a try tomorrow morning ? |
Codecov Report
@@ Coverage Diff @@
## master #2923 +/- ##
==========================================
- Coverage 47.33% 47.32% -0.02%
==========================================
Files 351 351
Lines 56523 56523
==========================================
- Hits 26754 26748 -6
- Misses 26760 26766 +6
Partials 3009 3009
Continue to review full report at Codecov.
|
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.
Assuming test on raspberry pi goes well, lgtm
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.
I've tested this on raspberry pi 2, and it's working just fine.
Successfully tested on raspberry pi 4 as well. |
Summary
This PR is to take advantage of arm64's ability to run arm32 binaries. Using this, we are able to build for arm32 on arm64 hosts by running containers with arm32 OS's on them. This is much faster than our qemu set up because it doesn't rely on emulations. The binaries produced with this process work and the arm64/arm32 build times are as fast as the intel builds, reducing our build time by about an hour.
Test Plan
I ran our build pipeline against this branch using arm64 hosts and tested the produced artifacts using emulated cpu's to make sure they still work on their native architectures.