39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# Phase 1.0D CRT entry canary
|
|
|
|
`chimera_ps5_crt_entry_canary.elf` is a non-RetroArch diagnostic artifact. It
|
|
uses the pinned normal SDK CRT, the same ET_DYN/W^X loader class, and the same
|
|
`_Exit` selection as the software-smoke profile.
|
|
|
|
Its fixed behavior is:
|
|
|
|
1. enter `main`;
|
|
2. attempt exactly one notification containing
|
|
`CHIMERA C1 — CRT MAIN REACHED`;
|
|
3. perform one relative `nanosleep` of two seconds, with no interrupted-sleep
|
|
retry;
|
|
4. call `_Exit(0)`.
|
|
|
|
It contains no SDL, VideoOut, Pad, AudioOut, filesystem, networking, thread
|
|
creation, listener, retry, configuration, autoload, payload launch, or
|
|
installation implementation. Its complete undefined-symbol set is `_Exit`,
|
|
`memset`, `nanosleep`, and `sceKernelSendNotificationRequest`; DT_NEEDED is
|
|
only `libSceLibcInternal.sprx` and `libkernel_web.sprx`.
|
|
|
|
The notification ABI is copied from the local lifecycle source at commit
|
|
`fe08300339a13f899fb78ea404ada381a5cba87c`, Git blob
|
|
`654e6659c9e6f2569ddccf1c9e46ea1c62c066f3`: 45 reserved bytes followed by
|
|
3,075 message bytes, passed as
|
|
`sceKernelSendNotificationRequest(0, &request, sizeof(request), 0)`. No
|
|
notification ABI was inferred from a symbol name.
|
|
|
|
Static disassembly binds `main` at `0x0`, the notification indirect call at
|
|
`0x24b`, `_Exit` at `0x23`, and SDK `_start` at `0x290`. The ELF has three
|
|
LOAD segments (RX, R, RW), zero RWX segments, an empty init/fini array, no TLS,
|
|
144 relocations, and 2,512 BSS bytes.
|
|
|
|
Two clean builds produced the same 106,344-byte SHA-256
|
|
`c84c0fb43392ce17abc1e7e6be38b522f1b32a681fd516d684c3dbbf7b34b743`;
|
|
both maps produced
|
|
`96132ef015d1743606a86906c810b9e9b2832889a6d49863653b03dddb75cf07`.
|
|
The ELF is `execution_eligible=false`.
|