From c9ff1f3ca62d83afd6900c1527f115a46d7ad0df Mon Sep 17 00:00:00 2001 From: _ov4 Date: Fri, 16 Oct 2026 15:27:15 +0000 Subject: fix(jit): set COFF auto-claim flags on custom ObjectLinkingLayer Windows execution awaits CI verification. Co-Authored-By: Claude Fable 5.1 --- tools/driver/EmbeddedRunner.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tools') diff --git a/tools/driver/EmbeddedRunner.cc b/tools/driver/EmbeddedRunner.cc index cc69849..eb29bac 100644 --- a/tools/driver/EmbeddedRunner.cc +++ b/tools/driver/EmbeddedRunner.cc @@ -354,6 +354,17 @@ int runEmbedded(const cps::CodeGen &CG) { } std::unique_ptr J = std::move(*JITOrErr); + // LLJIT's default layer sets these for COFF; our custom JITLink layer + // must do the same or IR-added modules report Unexpected definitions + // for backend-added symbols like __ImageBase. + if (J->getTargetTriple().isOSBinFormatCOFF()) { + if (auto *COFFObjLayer = llvm::dyn_cast( + &J->getObjLinkingLayer())) { + COFFObjLayer->setOverrideObjectFlagsWithResponsibilityFlags(true); + COFFObjLayer->setAutoClaimResponsibilityForObjectSymbols(true); + } + } + #if defined(_WIN32) && defined(__x86_64__) // Register MinGW SEH tables through JITLink; failures surface as link // errors below and prevent entry to JIT code. -- cgit v1.3.1-4-g156e