# P15-027 Stage0 Decision

Status: `STOP`. B36 is `STOP-NO-SOURCE`.

G07 is evaluated per architecture against frozen BASE
`4683579dabc57b0c9aaf5762e13ecc2a0ec3f8f9`. The mandatory audit set is
arm64, riscv64, and i386. i386 is the real FreeBSD 32-bit target: the
available FreeBSD source contains its machine headers and the pinned Clang
toolchain contains the x86 backend. Source/toolchain availability is not
native runtime evidence.

The inventory-first gate finds no declared same-architecture FreeBSD runtime
for arm64, riscv64, or i386. The host is Linux/x86_64. An emulator binary,
x86_64 guest, Linux execution, cross compilation, static layout output, or a
runtime from another candidate cannot satisfy this condition. Missing native
runtime is a per-architecture `STOP`, not `INFRA_BLOCKED`, and no architecture
can borrow another architecture's result.

Because cross-only results cannot change any current decision, dual
`WITH_ZSTDIO=0/1` KMOD builds and layout/unaligned/endian probes are
`NOT_RUN` for all three architectures. The gate still verifies the frozen
EROFS source tree, selected planning and probe hashes, FreeBSD source identity
and architecture headers, compiler identity and target backends, and exact
input-recorded Makefile relaxation. That patch is applied only to an owned
temporary Makefile copy. The production `src/Makefile` remains byte-identical
to BASE and retains the amd64-only error.

For a future rerun, each architecture has an independent native runner slot.
A declaration must pass a bounded preflight reporting matching FreeBSD
`uname -s`, architecture-specific `uname -m` and `uname -p`, and cleanup.
Only then does the gate create a frozen temporary source copy, apply the sole
recorded Makefile patch, build both KMOD configurations, record sizes and
`nm -u`, and compile the layout and unaligned little-endian probes. The same
runner must then load and unload both exact module hashes and record Plain,
LZ4, LZMA, and Zstd reads. It must also prove running-kernel `options ZSTDIO`
capability and exact disabled `EOPNOTSUPP`. Every operation carries argv,
deadline, exit, target marker, cleanup, stdout/stderr, and hashes. A candidate
is GO only when its own cross and native records both pass.

This decision does not authorize any B36 allowlist entry. No production
source, B36 case, B36 probe, QEMU run, K build, feature suite, or smoke suite
is created or run. Protected PID 26318, port 9222, and the shared base image
are outside the gate and are not addressed.
