Files
Cesarus85--mjolnir-vr/docs/object_matching_logs/libcmt_nlsdata1_obj.md
T

2.0 KiB

libcmt/nlsdata1.obj exact-match ledger

Plain-English behavior

This data-only CRT object describes the default C locale: multibyte characters are one byte wide, the decimal separator is ., and that separator has length one. It contains no executable code.

January and XDK provenance

January owns one 12-byte writable .data section with three external symbols: ___mb_cur_max at offset 0, ___decimal_point at offset 4, and ___decimal_point_length at offset 8. The bytes are 01 00 00 00 2E 00 00 00 01 00 00 00, with no relocations.

XDK 3911 libcmt.lib contains obj\\i386\\nlsdata1.obj. Its embedded records identify ..\\nlsdata1.c and Microsoft VC7, and its 12-byte runtime section, symbol offsets, flags, and bytes are identical to January. Therefore the three natural C declarations are original-source reconstruction, not a layout guess.

Experiment record

ID Source shape Result
E01 Two initialized integers around char __decimal_point[4] = "." Strict exact on first build

The fresh XDK 3911 build proves 12/12 bytes, 0/0 relocations, and identical normalized SHA-256 45fb2b0c15987b86b53ead635e76e203f8cfad29956dffb04a0b25afed5baefb. Both .data sections have flags 0xC0300040. All three symbols are external, type zero, storage class 2, at the proven offsets 0, 4, and 8. section_infos_equal is true; neither side owns any other runtime section.

House/Berth audit

  • Each global has a semantic locale name and ordinary C type.
  • The four-byte character array is proven by the next symbol's offset and the exact XDK member, not inserted merely as padding.
  • No packing, alignment override, raw offset, assembly, volatile, undefined behavior, byte forcing, compiler flag change, or comparator exception is used.
  • This canonical C-locale data contains no original-game bug to annotate.

Admission requires exact data bytes, flags, alignment, all three symbol identities/offsets/storage classes, full builds, zero semantic errors, a clean forced-rebuild regression check, and all 179 project tests.