From 6f2656e551414cbca4b57e866f4719dd9d1734cd Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sun, 18 Oct 2026 05:10:30 +0000 Subject: fix(driver): add COFF jump stubs for external object calls Route external direct CALL/JMP PCRel32 references through nearby JITLink stubs so user objects can reach distant Windows CRT functions. Reuse the personality stub tables and preserve data references. Co-Authored-By: Claude Opus 5.5 --- AGENTS/ARCH.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'AGENTS') diff --git a/AGENTS/ARCH.md b/AGENTS/ARCH.md index 0479641..2e122a5 100644 --- a/AGENTS/ARCH.md +++ b/AGENTS/ARCH.md @@ -141,7 +141,9 @@ Driver behavior (`tools/driver/main.cc`): Windows x86_64 keeps the GNU C++ runtime and `__gxx_personality_seh0` with a small in-process COFF adapter: per-graph `__ImageBase` shared by relocations and SEH registration, default backend liveness for `.pdata`, JITLink - pointer-jump stubs for the `.xdata` personality references, and + pointer-jump stubs for external direct CALL/JMP PCRel32 references in user + objects and `.xdata` personality references (shared per target; data references + are preserved), and `RtlAddFunctionTable`/`RtlDeleteFunctionTable` via JITLink allocation actions covering teardown and link-failure cleanup, with table validation in the registration callback; registration failure blocks entry. -- cgit v1.3.1-4-g156e