diff --git a/blog/post/03-set-up-rust.md b/blog/post/03-set-up-rust.md index bf150fd3..3f7b078a 100644 --- a/blog/post/03-set-up-rust.md +++ b/blog/post/03-set-up-rust.md @@ -57,7 +57,7 @@ Now we place our root source file in `src/lib.rs`: pub extern fn rust_main() {} #[lang = "eh_personality"] extern fn eh_personality() {} -#[lang = "panic_fmt"] extern fn panic_fmt() -> ! {loop{}} +#[lang = "panic_fmt"] #[no_mangle] extern fn panic_fmt() -> ! {loop{}} ``` Let's break it down: diff --git a/blog/post/05-allocating-frames.md b/blog/post/05-allocating-frames.md index f9eec739..f6de3ad9 100644 --- a/blog/post/05-allocating-frames.md +++ b/blog/post/05-allocating-frames.md @@ -103,6 +103,7 @@ We used `expect` in the code above, which will panic if there is no memory map t ```rust #[lang = "panic_fmt"] +#[no_mangle] extern fn panic_fmt() -> ! { println!("PANIC"); loop{} @@ -112,6 +113,7 @@ Now we get a `PANIC` message. But we can do even better. The `panic_fmt` functio ```rust #[lang = "panic_fmt"] +#[no_mangle] extern fn panic_fmt(fmt: core::fmt::Arguments, file: &'static str, line: u32) -> ! { diff --git a/src/lib.rs b/src/lib.rs index b026eb18..2fc109cf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -86,6 +86,7 @@ extern "C" fn eh_personality() {} #[cfg(not(test))] #[lang = "panic_fmt"] +#[no_mangle] extern "C" fn panic_fmt(fmt: core::fmt::Arguments, file: &'static str, line: u32) -> ! { println!("\n\nPANIC in {} at line {}:", file, line); println!(" {}", fmt);