D057 - libScePosix is checked, and it is the best provenance available without a console

Status: decided.

A separate library exports POSIX under a posix_ prefix. obSCEne did not touch it at all, which the emulator gap analysis surfaced (BACKLOG ยง10). Five checks now do.

The expectations are settled by a document. That is the point. Fifty-three checks in this suite are OBS_FROM_ASSUMED and none is OBS_FROM_HARDWARE, and an emulator implemented to satisfy an assumed check has only been made to agree with this project. Both can be wrong together and the report will say otherwise. A spec check cannot fail that way, because the authority sits outside both projects.

It is also a second spelling of functions already checked. scePthreadRwlockTryrdlock and posix_pthread_rwlock_tryrdlock should be one implementation behind two names, so 017-posix/spellings-agree calls both and reports when they differ. It is the only check here whose expectation comes from the platform rather than from a document: it asks for self-consistency, not for a particular answer, and a divergence is a fault whatever the right answer turns out to be. Marked assumed, because no document says the two libraries must be one implementation.

What is left out is everything needing a struct layout. posix_nanosleep and posix_clock_gettime take a timespec; posix_mmap and the sys_* socket family take more. D008 applies unchanged.

The signal-set checks are the exception that shows the rule can be worked around rather than broken. A sigset_t is opaque and differently sized per system, so the pointer is declared void * - identical in the ABI - and the set is only ever read back through the platform's own ismember. Nothing about the layout is assumed except that it fits in the buffer, which is 128 bytes against a target that wants 16.