Skip to content

rust_begin_unwind symbol doesn't have the right visibility #52795

Closed
@japaric

Description

@japaric

when emitted from a bin crate.

STR

$ cat foo.rs
#![feature(panic_implementation)]
#![no_main]
#![no_std]

use core::panic::PanicInfo;

#[panic_implementation]
fn panic(_info: &PanicInfo) -> ! {
    loop {}
}
$ rustc -C panic=abort --crate-type=bin --emit=obj foo.rs

$ nm -C foo.o
0000000000000000 t rust_begin_unwind

$ rustc -C panic=abort --crate-type=lib --emit=obj foo.rs

$ nm -C foo.o
0000000000000000 T rust_begin_unwind

rust_begin_unwind being an internal / private symbol (t) causes linker errors of the form "undefined reference to rust_begin_unwind".

Meta

$ rustc -V
rustc 1.29.0-nightly (6a1c0637c 2018-07-23)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions