about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2017-07-14 20:57:18 -0700
committerGitHub <noreply@github.com>2017-07-14 20:57:18 -0700
commit57bc82d637905457a2ae4869e21302d576209cb8 (patch)
treede0f9fbedc9333419149094e02992f55ce0d3980 /src/libstd
parent877e62e471d9e8bcfbc1f8069d8d98e6a6c53e29 (diff)
parent5757e0561975b40f81a739feb73abdc377eeda3a (diff)
downloadrust-57bc82d637905457a2ae4869e21302d576209cb8.tar.gz
rust-57bc82d637905457a2ae4869e21302d576209cb8.zip
Rollup merge of #43228 - redox-os:backtrace_fix, r=alexcrichton
Fix backtrace on Redox

This fixes sys::backtrace on Redox
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sys/redox/backtrace.rs15
-rw-r--r--src/libstd/sys_common/mod.rs3
2 files changed, 14 insertions, 4 deletions
diff --git a/src/libstd/sys/redox/backtrace.rs b/src/libstd/sys/redox/backtrace.rs
index 961148fb6b4..6cafe3e69ba 100644
--- a/src/libstd/sys/redox/backtrace.rs
+++ b/src/libstd/sys/redox/backtrace.rs
@@ -8,16 +8,25 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use libc;
 use io;
 use sys_common::backtrace::Frame;
 
-pub use sys_common::gnu::libbacktrace::*;
+pub use sys_common::gnu::libbacktrace::{foreach_symbol_fileline, resolve_symname};
 pub struct BacktraceContext;
 
 #[inline(never)]
-pub fn unwind_backtrace(frames: &mut [Frame])
+pub fn unwind_backtrace(_frames: &mut [Frame])
     -> io::Result<(usize, BacktraceContext)>
 {
     Ok((0, BacktraceContext))
 }
+
+pub mod gnu {
+    use io;
+    use fs;
+    use libc::c_char;
+
+    pub fn get_executable_filename() -> io::Result<(Vec<c_char>, fs::File)> {
+        Err(io::Error::new(io::ErrorKind::Other, "Not implemented"))
+    }
+}
diff --git a/src/libstd/sys_common/mod.rs b/src/libstd/sys_common/mod.rs
index d4d3365dc01..ccd4b91a7b7 100644
--- a/src/libstd/sys_common/mod.rs
+++ b/src/libstd/sys_common/mod.rs
@@ -52,7 +52,8 @@ pub mod net;
 
 #[cfg(feature = "backtrace")]
 #[cfg(any(all(unix, not(any(target_os = "macos", target_os = "ios", target_os = "emscripten"))),
-          all(windows, target_env = "gnu")))]
+          all(windows, target_env = "gnu"),
+          target_os = "redox"))]
 pub mod gnu;
 
 // common error constructors