https://android.googlesource.com/platform/bionic/+/refs/tags/ndk-r27/libc/include/sys/ucontext.h
~/Android/Sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm:
/*
* This file is auto-generated. Modifications will be lost.
*
* See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
* for more information.
*/
#ifndef _UAPI__ASM_UCONTEXT_H
#define _UAPI__ASM_UCONTEXT_H
#include <linux/types.h>
struct ucontext {
unsigned long uc_flags;
struct ucontext * uc_link;
stack_t uc_stack;
sigset_t uc_sigmask;
__u8 __linux_unused[1024 / 8 - sizeof(sigset_t)];
struct sigcontext uc_mcontext;
};
#endif
#include <ucontext.h>
static_assert(offsetof(ucontext_t, uc_flags) == 0);
static_assert(offsetof(ucontext_t, uc_link) == 8);
static_assert(offsetof(ucontext_t, uc_stack) == 16);
static_assert(offsetof(ucontext_t, uc_sigmask) == 40);
static_assert(offsetof(ucontext_t, uc_mcontext) == 176);
static_assert(sizeof(ucontext_t) == 4560);
fn main() {
const _: () = {
assert!(std::mem::offset_of!(libc::ucontext_t, uc_flags) == 0);
assert!(std::mem::offset_of!(libc::ucontext_t, uc_link) == 8);
assert!(std::mem::offset_of!(libc::ucontext_t, uc_stack) == 16);
assert!(std::mem::offset_of!(libc::ucontext_t, uc_sigmask) == 40);
assert!(std::mem::offset_of!(libc::ucontext_t, uc_mcontext) == 48);
assert!(std::mem::size_of::<libc::ucontext_t>() == 4432);
};
}
I compiled first one using one of latest Android NDK versions (though not in Android Studio), and I built second one in Termux using latest version of libc.
https://android.googlesource.com/platform/bionic/+/refs/tags/ndk-r27/libc/include/sys/ucontext.h
~/Android/Sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm:I compiled first one using one of latest Android NDK versions (though not in Android Studio), and I built second one in Termux using latest version of
libc.