Repository navigation
Conversation
|
The full local Linux build completed with the GCC 12 compatibility workaround documented above, and the focused |
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
|
|
On the "no title stop for
Not run with this PR. |
|
Thanks for running the full Linux/Windows Build workflow for #2208 and confirming your |
|
Native Windows run, since no Windows results were posted. Setup: Windows 10 (19045), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release. Head
No title was run. 🤖 Addressed by Claude Code |
|
Thanks for running the exact |
PICO-8 for PS5 (PPSA99808) stops at start-up on the unresolved import a7ToDPsIQrc from libSceLibcInternal. The parser follows FreeBSD's inet_aton (lib/libc/inet/inet_addr.c): one to four parts in decimal, octal or hex, the last part filling the remaining bytes, input ending at a NUL or whitespace, and a null address only validating. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Format the address bytes in network order as dotted decimal into a per-thread buffer, like FreeBSD's inet_ntoa returns its static one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6923a54 to
863ff49
Compare
|
Update: #2231 is now rebased onto current |
Maintainer decision neededThe exact-head Conventions run 37968104485 fails because the checklist still reports open overlapping PRs. The successful run on the same head does not clear that finding. The authors of #1848 and #1972 have said they prefer to keep their PRs open until a maintainer chooses which implementation to land. #2208 is also still open. The current #2231 branch contains the three original implementation commits with their authorship, plus round-trip tests. I recommend keeping #2231 as the canonical combined change. The rebased head Could a maintainer decide whether to keep #2231 or the three individual PRs? After that choice, the overlapping branches and checklist can be updated accurately, then the exact head can receive its required Build run. |
What
Implement the guest libc IPv4 address helpers used by the current homebrew audit:
__inet_atonparses the FreeBSD one-to-four-part IPv4 forms, including octal and hexadecimal components, and leaves the output untouched on invalid input.__inet_addrreturns the parsed address in network byte order orINADDR_NONE, preserving FreeBSD's one-part unsigned wrap behavior.__inet_ntoaformats the address bytes in network order into a per-thread buffer.The tests cover dotted and abbreviated forms, octal and hexadecimal forms, whitespace termination, invalid input/output preservation, FreeBSD wrap cases, buffer reuse, and round trips across all three functions.
This PR consolidates the work in #1848, #1972, and #2208 into the previously reviewed IPv4-helper change from #1766. The original authors' commits are preserved in this branch history. Those three PRs currently overlap this implementation; this PR is intended as the single canonical change after the current-head Build is reviewed.
Tested
Linux x86-64, GCC 12.2, Release:
guest_stringspassed (1/1) on the final source tree.tools/check_conventions.py --base upstream/mainpassed.git diff --check upstream/main...HEADpassed.libcandlibstargets plus a full all-target build completed. GCC 12.2 cannot compile the unrelatedstd::chrono::clock_castin currentmain, so the local full-build run temporarily applied the equivalent file-clock conversion from fix(SaveData): use C++20 file clock conversion #1260; that unrelated source edit was restored before the final focused test and is not part of this PR.A full upstream Build on this head is still needed. No PS5 hardware or title was run locally.
Additional title stop evidence (not run with this PR)
A contributor reported that RetroArch (PPSA99169) and Porpoise (PPSA99764) both stop on
__inet_addron currentmain, then stop on__inet_ntoaafter adding only__inet_addr. The report used Linux title runs with an__inet_addrimplementation and did not run this PR; it supports the imports' relevance but does not establish title compatibility. See the report.Native Windows evidence on pre-rebase head
6923a54eA Windows 10 (19045), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release run passed
guest_stringswith no skipped cases. The aggregate CTest run passed 519/519, but that build included 38 other PRs and needed local fixes to unrelated #1611, #1796, and #1824. This is not an unmodified upstream Build for this PR. No title was run.Current head after rebase
Current head
863ff49fed19b11b21d4c3974ef09d3bc3e14b47is based on current upstreammainf8c2f072463465f875dedb0d20b66c339160c1a1.guest_string_tests;guest_stringspassed (1/1).python3 tools/check_conventions.py --base upstream/mainandgit diff --check upstream/main...HEADpass.Checklist
main; feat(libc): implement __inet_aton #1848, feat(libc): implement __inet_addr #1972, and feat(libc): implement __inet_ntoa #2208 still overlap this IPv4 helper family. Their authors have been told why feat(libc): implement IPv4 address helpers #2231 is the preferred combined target; maintainers decide whether to land it as one PR.