The rv32 memory.size/grow oracle failed 100% on CI (no symbol for export sz ([])) because it located function offsets by regex-parsing synth disasm TEXT,
which matched nothing on the Linux runner for a --relocatable RISC-V object
(worked on macOS). Fixed in fa9958c by reading the ELF .symtab via pyelftools.
The same host-fragile pattern remains in 10 other repro oracles (they pass on CI
today but carry the latent dependency):
- add_imm_large_differential.py
- bulk_memory_374_differential.py
- bulk_mask_679_differential.py
- bulk_local_clobber_677_differential.py
- control_step_riscv_differential.py
- div_const_differential.py
- controller_step_riscv_differential.py
- i64_large_offset_382_differential.py
- load_store_big_offset_382_differential.py
- signed_div_const_riscv_differential.py
- uxth_fold_differential.py
Harden each to resolve symbols from .symtab (st_value), matching the
differential-harness symtab convention. Non-blocking (they're green now); do it
before they bite the way #841's oracle did.
The
rv32 memory.size/groworacle failed 100% on CI (no symbol for export sz ([])) because it located function offsets by regex-parsingsynth disasmTEXT,which matched nothing on the Linux runner for a
--relocatableRISC-V object(worked on macOS). Fixed in fa9958c by reading the ELF
.symtabvia pyelftools.The same host-fragile pattern remains in 10 other repro oracles (they pass on CI
today but carry the latent dependency):
Harden each to resolve symbols from
.symtab(st_value), matching thedifferential-harness symtab convention. Non-blocking (they're green now); do it
before they bite the way #841's oracle did.