Repository navigation
feat(libkernel): add getdtablesize - #5061
Conversation
|
Linux validation (Ubuntu 24.04, GCC 13.3, Release), this PR's commit on AI-assisted: yes |
|
Linux run of this change: Ubuntu in WSL2, GCC 15.2.0, Ninja Release, |
|
XPSemu (PPSA97358, catalog release) now stops here on Its later stops, with this PR merged locally, for whoever picks them up:
|
|
Windows/AMD title runs for both titles that stop here. Setup: Windows 11 (26300), Radeon 860M, WinLibs GCC 15.2.0, Release. Head Conflict: since #4374 merged, this branch conflicts with
Both faults read a small address, a GOT offset plus the console's fixed
AI-assisted: yes (Claude Code) |
VLC (PPSA85300) fails to load on the missing getdtablesize import now that readdir_r is in. Its only call is in a spawn child that never runs, and the console's descriptor limit is unknown, so the export throws. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8fce4b8 to
9be9315
Compare
|
Rebased onto |
|
One convention point on |
|
Pushed one commit switching the throw to |
What
VLC for PS5 (PPSA85300, catalog build) fails to load on current
main(bb9a4d8a2), now thatreaddir_r(#3635) is in:sZuwaDPATKsisgetdtablesize. This is the half of #4386 that was dropped from it; @oneandonlydean said there that it "can go in after #3635, since PPSA85300 stops atsZuwaDPATKsoncereaddir_ris in".The export throws (
NotImplemented_nid_no_patch). FreeBSD returns the smaller of theRLIMIT_NOFILEsoft limit andmaxfilesperproc(sys_getdtablesize). Neither value is known for the console, and AnyPS5'sgetrlimit(RLIMIT_NOFILE)already throws for the same reason. VLC's only caller is aclosefromloop (libc_stubs.c#L66-L72). As @AchrafReyani traced in #4386, it runs only in the child of a spawn helper whoseforkfails withENOSYS, so the call is never made. Recorded under Unknown function info indocs/dev/debt/libkernel.md.Tested
/app0/vlc-ps5.logand writes itsload address marker. It then faults inreport_unresolved_imports()(platform_ps5.c), which reads its own GOT slots at the console's fixed load address (EBOOT_BASE 0x400000) instead of the image's. That is a load-address assumption of the title, not a library call.guest_getrlimitnow also requiresgetdtablesizeto throw. All 124 libkernel tests pass on Windows; Linux was not built locally.python tools/check_conventions.py --base origin/mainpasses.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code