Commit Graph
2016 Commits
Author SHA1 Message Date
Dean 99b571f879 Merge pull request #11468 from valenciana-nc/fix/guest-heap-header-validation
fix(libc): validate guest heap block headers before freeing
2026-10-30 14:50:19 +13:00
Adrià 18bf374028 Merge pull request #12178 from Henryisdjfunkyho/fix/libc-nearbyintf-current
fix(libc): raise inexact for nearbyintf
2026-10-30 02:00:49 +01:00
Adrià 76fd1c09e9 Merge pull request #11270 from AlexFigas/fix/libc-llog-dinkumware
fix(libc): compute _LLog with the bundled libc.prx's Dinkumware code
2026-10-30 01:40:35 +01:00
Adrià 96613bba67 Merge pull request #12060 from Ragbie/fix/windows-directory-flock
fix(libkernel): lock directories with flock on Windows as FreeBSD does
2026-10-30 01:04:03 +01:00
Adrià f0c8f26eec Merge pull request #12676 from JJenkx/windows/libc-ldexpf-errno
fix(libc): leave errno unchanged from ldexpf, as titles' libc.prx does
2026-10-30 00:18:56 +01:00
Adrià 5e216d6aed Merge pull request #10927 from edubox/feat/libc-throw-bad-array-new-length
feat(libc): implement std::_Throw(const std::bad_array_new_length&)
2026-10-30 00:18:44 +01:00
Adrià 202037c3d7 Merge pull request #12691 from JJenkx/codex/libc-bsearch-zero-stride-20261029
fix(libc): allow zero-stride bsearch_s as bundled libc does
2026-10-30 00:18:02 +01:00
Adrià 2e55a9d0f6 Merge pull request #12681 from JJenkx/windows/libc-scalbn-errno
fix(libc): leave errno unchanged from scalbn and scalbnf on every host
2026-10-30 00:02:33 +01:00
Adrià 034e5a015a Merge pull request #11450 from edubox/feat/libc-sce-v2-locinfo
feat(libc): export std::__sce_v2::_Locinfo
2026-10-29 23:37:12 +01:00
Adrià d77adbfab0 Merge pull request #12549 from JJenkx/windows/libc-mktime-normalize-early-years
fix(libc): normalize a pre-1970 calendar before the Windows host mktime
2026-10-29 23:28:20 +01:00
Adrià e1dd37721c Merge pull request #12555 from JJenkx/codex/libc-fltrounds-x87-20261028
fix(libc): read x87 rounding in _Fltrounds
2026-10-29 23:28:14 +01:00
Adrià 5c331df35d Merge pull request #12227 from klosixgaming-arch/perf/evict-skip-unwritten-pages
perf(libc): skip never-written pages when evicting a resident direct-memory run
2026-10-29 23:01:14 +01:00
Adrià 4740534186 Merge pull request #12527 from JJenkx/windows/libc-strerror-extended
fix(libc): name the extended errno values in strerror as titles' libc.prx does
2026-10-29 23:01:08 +01:00
Adrià 51c808fc76 Merge pull request #12573 from JJenkx/windows/libc-time-name-index-wrap
fix(libc): pick strftime and asctime names from a doubled 32-bit index
2026-10-29 22:35:39 +01:00
Adrià d9f6887afb Merge pull request #12127 from iamthehimansh/split/macos-precise-sleep
fix(libc): absorb macOS nanosleep lateness in PreciseSleep
2026-10-29 22:18:39 +01:00
Adrià 33be5c14bb Merge pull request #11986 from juanpimg/feat/test-guest-sysmodule-spaces
fix(tests): parse maps pathname past whitespace in guest_sysmodule
2026-10-29 21:43:34 +01:00
Dean Galvin 44ef6bd3d3 fix(libc): decide an in-place heap resize from the validated block record
keepsBlockSize and ownedBytes read the block's raw and size words from the guest-writable header. They now take the Block that validatedBlock returns, so the in-place decision uses the same allocation record that free trusts.
2026-10-30 09:25:25 +13:00
Dean Galvin 46dfa09c02 Merge main into PR #11468 2026-10-30 09:25:04 +13:00
Adrià cbc39db363 Merge pull request #12117 from plexerPK/codex/macos-write-watch-nonwrite-faults
fix(libc): forward non-write faults from watched macOS pages
2026-10-29 21:20:52 +01:00
Dean 5d1482d7c1 Merge pull request #12941 from AdnanKhan-ak47/fix/libc-clang-spurious-fp-exceptions
fix(libc): keep clang's SLP vectorizer from raising spurious FP exceptions in libc
2026-10-30 09:20:28 +13:00
Adrià 19225b3da5 Merge pull request #12509 from plexerPK/codex/macos-arena-watch-protection
fix(libc): synchronize macOS arena protection with write watch
2026-10-29 20:35:33 +01:00
Dean a6ec79e895 Merge pull request #12239 from MarcZX10/perf/libc-realloc-in-place
perf(libc): resize a default heap block in place when it already has the room
2026-10-30 08:20:33 +13:00
Adnan Khan c118a61fdd fix(libc): keep clang's SLP vectorizer from raising spurious FP exceptions in libc 2026-10-29 21:00:41 +05:30
Dean e73bc4c682 Merge pull request #12469 from BunnyFl/fix/libc-setvbuf-host-write
fix(libc): keep setvbuf stream buffers in host memory
2026-10-30 03:00:40 +13:00
Dean 1b75a2de11 Merge pull request #10433 from Retr0G28/fix/freopen-directory
fix(libc): open a directory with freopen in a read mode on Windows
2026-10-30 02:59:56 +13:00
Adrià 9036e3c9e4 Merge pull request #12126 from morten-holm/fix/macos-host-stack-above-arena
fix(libkernel): move the macOS main stack out of the guest arena
2026-10-29 14:51:57 +01:00
Adrià e87f2d9394 Merge pull request #12162 from AlexFigas/feat/libc-aligned-array-operators
feat(libc): export the remaining aligned and array operator new and delete overloads
2026-10-29 14:39:44 +01:00
Adrià 157b02c4f1 Merge pull request #11852 from ionut27001/fix/wf-scanf-q-length-linux
fix(libc): end sscanf and vsscanf at a q length on Linux and macOS
2026-10-29 13:57:18 +01:00
Adrià fe6eeff66a Merge pull request #12449 from simnJS/fix/libc-stopfx-null-argument
fix(libc): reject a null cursor or input in _Stopfx and _WStopfx as an invalid argument
2026-10-29 13:50:06 +01:00
Adrià 93dae51da8 Merge pull request #11871 from JJenkx/windows/libc-strtok-r-end-state
fix(libc): leave strtok_r's and wcstok's state at the terminator and a static empty string as titles' libc.prx does
2026-10-29 13:50:00 +01:00
Adrià df53927b7b Merge pull request #10929 from Aspct3434/claude/modest-curie-705h76
fix(libc): read characters outside the BMP as surrogate pairs in fgetwc
2026-10-29 13:49:54 +01:00
Adrià aab650b4d3 Merge pull request #11893 from JJenkx/windows/libc-printf-ignored-lengths
fix(libc): ignore printf length modifiers that do not apply, as titles' libc.prx does
2026-10-29 13:49:01 +01:00
Adrià 7b57271358 Merge pull request #11504 from verusferro/feat/libc-xfilesystem-error
feat(libc): throw std::filesystem::filesystem_error from _Xfilesystem_error as the console's libc does
2026-10-29 13:47:45 +01:00
Adrià e3a7db45ed Merge pull request #11734 from verusferro/feat/libc-btowc-wctob-internals
feat(libc): export _Btowc and _Wctob, which give btowc and wctob results in the console's libc
2026-10-29 12:57:40 +01:00
Adrià 38a13a7512 Merge pull request #12103 from JJenkx/windows/libc-rename-dangling-link
fix(libc): rename a dangling Windows symbolic link
2026-10-29 12:57:29 +01:00
Dean 38e696fe9d Merge pull request #12327 from xXPBSXx/test/time-behavior
test(libc): cover what time returns and stores
2026-10-29 23:53:09 +13:00
Dean 8efa579b15 Merge pull request #12361 from JJenkx/windows/libc-powf-underflow-flag
fix(libc): raise FE_UNDERFLOW from powf when the result underflows
2026-10-29 23:49:09 +13:00
Alexandre Figueiredo 7b6c2e82ec fix(libc): compute _LLog with the bundled libc.prx's Dinkumware code 2026-10-29 10:12:06 +00:00
Adrià f99d7fece3 Merge pull request #12054 from Aspct3434/claude/libc-environment-strings-stay-alive
fix(libc): keep guest environment strings alive across setenv and uns…
2026-10-29 11:08:38 +01:00
Adrià 9365465457 Merge pull request #12186 from Gonic0/fix/libc-getifaddrs-af-link-macos
fix(libc): list getifaddrs AF_LINK entries on macOS hosts
2026-10-29 07:44:43 +01:00
Henryisdjfunkyho 472500cb80 fix(libc): honor rounding modes in nearbyintf 2026-10-28 22:06:25 -07:00
Henryisdjfunkyho 3182d23266 fix(libc): raise inexact for nearbyintf 2026-10-28 22:06:24 -07:00
Dean cdaaa57d27 Merge pull request #12519 from JJenkx/windows/build-backtrace-test-implib
fix(build): stop relinking guest_backtrace_tests on every Windows build
2026-10-29 17:33:14 +13:00
Dean 444407ddd6 Merge pull request #11278 from AlexFigas/fix/libc-signbit-sign-mask
fix(libc): return the sign mask from __signbit, __signbitf and __signbitl
2026-10-29 16:25:03 +13:00
JJenkx 39f432f357 fix(libc): allow zero-stride bsearch_s as bundled libc does 2026-10-28 22:17:34 -04:00
JJenkxandClaude Opus 5.5 a561f4e591 fix(libc): leave errno unchanged from scalbn and scalbnf on every host
The titles' scalbn and scalbnf never set errno, at any exponent. On
Windows the host scalbn already matches, but glibc's scalbn and scalbnf
set ERANGE on overflow and on underflow to zero (found by rooklz while
reviewing #12676), so on Linux they did. Both now keep errno across the
host call, as scalbln and scalblnf already do. CheckScalbnErrno checks
results read from the titles' libc.prx.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:47:44 -04:00
JJenkxandClaude Opus 5.5 cb09427a74 fix(libc): keep errno across ldexpf's host scalbn call
glibc's scalbnf sets ERANGE on overflow and on underflow to zero, so on
Linux the scalbn body still changed errno and CheckLdexpfErrno failed
5 of its 8 rows (reported by rooklz). ldexpf now saves and restores
errno around the call, as fmod does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:43:26 -04:00
JJenkxandClaude Opus 5.5 03f5cfafe1 fix(libc): leave errno unchanged from ldexpf, as titles' libc.prx does
ldexpf called the host ldexp on a float, which computes in double and
sets ERANGE only when the double result leaves the double range, so
ldexpf(0x1.3d1c6p-95f, 1262) set ERANGE while ldexpf(1.0f, 200) did
not. The titles' ldexpf never sets errno, as their scalbnf does not.
ldexpf now computes like scalbnf: on 100,000 random arguments it
matches the libc.prx of PPSA07923 and PPSA05916 in every value and
errno, against 63,957 errno differences before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:27:48 -04:00
Eduardo Ruiz c7b70f44b0 feat(libc): implement std::_Throw(const std::bad_array_new_length&)
Follow the console libc.prx (PPSA02530) at 0xcb2d0: ignore the argument and throw the static bad_array_new_length object. Star Wars Racer (PPSA28416) imports it.
2026-10-29 01:03:00 +01:00
Eduardo Ruiz 9f9ddb4637 fix(libc): match _Locinfo console rejection 2026-10-29 01:02:12 +01:00