4.4 KiB
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
.datasection, 180 bytes, with 44 DIR32 relocations and normalized SHA-2568a59cc708ce056f9aeb11128812b50f5b38f24bb7bd4fe1e2f5e0c39839e3313; - external
__sys_errlistat data offset0x00and external__sys_nerrat offset0xb0, 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.