← board

OpenBSD native target (amd64) — libc-through, ELF

Why it's small (once RTL-over-libc exists)

OpenBSD forbids raw syscalls from arbitrary text: msyscall(2) (6.4) → pinsyscalls (7.3/7.4) let the kernel kill any syscall instruction not issued from the pinned libc site. This is anti-ROP call-site allowlisting, not signing (see portability-axes.md for the honest rationale — it is a defensible mitigation, not a flaw).

Route the RTL through libc.so and the whole problem evaporates: the pxx binary emits zero syscall instructions, so every syscall originates inside OpenBSD's own libc — exactly and only what pinsyscalls permits. Compliant by construction; no pin table, no msyscall call needed. And it's still ELF, which pxx already writes and dynamic-imports — so this is mostly configuration on top of [[feature-port-rtl-over-libc]].

What differs

Acceptance

Test infra

qemu OpenBSD via autoinstall (no pre-built qcow2). Runner may live in the Track T clone.