mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-24 02:00:32 +02:00
88 lines
4.4 KiB
Markdown
88 lines
4.4 KiB
Markdown
# `libs/libcmt/syserr.obj` exact-match ledger
|
|
|
|
This atomic lane starts from campaign commit `e5ff86a3`. The object was
|
|
`MISSING` at config index 763, absent from `config/parked.json`, and had no
|
|
production source. January owns no executable code here: the object is the
|
|
CRT's public error-message pointer table, its upper-bound value, and the
|
|
string literals referenced by that table.
|
|
|
|
## Plain-English behavior
|
|
|
|
`_sys_errlist` maps the standard CRT error numbers to their English messages.
|
|
Several unsupported error numbers deliberately share the single
|
|
`"Unknown error"` literal. `_sys_nerr` contains 43, the final fallback index;
|
|
`strerror.obj` uses it both as the range boundary and as the fallback entry.
|
|
|
|
## Primary provenance and target inventory
|
|
|
|
The XDK 3911 `libcmt.lib` archive has SHA-256
|
|
`60aa4c87c97eeb6662b31d9d37cf3caba1afabaec72c47b090e7a0ce8b632f55`.
|
|
Its `obj\i386\syserr.obj` member has SHA-256
|
|
`883a9f4aecf55b5419541ba9f23857fa9115e0a752fb398913e9ff0cf382b374`,
|
|
compiler identifier `0x001c2426`, ordinary C CodeView records, and source path
|
|
`d:\xbox-finalfre\private\sdktools\crt\crtw32\misc\syserr.c`. The public
|
|
historical Microsoft Xbox CRT source at the same path supplies the message
|
|
spellings and table order. January bytes and ownership remain authoritative.
|
|
|
|
Strict January runtime inventory:
|
|
|
|
- one writable `.data` section, 180 bytes, with 44 DIR32 relocations and
|
|
normalized SHA-256
|
|
`8a59cc708ce056f9aeb11128812b50f5b38f24bb7bd4fe1e2f5e0c39839e3313`;
|
|
- external `__sys_errlist` at data offset `0x00` and external `__sys_nerr` at
|
|
offset `0xb0`, with the latter containing the integer 43;
|
|
- 40 unique string COMDATs totaling 824 bytes (44 table entries reuse the
|
|
`"Unknown error"` COMDAT four additional times);
|
|
- no `.text`, BSS, or other runtime-owned section.
|
|
|
|
The target and rebuilt object expose the same 42 external non-code symbols.
|
|
All symbol values, types, and storage classes agree. All 41 distinct runtime
|
|
sections pass `section_infos_equal`, and the 44 relocations agree in address,
|
|
type, destination symbol, and addend. The extracted XDK member independently
|
|
reproduces every one of those payloads and owners.
|
|
|
|
## Experiment matrix
|
|
|
|
| ID | Source factor | Data T/B | Relocs T/B | Result | Decision |
|
|
|---|---|---:|---:|---|---|
|
|
| E01 | Authentic Microsoft table, spellings, shared fallback literal, and `sizeof`-derived final index | `1004/1004` | `44/44` | all table bytes, strings, relocations, symbols, offsets, and ownership strict exact on the first build | accepted |
|
|
|
|
No code-shaping experiment was needed. The compiler naturally coalesces the
|
|
five occurrences of `"Unknown error"`, which is why 44 pointers own only 40
|
|
unique string sections.
|
|
|
|
## Strict verification
|
|
|
|
XDK 3911 CL `13.00.9254.1` compiled with unchanged libcmt
|
|
`/O1 /Gy /I"xbox/include"` flags. The hardened target-authoritative census
|
|
checks every external owner, each owned section, and all relocations; nothing
|
|
is accepted through fuzzy percentage, symbol masking, or a semantic-data
|
|
exception.
|
|
|
|
The full `halobetacache_build`, `libcmt_build`, and `progress` targets pass.
|
|
Progress reports 332/833 objects overall and 65/212 libcmt objects. Libcmt has
|
|
88/476 exact functions, 4,512/55,015 exact code bytes, and 1,368/8,637 exact
|
|
data bytes. This data-only object contributes one completed object and 1,004
|
|
exact data bytes. The semantic scan covers 434 units and 3,525 functions,
|
|
accepts 3,441 exact functions, and reports zero unit errors. The admission
|
|
audit reports no candidates or revocations; its only contradiction is the
|
|
pre-existing unrelated `shell_xbox` accounting item.
|
|
|
|
The clean-commit regression snapshot/check was followed by deleting the
|
|
generated object and forcing a rebuild. It retained every data fingerprint
|
|
and owner with no failures or warnings. The complete tool suite passes
|
|
179/179 tests.
|
|
|
|
## House/Berth and original-bug audit
|
|
|
|
The source is the readable, naturally typed Microsoft table: no assembly,
|
|
`volatile`, forced inlining, undefined behavior, type-punning, opaque padding,
|
|
alignment trick, magic address, build-flag change, byte patch, or comparator
|
|
waiver. `sizeof` derives the final index rather than hard-coding 43. Formatting
|
|
and public linkage follow the surrounding CRT source and Berth conventions.
|
|
|
|
No shipped correctness defect was found in this object. Writable `char *`
|
|
entries are the historical CRT ABI even though modern source would usually
|
|
spell the string targets `const`; changing that public type is outside this
|
|
exact-match reconstruction.
|