diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches/u-hurd-backtrace.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/debian/patches/u-hurd-backtrace.patch b/debian/patches/u-hurd-backtrace.patch new file mode 100644 index 000000000..7ac529937 --- /dev/null +++ b/debian/patches/u-hurd-backtrace.patch @@ -0,0 +1,72 @@ +https://github.com/rust-lang/backtrace-rs/pull/567 + +commit 11e0a4bdee2714a3711b3df1607dbe979119fd34 +Author: Samuel Thibault <samuel.thibault@ens-lyon.org> +Date: Sat Oct 7 01:45:09 2023 +0200 + + Add GNU/Hurd support (rust-lang/backtrace-rs#567) + +diff --git a/vendor/backtrace/src/symbolize/gimli.rs b/vendor/backtrace/src/symbolize/gimli.rs +index 5d2f627..3b28bf7 100644 +--- a/vendor/backtrace/src/symbolize/gimli.rs ++++ b/vendor/backtrace/src/symbolize/gimli.rs +@@ -35,6 +35,7 @@ cfg_if::cfg_if! { + target_os = "freebsd", + target_os = "fuchsia", + target_os = "haiku", ++ target_os = "hurd", + target_os = "ios", + target_os = "linux", + target_os = "macos", +@@ -231,6 +232,7 @@ cfg_if::cfg_if! { + target_os = "linux", + target_os = "fuchsia", + target_os = "freebsd", ++ target_os = "hurd", + target_os = "openbsd", + target_os = "netbsd", + all(target_os = "android", feature = "dl_iterate_phdr"), +diff --git a/vendor/backtrace/src/symbolize/gimli/elf.rs b/vendor/backtrace/src/symbolize/gimli/elf.rs +index b0eec07..906a300 100644 +--- a/vendor/backtrace/src/symbolize/gimli/elf.rs ++++ b/vendor/backtrace/src/symbolize/gimli/elf.rs +@@ -308,7 +308,7 @@ const DEBUG_PATH: &[u8] = b"/usr/lib/debug"; + + fn debug_path_exists() -> bool { + cfg_if::cfg_if! { +- if #[cfg(any(target_os = "freebsd", target_os = "linux"))] { ++ if #[cfg(any(target_os = "freebsd", target_os = "hurd", target_os = "linux"))] { + use core::sync::atomic::{AtomicU8, Ordering}; + static DEBUG_PATH_EXISTS: AtomicU8 = AtomicU8::new(0); + +diff --git a/vendor/backtrace/src/symbolize/gimli/libs_dl_iterate_phdr.rs b/vendor/backtrace/src/symbolize/gimli/libs_dl_iterate_phdr.rs +index 9f0304c..518512f 100644 +--- a/vendor/backtrace/src/symbolize/gimli/libs_dl_iterate_phdr.rs ++++ b/vendor/backtrace/src/symbolize/gimli/libs_dl_iterate_phdr.rs +@@ -18,14 +18,18 @@ pub(super) fn native_libraries() -> Vec<Library> { + } + + fn infer_current_exe(base_addr: usize) -> OsString { +- if let Ok(entries) = super::parse_running_mmaps::parse_maps() { +- let opt_path = entries +- .iter() +- .find(|e| e.ip_matches(base_addr) && e.pathname().len() > 0) +- .map(|e| e.pathname()) +- .cloned(); +- if let Some(path) = opt_path { +- return path; ++ cfg_if::cfg_if! { ++ if #[cfg(not(target_os = "hurd"))] { ++ if let Ok(entries) = super::parse_running_mmaps::parse_maps() { ++ let opt_path = entries ++ .iter() ++ .find(|e| e.ip_matches(base_addr) && e.pathname().len() > 0) ++ .map(|e| e.pathname()) ++ .cloned(); ++ if let Some(path) = opt_path { ++ return path; ++ } ++ } + } + } + env::current_exe().map(|e| e.into()).unwrap_or_default() |