[GH-ISSUE #3415] [Bug] Real MIPS verifier oracle omits parsed GNU attribute absence #1274

Closed
opened 2026-10-16 21:03:39 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @N0zoM1z0 on GitHub (Oct 14, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/3415

The real MIPS executable and relocatable verifiers fail before their regular analysis cases because their shared independent GNU-readelf oracle omits a newly reported metadata field.

Reproduced on Linux x64 at 8dde6370d0809ad04cda3342d4e6f290f48aa063 with real Clang/LLD14, GNU readelf, and Ghidra12.1.4/JDK21:

node scripts/verify-real-ghidra-mips.mjs
node scripts/verify-real-ghidra-mips-relocatable.mjs

Both fail their strict ELF/ABI comparison with the sole difference:

  abiFlags: { /* all fields agree */ },
+ gnuAttributes: null,

parseBinaryTarget(...).mips reports explicit GNU-attribute absence. The fixture owner's parseMipsReadelf in tests/conformance/ghidra/mips-checks.mjs returns no gnuAttributes field. This is a verifier false alarm, not observed disagreement with the compiler's ELF/ABI values. The shared helper and consumers are unchanged on current main 322506d0c0d39d3cd1e2e1c285c2cc23cfa73ee7.

The independent reader should cover the current representation at its owning boundary: establish attribute absence from the GNU report (and reject or correctly parse unexpected attribute sections), update its exact type contract, and retain strict comparisons. Do not strip the production fact or weaken equality. Existing parser goldens and real hard/soft-float, both-endian executable/relocatable workflows should verify the correction. That full corrected verification is proposed, not yet executed.

Observed measurements on a busy shared host: executable verifier53.29s wall/108.68s waited-child CPU before failure. Both raw errors and retained source-built workspaces are preserved locally; no speedup claim.

Originally created by @N0zoM1z0 on GitHub (Oct 14, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/3415 The real MIPS executable and relocatable verifiers fail before their regular analysis cases because their shared independent GNU-readelf oracle omits a newly reported metadata field. Reproduced on Linux x64 at `8dde6370d0809ad04cda3342d4e6f290f48aa063` with real Clang/LLD14, GNU readelf, and Ghidra12.1.4/JDK21: ```sh node scripts/verify-real-ghidra-mips.mjs node scripts/verify-real-ghidra-mips-relocatable.mjs ``` Both fail their strict ELF/ABI comparison with the sole difference: ```diff abiFlags: { /* all fields agree */ }, + gnuAttributes: null, ``` `parseBinaryTarget(...).mips` reports explicit GNU-attribute absence. The fixture owner's `parseMipsReadelf` in `tests/conformance/ghidra/mips-checks.mjs` returns no `gnuAttributes` field. This is a verifier false alarm, not observed disagreement with the compiler's ELF/ABI values. The shared helper and consumers are unchanged on current main `322506d0c0d39d3cd1e2e1c285c2cc23cfa73ee7`. The independent reader should cover the current representation at its owning boundary: establish attribute absence from the GNU report (and reject or correctly parse unexpected attribute sections), update its exact type contract, and retain strict comparisons. Do not strip the production fact or weaken equality. Existing parser goldens and real hard/soft-float, both-endian executable/relocatable workflows should verify the correction. That full corrected verification is proposed, not yet executed. Observed measurements on a busy shared host: executable verifier53.29s wall/108.68s waited-child CPU before failure. Both raw errors and retained source-built workspaces are preserved locally; no speedup claim.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1274
No description provided.