about summary refs log tree commit diff
path: root/library/std/src/sys_common/backtrace.rs
diff options
context:
space:
mode:
authorMohsen Zohrevandi <mohsen.zohrevandi@fortanix.com>2023-11-14 13:27:57 -0800
committerMohsen Zohrevandi <mohsen.zohrevandi@fortanix.com>2023-11-14 13:27:57 -0800
commitec8c3d9992661f078152b0e1f53b1a96fce090ca (patch)
tree4a34be56c3a38b2362a047d85e1a9fcb8ccda70d /library/std/src/sys_common/backtrace.rs
parent6e7ea03c268fea775b4b6b3edc49936272bd1d13 (diff)
downloadrust-ec8c3d9992661f078152b0e1f53b1a96fce090ca.tar.gz
rust-ec8c3d9992661f078152b0e1f53b1a96fce090ca.zip
Move SGX-specific image base logic to sys_common
Diffstat (limited to 'library/std/src/sys_common/backtrace.rs')
-rw-r--r--library/std/src/sys_common/backtrace.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/library/std/src/sys_common/backtrace.rs b/library/std/src/sys_common/backtrace.rs
index e2acc6a2044..d680bd33279 100644
--- a/library/std/src/sys_common/backtrace.rs
+++ b/library/std/src/sys_common/backtrace.rs
@@ -64,11 +64,7 @@ unsafe fn _print_fmt(fmt: &mut fmt::Formatter<'_>, print_fmt: PrintFmt) -> fmt::
     let mut first_omit = true;
     // Start immediately if we're not using a short backtrace.
     let mut start = print_fmt != PrintFmt::Short;
-    #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))]
-    {
-        let image_base = crate::os::fortanix_sgx::mem::image_base();
-        backtrace_rs::set_image_base(crate::ptr::from_exposed_addr_mut(image_base as _));
-    }
+    set_image_base();
     backtrace_rs::trace_unsynchronized(|frame| {
         if print_fmt == PrintFmt::Short && idx > MAX_NB_FRAMES {
             return false;
@@ -218,3 +214,14 @@ pub fn output_filename(
     }
     fmt::Display::fmt(&file.display(), fmt)
 }
+
+#[cfg(all(target_vendor = "fortanix", target_env = "sgx"))]
+pub fn set_image_base() {
+    let image_base = crate::os::fortanix_sgx::mem::image_base();
+    backtrace_rs::set_image_base(crate::ptr::from_exposed_addr_mut(image_base as _));
+}
+
+#[cfg(not(all(target_vendor = "fortanix", target_env = "sgx")))]
+pub fn set_image_base() {
+    // nothing to do for platforms other than SGX
+}