c-2003-workaround-qemu-vfork-command-not-found
authorDebian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Thu, 13 Jun 2024 09:16:38 +0000 (11:16 +0200)
committerFabian Grünbichler <debian@fabian.gruenbichler.email>
Tue, 8 Oct 2024 12:34:41 +0000 (14:34 +0200)
===================================================================

Gbp-Pq: Topic cargo
Gbp-Pq: Name c-2003-workaround-qemu-vfork-command-not-found.patch

src/tools/cargo/crates/cargo-test-macro/src/lib.rs

index 9d4a5fbaa99fa8c3f44cfccf182455b6aad74d76..c7df1865eae58073673bd320e7d95bcdf46ce4bc 100644 (file)
@@ -240,6 +240,14 @@ fn check_command(command_path: &Path, args: &[&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 `{command_name}` to be runnable, got error {}:\n\
             stderr:{}\n\