aboutsummaryrefslogtreecommitdiff
path: root/AGENTS
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-19 12:34:28 +0000
committer_ov4 <ov4@ov4.org>2026-10-19 12:34:28 +0000
commit51213a7166196f38080cde61224daba034d16c60 (patch)
treea95cfd5d66021616de4708d6c3acdbc9d51ef0f3 /AGENTS
parenta5ce1af261ec3890d1ae16cc3a8785ffa8ad7b43 (diff)
fix(driver): bind MinGW JIT stdio locks to the host CRT
Resolve _lock_file and _unlock_file to the host compatibility functions so JIT stdio cannot pick incompatible locks from another CRT DLL. Cover fprintf inside a C++ catch with exact stderr expectations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS')
-rw-r--r--AGENTS/ARCH.md5
1 files changed, 5 insertions, 0 deletions
diff --git a/AGENTS/ARCH.md b/AGENTS/ARCH.md
index dbe9f30..7e284da 100644
--- a/AGENTS/ARCH.md
+++ b/AGENTS/ARCH.md
@@ -147,6 +147,11 @@ Driver behavior (`tools/driver/main.cc`):
the host ABI function. The fallback is made local, and runtime archive
interfaces are computed from the normalized object. The runner binds the host's
initialized stack guard, stack-check failure handler and `write` alias (`_write`) on MinGW.
+ It also binds the host's `_lock_file`/`_unlock_file` compatibility functions,
+ keeping MinGW stdio locks compatible with the host's `FILE` objects.
+ Microsoft msvcrt.dll lacks these exports, so process-wide lookup can select
+ another CRT's incompatible functions. Wine's msvcrt.dll exports them and can
+ mask this defect; Wine success does not replace real Windows verification.
Per-graph `__ImageBase` is shared by relocations
and SEH registration, with default backend liveness for `.pdata` and
associative code edges retaining the suffixed unwind sections. JITLink uses