OS / platform targets

Where a pxx binary runs — the operating-system / runtime environment, distinct from the CPU it's compiled for.

Platform Status Notes
Linux (ELF), any distro* Full Primary target across every CPU arch; static and libc-free by default.
Bare metal (ESP) QEMU only --esp-profile=bare: a self-contained ELF linked at the SoC SRAM map — own startup, no ESP-IDF, no FreeRTOS, no external linker. A test vehicle: it runs under Espressif QEMU, not on a real chip (use ESP-IDF there). A program with managed strings and GetMem is about 11–14 KB of code plus a 64 KiB heap arena.
ESP-IDF component Full --emit-obj: a relocatable object exporting app_main, called by ESP-IDF's startup task. FreeRTOS, Wi-Fi and the vendor peripheral drivers stay available at link time. The flagship path: run on ESP32-S3, ESP32-C3 and classic ESP32 boards.
BSD (variants) Maybe planned Same static/syscall approach should port; not yet on the roadmap.
macOS Not planned No Mac workstation here to build and test on — open for another developer to pick up.
Windows Not planned No Windows workstation here to build and test on — open for another developer to pick up.

* Any Linux distribution, regardless of its userland: pxx needs no GNU/userland tooling to compile itself — it emits static, libc-free binaries directly. The surrounding make/bash/python scripts are convenience for the test harness and dev workflow, not a requirement to produce the compiler.

ESP32 — between CPU and OS

ESP32 straddles both axes: two CPU families (RISC-V: ESP32-C3; Xtensa: ESP32-S3 and classic ESP32 run on boards, ESP32-S2 compiled only) × two integration modes:

See ESP32 / microcontrollers and the CPU targets page for the per-chip breakdown.