diff options
| author | Martin Nordholts <martin.nordholts@codetale.se> | 2025-07-07 22:36:23 +0200 |
|---|---|---|
| committer | Martin Nordholts <martin.nordholts@codetale.se> | 2025-10-02 19:46:41 +0200 |
| commit | fe66eaa67acc47525db6f13cf97d54780d87b805 (patch) | |
| tree | 4f63e047f4b5f57966553dacddcced2b5c7b534f /compiler/rustc_codegen_ssa/src/base.rs | |
| parent | 15283f6fe95e5b604273d13a428bab5fc0788f5a (diff) | |
| download | rust-fe66eaa67acc47525db6f13cf97d54780d87b805.tar.gz rust-fe66eaa67acc47525db6f13cf97d54780d87b805.zip | |
Fix backtraces with `-C panic=abort` on linux; emit unwind tables by default
The linux backtrace unwinder relies on unwind tables to work properly, and generating and printing a backtrace is done by for example the default panic hook. Begin emitting unwind tables by default again with `-C panic=abort` (see history below) so that backtraces work. History ======= Backtraces with `-C panic=abort` used to work in Rust 1.22 but broke in Rust 1.23, because in 1.23 we stopped emitting unwind tables with `-C panic=abort` (see 24cc38e3b00). In 1.45 (see cda994633ee) a workaround in the form of `-C force-unwind-tables=yes` was added. `-C panic=abort` was added in [Rust 1.10](https://blog.rust-lang.org/2016/07/07/Rust-1.10/#what-s-in-1-10-stable) and the motivation was binary size and compile time. But given how confusing that behavior has turned out to be, it is better to make binary size optimization opt-in with `-C force-unwind-tables=no` rather than default since the current default breaks backtraces. Besides, if binary size is a primary concern, there are many other tricks that can be used that has a higher impact.
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/base.rs')
0 files changed, 0 insertions, 0 deletions
