rename the crate, not the feature
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
index e4f1b77..5d7581c 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
@@ -490,7 +490,7 @@
features.push_str(" llvm-libunwind");
}
if self.config.backtrace {
- features.push_str(" backtrace_support");
+ features.push_str(" backtrace");
}
if self.config.profiler {
features.push_str(" profiler");
diff --git a/src/libstd/Cargo.toml b/src/libstd/Cargo.toml
index 2da73c1..af1d240 100644
--- a/src/libstd/Cargo.toml
+++ b/src/libstd/Cargo.toml
@@ -25,7 +25,8 @@
unwind = { path = "../libunwind" }
hashbrown = { version = "0.5.0", features = ['rustc-dep-of-std'] }
-[dependencies.backtrace]
+[dependencies.backtrace_rs]
+package = "backtrace"
version = "0.3.37"
default-features = false # without the libstd `backtrace` feature, stub out everything
features = [ "rustc-dep-of-std" ] # enable build support for integrating into libstd
@@ -58,11 +59,11 @@
[features]
default = ["std_detect_file_io", "std_detect_dlsym_getauxval"]
-backtrace_support = [
- "backtrace/dbghelp", # backtrace/symbolize on MSVC
- "backtrace/libbacktrace", # symbolize on most platforms
- "backtrace/libunwind", # backtrace on most platforms
- "backtrace/dladdr", # symbolize on platforms w/o libbacktrace
+backtrace = [
+ "backtrace_rs/dbghelp", # backtrace/symbolize on MSVC
+ "backtrace_rs/libbacktrace", # symbolize on most platforms
+ "backtrace_rs/libunwind", # backtrace on most platforms
+ "backtrace_rs/dladdr", # symbolize on platforms w/o libbacktrace
]
panic-unwind = ["panic_unwind"]
diff --git a/src/libstd/backtrace.rs b/src/libstd/backtrace.rs
index 5d46ef7..61c42a5 100644
--- a/src/libstd/backtrace.rs
+++ b/src/libstd/backtrace.rs
@@ -97,6 +97,7 @@
use crate::sync::Mutex;
use crate::sys_common::backtrace::{output_filename, lock};
use crate::vec::Vec;
+use backtrace_rs as backtrace;
use backtrace::BytesOrWideString;
/// A captured OS thread stack backtrace.
diff --git a/src/libstd/build.rs b/src/libstd/build.rs
index 3209332..8db7bc1 100644
--- a/src/libstd/build.rs
+++ b/src/libstd/build.rs
@@ -49,7 +49,7 @@
println!("cargo:rustc-link-lib=zircon");
println!("cargo:rustc-link-lib=fdio");
} else if target.contains("cloudabi") {
- if cfg!(feature = "backtrace_support") {
+ if cfg!(feature = "backtrace") {
println!("cargo:rustc-link-lib=unwind");
}
println!("cargo:rustc-link-lib=c");
diff --git a/src/libstd/panicking.rs b/src/libstd/panicking.rs
index 93a17d6..e7755af 100644
--- a/src/libstd/panicking.rs
+++ b/src/libstd/panicking.rs
@@ -157,17 +157,17 @@
}
fn default_hook(info: &PanicInfo<'_>) {
- #[cfg(feature = "backtrace_support")]
+ #[cfg(feature = "backtrace")]
use crate::sys_common::{backtrace as backtrace_mod};
// If this is a double panic, make sure that we print a backtrace
// for this panic. Otherwise only print it if logging is enabled.
- #[cfg(feature = "backtrace_support")]
+ #[cfg(feature = "backtrace")]
let log_backtrace = {
let panics = update_panic_count(0);
if panics >= 2 {
- Some(backtrace::PrintFmt::Full)
+ Some(backtrace_rs::PrintFmt::Full)
} else {
backtrace_mod::log_enabled()
}
@@ -190,7 +190,7 @@
let _ = writeln!(err, "thread '{}' panicked at '{}', {}",
name, msg, location);
- #[cfg(feature = "backtrace_support")]
+ #[cfg(feature = "backtrace")]
{
use crate::sync::atomic::{AtomicBool, Ordering};
diff --git a/src/libstd/rt.rs b/src/libstd/rt.rs
index f73bd6c..cf45eb0 100644
--- a/src/libstd/rt.rs
+++ b/src/libstd/rt.rs
@@ -44,11 +44,11 @@
sys::args::init(argc, argv);
// Let's run some code!
- #[cfg(feature = "backtrace_support")]
+ #[cfg(feature = "backtrace")]
let exit_code = panic::catch_unwind(|| {
sys_common::backtrace::__rust_begin_short_backtrace(move || main())
});
- #[cfg(not(feature = "backtrace_support"))]
+ #[cfg(not(feature = "backtrace"))]
let exit_code = panic::catch_unwind(move || main());
sys_common::cleanup();
diff --git a/src/libstd/sys_common/backtrace.rs b/src/libstd/sys_common/backtrace.rs
index 5289066..f49adc0 100644
--- a/src/libstd/sys_common/backtrace.rs
+++ b/src/libstd/sys_common/backtrace.rs
@@ -9,7 +9,7 @@
use crate::path::{self, Path, PathBuf};
use crate::sys::mutex::Mutex;
-use backtrace::{BacktraceFmt, BytesOrWideString, PrintFmt};
+use backtrace_rs::{BacktraceFmt, BytesOrWideString, PrintFmt};
/// Max number of frames to print.
const MAX_NB_FRAMES: usize = 100;
@@ -33,7 +33,7 @@
}
/// Prints the current backtrace.
-#[cfg(feature = "backtrace_support")]
+#[cfg(feature = "backtrace")]
pub fn print(w: &mut dyn Write, format: PrintFmt) -> io::Result<()> {
// There are issues currently linking libbacktrace into tests, and in
// general during libstd's own unit tests we're not testing this path. In
@@ -74,14 +74,14 @@
bt_fmt.add_context()?;
let mut idx = 0;
let mut res = Ok(());
- backtrace::trace_unsynchronized(|frame| {
+ backtrace_rs::trace_unsynchronized(|frame| {
if print_fmt == PrintFmt::Short && idx > MAX_NB_FRAMES {
return false;
}
let mut hit = false;
let mut stop = false;
- backtrace::resolve_frame_unsynchronized(frame, |symbol| {
+ backtrace_rs::resolve_frame_unsynchronized(frame, |symbol| {
hit = true;
if print_fmt == PrintFmt::Short {
if let Some(sym) = symbol.name().and_then(|s| s.as_str()) {
@@ -129,7 +129,7 @@
// For now logging is turned off by default, and this function checks to see
// whether the magical environment variable is present to see if it's turned on.
-#[cfg(feature = "backtrace_support")]
+#[cfg(feature = "backtrace")]
pub fn log_enabled() -> Option<PrintFmt> {
use crate::sync::atomic::{self, Ordering};
diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs
index 85fd80e..764041d 100644
--- a/src/libstd/thread/mod.rs
+++ b/src/libstd/thread/mod.rs
@@ -465,11 +465,11 @@
}
thread_info::set(imp::guard::current(), their_thread);
- #[cfg(feature = "backtrace_support")]
+ #[cfg(feature = "backtrace")]
let try_result = panic::catch_unwind(panic::AssertUnwindSafe(|| {
crate::sys_common::backtrace::__rust_begin_short_backtrace(f)
}));
- #[cfg(not(feature = "backtrace_support"))]
+ #[cfg(not(feature = "backtrace"))]
let try_result = panic::catch_unwind(panic::AssertUnwindSafe(f));
*their_packet.get() = Some(try_result);
};
diff --git a/src/libtest/Cargo.toml b/src/libtest/Cargo.toml
index f0041bc..170fbb9 100644
--- a/src/libtest/Cargo.toml
+++ b/src/libtest/Cargo.toml
@@ -23,7 +23,7 @@
# Forward features to the `std` crate as necessary
[features]
-backtrace_support = ["std/backtrace_support"]
+backtrace = ["std/backtrace"]
compiler-builtins-c = ["std/compiler-builtins-c"]
llvm-libunwind = ["std/llvm-libunwind"]
panic-unwind = ["std/panic_unwind"]