Files
chimera-gfx-Public/docs/retroarch/phase-1.0ah-dynamic-relocation-contract.md
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

1.4 KiB

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.