--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: rust-rus...@packages.debian.org
Control: affects -1 + src:rust-rustix
User: release.debian....@packages.debian.org
Usertags: unblock
Please unblock package rust-rustix
[ Reason ]
This fixes a bug exposed by rust-timerfd on arm64 (#1104704).
rustix has a backend that makes use of Linux' vDSO, and thus
requires changes from time to time when the kernel is updated.
[ Impact ]
rust-timerfd (and thus anything making use of it) would continue
to be broken, other code attempting to use the vDSO parts of
rustix might be broken as well.
[ Tests ]
A big part of the cherry-picked changes are tests for the feature
that is fixed. autopkgtests caught an incomplete/broken cherry-pick
that got fixed in a subsequent upload.
[ Risks ]
The code is not trivial, but it was broken before and the fixes
are already part of an upstream release.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
[ Other info ]
There's a related binNMU request by the r.d.n folks:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1105033
unblock rust-rustix/0.38.37-4
diff -Nru rust-rustix-0.38.37/debian/changelog
rust-rustix-0.38.37/debian/changelog
--- rust-rustix-0.38.37/debian/changelog 2024-10-11 12:08:01.000000000
+0200
+++ rust-rustix-0.38.37/debian/changelog 2025-05-14 16:37:22.000000000
+0200
@@ -1,3 +1,27 @@
+rust-rustix (0.38.37-4) unstable; urgency=medium
+
+ * Team upload.
+ * Package rustix 0.38.37 from crates.io using debcargo 2.7.8
+ * one more vdso test fix
+
+ -- Fabian Grünbichler <debian@fabian.gruenbichler.email> Wed, 14 May 2025
16:37:22 +0200
+
+rust-rustix (0.38.37-3) unstable; urgency=medium
+
+ * Team upload.
+ * Package rustix 0.38.37 from crates.io using debcargo 2.7.8
+ * Fix vdso patch (Closes: #1105189)
+
+ -- Fabian Grünbichler <debian@fabian.gruenbichler.email> Tue, 13 May 2025
21:13:04 +0200
+
+rust-rustix (0.38.37-2) unstable; urgency=medium
+
+ * Team upload.
+ * Package rustix 0.38.37 from crates.io using debcargo 2.7.8
+ * Cherry-pick vDSO fixes (Closes: #1104704)
+
+ -- Fabian Grünbichler <debian@fabian.gruenbichler.email> Fri, 09 May 2025
20:01:22 +0200
+
rust-rustix (0.38.37-1) unstable; urgency=medium
* Team upload.
diff -Nru rust-rustix-0.38.37/debian/control rust-rustix-0.38.37/debian/control
--- rust-rustix-0.38.37/debian/control 2024-10-11 12:08:01.000000000 +0200
+++ rust-rustix-0.38.37/debian/control 2025-05-14 16:37:22.000000000 +0200
@@ -2,8 +2,8 @@
Section: rust
Priority: optional
Build-Depends: debhelper-compat (= 13),
- dh-sequence-cargo,
- cargo:native <!nocheck>,
+ dh-sequence-cargo
+Build-Depends-Arch: cargo:native <!nocheck>,
rustc:native (>= 1.63) <!nocheck>,
libstd-rust-dev <!nocheck>,
librust-bitflags-2+std-dev (>= 2.4.0-~~) <!nocheck>,
@@ -24,6 +24,7 @@
Standards-Version: 4.7.0
Vcs-Git: https://salsa.debian.org/rust-team/debcargo-conf.git [src/rustix]
Vcs-Browser:
https://salsa.debian.org/rust-team/debcargo-conf/tree/master/src/rustix
+Homepage: https://github.com/bytecodealliance/rustix
X-Cargo-Crate: rustix
Rules-Requires-Root: no
diff -Nru rust-rustix-0.38.37/debian/copyright.debcargo.hint
rust-rustix-0.38.37/debian/copyright.debcargo.hint
--- rust-rustix-0.38.37/debian/copyright.debcargo.hint 2024-10-11
12:08:01.000000000 +0200
+++ rust-rustix-0.38.37/debian/copyright.debcargo.hint 2025-05-14
16:37:22.000000000 +0200
@@ -18,8 +18,8 @@
Files: debian/*
Copyright:
- 2022-2024 Debian Rust Maintainers
<pkg-rust-maintain...@alioth-lists.debian.net>
- 2022-2024 John Goerzen <jgoer...@complete.org>
+ 2022-2025 Debian Rust Maintainers
<pkg-rust-maintain...@alioth-lists.debian.net>
+ 2022-2025 John Goerzen <jgoer...@complete.org>
License: Apache-2.0 WITH LLVM-exception or Apache-2.0 or MIT
License: Apache-2.0
diff -Nru rust-rustix-0.38.37/debian/patches/fix-arm64-vdso.patch
rust-rustix-0.38.37/debian/patches/fix-arm64-vdso.patch
--- rust-rustix-0.38.37/debian/patches/fix-arm64-vdso.patch 1970-01-01
01:00:00.000000000 +0100
+++ rust-rustix-0.38.37/debian/patches/fix-arm64-vdso.patch 2025-05-14
16:37:22.000000000 +0200
@@ -0,0 +1,527 @@
+From 226840241248daf7bbf614677fcb4dc305aed20e Mon Sep 17 00:00:00 2001
+From: Dan Gohman <dev@sunfishcode.online>
+Date: Mon, 13 Jan 2025 09:01:52 -0800
+Subject: [PATCH] Implement the `DT_GNU_HASH` mechanism for vDSO parsing.
+ (#1259)
+
+* Implement the `DT_GNU_HASH` mechanism for vDSO parsing.
+
+Linux recently [removed] the `DT_HASH` section from the aarch64 vDSO. To
+continue to be able to read vDSOs, implement the `DT_GNU_HASH` section,
+following the logic in [this patch].
+
+[removed]:
https://github.com/torvalds/linux/commit/48f6430505c0b0498ee9020ce3cf9558b1caaaeb
+[this patch]: https://lkml.org/lkml/2024/12/6/828
+
+* Fix compilation on s390x with experimental asm.
+
+* Fix pointer arithmetic on s390x.
+
+* Add comments.
+
+* Add more vDSO tests, and enable vDSO getcpu on s390x.
+---
+ src/backend/linux_raw/process/syscalls.rs | 6 +-
+ src/backend/linux_raw/vdso.rs | 291 +++++++++++++++++-----
+ src/backend/linux_raw/vdso_wrappers.rs | 33 ++-
+ 3 files changed, 255 insertions(+), 75 deletions(-)
+
+--- a/src/backend/linux_raw/process/syscalls.rs
++++ b/src/backend/linux_raw/process/syscalls.rs
+@@ -41,7 +41,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x"
+ ))]
+ pub(crate) use crate::backend::vdso_wrappers::sched_getcpu;
+
+@@ -50,7 +51,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x"
+ )))]
+ #[inline]
+ pub(crate) fn sched_getcpu() -> usize {
+--- a/src/backend/linux_raw/vdso.rs
++++ b/src/backend/linux_raw/vdso.rs
+@@ -5,6 +5,10 @@
+ //! with Creative Commons Zero License, version 1.0,
+ //! available at <https://creativecommons.org/publicdomain/zero/1.0/legalcode>
+ //!
++//! It also incorporates the patch at:
++//!
<https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/tools/testing/selftests/vDSO?h=next&id=01587d80b04f29747b6fd6d766c3bfa632f14eb0>,
++//! with changes to fix the pointer arithmetic on s390x.
++//!
+ //! # Safety
+ //!
+ //! Parsing the vDSO involves a lot of raw pointer manipulation. This
+@@ -34,6 +38,7 @@
+ // Symbol table
+ symtab: *const Elf_Sym,
+ symstrings: *const u8,
++ gnu_hash: *const u32,
+ bucket: *const ElfHashEntry,
+ chain: *const ElfHashEntry,
+ nbucket: ElfHashEntry,
+@@ -60,6 +65,16 @@
+ h
+ }
+
++fn gnu_hash(name: &CStr) -> u32 {
++ let mut h: u32 = 5381;
++ for s in name.to_bytes() {
++ h = h
++ .wrapping_add(h.wrapping_mul(32))
++ .wrapping_add(u32::from(*s));
++ }
++ h
++}
++
+ /// Create a `Vdso` value by parsing the vDSO at the `sysinfo_ehdr` address.
+ fn init_from_sysinfo_ehdr() -> Option<Vdso> {
+ // SAFETY: The auxv initialization code does extensive checks to ensure
+@@ -80,6 +95,7 @@
+ pv_offset: 0,
+ symtab: null(),
+ symstrings: null(),
++ gnu_hash: null(),
+ bucket: null(),
+ chain: null(),
+ nbucket: 0,
+@@ -159,6 +175,12 @@
+ )?
+ .as_ptr();
+ }
++ // linux-raw-sys too old / missing DT_GNU_HASH
++ 0x6fff_fef5 => {
++ vdso.gnu_hash =
++
check_raw_pointer::<u32>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
++ .as_ptr()
++ }
+ DT_VERSYM => {
+ vdso.versym =
+
check_raw_pointer::<u16>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+@@ -183,7 +205,10 @@
+ // `check_raw_pointer` will have checked these pointers for null,
+ // however they could still be null if the expected dynamic table
+ // entries are absent.
+- if vdso.symstrings.is_null() || vdso.symtab.is_null() ||
hash.is_null() {
++ if vdso.symstrings.is_null()
++ || vdso.symtab.is_null()
++ || (hash.is_null() && vdso.gnu_hash.is_null())
++ {
+ return None; // Failed
+ }
+
+@@ -192,10 +217,21 @@
+ }
+
+ // Parse the hash table header.
+- vdso.nbucket = *hash.add(0);
+- //vdso.nchain = *hash.add(1);
+- vdso.bucket = hash.add(2);
+- vdso.chain = hash.add(vdso.nbucket as usize + 2);
++ if !vdso.gnu_hash.is_null() {
++ vdso.nbucket = ElfHashEntry::from(*vdso.gnu_hash);
++ // The bucket array is located after the header (4 uint32) and
the bloom
++ // filter (size_t array of gnu_hash[2] elements).
++ vdso.bucket = vdso
++ .gnu_hash
++ .add(4)
++ .add(size_of::<c::size_t>() / 4 * *vdso.gnu_hash.add(2) as
usize)
++ .cast();
++ } else {
++ vdso.nbucket = *hash.add(0);
++ //vdso.nchain = *hash.add(1);
++ vdso.bucket = hash.add(2);
++ vdso.chain = hash.add(vdso.nbucket as usize + 2);
++ }
+
+ // That's all we need.
+ Some(vdso)
+@@ -261,49 +297,110 @@
+ && (name == CStr::from_ptr(self.symstrings.add(aux.vda_name as
usize).cast()))
+ }
+
++ /// Check to see if the symbol is the one we're looking for.
++ ///
++ /// # Safety
++ ///
++ /// The raw pointers inside `self` must be valid.
++ unsafe fn check_sym(
++ &self,
++ sym: &Elf_Sym,
++ i: ElfHashEntry,
++ name: &CStr,
++ version: &CStr,
++ ver_hash: u32,
++ ) -> bool {
++ // Check for a defined global or weak function w/ right name.
++ //
++ // Accept `STT_NOTYPE` in addition to `STT_FUNC` for the symbol
++ // type, for compatibility with some versions of Linux on
++ // PowerPC64. See [this commit] in Linux for more background.
++ //
++ // [this commit]:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/tools/testing/selftests/vDSO/parse_vdso.c?id=0161bd38c24312853ed5ae9a425a1c41c4ac674a
++ if ELF_ST_TYPE(sym.st_info) != STT_FUNC && ELF_ST_TYPE(sym.st_info)
!= STT_NOTYPE {
++ return false;
++ }
++ if ELF_ST_BIND(sym.st_info) != STB_GLOBAL && ELF_ST_BIND(sym.st_info)
!= STB_WEAK {
++ return false;
++ }
++ if name != CStr::from_ptr(self.symstrings.add(sym.st_name as
usize).cast()) {
++ return false;
++ }
++
++ // Check symbol version.
++ if !self.versym.is_null()
++ && !self.match_version(*self.versym.add(i as usize), version,
ver_hash)
++ {
++ return false;
++ }
++
++ true
++ }
++
+ /// Look up a symbol in the vDSO.
+ pub(super) fn sym(&self, version: &CStr, name: &CStr) -> *mut c::c_void {
+ let ver_hash = elf_hash(version);
+- let name_hash = elf_hash(name);
+
+ // SAFETY: The pointers in `self` must be valid.
+ unsafe {
+- let mut chain = *self
+- .bucket
+- .add((ElfHashEntry::from(name_hash) % self.nbucket) as usize);
+-
+- while chain != ElfHashEntry::from(STN_UNDEF) {
+- let sym = &*self.symtab.add(chain as usize);
+-
+- // Check for a defined global or weak function w/ right name.
+- //
+- // Accept `STT_NOTYPE` in addition to `STT_FUNC` for the
symbol
+- // type, for compatibility with some versions of Linux on
+- // PowerPC64. See [this commit] in Linux for more background.
+- //
+- // [this commit]:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/tools/testing/selftests/vDSO/parse_vdso.c?id=0161bd38c24312853ed5ae9a425a1c41c4ac674a
+- if (ELF_ST_TYPE(sym.st_info) != STT_FUNC &&
+- ELF_ST_TYPE(sym.st_info) != STT_NOTYPE)
+- || (ELF_ST_BIND(sym.st_info) != STB_GLOBAL
+- && ELF_ST_BIND(sym.st_info) != STB_WEAK)
+- || sym.st_shndx == SHN_UNDEF
+- || sym.st_shndx == SHN_ABS
+- || ELF_ST_VISIBILITY(sym.st_other) != STV_DEFAULT
+- || (name !=
CStr::from_ptr(self.symstrings.add(sym.st_name as usize).cast()))
+- // Check symbol version.
+- || (!self.versym.is_null()
+- && !self.match_version(*self.versym.add(chain as
usize), version, ver_hash))
+- {
+- chain = *self.chain.add(chain as usize);
+- continue;
+- }
+-
+- let sum = self.addr_from_elf(sym.st_value).unwrap();
+- assert!(
+- sum as usize >= self.load_addr as usize
+- && sum as usize <= self.load_end as usize
+- );
+- return sum as *mut c::c_void;
++ if !self.gnu_hash.is_null() {
++ let mut h1: u32 = gnu_hash(name);
++
++ // Changes to fix the pointer arithmetic on s390x: cast
++ // `self.bucket` to `*const u32` here, because even though
++ // s390x's `ElfHashEntry` is 64-bit for `DT_HASH` tables,
++ // it uses 32-bit entries for `DT_GNU_HASH` tables.
++ let mut i = *self
++ .bucket
++ .cast::<u32>()
++ .add((ElfHashEntry::from(h1) % self.nbucket) as usize);
++ if i == 0 {
++ return null_mut();
++ }
++ h1 |= 1;
++ // Changes to fix the pointer arithmetic on s390x: As above,
++ // cast `self.bucket` to `*const u32`.
++ let mut hashval = self
++ .bucket
++ .cast::<u32>()
++ .add(self.nbucket as usize)
++ .add((i - *self.gnu_hash.add(1)) as usize);
++ loop {
++ let sym: &Elf_Sym = &*self.symtab.add(i as usize);
++ let h2 = *hashval;
++ hashval = hashval.add(1);
++ if h1 == (h2 | 1)
++ && self.check_sym(sym, ElfHashEntry::from(i), name,
version, ver_hash)
++ {
++ let sum = self.addr_from_elf(sym.st_value).unwrap();
++ assert!(
++ sum as usize >= self.load_addr as usize
++ && sum as usize <= self.load_end as usize
++ );
++ return sum as *mut c::c_void;
++ }
++ if (h2 & 1) != 0 {
++ break;
++ }
++ i += 1;
++ }
++ } else {
++ let mut i = *self
++ .bucket
++ .add((ElfHashEntry::from(elf_hash(name)) % self.nbucket)
as usize);
++ while i != 0 {
++ let sym: &Elf_Sym = &*self.symtab.add(i as usize);
++ if sym.st_shndx != SHN_UNDEF && self.check_sym(sym, i,
name, version, ver_hash)
++ {
++ let sum = self.addr_from_elf(sym.st_value).unwrap();
++ assert!(
++ sum as usize >= self.load_addr as usize
++ && sum as usize <= self.load_end as usize
++ );
++ return sum as *mut c::c_void;
++ }
++ i = *self.chain.add(i as usize);
++ }
+ }
+ }
+
+@@ -324,32 +421,103 @@
+ }
+ }
+
++// Disable on MIPS since QEMU on MIPS doesn't provide a vDSO.
+ #[cfg(linux_raw)]
+ #[test]
+-#[ignore] // Until rustix is updated to the new vDSO format.
++#[cfg_attr(any(target_arch = "mips", target_arch = "mips64"), ignore)]
+ fn test_vdso() {
+ let vdso = Vdso::new().unwrap();
+ assert!(!vdso.symtab.is_null());
+ assert!(!vdso.symstrings.is_null());
+
+- #[cfg(target_arch = "x86_64")]
+- let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
+- #[cfg(target_arch = "arm")]
+- let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+- #[cfg(target_arch = "aarch64")]
+- let ptr = vdso.sym(cstr!("LINUX_2.6.39"),
cstr!("__kernel_clock_gettime"));
+- #[cfg(target_arch = "x86")]
+- let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+- #[cfg(target_arch = "riscv64")]
+- let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_clock_gettime"));
+- #[cfg(target_arch = "powerpc64")]
+- let ptr = vdso.sym(cstr!("LINUX_2.6.15"),
cstr!("__kernel_clock_gettime"));
+- #[cfg(target_arch = "s390x")]
+- let ptr = vdso.sym(cstr!("LINUX_2.6.29"),
cstr!("__kernel_clock_gettime"));
+- #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+- let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+- #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+- let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
++ {
++ #[cfg(target_arch = "x86_64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
++ #[cfg(target_arch = "arm")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"),
cstr!("__vdso_clock_gettime64"));
++ #[cfg(target_arch = "aarch64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.39"),
cstr!("__kernel_clock_gettime"));
++ #[cfg(target_arch = "x86")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"),
cstr!("__vdso_clock_gettime64"));
++ #[cfg(target_arch = "riscv64")]
++ let ptr = vdso.sym(cstr!("LINUX_4.15"),
cstr!("__vdso_clock_gettime"));
++ #[cfg(target_arch = "powerpc64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.15"),
cstr!("__kernel_clock_gettime"));
++ #[cfg(target_arch = "s390x")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.29"),
cstr!("__kernel_clock_gettime"));
++ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"),
cstr!("__vdso_clock_gettime64"));
++ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
+
+- assert!(!ptr.is_null());
++ assert!(!ptr.is_null());
++ }
++
++ {
++ #[cfg(target_arch = "x86_64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
++ #[cfg(target_arch = "arm")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
++ #[cfg(target_arch = "aarch64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.39"),
cstr!("__kernel_clock_getres"));
++ #[cfg(target_arch = "x86")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
++ #[cfg(target_arch = "riscv64")]
++ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_clock_getres"));
++ #[cfg(target_arch = "powerpc64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.15"),
cstr!("__kernel_clock_getres"));
++ #[cfg(target_arch = "s390x")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.29"),
cstr!("__kernel_clock_getres"));
++ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
++ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
++
++ assert!(!ptr.is_null());
++ }
++
++ {
++ #[cfg(target_arch = "x86_64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
++ #[cfg(target_arch = "arm")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
++ #[cfg(target_arch = "aarch64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.39"),
cstr!("__kernel_gettimeofday"));
++ #[cfg(target_arch = "x86")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
++ #[cfg(target_arch = "riscv64")]
++ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_gettimeofday"));
++ #[cfg(target_arch = "powerpc64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.15"),
cstr!("__kernel_gettimeofday"));
++ #[cfg(target_arch = "s390x")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.29"),
cstr!("__kernel_gettimeofday"));
++ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
++ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
++
++ assert!(!ptr.is_null());
++ }
++
++ #[cfg(any(
++ target_arch = "x86_64",
++ target_arch = "x86",
++ target_arch = "riscv64",
++ target_arch = "powerpc64",
++ target_arch = "s390x",
++ ))]
++ {
++ #[cfg(target_arch = "x86_64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
++ #[cfg(target_arch = "x86")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
++ #[cfg(target_arch = "riscv64")]
++ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_getcpu"));
++ #[cfg(target_arch = "powerpc64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_getcpu"));
++ #[cfg(target_arch = "s390x")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_getcpu"));
++
++ assert!(!ptr.is_null());
++ }
+ }
+--- a/src/backend/linux_raw/vdso_wrappers.rs
++++ b/src/backend/linux_raw/vdso_wrappers.rs
+@@ -20,7 +20,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ use core::ffi::c_void;
+ use core::mem::transmute;
+@@ -37,7 +38,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x"
+ )
+ ),
+ feature = "time"
+@@ -117,7 +119,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ #[inline]
+ pub(crate) fn sched_getcpu() -> usize {
+@@ -268,7 +271,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ type GetcpuType = unsafe extern "C" fn(*mut u32, *mut u32, *mut c_void) ->
c::c_int;
+
+@@ -294,7 +298,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ #[cold]
+ fn init_getcpu() -> GetcpuType {
+@@ -324,7 +329,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ static mut GETCPU: AtomicPtr<Function> = AtomicPtr::new(null_mut());
+ #[cfg(target_arch = "x86")]
+@@ -393,7 +399,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ unsafe extern "C" fn rustix_getcpu_via_syscall(
+ cpu: *mut u32,
+@@ -457,7 +464,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ {
+ GETCPU
+@@ -544,7 +552,8 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x",
+ ))]
+ {
+ // Look up the platform-specific `getcpu` symbol as documented
+@@ -559,11 +568,14 @@
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "powerpc64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"),
cstr!("__kernel_getcpu"));
++ #[cfg(target_arch = "s390x")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.29"),
cstr!("__kernel_getcpu"));
+
+ #[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "riscv64",
+- target_arch = "powerpc64"
++ target_arch = "powerpc64",
++ target_arch = "s390x"
+ ))]
+ let ok = true;
+
diff -Nru rust-rustix-0.38.37/debian/patches/fix-vdso-test-i386.patch
rust-rustix-0.38.37/debian/patches/fix-vdso-test-i386.patch
--- rust-rustix-0.38.37/debian/patches/fix-vdso-test-i386.patch 1970-01-01
01:00:00.000000000 +0100
+++ rust-rustix-0.38.37/debian/patches/fix-vdso-test-i386.patch 2025-05-14
16:37:22.000000000 +0200
@@ -0,0 +1,94 @@
+From a92c89fe36379bd4ad14dd5d5905ca64dc6d9d85 Mon Sep 17 00:00:00 2001
+From: Dan Gohman <dev@sunfishcode.online>
+Date: Tue, 4 Mar 2025 08:01:12 -0800
+Subject: [PATCH] Fix compatibility with older 32-bit kernels (#1374)
+
+FG: only pick hunk for:
+
+* Fix `test_vdso` to handle older kernel versions on x86 and powerpc.
+
+Signed-off-by: Fabian Grünbichler <debian@fabian.gruenbichler.email>
+
+---
+ CHANGES.md | 16 ++
+ Cargo.toml | 5 +-
+ src/backend/libc/event/syscalls.rs | 4 +-
+ src/backend/libc/thread/syscalls.rs | 25 ++-
+ src/backend/libc/winsock_c.rs | 2 +-
+ src/backend/linux_raw/event/syscalls.rs | 231 ++++++++++++++++------
+ src/backend/linux_raw/fs/syscalls.rs | 63 +++++-
+ src/backend/linux_raw/runtime/syscalls.rs | 113 ++++++-----
+ src/backend/linux_raw/thread/syscalls.rs | 139 +++++++------
+ src/backend/linux_raw/vdso.rs | 29 ++-
+ src/runtime.rs | 2 +-
+ src/thread/futex.rs | 48 +----
+ src/timespec.rs | 21 +-
+ tests/event/epoll_timeout.rs | 23 ++-
+ tests/thread/futex.rs | 6 +-
+ 15 files changed, 486 insertions(+), 241 deletions(-)
+
+--- a/src/backend/linux_raw/vdso.rs
++++ b/src/backend/linux_raw/vdso.rs
+@@ -425,6 +425,7 @@
+ #[cfg(linux_raw)]
+ #[test]
+ #[cfg_attr(any(target_arch = "mips", target_arch = "mips64"), ignore)]
++#[allow(unused_variables)]
+ fn test_vdso() {
+ let vdso = Vdso::new().unwrap();
+ assert!(!vdso.symtab.is_null());
+@@ -450,6 +451,11 @@
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
+
++ // On PowerPC, "__kernel_clock_gettime64" isn't available in
++ // Linux < 5.11.
++ // On x86, "__vdso_clock_gettime64" isn't available in
++ // Linux < 5.3.
++ #[cfg(not(any(target_arch = "powerpc", target_arch = "x86")))]
+ assert!(!ptr.is_null());
+ }
+
+@@ -473,6 +479,8 @@
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
+
++ // Some versions of Linux appear to lack "__vdso_clock_getres" on x86.
++ #[cfg(not(target_arch = "x86"))]
+ assert!(!ptr.is_null());
+ }
+
+@@ -496,6 +504,8 @@
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
+
++ // Some versions of Linux appear to lack "__vdso_gettimeofday" on x86.
++ #[cfg(not(target_arch = "x86"))]
+ assert!(!ptr.is_null());
+ }
+
+@@ -503,6 +513,7 @@
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
++ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+ ))]
+@@ -513,11 +524,16 @@
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "riscv64")]
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_getcpu"));
++ #[cfg(target_arch = "powerpc")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_getcpu"));
+ #[cfg(target_arch = "powerpc64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_getcpu"));
+ #[cfg(target_arch = "s390x")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_getcpu"));
+
++ // On PowerPC, "__kernel_getcpu" isn't available in 32-bit kernels.
++ // Some versions of Linux appear to lack "__vdso_getcpu" on x86.
++ #[cfg(not(any(target_arch = "powerpc", target_arch = "x86")))]
+ assert!(!ptr.is_null());
+ }
+ }
diff -Nru rust-rustix-0.38.37/debian/patches/series
rust-rustix-0.38.37/debian/patches/series
--- rust-rustix-0.38.37/debian/patches/series 2024-10-11 12:08:01.000000000
+0200
+++ rust-rustix-0.38.37/debian/patches/series 2025-05-14 16:37:22.000000000
+0200
@@ -2,3 +2,6 @@
drop-alloc.diff
disable-benches.diff
relax-dep.diff
+vdso-check-for-missing-dt-hash.patch
+fix-arm64-vdso.patch
+fix-vdso-test-i386.patch
diff -Nru
rust-rustix-0.38.37/debian/patches/vdso-check-for-missing-dt-hash.patch
rust-rustix-0.38.37/debian/patches/vdso-check-for-missing-dt-hash.patch
--- rust-rustix-0.38.37/debian/patches/vdso-check-for-missing-dt-hash.patch
1970-01-01 01:00:00.000000000 +0100
+++ rust-rustix-0.38.37/debian/patches/vdso-check-for-missing-dt-hash.patch
2025-05-14 16:37:22.000000000 +0200
@@ -0,0 +1,199 @@
+From 83e769b98e8e820cd1f58385a7f975b39d2087d6 Mon Sep 17 00:00:00 2001
+From: Dan Gohman <dev@sunfishcode.online>
+Date: Tue, 7 Jan 2025 12:02:11 -0800
+Subject: [PATCH] Check for a missing `DT_HASH` section in the VDSO parser
+ (#1254)
+
+* Check for a missing `DT_HASH` section in the VDSO parser
+
+Fix a missing check for a null hash table pointer, which can happen
+if the vDSO lacks a `DT_HASH` entry.
+
+Also, incorporate the changes in the latest upstream version of thee
+reference parse_vdso.c code.
+
+* Fix type differences on s390x.
+
+* Add more tests.
+
+* Remove an over-aggressive check.
+
+* Fix the name of getcpu on riscv64.
+
+FG: replace DT_GNU_HASH constant with value, can be removed once linux-raw-sys
+>= 0.6.6 is available in Debian
+Signed-off-by: Fabian Grünbichler <debian@fabian.gruenbichler.email>
+
+---
+ src/backend/linux_raw/vdso.rs | 84 +++++++++++++++++++-------
+ src/backend/linux_raw/vdso_wrappers.rs | 2 +-
+ 2 files changed, 64 insertions(+), 22 deletions(-)
+
+--- a/src/backend/linux_raw/vdso.rs
++++ b/src/backend/linux_raw/vdso.rs
+@@ -1,7 +1,7 @@
+ //! Parse the Linux vDSO.
+ //!
+ //! The following code is transliterated from
+-//! tools/testing/selftests/vDSO/parse_vdso.c in Linux 5.11, which is licensed
++//! tools/testing/selftests/vDSO/parse_vdso.c in Linux 6.12, which is licensed
+ //! with Creative Commons Zero License, version 1.0,
+ //! available at <https://creativecommons.org/publicdomain/zero/1.0/legalcode>
+ //!
+@@ -20,6 +20,11 @@
+ use core::ptr::{null, null_mut};
+ use linux_raw_sys::elf::*;
+
++#[cfg(target_arch = "s390x")]
++type ElfHashEntry = u64;
++#[cfg(not(target_arch = "s390x"))]
++type ElfHashEntry = u32;
++
+ pub(super) struct Vdso {
+ // Load information
+ load_addr: *const Elf_Ehdr,
+@@ -29,17 +34,19 @@
+ // Symbol table
+ symtab: *const Elf_Sym,
+ symstrings: *const u8,
+- bucket: *const u32,
+- chain: *const u32,
+- nbucket: u32,
+- //nchain: u32,
++ bucket: *const ElfHashEntry,
++ chain: *const ElfHashEntry,
++ nbucket: ElfHashEntry,
++ //nchain: ElfHashEntry,
+
+ // Version table
+ versym: *const u16,
+ verdef: *const Elf_Verdef,
+ }
+
+-// Straight from the ELF specification.
++/// Straight from the ELF specification...and then tweaked slightly, in order
to
++/// avoid a few clang warnings.
++/// (And then translated to Rust).
+ fn elf_hash(name: &CStr) -> u32 {
+ let mut h: u32 = 0;
+ for b in name.to_bytes() {
+@@ -91,11 +98,6 @@
+ let mut found_vaddr = false;
+ for i in 0..hdr.e_phnum {
+ let phdr = &*pt.add(i as usize);
+- if phdr.p_flags & PF_W != 0 {
+- // Don't trust any vDSO that claims to be loading writable
+- // segments into memory.
+- return None;
+- }
+ if phdr.p_type == PT_LOAD && !found_vaddr {
+ // The segment should be readable and executable, because it
+ // contains the symbol table and the function bodies.
+@@ -129,7 +131,7 @@
+ }
+
+ // Fish out the useful bits of the dynamic table.
+- let mut hash: *const u32 = null();
++ let mut hash: *const ElfHashEntry = null();
+ vdso.symstrings = null();
+ vdso.symtab = null();
+ vdso.versym = null();
+@@ -152,8 +154,10 @@
+ .as_ptr();
+ }
+ DT_HASH => {
+- hash =
check_raw_pointer::<u32>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+- .as_ptr();
++ hash = check_raw_pointer::<ElfHashEntry>(
++ vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _
++ )?
++ .as_ptr();
+ }
+ DT_VERSYM => {
+ vdso.versym =
+@@ -176,8 +180,12 @@
+ }
+ i = i.checked_add(1)?;
+ }
+- // The upstream code checks `symstrings`, `symtab`, and `hash` for
+- // null; here, `check_raw_pointer` has already done that.
++ // `check_raw_pointer` will have checked these pointers for null,
++ // however they could still be null if the expected dynamic table
++ // entries are absent.
++ if vdso.symstrings.is_null() || vdso.symtab.is_null() ||
hash.is_null() {
++ return None; // Failed
++ }
+
+ if vdso.verdef.is_null() {
+ vdso.versym = null();
+@@ -260,16 +268,20 @@
+
+ // SAFETY: The pointers in `self` must be valid.
+ unsafe {
+- let mut chain = *self.bucket.add((name_hash % self.nbucket) as
usize);
++ let mut chain = *self
++ .bucket
++ .add((ElfHashEntry::from(name_hash) % self.nbucket) as usize);
+
+- while chain != STN_UNDEF {
++ while chain != ElfHashEntry::from(STN_UNDEF) {
+ let sym = &*self.symtab.add(chain as usize);
+
+ // Check for a defined global or weak function w/ right name.
+ //
+- // The reference parser in Linux's parse_vdso.c requires
+- // symbols to have type `STT_FUNC`, but on powerpc64, the vDSO
+- // uses `STT_NOTYPE`, so allow that too.
++ // Accept `STT_NOTYPE` in addition to `STT_FUNC` for the
symbol
++ // type, for compatibility with some versions of Linux on
++ // PowerPC64. See [this commit] in Linux for more background.
++ //
++ // [this commit]:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/tools/testing/selftests/vDSO/parse_vdso.c?id=0161bd38c24312853ed5ae9a425a1c41c4ac674a
+ if (ELF_ST_TYPE(sym.st_info) != STT_FUNC &&
+ ELF_ST_TYPE(sym.st_info) != STT_NOTYPE)
+ || (ELF_ST_BIND(sym.st_info) != STB_GLOBAL
+@@ -311,3 +323,33 @@
+ self.base_plus(elf_addr.wrapping_add(self.pv_offset))
+ }
+ }
++
++#[cfg(linux_raw)]
++#[test]
++#[ignore] // Until rustix is updated to the new vDSO format.
++fn test_vdso() {
++ let vdso = Vdso::new().unwrap();
++ assert!(!vdso.symtab.is_null());
++ assert!(!vdso.symstrings.is_null());
++
++ #[cfg(target_arch = "x86_64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
++ #[cfg(target_arch = "arm")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
++ #[cfg(target_arch = "aarch64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.39"),
cstr!("__kernel_clock_gettime"));
++ #[cfg(target_arch = "x86")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
++ #[cfg(target_arch = "riscv64")]
++ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_clock_gettime"));
++ #[cfg(target_arch = "powerpc64")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.15"),
cstr!("__kernel_clock_gettime"));
++ #[cfg(target_arch = "s390x")]
++ let ptr = vdso.sym(cstr!("LINUX_2.6.29"),
cstr!("__kernel_clock_gettime"));
++ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
++ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
++ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
++
++ assert!(!ptr.is_null());
++}
+--- a/src/backend/linux_raw/vdso_wrappers.rs
++++ b/src/backend/linux_raw/vdso_wrappers.rs
+@@ -556,7 +556,7 @@
+ #[cfg(target_arch = "x86")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "riscv64")]
+- let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__kernel_getcpu"));
++ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "powerpc64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"),
cstr!("__kernel_getcpu"));
+
diff -Nru rust-rustix-0.38.37/debian/tests/control
rust-rustix-0.38.37/debian/tests/control
--- rust-rustix-0.38.37/debian/tests/control 2024-10-11 12:08:01.000000000
+0200
+++ rust-rustix-0.38.37/debian/tests/control 2025-05-14 16:37:22.000000000
+0200
@@ -1,199 +1,199 @@
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --all-features
Features: test-name=rust-rustix:@
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features all-apis
Features: test-name=librust-rustix-dev:all-apis
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features alloc
Features: test-name=librust-rustix-dev:alloc
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features cc
Features: test-name=librust-rustix-dev:cc
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features compiler_builtins
Features: test-name=librust-rustix-dev:compiler_builtins
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features core
Features: test-name=librust-rustix-dev:core
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37 --all-targets
Features: test-name=librust-rustix-dev:default
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features event
Features: test-name=librust-rustix-dev:event
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features fs
Features: test-name=librust-rustix-dev:fs
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features io_uring
Features: test-name=librust-rustix-dev:io_uring
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features itoa
Features: test-name=librust-rustix-dev:itoa
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features libc
Features: test-name=librust-rustix-dev:libc
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features libc-extra-traits
Features: test-name=librust-rustix-dev:libc-extra-traits
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features libc_errno
Features: test-name=librust-rustix-dev:libc_errno
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features linux_4_11
Features: test-name=librust-rustix-dev:linux_4_11
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features linux_latest
Features: test-name=librust-rustix-dev:linux_latest
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features mm
Features: test-name=librust-rustix-dev:mm
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features mount
Features: test-name=librust-rustix-dev:mount
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features net
Features: test-name=librust-rustix-dev:net
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features once_cell
Features: test-name=librust-rustix-dev:once_cell
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features param
Features: test-name=librust-rustix-dev:param
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features pipe
Features: test-name=librust-rustix-dev:pipe
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features process
Features: test-name=librust-rustix-dev:process
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features procfs
Features: test-name=librust-rustix-dev:procfs
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features pty
Features: test-name=librust-rustix-dev:pty
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features rand
Features: test-name=librust-rustix-dev:rand
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features runtime
Features: test-name=librust-rustix-dev:runtime
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features rustc-dep-of-std
Features: test-name=librust-rustix-dev:rustc-dep-of-std
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features shm
Features: test-name=librust-rustix-dev:shm
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features std
Features: test-name=librust-rustix-dev:std
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features stdio
Features: test-name=librust-rustix-dev:stdio
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features system
Features: test-name=librust-rustix-dev:system
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features termios
Features: test-name=librust-rustix-dev:termios
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features thread
Features: test-name=librust-rustix-dev:thread
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features time
Features: test-name=librust-rustix-dev:time
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features try_close
Features: test-name=librust-rustix-dev:try_close
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features use-explicitly-provided-auxv
Features: test-name=librust-rustix-dev:use-explicitly-provided-auxv
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features use-libc
Features: test-name=librust-rustix-dev:use-libc
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features --features use-libc-auxv
Features: test-name=librust-rustix-dev:use-libc-auxv
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
Test-Command: /usr/share/cargo/bin/cargo-auto-test rustix 0.38.37
--all-targets --no-default-features
Features: test-name=librust-rustix-dev:
-Depends: dh-cargo (>= 31), rustc:native (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
+Depends: dh-cargo (>= 31), rustc (>= 1.63), librust-errno-0.3-dev (>=
0.3.8-~~), librust-flate2-1+default-dev, librust-libc-0.2+default-dev (>=
0.2.156-~~), librust-memoffset-0.8+default-dev,
librust-serial-test-2+default-dev, librust-static-assertions-1+default-dev (>=
1.1.0-~~), librust-tempfile-3+default-dev (>= 3.5.0-~~), @
Restrictions: allow-stderr, skip-not-installable, flaky
signature.asc
Description: PGP signature
--- End Message ---