This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user