mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-26 18:00:34 +01:00
100 lines
4.7 KiB
Markdown
100 lines
4.7 KiB
Markdown
# `libs/libcmt/ncommode.obj` exact-match ledger
|
|
|
|
This atomic lane independently reconstructed and verified the object on a fresh
|
|
worktree based on campaign commit `134d4424`. An older completed branch was
|
|
screened only to identify the candidate; none of its measurements were trusted
|
|
until repeated here.
|
|
|
|
## Plain-English behavior
|
|
|
|
This object contains the Microsoft CRT's global file-commit mode. Its initial
|
|
value is zero, meaning the optional commit-on-flush behavior starts disabled.
|
|
There is no executable code in this translation unit.
|
|
|
|
## Provenance and target inventory
|
|
|
|
The January split target owns exactly one four-byte `.bss` section. It defines
|
|
external symbol `__commode` at offset zero, with four-byte alignment and no
|
|
relocations. It owns no `.text`, `.data`, or `.rdata` runtime section.
|
|
|
|
The XDK 3911 `libcmt.lib` used by the project contains member
|
|
`obj\i386\ncommode.obj`. I extracted that member from the locally archived
|
|
library whose SHA-256 is
|
|
`60aa4c87c97eeb6662b31d9d37cf3caba1afabaec72c47b090e7a0ce8b632f55`.
|
|
Its COFF file record names `..\ncommode.c`, its compiler id is `0x001c2426`,
|
|
and it independently owns the same external `__commode` symbol in a four-byte,
|
|
four-byte-aligned `.bss` section with zero relocations. The archive member is
|
|
therefore primary XDK provenance that this is readable C data, not vendored
|
|
assembly or an anonymous-byte placeholder.
|
|
|
|
## Accepted source and experiment record
|
|
|
|
The single retained declaration is:
|
|
|
|
```c
|
|
int _commode = 0;
|
|
```
|
|
|
|
The explicit zero expresses the CRT default while VC7 places the definition in
|
|
owned zero-initialized storage. A synthetic compilation with the campaign's
|
|
exact CL and `/O1 /Gy` produced compiler id `0x001c2426`, external symbol
|
|
`__commode`, a four-byte `.bss` section, four-byte alignment, and no
|
|
relocations. Because that direct source shape reproduced every runtime
|
|
property on the first build, no speculative variants were justified.
|
|
|
|
| ID | Source shape | Runtime result | Decision |
|
|
|---|---|---|---|
|
|
| E01 | `int _commode = 0;` | `.bss` 4/4 bytes, 0/0 relocs, external symbol at offset 0 | retained |
|
|
|
|
Do not retry alignment pragmas, raw arrays, aliases, assembly, `volatile`, or
|
|
compiler-flag changes: none is supported by the target or XDK provenance, and
|
|
none is needed.
|
|
|
|
## Strict verification
|
|
|
|
The production object is rebuilt with XDK 3911 CL `13.00.9254.1` using the
|
|
configured libcmt flags `/O1 /Gy /I"xbox/include"`. Admission requires all of
|
|
the following, not merely a visual percentage:
|
|
|
|
- target and candidate own the same four-byte uninitialized writable section;
|
|
- normalized section bytes and padding are identical;
|
|
- relocation count and identity are both empty;
|
|
- `__commode` has external storage, offset zero, and belongs to that section;
|
|
- the object owns no other runtime data or code;
|
|
- full Halo and libcmt builds, semantic/progress reports, the per-unit
|
|
regression snapshot/check, and all 179 tooling tests pass.
|
|
|
|
The forced clean production rebuild emitted the configured command line
|
|
`CL.Exe /nologo /c /O1 /Gy /I"xbox/include"`; this rules out stale-object
|
|
credit. The strict owned-section measurement after that rebuild was:
|
|
|
|
| owned section | target | candidate | relocs | target/candidate SHA-256 |
|
|
|---|---:|---:|---:|---|
|
|
| `.bss` via `__commode` | 4 B | 4 B | 0 / 0 | `df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119` |
|
|
|
|
`tools.coff_compare.section_infos_equal` returned `true`. Both sections have
|
|
flags `0xc0300080` (uninitialized writable data, four-byte alignment). On both
|
|
sides, `__commode` has value zero, type zero, external storage class 2, and is
|
|
owned by that section. The only extra candidate sections are ordinary compiler
|
|
directives/debug/build metadata; they own no runtime bytes.
|
|
|
|
The full `halobetacache_build` and `libcmt_build` completed successfully. The
|
|
semantic audit scanned 400 implemented units and reported zero unit errors,
|
|
3,292 semantic-exact functions, and 3,376 accepted exact functions. Progress
|
|
reported 290/833 objects overall and 23/212 libcmt objects; libcmt now has
|
|
160/8,637 exact data bytes. This object deliberately adds no function count
|
|
because it owns no code. The complete tooling suite passed **179/179** tests.
|
|
|
|
After the atomic commit, the fail-closed per-unit regression manifest was
|
|
snapshotted and checked successfully; it preserved this object's data and
|
|
symbol ownership with no regressions or unexpected changes. `git diff --check`
|
|
and the final scope audit were also clean.
|
|
|
|
## House/Berth audit
|
|
|
|
This unit is ordinary typed C data. Function formatting and return rules do
|
|
not apply because it contains no functions. It uses no assembly, `volatile`,
|
|
forced inlining, undefined behavior, packed surrogate, alignment trick,
|
|
compiler override, byte patch, or comparator exception. No original bug is
|
|
present, so no bug-preservation comment is required.
|