Skip to content

module-template: export ppc_set_mem_write_journal - #5

Open
dougchansan wants to merge 1 commit into
ExpansionPak:moderngekko-vendorfrom
dougchansan:export-mem-write-journal
Open

module-template: export ppc_set_mem_write_journal#5
dougchansan wants to merge 1 commit into
ExpansionPak:moderngekko-vendorfrom
dougchansan:export-mem-write-journal

Conversation

@dougchansan

@dougchansan dougchansan commented Aug 4, 2026

Copy link
Copy Markdown

The lockstep verifier resolves this symbol by name to install the module's RAM write journal. The version script hid it, so StaticRecompLockstepVerifier::Init printed

module lacks ppc_set_mem_write_journal export

and disabled itself — meaning a "clean" lockstep run proved nothing at all. Silent, and the failure mode is the worst kind: it looks like success.

macOS was unaffected, since GXRuntime already marks the function visibility("default"). Only this linker version script hid it, so the bug was Linux-only.

Performance impact

None at runtime. The export only matters to StaticRecompLockstepVerifier::Init, which runs when STATICRECOMP_LOCKSTEP=1. With lockstep off the symbol is never resolved.

The gain is in what it unblocks: on Linux, lockstep was disabling itself and reporting nothing, so every "clean" verification run there was vacuous.

The lockstep verifier resolves this symbol by name to install the module's RAM
write journal. The version script hid it, so StaticRecompLockstepVerifier::Init
printed "module lacks ppc_set_mem_write_journal export" and disabled itself --
a clean lockstep run then proved nothing at all.

macOS was unaffected: GXRuntime already marks the function
visibility("default"). Only this linker version script hid it, so the failure
was Linux-only and silent.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant