From 2ecc23adfa9e092679c864b15e6b71957a96cca4 Mon Sep 17 00:00:00 2001 From: Debian Rust Maintainers Date: Thu, 30 May 2024 11:25:53 +0200 Subject: [PATCH] c-2003-workaround-qemu-vfork-command-not-found =================================================================== Gbp-Pq: Name c-2003-workaround-qemu-vfork-command-not-found.patch --- src/tools/cargo/crates/cargo-test-macro/src/lib.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/tools/cargo/crates/cargo-test-macro/src/lib.rs b/src/tools/cargo/crates/cargo-test-macro/src/lib.rs index 937fbce6be..01e956d8f5 100644 --- a/src/tools/cargo/crates/cargo-test-macro/src/lib.rs +++ b/src/tools/cargo/crates/cargo-test-macro/src/lib.rs @@ -221,6 +221,14 @@ fn has_command(command: &str) -> bool { } }; if !output.status.success() { + // Debian specific patch, upstream wontfix: + // qemu has a faulty vfork where it fails to fail if a command is not + // found, with a unix_wait_status of 32512, or 0x7f00, 7f meaning + // exit code 127. See https://github.com/rust-lang/rust/issues/90825 + use std::os::unix::process::ExitStatusExt; + if output.status.into_raw() == 0x7f00 { + return false; + } panic!( "expected command `{}` to be runnable, got error {}:\n\ stderr:{}\n\ -- 2.30.2