Commit Graph
348 Commits
Author SHA1 Message Date
Adrià bfb0806192 Merge pull request #8435 from hypermoist/feat/libc-libatomic-sized
feat(libc): add the sized __atomic library calls
2026-10-24 13:46:18 +02:00
Dean 9018bc438a Merge pull request #10003 from MarcZX10/codex/libc-acoshf-msun
fix(libc): follow msun for acoshf
2026-10-25 00:24:44 +13:00
Dean 3eebf30c2e Merge pull request #9945 from p3n1cillin/claude/windows-missing-standard-handles
fix(libc): open NUL on standard descriptors without a stream on Windows
2026-10-24 23:40:27 +13:00
Dean 6a3901fb69 Merge pull request #10384 from JJenkx/windows/libc-strcasecmp-sign
fix(libc): return only the sign from strcasecmp and strncasecmp as titles' libc.prx does
2026-10-24 22:12:38 +13:00
Dean e9a551d6f4 Merge pull request #9857 from JJenkx/windows/libc-trigf-msun
fix(libc): compute sinf, cosf, tanf and sincosf with FreeBSD msun's algorithms, as titles' libc.prx does
2026-10-24 22:12:11 +13:00
Dean 91007ff06c Merge pull request #10312 from ntamas94/fix/ps4-libc-strerror
fix(libc): answer strerror as the titles' libc.prx does
2026-10-24 21:09:00 +13:00
Dean 69b5e014e9 Merge pull request #9342 from UnhealthyKraken/feat/libc-gets
feat(libc): implement gets line input
2026-10-24 20:48:06 +13:00
Dean 1e577d1c56 Merge pull request #10180 from mazen320/feat/libc-codecvt-iw-vtable
feat(libc): export the wide codecvt facet vtable as data
2026-10-24 20:21:52 +13:00
Dean Galvin c3a9a613c7 Merge main into codex/libc-acoshf-msun 2026-10-24 20:00:35 +13:00
Dean 1e20650e84 Merge pull request #10306 from JJenkx/windows/libc-expm1-msun
fix(libc): compute expm1 with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-24 19:55:25 +13:00
Dean 98a7d60a02 Merge pull request #8306 from ZSWolt/feat/libc-swscanf-wide-synonyms
fix(libc): end swscanf at %S and %C as a matching failure
2026-10-24 19:54:56 +13:00
Adrià b0f57be3c7 Merge pull request #6086 from notaxeltv/feat/libc-thread-hardware-concurrency-ppsa34015
feat(libc): export std::thread::hardware_concurrency (PPSA34015)
2026-10-24 08:18:54 +02:00
Dean 09f62b94c9 Merge pull request #9216 from Felipebmaitan/feat/libc-fegetexcept
feat(libc): implement fegetexcept
2026-10-24 18:23:35 +13:00
JJenkxandClaude Opus 5.5 99abd2604d fix(libc): compute expm1 with FreeBSD msun's algorithm, as titles' libc.prx does
expm1 returned the host's expm1, whose last bit differs from the titles'
copy on Windows on 35,152,346 of 320 million random arguments. The titles'
copy is FreeBSD msun's s_expm1.c, and it sets ERANGE only when a finite
argument overflows to infinity. expm1 now computes that algorithm and sets
ERANGE there.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 00:43:08 -04:00
Dean Galvin 2f5366ea80 Merge main into feat/libc-swscanf-wide-synonyms 2026-10-24 17:17:02 +13:00
Dean Galvin 18b13fbe64 Merge main into 9945 2026-10-24 15:49:35 +13:00
Dean Galvin 5ec0cdec84 Merge main into 9342 2026-10-24 15:49:35 +13:00
Dean d7f0c005a9 Merge pull request #9862 from JJenkx/windows/libc-cbrtf-msun
fix(libc): compute cbrtf with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-24 15:23:06 +13:00
Dean 5669dff560 Merge pull request #9596 from JJenkx/windows/fgetws-console-contract
fix(libc): follow the console fgetws for short buffers and read errors
2026-10-24 15:22:31 +13:00
Dean d1d67190a8 Merge pull request #8720 from orezraey/fix/libc-heap-measured-ps5
fix(libc): follow the default heap's alignment, errno and realloc to zero as measured on a PS5
2026-10-24 14:34:38 +13:00
Adrià FranchandClaude Sonnet 5.5 b443b9f9f0 fix(libc): compare only with std::thread::hardware_concurrency, record host count in debt
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 03:31:05 +02:00
Dean 72641c92f6 Merge pull request #9841 from JJenkx/windows/libc-logf-msun
fix(libc): compute logf with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-24 14:19:40 +13:00
Dean d284c98b2e Merge pull request #10001 from MarcZX10/codex/libc-coshf-msun
fix(libc): follow msun for coshf
2026-10-24 12:52:24 +13:00
Queuze 897bf2ef6c fix(libc): attach missing standard streams to NUL 2026-10-24 00:51:42 +01:00
p3nicillinandClaude Opus 5.5 02cf85ef89 fix(libc): open NUL on standard descriptors without a stream on Windows
A Windows process started without a standard handle, such as a detached
process or a --windows-gui executable started from Explorer, has
descriptors 0 to 2 whose _get_osfhandle is -2. fcntl then threw on their
unknown file type, which stopped Halo: Combat Evolved (PPSA99500) at
start-up. Open NUL on each of them when libc loads, as Linux and macOS
already open /dev/null on a closed standard descriptor.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 00:51:42 +01:00
Dean 4dad3f50c3 Merge pull request #8864 from valenciana-nc/fix/bessel-float-zero-exceptions
fix(libc): avoid spurious float Bessel exceptions at zero
2026-10-24 11:57:10 +13:00
Dean 097a9514a0 Merge pull request #8865 from hypermoist/fix/libc-strtof-sign-hex-range
fix(libc): keep the sign of a failed strtof and match libc.prx strtof ERANGE
2026-10-24 11:56:01 +13:00
Dean 11b175a6b9 Merge pull request #9967 from JJenkx/windows/libc-setlocale-console
fix(libc): accept any setlocale category and only the C locale, as titles' libc.prx does
2026-10-24 10:38:40 +13:00
JJenkxandClaude Opus 5.5 f41f455f87 fix(libc): return only the sign from strcasecmp and strncasecmp as titles' libc.prx does
strcasecmp and strncasecmp returned the folded unsigned-byte difference,
following FreeBSD 11.4's strcasecmp.c (#3966, #9642). The libc.prx bundled
with eleven titles returns -1, 0 or 1, the sign of that difference; both
functions now do the same, and the byte-pair tests expect it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 16:06:06 -04:00
Adrià 8cc82c85bf Merge pull request #6469 from QRMOE/fix-low-guest-address-mappings
fix(memory): honor low guest mapping hints
2026-10-23 21:06:11 +02:00
Dean 278ec2d356 Merge pull request #8279 from mugurc/fix/libs-macos-build-main
fix(libs): build getifaddrs and two tests on macOS hosts
2026-10-24 07:31:38 +13:00
Dean 9e91d6bf61 Merge pull request #8546 from Retr0G28/fix/tzname-no-dst
fix(libc): leave tzname[1] as three spaces for a zone without daylight saving time
2026-10-24 07:31:04 +13:00
Dean 216e9a6f98 Merge pull request #9290 from thuanquang/fix/wcsncat-s-overlap-console-rule
fix(libc): reject a wcsncat_s copy only when its written and read ranges overlap
2026-10-24 07:29:30 +13:00
Dean 2e5a125982 Merge pull request #9777 from JJenkx/windows/libc-atanf-msun
fix(libc): compute atanf with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-24 07:27:14 +13:00
Dean f59f545b8a Merge pull request #8284 from mugurc/fix/tests-path-length-macos
fix(tests): skip the 1023-byte guest path check on macOS hosts
2026-10-24 07:25:45 +13:00
ntamas94andClaude Opus 5.5 8305168f39 fix(libc): answer strerror as the titles' libc.prx does
The libc.prx that PS4 titles ship (measured for CUSA04865 and CUSA12435 on a
PS4 Pro, firmware 10.71) names 0 "No error", 1 to 94 with the FreeBSD texts
(30 is "Read-only filesystem"), answers every other number, 95 and 96
included, with "error_code=0x%08x", and leaves errno alone. AnyPS5 returned
"No error: 0", named 95 and 96, answered "Unknown error: %d" and set errno
to 22. strerror_r and perror keep their wording; only the shared EROFS text
changes for them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 19:19:40 +02:00
orezraeyandClaude Opus 5.5 5415895377 docs(libc): record reallocf as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 12:28:46 -03:00
QRMOE 5836873170 fix(memory): honor low guest mapping hints 2026-10-23 16:51:33 +02:00
Dean dcd40e119d Merge pull request #8287 from mugurc/fix/tests-fenv-masks-rosetta
fix(tests): compare the floating-point exception masks with the ones the host keeps
2026-10-24 03:28:00 +13:00
Dean Galvin 192a490b19 Merge main into fix/tzname-no-dst 2026-10-24 02:10:50 +13:00
Dean 65f1d28e7d Merge pull request #9109 from Retr0G28/fix/alias-trailing-slash-windows
fix(libc): fail with ENOTDIR for a file named with a trailing slash on Windows
2026-10-24 02:08:03 +13:00
Dean 8dcbc4e5c9 Merge pull request #9643 from Noxy-HNR/fix/libc-float-domain-errors
fix(libc): preserve errno across fmodf domain errors
2026-10-24 02:03:09 +13:00
Dean be686ec858 Merge pull request #9642 from Noxy-HNR/fix/guest-byte-case-locale
fix(libc): isolate byte case comparisons from the host locale
2026-10-24 02:02:44 +13:00
Maz 6224ab70b9 feat(libc): export the wide codecvt facet vtable as data
Console title libc.prx (PPSA26344) and libSceLibcInternal export H-TDszhsYuY as STT_OBJECT st_size 104; titles that resolve it as data need thirteen zeroed uintptr_t slots.
2026-10-23 16:26:44 +04:00
hypermistandClaude Opus 5.5 547e0b74dd docs(libc): record the console evidence for the sized __atomic calls
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
2026-10-24 00:28:24 +13:00
thuanquangandClaude e53f78214a docs(libc): note where the wcsncat_s overlap rule comes from
The debt entry says the rule follows a static reading of the console's
wcsncat_s in libc.prx, that wcscat_s inherits it unread, and that the
narrow strncat_s keeps a wider rule, as asked in review.

Co-Authored-By: Claude <[email protected]>
2026-10-23 15:19:25 +07:00
Retr0 0f3d4bc9ee fix(libc): fail with ENOTDIR for a file named with a trailing slash on Windows
FreeBSD 11.4's lookup() (sys/kern/vfs_lookup.c) fails with ENOTDIR when
a path with a trailing slash ends at something that is not a directory.
On Windows a mount alias dropped the slash, and the host calls do not
report ENOTDIR for "file\", so unlink, rename and open acted on the file
or failed with EINVAL. Guest path resolution now rejects an existing
non-directory named with a trailing slash with ENOTDIR on every host, and
a mount alias keeps the slash on Windows as it does on Linux and macOS.
2026-10-23 08:21:01 +03:00
MarcZX10 6a13704d3d fix(libc): follow msun for acoshf 2026-10-23 03:45:26 +00:00
MarcZX10 0f35e7b176 fix(libc): follow msun for coshf 2026-10-23 03:35:47 +00:00
hypermistandClaude Opus 5.5 d2927e0ec1 fix(libc): follow libc.prx for strtof signs and hexadecimal round-up ERANGE
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01SNqSvnFwRBz3D76n476yw6
2026-10-23 14:19:46 +13:00