-
Notifications
You must be signed in to change notification settings - Fork 995
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
Fix thread_state64
on aarch64-apple-darwin
#1990
Conversation
@JohnTitor: no appropriate reviewer found, use r? to override |
9d96b67
to
9906599
Compare
@syrusakbary Could you confirm if this patch works on your end? I cannot do by myself as not having Apple Silicon Mac. And cc @shepmaster could you also review this as you're familiar with this target? |
@bors r+ |
📌 Commit 9906599 has been approved by |
Fix `thread_state64` on `aarch64-apple-darwin` Fixes #1977
💔 Test failed - checks-actions |
@bors r+ |
📌 Commit 36f9c1f has been approved by |
Fix `thread_state64` on `aarch64-apple-darwin` Fixes #1977
💥 Test timed out |
@bors retry |
☀️ Test successful - checks-actions, checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13 |
Make test suite pass on macOS on aarch64 While working on #2007 I tried to run `cargo test` in `libc-test`, which failed, because the definition of `__darwin_mcontext64` was incomplete (see #1990). This adds definitions for the exception state and the floating point state as well. `libc-test` still does not pass, because I use the type `[u128; 32]` for the `__v` field of `__darwin_arm_neon_state64` (in C it is `__uint128_t __v[32]`. `ctest2` does not translate `u128` to `__uint128_t` and the generated C code does not compile. Any ideas for working around this?
Make test suite pass on macOS on aarch64 While working on #2007 I tried to run `cargo test` in `libc-test`, which failed, because the definition of `__darwin_mcontext64` was incomplete (see #1990). This adds definitions for the exception state and the floating point state as well. `libc-test` still does not pass, because I use the type `[u128; 32]` for the `__v` field of `__darwin_arm_neon_state64` (in C it is `__uint128_t __v[32]`. `ctest2` does not translate `u128` to `__uint128_t` and the generated C code does not compile. Any ideas for working around this?
Since libc 0.2.82, the issue rust-lang/libc#1977 has been fixed with rust-lang/libc#1990. Our current version of libc is 0.2.87. Let's update our code to remove the `__darwin_arm_thread_state64` type, and use the one from libc.
Fixes #1977