diff --git a/src/crt0/src/lib.rs b/src/crt0/src/lib.rs
index 1b64be4e73be477ad07ea328bc446faf30ff3740..6b8c2552277a478744933ff330f7628236a9099f 100644
--- a/src/crt0/src/lib.rs
+++ b/src/crt0/src/lib.rs
@@ -2,7 +2,7 @@
 
 #![no_std]
 #![feature(asm)]
-#![feature(lang_items)]
+#![feature(core_intrinsics)]
 #![feature(linkage)]
 #![feature(naked_functions)]
 
@@ -29,12 +29,6 @@ pub unsafe extern "C" fn _start() {
 }
 
 #[panic_handler]
-#[linkage = "weak"]
-#[no_mangle]
-pub extern "C" fn rust_begin_unwind(_pi: &::core::panic::PanicInfo) -> ! {
-    extern "C" {
-        fn exit(status: i32) -> !;
-    }
-
-    unsafe { exit(1) }
+unsafe fn panic(_pi: &::core::panic::PanicInfo) -> ! {
+    ::core::intrinsics::abort();
 }
diff --git a/src/crti/src/lib.rs b/src/crti/src/lib.rs
index eb80c7c57a7bfcbaad61dfd6b13f895331f8db23..4f1d7a6ebaa50032cfd73e2abad8cf9d32f831a8 100644
--- a/src/crti/src/lib.rs
+++ b/src/crti/src/lib.rs
@@ -1,6 +1,7 @@
 //! crti
 
 #![no_std]
+#![feature(core_intrinsics)]
 #![feature(global_asm)]
 #![feature(linkage)]
 
@@ -46,12 +47,6 @@ global_asm!(r#"
 "#);
 
 #[panic_handler]
-#[linkage = "weak"]
-#[no_mangle]
-pub extern "C" fn rust_begin_unwind(_pi: &::core::panic::PanicInfo) -> ! {
-    extern "C" {
-        fn exit(status: i32) -> !;
-    }
-
-    unsafe { exit(1) }
+unsafe fn panic(_pi: &::core::panic::PanicInfo) -> ! {
+    ::core::intrinsics::abort();
 }
diff --git a/src/crtn/src/lib.rs b/src/crtn/src/lib.rs
index b0ae758465523e8b5d3086648c314ab5fc005bee..e62acc6531f157e625fc6cdaa4ac29e9be40c8d3 100644
--- a/src/crtn/src/lib.rs
+++ b/src/crtn/src/lib.rs
@@ -1,6 +1,7 @@
 //! crti
 
 #![no_std]
+#![feature(core_intrinsics)]
 #![feature(global_asm)]
 #![feature(linkage)]
 
@@ -36,12 +37,6 @@ global_asm!(r#"
 "#);
 
 #[panic_handler]
-#[linkage = "weak"]
-#[no_mangle]
-pub extern "C" fn rust_begin_unwind(_pi: &::core::panic::PanicInfo) -> ! {
-    extern "C" {
-        fn exit(status: i32) -> !;
-    }
-
-    unsafe { exit(1) }
+unsafe fn panic(_pi: &::core::panic::PanicInfo) -> ! {
+    ::core::intrinsics::abort();
 }