29 lines
1.4 KiB
Markdown
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.
|