- ps5::heap: global allocator over the SDK's libc malloc/posix_memalign
- ps5:🧵 spawn/join over pthreads, plus a pthread Mutex
- build-std now includes alloc; payloads without the feature are unchanged
- examples/threads: 4 threads sum heap Vecs into an Arc<Mutex<u64>>
(tested on CFI-1215A, fw 13.60: "threads OK")
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Target fixes (payloads built with the custom target ran nothing):
- default-uwtable: keeps the SDK linker script's page-aligned .eh_frame_hdr,
so data no longer shares a page with code (which made main non-executable)
- relro full: rustc only emits GOT calls (GLOB_DAT) with full relro; partial
relro produced PLT JUMP_SLOT relocations unlike the SDK's -fno-plt output
New:
- ps5::net: blocking IPv4 TcpListener/TcpStream with errno errors
- examples/http_server: PS5 serves /info, /notify?msg=, /quit on port 9954
- examples/pc/ps5_client.py + .cmd launchers for the PC side
- ps5::http::last_step() names the SDK call that failed
Tested on CFI-1215A, fw 13.60: hwinfo, http_test and http_server all run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bindings derive from the SDK's GPLv3 headers and every payload statically
links its GPLv3 startup/kernel code, so the project follows the SDK license.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- targets/x86_64-sie-ps5.json: cargo links payload ELFs directly via prospero-clang
- ps5 features (notify, hw, http, ...) link only the Sony libs a payload uses
- payloads/ -> examples/, tools/ -> examples/pc/
- README with build/use instructions and credits to the PS5 Payload SDK
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>