Commit Graph
1691 Commits
Author SHA1 Message Date
Dean d934f802e4 Merge pull request #10814 from MarcZX10/marc/fix-ctime-fallback-buffer-race
fix(libc): give ctime's unrepresentable-time text a buffer per thread
2026-10-27 09:06:08 +13:00
Dean fd0da73ec5 Merge pull request #10781 from MarcZX10/marc/fix-printf-s-closed-stdout
fix(libc): fail printf_s on a closed standard output with EBADF
2026-10-27 09:04:40 +13:00
Dean 265c36523c Merge pull request #10175 from orezraey/fix/libc-fetestexcept-measured-ps5
fix(libc): return fetestexcept's unmasked status bits as measured on a PS5
2026-10-27 08:57:53 +13:00
Dean b9c30ee505 Merge pull request #8311 from mugurc/fix/libc-dwarf-unwind-macos
fix(libc): keep DWARF unwind tables in libc on macOS hosts
2026-10-27 08:53:43 +13:00
Adrià 6b16c9c649 Merge pull request #10379 from JJenkx/windows/libc-printf-nan-sign
fix(libc): print a NaN's sign in swprintf as titles' libc.prx does
2026-10-26 19:56:47 +01:00
Adrià c9a6013f4d Merge pull request #10468 from JJenkx/fix/libc-nextafter-fenv
fix(libc): preserve nextafter exception flags and denormal modes
2026-10-26 19:50:43 +01:00
JJenkxandClaude Opus 5.5 f8c4066be5 fix(libc): print a NaN's sign in swprintf as titles' libc.prx does
The wide printf family left NaN to the host, which dropped the sign of a
negative NaN but printed +nan with the + flag. The libc.prx that titles
ship prints a NaN in swprintf like an infinity, as its snprintf does:
-nan for a negative NaN, +nan or " nan" with the + and space flags, NAN
for the upper-case conversions, padded with spaces. The wide formatter now
does the same through its own helper; the narrow family is #10223's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 18:10:38 +01:00
Dean 3a1c60898a Merge pull request #11156 from orezraey/fix/libc-fdopen-measured-ps5
fix(libc): check the fdopen mode before the descriptor and skip the access check as measured on a PS5
2026-10-27 05:43:39 +13:00
Dean 4971b380b3 Merge pull request #11127 from orezraey/fix/libc-strerror-r-texts-measured-ps5
fix(libc): give strerror_r, perror and strerror_s the strerror texts as measured on a PS5
2026-10-27 05:42:18 +13:00
Adrià 39c801a13d Merge pull request #9669 from fogydes/feat/libkernel-exec-replacement
feat(libkernel): implement execv, execvp and execve process replacement
2026-10-26 16:36:56 +01:00
Adrià c4669c9ca2 Merge pull request #9958 from JJenkx/windows/printf-long-double-hex
fix(libc): format %La like titles' libc.prx does
2026-10-26 16:30:58 +01:00
Adrià b0f1183ca1 Merge pull request #9973 from JJenkx/windows/swscanf-float-errno
fix(libc): leave errno alone for out-of-range float and double in swscanf
2026-10-26 16:20:08 +01:00
Dean bf77a9e9cb Merge pull request #10742 from 00xDisaster/feat/libc-lcosh
feat(libc): implement _LCosh and _LSinh
2026-10-27 02:28:15 +13:00
Adrià 1061954c7e Merge pull request #8520 from qpavyros/codex/app-archive-directories
feat(libkernel): enumerate archived app directories
2026-10-26 14:23:39 +01:00
Adrià FranchandClaude Sonnet 5.5 c2adff7598 fix(libc): export ExecutePermission_nid_no_patch with C linkage
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 14:18:34 +01:00
review 044e52a2f0 Merge commit 'refs/review/9669/head' into HEAD 2026-10-26 14:10:41 +01:00
JJenkxandClaude Opus 5.5 afa58432f3 fix(libc): format %La like titles' libc.prx does
A long double %La went to the host, which on Windows (MinGW) prints the
64-bit significand with its integer bit as the leading digit:
0xc.ccccccccccccccdp-7 for 0.1L. The libc.prx that titles ship
normalises it like a double, with a leading 1 and the remaining 63 bits
as 16 hexadecimal digits, 0x1.999999999999999ap-4, and rounds a shorter
precision half up with the carry kept in the leading digit. Share
HexFloat's digit and rounding code between double and long double and
use it for finite long double %a and %A in the narrow and wide families.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 08:52:35 -04:00
Adrià 2cce8bc51d Merge pull request #9927 from JJenkx/windows/wprintf-float-console
fix(libc): format wide %a, %e, %f and %g with the narrow console rules
2026-10-26 13:25:22 +01:00
JJenkx ef0afbb731 test(libc): make nextafter environment coverage portable 2026-10-26 08:24:29 -04:00
JJenkx f5f4f7fbf8 fix(libc): preserve nextafter floating-point environment behavior 2026-10-26 08:24:29 -04:00
Adrià 2db37cf1de Merge pull request #9468 from mazen320/feat/libc-num-get-w-vtable
feat(libc): export the wide num_get facet vtable as data
2026-10-26 13:21:19 +01:00
Adrià 5e90e7569d Merge pull request #9869 from cadenasynyster/fix/windows-opendir-file-link-loop
fix(libc): report ELOOP from opendir of a Windows file-type link loop
2026-10-26 13:14:08 +01:00
Adrià 4e38e23882 Merge pull request #9585 from DavidSamir/fix/win-unknown-personality
fix(libc): return the fatal unwind error for an unknown personality on Windows
2026-10-26 13:06:47 +01:00
Adrià 7a01e6a494 Merge pull request #9693 from Gruzzberry/feat/setlogin
feat(libkernel_sys): implement setlogin
2026-10-26 12:46:59 +01:00
Adrià Franch 8676daa0fc merge: sync archive directories with main 2026-10-26 12:02:23 +01:00
fogydes 719701a68e fix(libkernel): follow the measured exec lookup and image checks 2026-10-26 16:19:46 +05:30
Maz 1f27ca0c49 feat(libc): export the wide num_get facet vtable as data
Console libSceLibcInternal exports Y9C9GeKyZ3A as a 136-byte STT_OBJECT;
titles that resolve the wide num_get vtable as data need a zeroed 17-slot
object matching the narrow num_get layout on console.
2026-10-26 11:37:08 +01:00
Adrià cbf76e7a6e Merge pull request #9408 from rursache/feat/macos-trace-imports
feat(relinker): trace function imports on macOS
2026-10-26 11:27:51 +01:00
Adrià e7011684e8 Merge pull request #9583 from DavidSamir/test/win-guest-fopen-errors
test(libc): run guest_fopen_errors on Windows
2026-10-26 11:20:45 +01:00
Adrià c8a3b25882 Merge pull request #9464 from mazen320/feat/libc-time-get-w-vtable
feat(libc): export the wide time_get facet vtable as data
2026-10-26 11:19:39 +01:00
Adrià FranchandClaude Sonnet 5.5 654eadd7f5 merge: sync archive directories with main
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 10:50:37 +01:00
GruzzberryandClaude Opus 5.5 d49b9b6f25 feat(libkernel_sys): implement setlogin
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:26:45 +00:00
David 1d396a254d fix(libc): stop the unwind readability walk on an empty region
Readable advanced by each region's size, so a region reported with size 0
would never end the walk. It now counts as unreadable.
2026-10-26 10:26:19 +01:00
David ce7e0f01c8 fix(libc): return the fatal unwind error for an unknown personality on Windows
CallPersonality followed a jmp [rip+disp] import thunk by reading the bytes
at the personality address before checking it against the known
personalities, so an unmapped personality faulted instead of returning
_URC_FATAL_PHASE1_ERROR / _URC_FATAL_PHASE2_ERROR as it does on Linux. The
thunk and its slot are now read only when VirtualQuery reports them
committed and readable. exception_personality, which covers this, now runs
on Windows too.
2026-10-26 10:26:19 +01:00
Dean c3db979cd3 Merge pull request #10128 from orezraey/fix/libc-gethostname-measured-ps5
fix(libc): report the empty host name measured on a PS5
2026-10-26 22:00:35 +13:00
Dean cbee224804 Merge pull request #10316 from JJenkx/windows/libc-tanh-msun
fix(libc): compute tanh with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-26 21:48:43 +13:00
Dean 7109f36927 Merge pull request #8696 from cadenasynyster/fix/win-rename-loop
fix(libc): report ELOOP from rename through a Windows symlink loop
2026-10-26 20:36:42 +13:00
Dean 3d2b7c0673 Merge pull request #10610 from JJenkx/fix/libc-acoshf-domain-fenv
fix(libc): preserve acoshf domain errno and exception flags
2026-10-26 20:14:11 +13:00
Dean 8022d448e6 Merge pull request #10786 from 00xDisaster/feat/libc-dinkumware-math
feat(libc): implement _Exp and _FExp
2026-10-26 20:02:47 +13:00
Dean Galvin 42a75519e3 Merge branch 'main' into windows/libc-tanh-msun 2026-10-26 18:37:39 +13:00
Dean Galvin 7461106f53 Merge branch 'main' into fix/libc-acoshf-domain-fenv 2026-10-26 17:40:43 +13:00
Dean 442c43a574 Merge pull request #10370 from JJenkx/windows/libc-rounding-quiet-snan
fix(libc): quiet signalling NaNs in trunc, ceil, floor and nearbyint as titles' libc.prx does
2026-10-26 17:38:52 +13:00
JJenkxandClaude Opus 5.5 ca1b62a3bd fix(libc): compute tanh with FreeBSD msun's algorithm, as titles' libc.prx does
tanh returned the host's tanh, whose last bit differs from the titles' copy
on Windows. The titles' copy is FreeBSD msun's s_tanh.c over msun's expm1,
and it sets no errno. tanh now computes that algorithm over this file's
Expm1.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:26:16 -04:00
JJenkxandClaude Opus 5.5 f91f0450b5 fix(libc): quiet signalling NaNs in trunc, ceil, floor and nearbyint as titles' libc.prx does
trunc, ceil, floor and nearbyint and their float forms returned the
host's result, which on Windows passes a signalling NaN through
unchanged. The titles' copies follow FreeBSD msun, which returns x + x
for a NaN, so the NaN comes back quieted with its payload and sign; these
functions now do the same before calling the host for other arguments.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:26:12 -04:00
JJenkxandClaude Opus 5.5 5d347949b0 fix(libc): accept signed char values in the ctype functions as titles' libc.prx does
The ctype functions threw std::invalid_argument for any value below EOF,
so a title passing a plain char with its high bit set, such as a UTF-8
byte, aborted. The libc.prx bundled with titles accepts -128 to -2: each
class function returns 0 for them, as for 128 to 255 in the C locale,
and toupper and tolower return them unchanged. Values outside -128 to
255 still throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:16:45 -04:00
JJenkx ad111b3ce1 fix(libc): preserve acoshf domain errno and exception flags 2026-10-25 22:07:34 -04:00
Dean 3af09d95e2 Merge pull request #10494 from xXPBSXx/carry/6544-relinked-nested
fix(libc): look in prx, sce_module and sce_modules for a relinked module after its own directory
2026-10-26 14:47:47 +13:00
Dean faa88a412b Merge pull request #10608 from edubox/feat/libc-underflow-error
feat(libc): export std::underflow_error type info, vtable and destructor
2026-10-26 14:40:05 +13:00
Dean 732ab06f41 Merge pull request #10354 from JJenkx/windows/libc-nextafter-msun
fix(libc): compute nextafter and nextafterf with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-26 14:30:57 +13:00
Dean 36df54b472 Merge pull request #10387 from JJenkx/windows/libc-ctype-console-masks
fix(libc): return the console's class bits from the ctype functions
2026-10-26 14:28:15 +13:00