aboutsummaryrefslogtreecommitdiff
path: root/AGENTS
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-18 05:10:30 +0000
committer_ov4 <ov4@ov4.org>2026-10-18 05:10:30 +0000
commit6f2656e551414cbca4b57e866f4719dd9d1734cd (patch)
treecacaabfa48a7cc0d7054c5c59c0b2c4816759b87 /AGENTS
parent1be4fd3beb6a1dc9e7cf7dd8b5da5db635feb54b (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS')
-rw-r--r--AGENTS/ARCH.md4
1 files changed, 3 insertions, 1 deletions
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.