Commit Graph
20967 Commits
Author SHA1 Message Date
Dean Galvin 96794cc8da fix(freetype): declare FT_Bitmap_Init once in the public header
FT_Bitmap_Init_nid_postfix was only declared locally in GuestFreeTypeBitmapInit.cpp; it is now declared in libSceFreeType Api.hpp next to FT_Bitmap_New with the signature the implementation uses, and the test includes the header.
2026-10-26 09:41:47 +13:00
Dean Galvin 2a7220275c fix(libc): use the public exception runtime declarations in the standard error test
GuestHostStandardError.cpp declared __cxa_allocate_exception and __cxa_throw locally on macOS; they are declared once in exceptions/Runtime.hpp, which Api.hpp includes, so public_headers rejected the second declaration.
2026-10-26 09:41:47 +13:00
Dean Galvin 012091909c Merge branch 'main' into marc/freetype-bitmap-init 2026-10-26 09:41:37 +13:00
Dean Galvin 0bc464eb0e Merge branch 'main' into test/macos-terminate-message 2026-10-26 09:41:36 +13:00
MarcZX10 52e0132a34 docs(build): name LLVM among the suppressed ThreadSanitizer libraries 2026-10-25 20:38:12 +00:00
MarcZX10 8d4ce409dd build: suppress ThreadSanitizer reports from lavapipe's LLVM 2026-10-25 20:38:12 +00:00
MarcZX10 f8ef2caa34 docs(build): describe the ThreadSanitizer suppressions and guest memory reports 2026-10-25 20:38:12 +00:00
MarcZX10 6658bc536a build: add ThreadSanitizer suppressions for uninstrumented system libraries 2026-10-25 20:38:12 +00:00
MarcZX10 378c58ea77 docs(build): document the ANYPS5_ENABLE_TSAN flag 2026-10-25 20:38:12 +00:00
MarcZX10 81a0f6b815 test(libkernel): skip host mlock result checks in guest_memory under ThreadSanitizer
CheckMlock reads VmLck and expects ENOMEM from mlock of reserved and unmapped ranges. ThreadSanitizer, like AddressSanitizer, replaces mlock and munlock with interceptors that return 0 without locking anything, so skip the same checks that ANYPS5_ENABLE_ASAN already skips. The guest arena range check stays as is: a ThreadSanitizer build keeps the default range.
2026-10-25 20:38:12 +00:00
MarcZX10 b31b559f5f test(libkernel): skip host mlock result checks in guest_mlock under ThreadSanitizer
The sanitizer runtimes intercept mlock, munlock, mlockall and munlockall and return 0 without calling the kernel (TSAN_OPTIONS=verbosity=1 prints "ThreadSanitizer ignores mlock/mlockall/munlock/munlockall"). VmLck therefore never grows and mlock of an unmapped or reserved range succeeds, so the ENOMEM and locked-size checks that are already skipped under ANYPS5_ENABLE_ASAN are skipped under ANYPS5_ENABLE_TSAN too.
2026-10-25 20:38:12 +00:00
MarcZX10 8dfbab6fcd build: compile and link with -fsanitize=thread under ANYPS5_ENABLE_TSAN
Add the ThreadSanitizer compile and link options, keep frame pointers for usable report stacks, and define ANYPS5_ENABLE_TSAN=1 so sources and tests can tell a ThreadSanitizer build apart. The guest arena keeps its default range: it starts below ThreadSanitizer's application memory limit, and the arena already records host mappings such as the runtime's protected gaps as used ranges.
2026-10-25 20:38:12 +00:00
MarcZX10 fbe1a9b0f3 build: keep ThreadSanitizer executables dynamically linked
GCC rejects -fsanitize=thread together with -static ("cannot specify -static with -fsanitize=thread"), and the ThreadSanitizer runtime has to come up before libc. Leave the -static -static-libgcc -static-libstdc++ executable flags out when ANYPS5_ENABLE_TSAN is on, as the ASan branch already does.
2026-10-25 20:38:12 +00:00
MarcZX10 4da863bf56 build: add the ANYPS5_ENABLE_TSAN option for Linux GCC and Clang builds
Declare a ThreadSanitizer switch next to ANYPS5_ENABLE_ASAN and reject it on other systems and compilers, as ASan does. The two sanitizers cannot share one process, so configuring both is a fatal error.
2026-10-25 20:38:12 +00:00
lakhantheboss 53fd262d22 fix(libSceIme): return errors for null arguments 2026-10-26 02:07:43 +05:30
Dean Galvin 676ee4fe42 Merge branch 'main' into pr8903 2026-10-26 09:35:29 +13:00
p3nicillinandClaude Opus 5.5 8df80bdc3f fix(libkernel): ignore MAP_EXCL in fixed anonymous mmap as measured on a PS5
Prospero Win measured on firmware 12.02 that the PS5 kernel accepts
MAP_EXCL but ignores it: MAP_FIXED | MAP_EXCL over an existing mapping
replaces it without error. Fixed anonymous mmap now does the same instead
of FreeBSD's ENOMEM. MAP_EXCL without MAP_FIXED stays EINVAL.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 20:33:23 +00:00
orezraeyandClaude Opus 5.5 2fd60d3ebd feat(libc): export __fe_dfl_env as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:30:06 -03:00
mzaeemnasir ffe1b52b44 fix(relinker): collect reachable branch targets without signed overflow
Code analysis added a branch displacement to the next instruction's
address as std::int64_t. For a code segment mapped across 2^63 the sum
overflowed. Add it as an unsigned value, as the function-symbol sweep in
the same collector already does.
2026-10-25 20:29:33 +00:00
thuanquangandClaude e1fa56c7bf perf(agc): drop the armed-page case from the color target import gate
#9181 stopped write-protecting resident runs on Windows: the write watch
no longer arms them read-only, and the import access opens nothing on
them. The gate's case that counted armed read-only private pages as
writable can no longer change a decision, and the tests that armed a
resident run first could only skip.

Remove the case: resident runs are read-write private pages and pass the
writable check as they are. --armed becomes --direct, the same 2 MiB
direct-memory run without the arming step. --armed-gate becomes
--private-gate and keeps the checks that can still be reached: the
direct run is refused under Unwatch and imported under Watch, and a
block committed read-only while registered writable is refused without
being counted.

Co-Authored-By: Claude <[email protected]>
2026-10-26 03:29:04 +07:00
Luka Petrovic 492db378ae test(relinker): execute red-zone framing regressions on Windows 2026-10-25 21:27:13 +01:00
boykopovar 5a2744c55e Merge pull request #11158 from boykopovar/refactor/no-3rdparty-in-public-headers
refactor(libs): remove 3rdparty from public headers
2026-10-25 23:25:14 +03:00
orezraeyandClaude Opus 5.5 65d87b4ecb fix(libkernel): resolve sysctl top-level names and fail absent top-level MIBs with ENOENT as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:22:26 -03:00
Dean 74a55da254 Merge pull request #10688 from edubox/feat/libc-mtx-timedlock
feat(libc): implement _Mtx_timedlock
2026-10-26 09:21:46 +13:00
Disaster c66f61ff52 feat(libc): wire the collate<char> facet vtable
The nine-slot _ZTVSt7collateIcE export added by #9979 was still zeroed, so a guest that called through the exported vtable faulted. Fill slots 2 through 8 with the same facet methods that g_collateVtable uses, leave the offset-to-top and typeinfo slots zero, and cover compare, transform, hash, retain and release through the exported object.
2026-10-25 23:21:45 +03:00
orezraeyandClaude Opus 5.5 a4ef5fd8a9 docs(libc): record std::thread::hardware_concurrency as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:17:35 -03:00
Adrià 9dbc017c71 Merge pull request #9512 from EagleBearerYS/fix/libkernel-poll-socket-hup
fix(libkernel): clear POLLOUT from a hung-up socket in poll on Linux
2026-10-25 21:16:45 +01:00
orezraeyandClaude Opus 5.5 e108063e13 fix(libSceRtc): drop the date field getters and setters a PS5 does not export
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:16:27 -03:00
Adrià 74ac0e7912 Merge pull request #9506 from Noxy-HNR/claude/project-thread-420hnm
feat(net): store DNS servers set through sceNetSetDnsInfo and sceNetSetDns6Info
2026-10-25 21:13:38 +01:00
p3nicillinandClaude Opus 5.5 6d4247f45f fix(libSceAudioOut): declare sceAudioOutSetPadSpkVolume as PSBox calls it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 20:12:50 +00:00
akkadbakkad89 44f2c7f607 fix(libScePsml): serialize the shared-resources busy check and insert
The single-instance guard checked g_mfsrObjects under g_mfsrMutex, released
the lock, then reacquired it inside CreateMfsrObject to insert, so two
concurrent creates could both observe no shared-resources object and both
succeed. Hold the mutex across the busy check and the emplace instead; the
lock scope also preserves the firmware order, which returns 0x8A810015
before validating the arguments. guest_psml_tests gains a concurrent
create check for the reachable uninitialized contract; the busy branch
itself cannot be exercised while scePsmlMfsrInit cannot succeed on the
modelled console.
2026-10-26 01:41:41 +05:30
JJenkx d93bb1b3bc fix(agc): verify the effective user words of relocated draws 2026-10-25 16:11:03 -04:00
Dean 7ce95893f9 Merge pull request #10551 from JJenkx/perf/agc-storage-reclaim-ceiling
fix(agc): reclaim idle device buffers up to the storage cache's current cap
2026-10-26 09:10:30 +13:00
B-Howell 0c529db4bc fix(tools): verify sampler windows against the later capture
Keep module identity evidence local to the later snapshot rather than inheriting older records through --since. Cover raw address and collapsed stack inputs, explicit unverified operation, and a changed build identity.

AI-assisted: yes (Codex).
2026-10-25 16:10:10 -04:00
Dean 721bb69e55 Merge pull request #9257 from Noxy-HNR/fix/ci-gate-flow-mapping-paths
fix(tools): accept flow-style pull_request paths filters in the CI gate
2026-10-26 09:07:17 +13:00
plexerPK 0737a6f81c fix(tools): hash relative validation test files 2026-10-25 21:06:42 +01:00
ChronyyxandClaude Opus 5.5 f8a99b6b8a docs(relinker): say why the red-zone framer refuses shrink-wrapped leaves
The debt entry said that shrink-wrapped leaves, which push later and pop in
balance, could be framed. They cannot as the framer works now: lowering RSP on
entry moves their later pushes onto the spills, which keep their addresses.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 16:03:51 -04:00
Adrià 065d5dba6a Merge pull request #9502 from GitamarT045T3R/fix/libkernel-fchmod-pipe
fix(libkernel): fail fchmod on a pipe with EINVAL like FreeBSD
2026-10-25 21:03:23 +01:00
Maz 33f03f45eb fix(libkernel): guard unlinkat junction path with DIRECTORY
Match the AT_REMOVEDIR and rmdir sites so file reparse points stay on the old unlink path. Cover file symlink unlinkat on Windows and point the debt at the drive-target consumers.
2026-10-26 00:02:20 +04:00
Maz de84153592 fix(libkernel): treat Windows junctions in unlinkat like unlink and rmdir
Relative unlinkat skipped the junction path that absolute unlink and rmdir already use.
2026-10-26 00:02:20 +04:00
Maz f6c24fc271 fix(libkernel): remove a Windows directory junction without emptying its target
rmdir followed the junction and reported ENOTEMPTY, and unlink treated it as a real directory, so a junction to a non-empty folder could not be removed.
2026-10-26 00:02:20 +04:00
Maz 0071bf26f6 fix(libc): restore separate GuestLocale time_get helpers 2026-10-26 00:02:16 +04:00
Maz a48a417101 fix(libc): keep char and wide time_get vtables after rebase 2026-10-26 00:02:16 +04:00
Maz bd6406392f feat(libc): export the wide time_get facet vtable as data 2026-10-26 00:02:15 +04:00
thepoppfish d045fb7229 fix(tools): skip database access for empty NID lookups 2026-10-25 22:01:12 +02:00
orezraeyandClaude Opus 5.5 3dac7eb76c fix(libc): check the fdopen mode before the descriptor and skip the access check as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:01:01 -03:00
Romans Pokrovskis 60fcbde8ca Merge remote-tracking branch 'origin/main' into codex/fix-cpu-write-mapping-lifetime-20261025 2026-10-25 22:00:50 +02:00
xXPBSXxandClaude Sonnet 5.5 9e076485b2 docs(debt): note the call sites of sceAgcCbMemsetExclusive in six titles
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 20:57:13 +01:00
boykopovar a0adf633ea refactor(freetype): decouple public list types from host headers 2026-10-25 22:56:38 +03:00
Adrià 2f506cacac Merge pull request #9624 from MarrasFederico/feat/avplayer-trick-speed-bandwidth-source
fix(libSceAvPlayer): refuse sceAvPlayerSetTrickSpeed without a source and sceAvPlayerSetAvailableBandwidth after one
2026-10-25 20:52:31 +01:00