// This... is a bit of a hack how we detect this. Ideally this
// information should be encoded in the crate I guess? Would likely
// require an RFC amendment to RFC 1513, however.
- if crate_name == "panic_abort" {
+ //
+ // `compiler_builtins` are unconditionally compiled with panic=abort to
+ // workaround undefined references to `rust_eh_unwind_resume` generated
+ // otherwise, see issue https://github.com/rust-lang/rust/issues/43095.
+ if crate_name == "panic_abort" ||
+ crate_name == "compiler_builtins" && stage != "0" {
cmd.arg("-C").arg("panic=abort");
}
}
let cnum = CrateNum::new(i + 1);
let found_strategy = sess.cstore.panic_strategy(cnum);
- if desired_strategy == found_strategy {
+ let is_compiler_builtins = sess.cstore.is_compiler_builtins(cnum);
+ if is_compiler_builtins || desired_strategy == found_strategy {
continue
}