Commit Graph
20967 Commits
Author SHA1 Message Date
boykopovar 53a65ec210 fix(sdk): sync declarations with latest main 2026-10-24 23:17:48 +03:00
boykopovar fdf9ca7574 fix(sdk): reconcile public headers after rebase 2026-10-24 23:17:47 +03:00
boykopovar b85b0b4498 docs: require unique public function declarations 2026-10-24 23:17:46 +03:00
boykopovar d355dec4fc test(sdk): validate vabi function header declarations 2026-10-24 23:17:46 +03:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00
boykopovar 35cf8d56cd refactor(sdk): add canonical headers for core libraries 2026-10-24 23:17:37 +03:00
JJenkxandClaude Opus 5.5 182bd6aa78 fix(libc): round and cap %e, %f and %g as titles' libc.prx does
The printf family formatted floating-point conversions through the host,
which prints every exact digit and rounds ties to even. The libc.prx
that titles ship keeps the exact digits only down to a position derived
from the binary exponent and prints zeros after them, rounds half up on
the kept digits, and rounds an exact tie down once that exponent
estimate reaches 8. So %.0f of 2.5 is 3 and %.1f of 0.25 is 0.3 there,
and %.20f of 0.1 is 0.10000000000000000555.

Format finite double and long double e, f and g conversions with those
rules from exactly generated digits, on every host. On 600,000 random
formats every output with up to 17 significant digits now matches the
copies bundled with PPSA07923, PPSA05916 and PPSA13934; longer outputs
still differ where the console's extended-precision digits end one unit
lower.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 16:17:13 -04:00
JJenkxandClaude Opus 5.5 377e8fccec docs(debt): %a no longer goes to glibc on Linux
The libc debt entry for %a and %A still described the Windows-only
formatter and said Linux hands %a to glibc; since Linux routes %a and %A
to the same formatter, describe it for both platforms.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 16:15:06 -04:00
JJenkxandClaude Opus 5.5 00fa026aae fix(libc): send %a to the guest formatter on Linux too
Linux handed a format without wide arguments, %m or %p to glibc, so %a
there still printed subnormals unnormalised and rounded hexadecimal
digits half to even, and CheckHexFloat, which runs on every host,
failed on Linux. Route %a and %A to FormatWindows on Linux as well.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 16:14:41 -04:00
JJenkx 1a610d2f25 fix(libc): bound hex float allocation by remaining output 2026-10-24 16:14:15 -04:00
JJenkx a8c040004f fix(libc): reject oversized hex float output before allocation 2026-10-24 16:14:15 -04:00
JJenkx e2d2d5171b fix(libc): reject overflowing hex float precision 2026-10-24 16:14:15 -04:00
JJenkxandClaude Opus 5.5 1fbd44b66f fix(libc): format %a like the console on Windows
The Windows printf family handed %a and %A to the host, whose UCRT prints
a subnormal unnormalised (0x0.0000000000001p-1022) and pads with zeros
even when the - flag is given (%-010a of 1.5 gave 0x001.8p+0). The
libc.prx that titles ship normalises subnormals (0x1p-1074), rounds a
shorter precision half up without renormalising a carry, and lets -
override 0, as C requires.

Finite doubles are now formatted here, checked against three titles'
copies of libc.prx run side by side.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 16:14:15 -04:00
MarcZX10 2a976d644e test(freetype): set Windows DLL path for 10583 2026-10-24 20:13:07 +00:00
Adrià c8d34aa8f4 Merge pull request #6009 from zmeizy/claude/minmax-f32-denormal-modes
fix(shader): translate f32 min and max in f32 denormal modes 1 and 2
2026-10-24 22:13:03 +02:00
Bram910 8d54f5a805 fix(tools): shorten NID database temporary names 2026-10-24 22:09:32 +02:00
Adrià 637220db11 Merge pull request #8686 from Ondra97/codex/fix-net-empty-stream-receive
fix(net): complete zero-length TCP receives without waiting on Windows
2026-10-24 22:07:49 +02:00
Dean Galvin 42fd5f7ac6 test(agc): drop the quarantine comment from CMake (#10711)
The reason and the tracking issue are in the libSceAgcDriver debt entry.
2026-10-25 09:00:37 +13:00
Bram910 efc4ed1b7b fix(tools): validate inner ELF machine and header size 2026-10-24 21:56:41 +02:00
Dean Galvin c8f6a33164 Merge main into perf-D2-v47 fix (request serializer version 47 on top of main's 46) 2026-10-25 08:55:48 +13:00
Emanuele 6e97cdd3e5 refactor(libkernel): drop the unreachable dot checks after sceKernelRename's return 2026-10-24 21:55:02 +02:00
Yunus Shaikh bc0971afbc Merge #9505's main merge into perf/libc-collect-without-region-query 2026-10-24 12:53:59 -07:00
Adrià 2dc85609fc Merge pull request #5431 from sktharunbalaji13-cmd/feat/shader-draw-submission-correlation-5166-fresh
feat(agc): trace shader failures through draw submission batches
2026-10-24 21:49:57 +02:00
dwk001andClaude Opus 5.5 eaeb9c7de7 fix(libkernel): accept any pthread_mutexattr_setkind_np kind as FreeBSD libthr does
pthread_mutexattr_setkind_np stored only kinds 1 to 4 and threw for others.
FreeBSD 11.4 stores any kind, pthread_mutexattr_gettype rejects kinds of
PTHREAD_MUTEX_TYPE_MAX or more with EINVAL, and mutex_check_attr makes
pthread_mutex_init fail with EINVAL for a kind outside the mutex types.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01B7MJ4KkM4JNNWQxjsXT4ib
2026-10-24 19:44:31 +00:00
roboterspinne 484cb7b539 fix(relinker): require a non-empty PT_TLS for executable TLS relocations
An executable's local TPOFF64, DTPOFF64 or DTPMOD64 relocation passed
whenever a PT_TLS header existed, so the Linux targets emitted it next
to a PT_TLS with p_memsz 0, while the Windows and macOS relocation
builder rejected the same input. glibc's ld.so sets up the main
program's TLS module only for a PT_TLS with p_memsz > 0, so such a
relocation has no block to resolve against. The pipeline now requires a
PT_TLS with a nonzero p_memsz and fails on every target with "TLS
relocation in an executable without a non-empty PT_TLS segment".
Relocations against imported TLS symbols are unchanged.
2026-10-24 21:42:14 +02:00
Swag 1d2d3d2a5d Merge upstream/main into feat/libressl-error-queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>

# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-24 15:40:11 -04:00
Bram910 c5c7ecaf63 fix(tools): report excessive trace JSON nesting 2026-10-24 21:39:06 +02:00
roboterspinne cd7b8bff00 fix(relinker): reject non-TLS guest relocations bound to a guest TLS export
A guest STT_NOTYPE import that resolved to another guest's STT_TLS
export was accepted when R_X86_64_64, R_X86_64_GLOB_DAT or
R_X86_64_JUMP_SLOT referenced it, and every target filled the slot
with an address that is not the variable. The gABI lets only TLS
relocations reference an STT_TLS symbol; the reader already rejects
such relocations against a TLS-typed import, and the builder rejects
OBJECT and FUNC imports of a TLS export as a type mismatch. The
builder now also rejects a referenced NOTYPE import of a guest TLS
export with "Non-TLS relocation against guest TLS export". These
inputs exit 2 on Linux, Windows and macOS instead of producing
outputs; unreferenced NOTYPE entries and TLS relocations are
unchanged.
2026-10-24 21:36:27 +02:00
orezraeyandClaude Opus 5.5 60e4b0b651 Merge main into fix/libkernel-socket-receive-flags-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 16:35:43 -03:00
Bram910 8ffac634b6 fix(tools): identify JSON report recursion errors 2026-10-24 21:33:51 +02:00
roboterspinne 21127fe316 fix(relinker): reject guest TLS symbols in special sections
GuestImageReader rejected a defined symbol whose section index is
SHN_LORESERVE (0xff00) or higher, SHN_ABS excepted, only when it was
not STT_TLS, so a TLS symbol in SHN_ABS, SHN_COMMON, 0xff00 or
SHN_XINDEX was accepted. The Linux output kept it in .dynsym with that
section index, Windows and macOS failed only for an export outside
SHN_ABS, and both wrote st_value plus addend for a DTPOFF64 relocation
against a local one. The gABI gives a defined STT_TLS symbol its
assigned TLS offset and no meaning in a special section index, so
every such symbol now fails with "Unsupported special symbol section"
before the TLS bounds check. SHN_ABS stays accepted for other symbol
types.
2026-10-24 21:33:20 +02:00
Bram910 e49a927811 test(tools): exercise Unicode advisor output 2026-10-24 21:31:30 +02:00
thuanquangandClaude a89e4c35a3 docs(libkernel): correct three stale socket statements
Co-Authored-By: Claude <[email protected]>
2026-10-25 02:28:11 +07:00
Adrià 50757b01c6 Merge pull request #9545 from Ondra97/codex/feat-freetype-cid-metadata
feat(libSceFreeType): expose CID font metadata
2026-10-24 21:24:52 +02:00
WhiteAssassins dbe74bf422 fix(tools): guide users through verified patch choices 2026-10-24 15:24:38 -04:00
Romans Pokrovskis af4b99cca4 Merge commit '30be9b428beeabfde715e947d261e756e462b790' into codex/fix-import-upload-generation-main29f539-20261024 2026-10-24 22:22:58 +03:00
Dean Galvin 8807b0e235 test(agc): do not build agc_driver_frame_replay_tests while the test is quarantined (#10711)
The Windows registration check fails when a test executable is built but no ctest test runs it. Put the executable under ANYPS5_RUN_QUARANTINED_FRAME_REPLAY as well, so OFF neither builds nor registers it and ON does both.
2026-10-25 08:22:42 +13:00
thuanquang 85372834be Merge remote-tracking branch 'origin/main' into perf/import-watched-parallel-hash
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
2026-10-25 02:17:43 +07:00
Rookie b15a58d802 fix(libSceAgcDriver): export raw 32-bit values into UINT color targets as integers 2026-10-24 20:14:50 +01:00
WhiteAssassins decf5429c5 test(tools): assert quoted listed patch path 2026-10-24 15:12:00 -04:00
muaus 91bd250e98 test(relinker): wait for the terminated child to leave the process snapshot 2026-10-25 00:10:24 +05:00
Dean 30be9b428b Merge pull request #10331 from orezraey/fix/libkernel-multicast-membership-measured-ps5
fix(libkernel): join and leave multicast groups as measured on a PS5
2026-10-25 08:03:16 +13:00
f0fee97510 test(agc): keep the import-probe hook one-shot on libc++
ImportAllocationProbe::Allocate moves onImport out before calling it.
libc++ leaves a moved-from std::function with a small stored functor
callable, so on macOS the hook fired again on the next import while
HostImportFor held the guest buffer memory mutex; replacing the
unrelated range then waited for imports on that mutex and
agc_driver_graphics hung until the test timeout. Taking the hook with
std::exchange leaves it empty on every standard library.

Co-authored-by: Himansh Raj <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 15:56:07 -03:00
WhiteAssassins 618d6d3df6 test(tools): exclude incompatible patches from listing 2026-10-24 14:55:25 -04:00
Queuze eebd13e224 chore: refresh socket option contribution #9523 2026-10-24 15:52:53 -03:00
Queuze 4537b815e5 chore: refresh socket option contribution #9525 2026-10-24 15:52:52 -03:00
Queuze 28371daefd chore: refresh socket option contribution #9542 2026-10-24 15:52:51 -03:00
Queuze 942934a863 chore: refresh socket option contribution #9931 2026-10-24 15:52:49 -03:00
Queuze 2103fdf846 chore: refresh socket option contribution #9930 2026-10-24 15:52:49 -03:00
WhiteAssassins 20f1039d89 feat(tools): list verified patch catalog entries 2026-10-24 14:52:36 -04:00