about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJethro Beekman <jethro@fortanix.com>2019-02-14 12:39:54 +0530
committerJethro Beekman <jethro@fortanix.com>2019-02-14 12:39:54 +0530
commit347a42e38770593cb82affc6d3d7413ebae911f0 (patch)
tree337de07657684916befd355f98470e8964016165 /src
parent4772dc8087b1d0f2bab6d064fd930e596c82d439 (diff)
downloadrust-347a42e38770593cb82affc6d3d7413ebae911f0.tar.gz
rust-347a42e38770593cb82affc6d3d7413ebae911f0.zip
SGX target: fix panic = abort
Diffstat (limited to 'src')
-rw-r--r--src/libpanic_abort/lib.rs5
-rw-r--r--src/libstd/sys/sgx/rwlock.rs1
2 files changed, 4 insertions, 2 deletions
diff --git a/src/libpanic_abort/lib.rs b/src/libpanic_abort/lib.rs
index edc97cd28a5..8c20a6ea55a 100644
--- a/src/libpanic_abort/lib.rs
+++ b/src/libpanic_abort/lib.rs
@@ -58,8 +58,9 @@ pub unsafe extern fn __rust_start_panic(_payload: usize) -> u32 {
 
     #[cfg(all(target_vendor="fortanix", target_env="sgx"))]
     unsafe fn abort() -> ! {
-        extern "C" { pub fn panic_exit() -> !; }
-        panic_exit();
+        // call std::sys::abort_internal
+        extern "C" { pub fn __rust_abort() -> !; }
+        __rust_abort();
     }
 }
 
diff --git a/src/libstd/sys/sgx/rwlock.rs b/src/libstd/sys/sgx/rwlock.rs
index 33163a556c1..4dfbe86d14f 100644
--- a/src/libstd/sys/sgx/rwlock.rs
+++ b/src/libstd/sys/sgx/rwlock.rs
@@ -204,6 +204,7 @@ pub unsafe extern "C" fn __rust_print_err(m: *mut u8, s: i32) {
 }
 
 #[no_mangle]
+// NB. used by both libunwind and libpanic_abort
 pub unsafe extern "C" fn __rust_abort() {
     ::sys::abort_internal();
 }