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(); }