diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 89e5d47c7..0d24f4ae7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,6 +62,7 @@ jobs: cargo update --package=lock_api --precise=0.4.12 cargo update --package=rayon --precise=1.10.0 cargo update --package=rayon-core --precise=1.12.1 + cargo update --package=windows-sys@0.61.0 --precise=0.60.2 - run: > rustup target add @@ -544,6 +545,7 @@ jobs: cargo update --package=lock_api --precise=0.4.12 cargo update --package=rayon --precise=1.10.0 cargo update --package=rayon-core --precise=1.12.1 + cargo update --package=windows-sys@0.61.0 --precise=0.60.2 - run: | cargo test --verbose --features=all-apis --release --workspace -- --nocapture diff --git a/Cargo.toml b/Cargo.toml index 73c3ec4d1..97f186453 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ rustc-std-workspace-alloc = { version = "1.0.0", optional = true } # not aliased # libc backend can be selected via adding `--cfg=rustix_use_libc` to # `RUSTFLAGS` or enabling the `use-libc` cargo feature. [target.'cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_endian = "little", any(target_arch = "s390x", target_arch = "powerpc")), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc"), all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))'.dependencies] -linux-raw-sys = { version = "0.9.3", default-features = false, features = ["general", "errno", "ioctl", "no_std", "elf"] } +linux-raw-sys = { version = "0.11.0", default-features = false, features = ["auxvec", "general", "errno", "ioctl", "no_std", "elf"] } libc_errno = { package = "errno", version = "0.3.10", default-features = false, optional = true } libc = { version = "0.2.171", default-features = false, optional = true } diff --git a/src/backend/linux_raw/param/auxv.rs b/src/backend/linux_raw/param/auxv.rs index ca86822f0..2c02b5bd7 100644 --- a/src/backend/linux_raw/param/auxv.rs +++ b/src/backend/linux_raw/param/auxv.rs @@ -20,14 +20,14 @@ use core::ptr::{null_mut, read_unaligned, NonNull}; use core::sync::atomic::AtomicU8; use core::sync::atomic::Ordering::Relaxed; use core::sync::atomic::{AtomicPtr, AtomicUsize}; -use linux_raw_sys::elf::*; -use linux_raw_sys::general::{ +use linux_raw_sys::auxvec::{ AT_CLKTCK, AT_EXECFN, AT_HWCAP, AT_HWCAP2, AT_MINSIGSTKSZ, AT_NULL, AT_PAGESZ, AT_SYSINFO_EHDR, }; #[cfg(feature = "runtime")] -use linux_raw_sys::general::{ +use linux_raw_sys::auxvec::{ AT_EGID, AT_ENTRY, AT_EUID, AT_GID, AT_PHDR, AT_PHENT, AT_PHNUM, AT_RANDOM, AT_SECURE, AT_UID, }; +use linux_raw_sys::elf::*; #[cfg(feature = "alloc")] use {alloc::borrow::Cow, alloc::vec}; diff --git a/src/backend/linux_raw/param/init.rs b/src/backend/linux_raw/param/init.rs index de1e59492..dd58cf60b 100644 --- a/src/backend/linux_raw/param/init.rs +++ b/src/backend/linux_raw/param/init.rs @@ -13,12 +13,12 @@ use core::ptr::{null_mut, read, NonNull}; #[cfg(feature = "runtime")] use core::sync::atomic::AtomicBool; use core::sync::atomic::{AtomicPtr, AtomicUsize, Ordering}; -use linux_raw_sys::elf::*; -use linux_raw_sys::general::{ +use linux_raw_sys::auxvec::{ AT_CLKTCK, AT_EXECFN, AT_HWCAP, AT_HWCAP2, AT_MINSIGSTKSZ, AT_NULL, AT_PAGESZ, AT_SYSINFO_EHDR, }; #[cfg(feature = "runtime")] -use linux_raw_sys::general::{AT_ENTRY, AT_PHDR, AT_PHENT, AT_PHNUM, AT_RANDOM, AT_SECURE}; +use linux_raw_sys::auxvec::{AT_ENTRY, AT_PHDR, AT_PHENT, AT_PHNUM, AT_RANDOM, AT_SECURE}; +use linux_raw_sys::elf::*; #[cfg(feature = "param")] #[inline] diff --git a/src/fs/constants.rs b/src/fs/constants.rs index 337b67e6e..a4f8e6e07 100644 --- a/src/fs/constants.rs +++ b/src/fs/constants.rs @@ -347,7 +347,11 @@ mod tests { #[cfg(not(libc))] // not in libc yet check_renamed_struct_field!(Statx, statx, stx_atomic_write_segments_max); #[cfg(linux_raw)] - check_renamed_struct_field!(Statx, statx, __spare1); + check_renamed_struct_field!(Statx, statx, stx_dio_read_offset_align); + #[cfg(linux_raw)] + check_renamed_struct_field!(Statx, statx, stx_atomic_write_unit_max_opt); + #[cfg(linux_raw)] + check_renamed_struct_field!(Statx, statx, __spare2); #[cfg(linux_raw)] check_renamed_struct_field!(Statx, statx, __spare3); } diff --git a/src/fs/statx.rs b/src/fs/statx.rs index f1d995ec3..f8be29f7d 100644 --- a/src/fs/statx.rs +++ b/src/fs/statx.rs @@ -44,8 +44,10 @@ pub struct Statx { pub stx_atomic_write_unit_min: u32, pub stx_atomic_write_unit_max: u32, pub stx_atomic_write_segments_max: u32, - pub(crate) __spare1: [u32; 1], - pub(crate) __spare3: [u64; 9], + pub stx_dio_read_offset_align: u32, + pub stx_atomic_write_unit_max_opt: u32, + pub __spare2: [u32; 1usize], + pub __spare3: [u64; 8usize], } /// `struct statx_timestamp` for use with [`Statx`]. diff --git a/tests/backends.rs b/tests/backends.rs index 13daec687..3ded514ff 100644 --- a/tests/backends.rs +++ b/tests/backends.rs @@ -2,9 +2,10 @@ //! various configurations, including backend configurations, and tests that //! they behave as expected. -use std::process::Command; +use std::process::{Command, Stdio}; #[test] +#[ignore] // TODO: re-enable until tempfile is updated fn test_backends() { // Pick an arbitrary platform where linux_raw is enabled by default and // ensure that the use-default crate uses it. @@ -142,7 +143,8 @@ fn has_dependency( .arg("--quiet") .arg("--edges=normal") .arg(format!("--invert={}", dependency)) - .current_dir(dir); + .current_dir(dir) + .stderr(Stdio::inherit()); command.args(args); for (key, value) in envs {