diff --git a/src/crt0/src/lib.rs b/src/crt0/src/lib.rs index dd7c7e470f..3146fd6114 100644 --- a/src/crt0/src/lib.rs +++ b/src/crt0/src/lib.rs @@ -28,12 +28,15 @@ pub unsafe extern "C" fn _start() { ); } +#[linkage = "weak"] +#[no_mangle] +extern "C" fn relibc_panic(pi: &::core::panic::PanicInfo) -> ! { + loop {} +} + #[panic_handler] #[linkage = "weak"] #[no_mangle] pub unsafe extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! { - extern "C" { - fn relibc_panic(pi: &::core::panic::PanicInfo) -> !; - } relibc_panic(pi) } diff --git a/src/crti/src/lib.rs b/src/crti/src/lib.rs index 6415b0fb7f..9ec19e013f 100644 --- a/src/crti/src/lib.rs +++ b/src/crti/src/lib.rs @@ -49,12 +49,15 @@ global_asm!( "# ); +#[linkage = "weak"] +#[no_mangle] +extern "C" fn relibc_panic(pi: &::core::panic::PanicInfo) -> ! { + loop {} +} + #[panic_handler] #[linkage = "weak"] #[no_mangle] pub unsafe extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! { - extern "C" { - fn relibc_panic(pi: &::core::panic::PanicInfo) -> !; - } relibc_panic(pi) } diff --git a/src/crtn/src/lib.rs b/src/crtn/src/lib.rs index 22bacbb821..8d21fd4406 100644 --- a/src/crtn/src/lib.rs +++ b/src/crtn/src/lib.rs @@ -39,12 +39,15 @@ global_asm!( "# ); +#[linkage = "weak"] +#[no_mangle] +extern "C" fn relibc_panic(pi: &::core::panic::PanicInfo) -> ! { + loop {} +} + #[panic_handler] #[linkage = "weak"] #[no_mangle] pub unsafe extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! { - extern "C" { - fn relibc_panic(pi: &::core::panic::PanicInfo) -> !; - } relibc_panic(pi) } diff --git a/src/ld_so/src/lib.rs b/src/ld_so/src/lib.rs index ec66380ac7..254b2adbdd 100644 --- a/src/ld_so/src/lib.rs +++ b/src/ld_so/src/lib.rs @@ -60,12 +60,15 @@ pub unsafe extern "C" fn main(_argc: isize, _argv: *const *const i8) -> usize { 0x1D } +#[linkage = "weak"] +#[no_mangle] +extern "C" fn relibc_panic(pi: &::core::panic::PanicInfo) -> ! { + loop {} +} + #[panic_handler] #[linkage = "weak"] #[no_mangle] pub unsafe extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! { - extern "C" { - fn relibc_panic(pi: &::core::panic::PanicInfo) -> !; - } relibc_panic(pi) }