Files
chimera-gfx-Public/docs/retroarch/phase-1.0ah-dynamic-relocation-contract.md
T
Chimera GFX release export a6037502d7
phase0-ci / build-and-audit (push) Successful in 2m14s
Publish Chimera GFX source
2026-09-03 03:27:14 +02:00

29 lines
1.4 KiB
Markdown

# Phase 1.0AH: dynamic and relocation contract
Status: `LOADER_CRT_RELOCATION_SPLIT_BOUNDED_TARGET_MAPPING_BLOCKED`
Date: 2026-07-29
This bytes-only phase extends Phase 1.0AG with one bounded dynamic table and
up to four `SHT_RELA` sections containing at most 4,096 entries. It has no
file, mapping, module-loading or execution interface.
The future launcher subset applies only `R_X86_64_RELATIVE`. Each target must
be eight-byte aligned and wholly inside an admitted RW load segment; the symbol
index must be zero and the addend must identify admitted image memory.
`R_X86_64_GLOB_DAT` is admitted only as SDK-CRT work, with a nonzero symbol
index, zero addend and an RW target. Every other relocation type fails closed.
The exact ordered `DT_NEEDED` inventory must be supplied per artifact and may
contain only the seven modules already evidenced for Phase 1.0M.
This distinction matters: official shsrv v0.7 applies RELATIVE relocations
while the pinned SDK v0.41 CRT loads `DT_NEEDED` modules and resolves dynamic
symbols. The latter is side-effecting runtime behavior, not a property proven
safe by this parser.
The historical M counts (913 RELATIVE, 142 GLOB_DAT, seven modules) remain
reference metadata because the bytes are absent. Target mapping remains
blocked until allocation, copy, BSS zeroing, final page permissions and full
failure restoration are modeled with bounded fake operations.