about summary refs log tree commit diff
path: root/src/debuginfo
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2024-04-11 10:42:48 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2024-04-11 10:42:48 +0000
commite243f8d0e3af98e3689e7e38b6ac0a83100d000f (patch)
treea1f5b3807fce2fdc9f01f4cb8f21403d68607834 /src/debuginfo
parentda09eadbabb4a76304fa6af01a6bdea9b4ede446 (diff)
Merge commit '89f54caacf90e99fc8ba0d60a28bdadea3cfdf1e' into sync_cg_clif-2024-04-11
Diffstat (limited to 'src/debuginfo')
-rw-r--r--src/debuginfo/unwind.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/debuginfo/unwind.rs b/src/debuginfo/unwind.rs
index 96ab7a29205..eebd181341d 100644
--- a/src/debuginfo/unwind.rs
+++ b/src/debuginfo/unwind.rs
@@ -38,6 +38,14 @@ impl UnwindContext {
     }
 
     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) =
             context.compiled_code().unwrap().create_unwind_info(isa).unwrap()
         {