Repository navigation
feat(libSceLibcInternal): implement posix_spawn actions - #3651
Conversation
Progress report (42e5eda → 7bb59f7)📉 System libraries: 87.87% (-0.02%, +9 implemented, +2 declared functions) ✅ 9 implemented
🆕 2 declared as stubs
|
|
Independent pre-review on Linux (full CI runs only happen on manual trigger, so recording one): CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release,
|
|
Closing: no title run reaches |
|
Conflicts with main in |
|
Run evidence for this one: on our Linux rig (lavapipe, main b42ef24), Dusklight (PPSA99305) stops on the unresolved import posix_spawnattr_init (44hlATrd47U): |
|
A title whose first stop on
|
b6509c7 to
f85a8b3
Compare
f85a8b3 to
859df8c
Compare
859df8c to
b89ece8
Compare
|
A second catalog title now stops on this family: Wind Waker (PPSA99309, catalog 1.0.1, GPL-3.0), new this week. On AI-assisted: yes (Claude Code) |
|
Thanks for the additional title report. Wind Waker (PPSA99309) independently confirms the same posix_spawnattr_init load stop as Dusklight, and a Windows run of the PR would be useful. The PR currently conflicts with main, so please hold the comparison until there is a rebased head; I will post again when that is ready. |
b89ece8 to
4789561
Compare
|
Rebased onto current @LeandroLP23, you offered to rerun both titles once the PR was rebased. Could you check this exact head and report the first stop after it, if convenient? |
…e action calls XPSemu (PPSA97358) imports eleven posix_spawn calls from libSceLibcInternal.prx, one reference each, and no call site is known. Predicted stop (import order, not measured), behind isnanf (idx 296): `FAIL: unresolved ELF import 44hlATrd47U from libSceLibcInternal.prx` (posix_spawnattr_init, idx 347), followed by p--TkNVsXjA, LG6O0oW9bQU, Sj7y+JO5PcM, Ud8CbISKRGM, Hq9-2AMG+ks, IUfBO5UIZNc, Heh4KJwyoX8 (348-355), UV4m0bznVtU, Ani6e+T-y6Q and 3Nr9caNHhyg (379-381). The nine object calls follow FreeBSD release/11.4.0 (8c639945a445) lib/libc/gen/posix_spawn.c: posix_spawnattr_init allocates a zeroed attribute object (ENOMEM on failure), _destroy frees it, _setflags and _setsigdefault store the value; posix_spawn_file_actions_init allocates an empty list (-1 on failure, as in 11.4), _destroy frees it with its entries, and _addopen (path copied), _adddup2 and _addclose append in order after returning EBADF for a negative descriptor. Null or uninitialized objects, which FreeBSD dereferences, throw. posix_spawn and posix_spawnp throw "process creation not implemented", as execvp does: FreeBSD validates no argument before rfork/vfork, and no child process can be created here. TechnicalDebt records them. guest_posix_spawn covers the attribute round trips, the recorded action sequence, the EBADF cases and the throws. NIDs computed with tools/nid_names.py and present in aerolib. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
5e3e741 to
7bb59f7
Compare
|
The branch is now rebased onto current |
|
Ran both titles on this exact head,
So this PR moves both titles one import further. The next stop for both is AI-assisted: yes (Claude Code) |
|
Dusklight (PPSA99305) reaches Menus on |
What
Carries David's
posix_spawnimplementation from issue #3624, preserving his authorship. This PR covers process creation and spawn-configuration functions. The attribute and file-action calls follow FreeBSD 11.4: initialize/destroy the opaque objects, store attributes and ordered open/dup2/close actions, copyaddopenpaths, and returnEBADFfor negative descriptors.posix_spawnandposix_spawnpthrow because process creation is not implemented; callers do not receive a guessed process ID.Current title evidence
On
main88107b7de, Windows 11 catalog runs of both Dusklight (PPSA99305) and Wind Waker (PPSA99309) stop at unresolved import44hlATrd47U(posix_spawnattr_init). This addresses their first reported import stop; it does not claim either title reaches gameplay with process creation still unsupported.Tested
guest_posix_spawn_tests; CTest passed 1/1.42e5edadbhas not been built or tested locally. The Windows title reporter offered to rerun both titles on a rebased head; validation is pending.Checklist
main42e5edadb; no other open PR implements these functions