Files
ps5upload/payload/third_party/sdk-crt
phantomptrandClaude Opus 5.5 8d05f60a7e PS5 Payload SDK v0.44, and scripts/update-ps5-sdk.sh to bump it
Pin v0.44 (sha256 4d06eab7...). Its crt/ and prospero-nid are identical
to v0.43, so the vendored sdk-crt (+ ps5upload.patch) and the portable
prospero-nid stay as they are; the helper, installer and elfldr build to
the same code (only the build-id differs). v0.44 adds LLVM 23 to the
candidate list, so the Makefile comment and Homebrew fallbacks move too.

scripts/update-ps5-sdk.sh (make update-sdk): finds the latest release
(or --tag), checks the zip, rewrites the pin, re-vendors prospero-nid
and crt only when upstream changed them (stops if our crt patch no
longer applies), moves the "SDK vX.Y" doc mentions and installs with
install-ps5-sdk.sh, keeping the old SDK as a backup. --check only
reports. The installer names its backups after the release they hold.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ub1mez9eaVtTF8pMEFXvA9
2026-10-10 11:14:44 -07:00
..

sdk-crt

The startup code (crt/) of ps5-payload-sdk v0.43 (identical in v0.44), GPLv3 (see LICENSE), built by payload/sdk-crt.mk and linked into the helper, the installer daemon and the patched elfldr in place of the SDK's own crt1.o.

One change, in ps5upload.patch: __kernel_init no longer returns -ENOSYS when the DMAP base or the IOMMU softc search (added upstream in 4b86c73a) comes up empty. That return stopped every payload before main() on FW 5.50, where 5.x builds (SDK v0.42, without the searches) ran. Only two fallbacks use those values, and both refuse without them: the IOMMU write helpers (which check for a missing softc themselves) and the physical-address path of kernel_proc_copyin/kernel_proc_copyout (a guard added in kernel_procio.c).

scripts/update-ps5-sdk.sh does this check on every SDK bump: it re-vendors crt/ and re-applies the patch when upstream changed it, and stops if the patch no longer applies. By hand: copy the new release's crt/*.{c,h,S} here, re-apply ps5upload.patch, and check that the exported symbols still match the SDK's target/lib/crt1.o (llvm-nm).