Skip to content

feat(aot): distinguish SCE application entry from glibc startup - #4749

Closed
yabanana wants to merge 298 commits into
boykopovar:mainfrom
yabanana:feature/aot-guest-startup
Closed

yabanana wants to merge 298 commits into
boykopovar:mainfrom
yabanana:feature/aot-guest-startup

Conversation

@yabanana

Copy link
Copy Markdown
Contributor

What

Keep SCE application startup distinct from the glibc whole-program profile. An explicit --abi sce-app selection accepts compatible ET_DYN/ET_SCE_DYNEXEC input and records the ABI in the version-3 descriptor. StartSceApplication enters the original guest entry with argc/argv in the RDI parameter block, a null optional teardown callback in RSI and an aligned guest stack. A mismatched launcher fails before entry. Providers must be registered explicitly; this does not route SCE imports through the glibc launcher.

This is the startup adapter, not completion of the PS5 homebrew milestone. Inventory of the unchanged independent boilerplate ELF now reaches 35 units and identifies 96 unsupported instruction sites. Its VEX/cache semantics, provider closure and application-supplied libc PRX remain work to do. This patch does not implement module loading or replace that PRX with host libc.

Tested

Apple Silicon macOS: 598 compiler/relinker/runtime tests passed, including original-entry argument/stack checks, rejection of the wrong launcher and rejection of an unknown ABI. The shared graphics base is identical to the verified #4740 base: 27 native integrations, 600 cube flips per implementation, teardown, eight exact RGB frames, controller and typed module consumer passed. No game compatibility or speedup claim.

Checklist

  • Based on current main; checked for existing implementations
  • One topic per PR; follow-ups go in a new PR
  • No comments added in code
  • Unimplemented paths remain explicit
  • No investigation notes, binary fixtures or images added
  • No new third-party code
  • Generic behavior, not specific to one title
  • Depends on: feat(aot): run joinable guest workers with ordered memory access #4740 and its preceding stack
  • Unblocks: none
  • AI-assisted: yes

This was referenced Oct 15, 2026
@ArjenS-LA ArjenS-LA mentioned this pull request Oct 15, 2026
11 tasks done
@yabanana

Copy link
Copy Markdown
Contributor Author

Superseded by #5021, which now contains the consolidated native ARM64 AOT implementation and verified consumers. #1835 remains the architecture discussion. Closing this stacked PR to keep one implementation review; its branch and review history are retained. This is not a merge into main.

@yabanana yabanana closed this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* build ci .github docs libc libkernel needs rebase Conflicts with main, rebase needed prx relinker shader core/shader

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant