Don't emit unwind tables on macOS
They don't work anyway as object misses support for emitting the particular format macOS expects. And on arm64 macOS it causes compilation to abort due to an unsupported relocation type. Fixes rust-lang/rustc_codegen_cranelift#1371
This commit is contained in:
parent
0f1ee59ea5
commit
39b25b3d71
@ -38,6 +38,14 @@ pub(crate) fn new(isa: &dyn TargetIsa, pic_eh_frame: bool) -> Self {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn add_function(&mut self, func_id: FuncId, context: &Context, isa: &dyn TargetIsa) {
|
pub(crate) fn add_function(&mut self, func_id: FuncId, context: &Context, isa: &dyn TargetIsa) {
|
||||||
|
if let target_lexicon::OperatingSystem::MacOSX { .. } = isa.triple().operating_system {
|
||||||
|
// The object crate doesn't currently support DW_GNU_EH_PE_absptr, which macOS
|
||||||
|
// requires for unwinding tables. In addition on arm64 it currently doesn't
|
||||||
|
// support 32bit relocations as we currently use for the unwinding table.
|
||||||
|
// See gimli-rs/object#415 and rust-lang/rustc_codegen_cranelift#1371
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let unwind_info = if let Some(unwind_info) =
|
let unwind_info = if let Some(unwind_info) =
|
||||||
context.compiled_code().unwrap().create_unwind_info(isa).unwrap()
|
context.compiled_code().unwrap().create_unwind_info(isa).unwrap()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user