D769 - A title's own C++ runtime answers its exceptions

Status: decided Date: 2026-10-08

When a module the title ships exports one of the C++ runtime's unwinding or throwing entry points, every import of it binds to that module, even though orbistoun implements the name. The names are _Unwind_Resume, std::terminate, __cxa_pure_virtual, and the runtime's throw helpers (std::_Xlength_error, _Xout_of_range, _Xinvalid_argument, _Xbad_alloc, _Xbad_function_call, _Throw_C_error, _Throw_Cpp_error). A title that ships no such module keeps orbistoun's, which end the run and name the operation (D473).

Why: orbistoun has no unwinder, so its stand-ins can only stop. A title's own libc.prx has one (D768), and an unwind it began must be continued by the same runtime. A landing pad's _Unwind_Resume that reached orbistoun ended PPSA02664 in the middle of a cleanup. Bound to the title's libc, the same run goes on from 1.475M calls to 3.137M and a second GPU submission.

Rejected: