Skip to content

Commit 7398bc4

Browse files
fix(android/aarch64): use libc::ucontext_t from Android NDK
1 parent 6029717 commit 7398bc4

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

src/unix/linux_like/android/b32/arm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ s! {
3131

3232
pub struct __c_anonymous_uc_sigmask_with_padding {
3333
pub uc_sigmask: crate::sigset_t,
34-
/* Android has a wrong (smaller) sigset_t on x86. */
34+
/* Android has a wrong (smaller) sigset_t on ARM. */
3535
__padding_rt_sigset: Padding<u32>,
3636
}
3737

src/unix/linux_like/android/b64/aarch64/mod.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@ s! {
6363
pub uc_flags: c_ulong,
6464
pub uc_link: *mut ucontext_t,
6565
pub uc_stack: crate::stack_t,
66-
pub uc_sigmask: crate::sigset_t,
66+
pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask,
67+
/* The kernel adds extra padding after uc_sigmask to match
68+
* glibc sigset_t on ARM. */
69+
__padding: Padding<[c_char; 128 - size_of::<crate::sigset_t>()]>,
6770
pub uc_mcontext: mcontext_t,
6871
}
6972

@@ -85,6 +88,11 @@ s! {
8588
}
8689

8790
s_no_extra_traits! {
91+
pub union __c_anonymous_uc_sigmask {
92+
uc_sigmask: crate::sigset_t,
93+
uc_sigmask64: crate::sigset64_t,
94+
}
95+
8896
#[repr(align(16))]
8997
pub struct max_align_t {
9098
priv_: [f32; 8],

0 commit comments

Comments
 (0)