diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-19 12:34:28 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-19 12:34:28 +0000 |
| commit | 51213a7166196f38080cde61224daba034d16c60 (patch) | |
| tree | a95cfd5d66021616de4708d6c3acdbc9d51ef0f3 /AGENTS | |
| parent | a5ce1af261ec3890d1ae16cc3a8785ffa8ad7b43 (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.md | 5 |
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 |
