-
Notifications
You must be signed in to change notification settings - Fork 316
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
feat: allow M1 building by removing asm sha on aarch64 #1444
Conversation
Builds have not yet been tested through |
That reminds me, it's about time to setup the aarch CI for the builds, to perhaps see the failures. Related to #1353 |
Resolves #1442 |
ideally instead of disabling it, we should port the working code from the official sha2 impl for aarch64 over |
All tests are passing on the M1 locally ... albeit ... very ... slow ... ly ... |
65ba2be
to
87020e4
Compare
Good news: CI has been enabled for aarch64. Bad news: Testing While I'd like to know that tests pass on aarch64 on a regular basis, we may have to consider constraining the tests run to a much smaller subset (and then perhaps drop back to the |
Hah, nevermind my previous comment. So both configurations pass in ~20 minutes after enabling |
~20 minutes on |
Resolves #1353 |
I run some production infra on ARM in AWS, would be great if you can give me a heads up if this ends up shipping in a stable release, so I can migrate to x86. |
ad5219b
to
418406e
Compare
sha2raw/Cargo.toml
Outdated
[features] | ||
[target."cfg(target_arch = \"aarch64\")".features] | ||
default = [] | ||
[target."cfg(not(target_arch = \"aarch64\"))".features] |
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.
still needs restriction to target_os = "macos"
NOTE: This PR is on hold because it disables |
Related work: RustCrypto/hashes#261 |
fix: upgrade arm to large build instance and split up blst/pairing fix: make sure we're building & running in release mode fix: replace arm.large with arm.medium to conserve CI resources
For people that need this now -- here are pretty minimal changes to get proofs building on the Apple M1 platform. This isn't ideal because it removes asm usage on aarch64, but works for now. Some tests fail, so patching those up is next.
Build as follows: