Forwarded: https://github.com/rust-lang/backtrace-rs/pull/567
Subject: Add GNU/Hurd support (rust-lang/backtrace-rs#567)
Gbp-Pq: Topic vendor
Gbp-Pq: Name u-hurd-backtrace.patch
target_os = "freebsd",
target_os = "fuchsia",
target_os = "haiku",
+ target_os = "hurd",
target_os = "ios",
target_os = "linux",
target_os = "macos",
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"),
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);
}
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()