From 3001dfeb97adebf0cb326d9aa664098e0aced5b5 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Fri, 16 Oct 2026 14:09:08 +0000 Subject: fix(jit): always emit DWARF unwind frames on macOS Co-Authored-By: Claude Fable 5.1 --- tools/driver/EmbeddedRunner.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tools') diff --git a/tools/driver/EmbeddedRunner.cc b/tools/driver/EmbeddedRunner.cc index cad1f84..05890ac 100644 --- a/tools/driver/EmbeddedRunner.cc +++ b/tools/driver/EmbeddedRunner.cc @@ -7,6 +7,7 @@ #include "llvm/Support/TargetSelect.h" #include "llvm/TargetParser/Host.h" #include "llvm/TargetParser/Triple.h" +#include "llvm/Target/TargetOptions.h" #include "llvm/Transforms/Utils/Cloning.h" #include #include @@ -66,6 +67,12 @@ int runEmbedded(const cps::CodeGen &CG) { llvm::EngineBuilder Builder(std::move(Module)); Builder.setEngineKind(llvm::EngineKind::JIT); Builder.setErrorStr(&Error); +#ifdef __APPLE__ + // MCJIT registers DWARF frames, not Darwin's compact unwind records. + llvm::TargetOptions Options; + Options.MCOptions.EmitDwarfUnwind = llvm::EmitDwarfUnwindType::Always; + Builder.setTargetOptions(Options); +#endif Builder.setMCJITMemoryManager(std::make_unique()); std::unique_ptr Engine(Builder.create()); if (!Engine) { -- cgit v1.3.1-4-g156e