diff --git a/libc-test/semver/linux-gnu-s390x.txt b/libc-test/semver/linux-gnu-s390x.txt new file mode 100644 index 0000000000000..ec90f4184b638 --- /dev/null +++ b/libc-test/semver/linux-gnu-s390x.txt @@ -0,0 +1,4 @@ +PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP +PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +sysctl diff --git a/libc-test/semver/linux-s390x.txt b/libc-test/semver/linux-s390x.txt index 96be9c25e4f3c..34ebf4da7ab24 100644 --- a/libc-test/semver/linux-s390x.txt +++ b/libc-test/semver/linux-s390x.txt @@ -21,9 +21,6 @@ NFT_MSG_DELOBJ NFT_MSG_GETOBJ NFT_MSG_GETOBJ_RESET NFT_MSG_NEWOBJ -PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP -PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP -PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP SIGSTKFLT SIGUNUSED SO_BSDCOMPAT @@ -113,6 +110,5 @@ makecontext mcontext_t setcontext swapcontext -sysctl termios2 ucontext_t diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index c312505a7d77f..afd5cf4040a28 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -7,6 +7,7 @@ pub type wchar_t = i32; pub type greg_t = u64; pub type __u64 = u64; pub type __s64 = i64; +pub type statfs64 = statfs; s! { pub struct ipc_perm { @@ -68,13 +69,27 @@ s! { pub st_blocks: crate::blkcnt64_t, __unused: [c_long; 3], } + + pub struct statfs { + pub f_type: c_uint, + pub f_bsize: c_uint, + pub f_blocks: crate::fsblkcnt_t, + pub f_bfree: crate::fsblkcnt_t, + pub f_bavail: crate::fsblkcnt_t, + pub f_files: crate::fsfilcnt_t, + pub f_ffree: crate::fsfilcnt_t, + pub f_fsid: crate::fsid_t, + pub f_namelen: c_uint, + pub f_frsize: c_uint, + pub f_flags: c_uint, + pub f_spare: [c_uint; 4], + } } s_no_extra_traits! { - // FIXME(union): This is actually a union. - pub struct fpreg_t { + pub union fpreg_t { pub d: c_double, - // f: c_float, + pub f: c_float, } } @@ -715,3 +730,4 @@ pub const SYS_futex_waitv: c_long = 449; pub const SYS_set_mempolicy_home_node: c_long = 450; pub const SYS_cachestat: c_long = 451; pub const SYS_fchmodat2: c_long = 452; +pub const SYS_mseal: c_long = 462; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index bf2100cc60747..0a4e01ade9fc1 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -372,8 +372,8 @@ s! { pub tcpi_snd_wnd: u32, } - // MIPS implementation is special (see mips arch folders) - #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] + // MIPS/s390x implementation is special (see arch folders) + #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "s390x")))] pub struct statfs { pub f_type: c_ulong, pub f_bsize: c_ulong, @@ -389,8 +389,8 @@ s! { pub f_spare: [c_ulong; 4], } - // MIPS implementation is special (see mips arch folders) - #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] + // MIPS/s390x implementation is special (see arch folders) + #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "s390x")))] pub struct statfs64 { pub f_type: c_ulong, pub f_bsize: c_ulong,