summaryrefslogtreecommitdiffstats
path: root/debian/patches/u-hurd-backtrace.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-13 04:32:12 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-13 04:32:12 +0000
commitf599a46c68809ae66e3c1a27a8a2b499e55f74ad (patch)
tree2e0a013dac6e68b5c398a0a6c19bfdf10d23fb18 /debian/patches/u-hurd-backtrace.patch
parentReleasing progress-linux version 1.75.0+dfsg1-4~progress7.99u1. (diff)
downloadrustc-f599a46c68809ae66e3c1a27a8a2b499e55f74ad.tar.xz
rustc-f599a46c68809ae66e3c1a27a8a2b499e55f74ad.zip
Merging debian version 1.75.0+dfsg1-5.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches/u-hurd-backtrace.patch')
-rw-r--r--debian/patches/u-hurd-backtrace.patch72
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()