Repository navigation
Conversation
PPSA99902: independently validated, observed caller and controlled startup comparisonReplayed this PR's head
The returned pointer matches the existing guest name store, as FreeBSD stable/11 getprogname does. This proposal avoids adding a second constant name store; the behavioral test observes pointer replacement and changes to its storage, empty-name readback and errno preservation. Real title caller. Sonic Unleashed Recompiled, PPSA99902, 01.003.000, unwrapped original executable SHA256 Tracing the original ELF established this data flow: The title's converted guest libc exports Controlled comparison. Integrated the exact proposal into the existing diagnostic stack, local commit
Corrected runs took 7.086, 6.512, 6.600, 6.591 and 6.591 seconds. The restored-library control reproduced the original crash in 5.677 seconds. No rendering, physical audio output or gameplay is verified. This is conditional evidence from a stack of local fixes/placeholders using The maintainer's unchanged-main first-stop condition remains unmet: the title stops at Current-main confirmation: refreshed the local diagnostic stack onto main |
What
Guest modules importing
getprognamecurrently fail to resolve it, although libkernel already exports the guest__prognamedata. Add the missing libc-internal export and return that existing pointer, matching FreeBSD stable/11 getprogname. This is the getprogname portion of the fork's existing compatibility changes, isolated onto current upstream main.The same implementation runs on Windows and Linux. It introduces no second name store or host process-name lookup. The regression checks the initial guest name, pointer replacement, changes through the returned storage, an empty name, and guest errno preservation.
Duplicate review covered all 510 open PRs targeting main at preparation time, including their fetched heads, changed files, added exports and relevant diffs. No competing getprogname implementation was found. The broad clang-format PR 1128 does not add this function; merging its current head into this branch produces a textual conflict in libc-internal Export.cpp, among its many existing conflicts with current main. Rebase and preserve both changes if that formatting work lands. This branch has no dependency on descriptor-isolation PR 2170.
Tested
Based on upstream
mainatd70b89989473ba1f6ae13e44e079e67f1f8a44b0.all+libsbuild passed.guest_program_nameand adjacentguest_thread_atexitpassed (2/2). Test-registration check passed.guest_program_name,guest_thread_atexitandguest_force_tls_destructorpassed (3/3).Checklist
main; no other open PR implements the same function