Skip to content

Commit 0ec925d

Browse files
committed
Auto merge of #1990 - JohnTitor:arm-macos-state64, r=JohnTitor
Fix `thread_state64` on `aarch64-apple-darwin` Fixes #1977
2 parents 9d70c06 + 36f9c1f commit 0ec925d

File tree

4 files changed

+62
-40
lines changed

4 files changed

+62
-40
lines changed

.github/workflows/bors.yml

+2-10
Original file line numberDiff line numberDiff line change
@@ -226,12 +226,10 @@ jobs:
226226
name: Semver Linux
227227
needs: build_channels_linux
228228
runs-on: ubuntu-20.04
229+
continue-on-error: true
229230
strategy:
230231
fail-fast: true
231232
steps:
232-
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
233-
with:
234-
github_token: "${{ secrets.GITHUB_TOKEN }}"
235233
- uses: actions/checkout@v2
236234
- name: Setup Rust toolchain
237235
# Should update the semverver revision in semver.sh if we touch nightly ver.
@@ -243,12 +241,10 @@ jobs:
243241
name: Semver macOS
244242
needs: build_channels_macos
245243
runs-on: macos-10.15
244+
continue-on-error: true
246245
strategy:
247246
fail-fast: true
248247
steps:
249-
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
250-
with:
251-
github_token: "${{ secrets.GITHUB_TOKEN }}"
252248
- uses: actions/checkout@v2
253249
- name: Setup Rust toolchain
254250
# FIXME: Pin nightly version to make semverver compilable.
@@ -291,8 +287,6 @@ jobs:
291287
docker_switch,
292288
build_channels_linux,
293289
build_channels_macos,
294-
semver_linux,
295-
semver_macos,
296290
docs,
297291
]
298292

@@ -313,8 +307,6 @@ jobs:
313307
docker_switch,
314308
build_channels_linux,
315309
build_channels_macos,
316-
semver_linux,
317-
semver_macos,
318310
docs,
319311
]
320312

src/unix/bsd/apple/b64/aarch64.rs

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
s! {
2+
pub struct __darwin_mcontext64 {
3+
pub __es: ::__darwin_x86_exception_state64,
4+
pub __ss: __darwin_arm_thread_state64,
5+
pub __fs: ::__darwin_x86_float_state64,
6+
}
7+
8+
pub struct __darwin_arm_thread_state64 {
9+
pub __x: [u64; 29],
10+
pub __fp: u64,
11+
pub __lr: u64,
12+
pub __sp: u64,
13+
pub __pc: u64,
14+
pub __cpsr: u32,
15+
pub __pad: u32,
16+
}
17+
}

src/unix/bsd/apple/b64/mod.rs

+12-30
Original file line numberDiff line numberDiff line change
@@ -59,43 +59,13 @@ s! {
5959
pub uc_mcontext: mcontext_t,
6060
}
6161

62-
pub struct __darwin_mcontext64 {
63-
pub __es: __darwin_x86_exception_state64,
64-
pub __ss: __darwin_x86_thread_state64,
65-
pub __fs: __darwin_x86_float_state64,
66-
}
67-
6862
pub struct __darwin_x86_exception_state64 {
6963
pub __trapno: u16,
7064
pub __cpu: u16,
7165
pub __err: u32,
7266
pub __faultvaddr: u64,
7367
}
7468

75-
pub struct __darwin_x86_thread_state64 {
76-
pub __rax: u64,
77-
pub __rbx: u64,
78-
pub __rcx: u64,
79-
pub __rdx: u64,
80-
pub __rdi: u64,
81-
pub __rsi: u64,
82-
pub __rbp: u64,
83-
pub __rsp: u64,
84-
pub __r8: u64,
85-
pub __r9: u64,
86-
pub __r10: u64,
87-
pub __r11: u64,
88-
pub __r12: u64,
89-
pub __r13: u64,
90-
pub __r14: u64,
91-
pub __r15: u64,
92-
pub __rip: u64,
93-
pub __rflags: u64,
94-
pub __cs: u64,
95-
pub __fs: u64,
96-
pub __gs: u64,
97-
}
98-
9969
pub struct __darwin_x86_float_state64 {
10070
pub __fpu_reserved: [::c_int; 2],
10171
__fpu_fcw: ::c_short,
@@ -220,3 +190,15 @@ cfg_if! {
220190
pub use self::align::*;
221191
}
222192
}
193+
194+
cfg_if! {
195+
if #[cfg(target_arch = "x86_64")] {
196+
mod x86_64;
197+
pub use self::x86_64::*;
198+
} else if #[cfg(target_arch = "aarch64")] {
199+
mod aarch64;
200+
pub use self::aarch64::*;
201+
} else {
202+
// Unknown target_arch
203+
}
204+
}

src/unix/bsd/apple/b64/x86_64.rs

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
s! {
2+
pub struct __darwin_mcontext64 {
3+
pub __es: ::__darwin_x86_exception_state64,
4+
pub __ss: __darwin_x86_thread_state64,
5+
pub __fs: ::__darwin_x86_float_state64,
6+
}
7+
8+
pub struct __darwin_x86_thread_state64 {
9+
pub __rax: u64,
10+
pub __rbx: u64,
11+
pub __rcx: u64,
12+
pub __rdx: u64,
13+
pub __rdi: u64,
14+
pub __rsi: u64,
15+
pub __rbp: u64,
16+
pub __rsp: u64,
17+
pub __r8: u64,
18+
pub __r9: u64,
19+
pub __r10: u64,
20+
pub __r11: u64,
21+
pub __r12: u64,
22+
pub __r13: u64,
23+
pub __r14: u64,
24+
pub __r15: u64,
25+
pub __rip: u64,
26+
pub __rflags: u64,
27+
pub __cs: u64,
28+
pub __fs: u64,
29+
pub __gs: u64,
30+
}
31+
}

0 commit comments

Comments
 (0)