diff --git a/src/crt0/src/lib.rs b/src/crt0/src/lib.rs index 1b64be4e73..6b8c255227 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 eb80c7c57a..4f1d7a6eba 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 b0ae758465..e62acc6531 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(); }