Targets
PXX can emit native and cross-target output from the same compiler invocation.
Supported target names
| Target | Output | Typical run path |
|---|---|---|
x86_64 |
Native Linux ELF executable. | Run directly on x86-64 Linux. |
i386 |
32-bit Linux ELF executable. | Run directly on hosts with i386 support, or via qemu-i386. |
aarch64 |
64-bit ARM Linux ELF executable. | Run via qemu-aarch64 on non-ARM hosts. |
arm32 |
32-bit ARM Linux ELF executable. | Run via qemu-arm on non-ARM hosts. |
riscv32 |
ESP32-C3 bare-metal / ESP-IDF object, or 32-bit RISC-V Linux ELF. | See ESP32 / Microcontrollers; Linux binaries run via qemu-riscv32. |
xtensa |
ESP32-S2/S3 bare-metal / ESP-IDF object. | See ESP32 / Microcontrollers. |
Use --target=ARCH before the source file:
./pxx --target=aarch64 hello.pas hello.a64
For Linux cross-target executables, tools/run_target.sh chooses the right QEMU
user-mode runner when the host cannot execute the file directly.
tools/run_target.sh aarch64 ./hello.a64
For ESP32 targets, start with the board-specific examples under
examples/esp32/.