-
Notifications
You must be signed in to change notification settings - Fork 105
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
aarch64 fix for big endian types #1786
Conversation
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1786 +/- ##
=======================================
Coverage 87.46% 87.46%
=======================================
Files 16 16
Lines 6021 6021
=======================================
Hits 5266 5266
Misses 755 755 ☔ View full report in Codecov by Sentry. |
Thanks for this! A few small things:
|
e2b4cdc
to
893cad7
Compare
@joshlf fixed the stuff that you requested, |
it's failing because 'aarch64_be-unknown-linux-gnu' is not provided by rustup, only rustc
|
Ah gotcha. I confirmed locally that this works: $ ./cargo.sh +nightly build --target=aarch64_be-unknown-linux-gnu -Zbuild-std --features simd Can you add a new build target (under |
c729657
to
9bce19f
Compare
8f7c542
to
4f79280
Compare
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.
Okay amazing, thank you for your work on this! Once this merges, I can publish a new release that includes it.
Unfortunately I think that the build failure you're currently seeing is going to require you to compute the correct nightly to install based on the contents of Here's how we do that in the build matrix - here it should be much simpler because you only need to support a single toolchain and none of the Miri stuff is relevant: zerocopy/.github/workflows/ci.yml Lines 264 to 321 in a9f09d7
|
fecaf42
to
371e51d
Compare
@joshlf not sure what dependency is missing |
You need to edit this line: zerocopy/.github/workflows/ci.yml Line 707 in a9f09d7
...to include |
Thanks again for your work on this! |
Please fix this by fixing the intrinsics upstream. Fixing this in every single crate is not less effort than fixing it in stdarch: rust-lang/stdarch#1484 (comment) |
@workingjubilee is the lack of support in zerocopy breaking you? I'm hesitant for us to own a fix in stdarch unless there are users who actively need this feature. |
@joshlf Just to be clear, you're fine. If you want to accept this fix, that's okay. But I just don't think that fixing zerocopy, memchr, half, etc., in a fix that might be best-off reverted once stdarch is fixed, is better than fixing stdarch. |
Okay gotcha, that makes sense. |
NEON intrinsics are not supported on aarch64 big endian targets. Change to use fall back types for big endian aarch64.
tested on aarch64_be-unknown-linux-gnu_ilp32 and aarch64_be-unknown-linux-gnu