summaryrefslogtreecommitdiffstats
path: root/debian/patches/c-2003-workaround-qemu-vfork-command-not-found.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:39 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:39 +0000
commita5cb27bed2202818ee204db23f8488a7794d6ec3 (patch)
tree4a38fb6c257e5031269038e525d11a7c2f0fdb1b /debian/patches/c-2003-workaround-qemu-vfork-command-not-found.patch
parentMerging upstream version 1.70.0+dfsg2. (diff)
downloadrustc-a5cb27bed2202818ee204db23f8488a7794d6ec3.tar.xz
rustc-a5cb27bed2202818ee204db23f8488a7794d6ec3.zip
Adding debian version 1.70.0+dfsg2-1.debian/1.70.0+dfsg2-1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches/c-2003-workaround-qemu-vfork-command-not-found.patch')
-rw-r--r--debian/patches/c-2003-workaround-qemu-vfork-command-not-found.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/debian/patches/c-2003-workaround-qemu-vfork-command-not-found.patch b/debian/patches/c-2003-workaround-qemu-vfork-command-not-found.patch
new file mode 100644
index 000000000..6453c3a30
--- /dev/null
+++ b/debian/patches/c-2003-workaround-qemu-vfork-command-not-found.patch
@@ -0,0 +1,19 @@
+Index: rust/src/tools/cargo/crates/cargo-test-macro/src/lib.rs
+===================================================================
+--- rust.orig/src/tools/cargo/crates/cargo-test-macro/src/lib.rs
++++ rust/src/tools/cargo/crates/cargo-test-macro/src/lib.rs
+@@ -223,6 +223,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\