Skip to content

Platforms & OS

platforms (40)

os description environments object_format common_vendors notes
linux Linux-based systems (kernel 2.6+) gnu, gnueabi, gnueabihf, gnuabi64, gnux32, musl, musleabi, musleabihf, muslabi64, android, androideabi elf unknown, pc, linux Most common server/desktop/embedded target. gnu = glibc, musl = musl-libc.
windows Microsoft Windows (Win32/Win64 API) msvc, gnu, gnullvm coff/pe pc msvc = Microsoft Visual C++ ABI/CRT, gnu = MinGW/GCC ABI with MSVCRT, gnullvm = MinGW with LLVM tools.
darwin Apple macOS / Mac OS X `` macho apple Usually specified as <arch>-apple-darwin or <arch>-apple-macosx<version>.
ios Apple iOS `,simulator,macabi` macho apple macabi = Mac Catalyst (iOS apps on macOS). Simulator targets use x86_64 or arm64.
tvos Apple tvOS `,simulator` macho apple Apple TV platform.
watchos Apple watchOS `,simulator` macho apple Apple Watch platform. Uses aarch64_32 (ILP32) for device.
visionos Apple visionOS (xrOS) `,simulator` macho apple Apple Vision Pro platform.
driverkit Apple DriverKit (kernel extension replacement) `` macho apple System extension framework for macOS/iOS.
freebsd FreeBSD `` elf unknown Version may be appended, e.g. freebsd13.
netbsd NetBSD `` elf unknown Portable BSD variant.
openbsd OpenBSD `` elf unknown Security-focused BSD variant.
dragonfly DragonFly BSD `` elf unknown Fork of FreeBSD focused on SMP performance.
solaris Oracle Solaris / illumos `` elf unknown, sun, pc Often specified as solaris2.11 or solaris2.10.
illumos illumos (OpenSolaris derivatives) `` elf unknown Community fork of OpenSolaris.
android Android (Linux-based, Bionic libc) `,androideabi` elf linux Uses Bionic libc, not glibc. API level is often appended (e.g. android21). Often represented as linux-android in triple.
fuchsia Google Fuchsia (Zircon microkernel) `` elf unknown Capability-based OS by Google.
wasi WebAssembly System Interface `,pthread` wasm wasi, unknown Standard POSIX-like system interface for WebAssembly. wasip1/wasip2 = preview versions.
emscripten Emscripten (WebAssembly in browser) `` wasm unknown Compiles C/C++ to WebAssembly for browser execution.
wasip1 WASI Preview 1 `` wasm unknown First stable WASI snapshot.
wasip2 WASI Preview 2 (Component Model) `` wasm unknown WASI with Component Model support.
none Bare metal / no OS (freestanding) eabi, eabihf, elf, `` elf unknown, none No operating system. Used for embedded, firmware, bootloaders, kernels. eabihf = hard float ABI.
elf Generic ELF target (bare metal alias) `` elf unknown, none Often used interchangeably with 'none' for bare metal targets.
cuda NVIDIA CUDA (GPU compute) `` ptx nvidia Used with nvptx/nvptx64 architecture.
amdhsa AMD HSA runtime (GPU compute, ROCm) `` elf amd AMD GPU compute via ROCm/HIP.
amdpal AMD PAL (Platform Abstraction Layer) `` elf amd AMD GPU graphics driver pipeline.
mesa3d Mesa 3D (open-source GPU drivers) `` elf amd Open-source GPU driver stack.
aix IBM AIX `` xcoff ibm IBM's proprietary Unix on POWER systems.
zos IBM z/OS `` goff ibm IBM mainframe operating system.
haiku Haiku OS (BeOS successor) `` elf unknown Open-source continuation of BeOS.
hurd GNU Hurd gnu elf unknown GNU microkernel OS. Rare in practice.
rtems RTEMS (Real-Time Executive for Multiprocessor Systems) `` elf unknown Open-source RTOS for embedded systems, aerospace.
nuttx Apache NuttX RTOS eabi, eabihf, `` elf unknown POSIX-compliant RTOS for deeply embedded systems.
espidf Espressif IoT Development Framework `` elf esp, espressif Framework for ESP32/ESP32-S2/ESP32-S3 chips.
redox Redox OS (Unix-like OS in Rust) `` elf unknown Microkernel OS written in Rust.
hermit HermitCore unikernel `` elf unknown Lightweight unikernel for HPC.
uefi UEFI firmware applications `` coff/pe unknown Unified Extensible Firmware Interface applications and drivers.
cygwin Cygwin (POSIX on Windows) `` coff/pe pc POSIX-compatible environment on Windows. Distinct from MinGW.
windows-msys MSYS2 (MinGW-w64 toolchains on Windows) `` coff/pe pc Package management and build system for Windows, provides MinGW-w64 and UCRT variants.
vulkan Vulkan SPIR-V shaders `` spirv unknown Vulkan GPU shader targets.
opencl OpenCL compute kernels `` spirv unknown OpenCL GPU/accelerator compute targets.

environments (20)

gnu

  • description: GNU C Library (glibc) with GCC-compatible ABI
  • notes: Default Linux environment on most distributions.

gnueabi

  • description: GNU EABI (soft float, ARM)
  • notes: ARM embedded ABI with software floating point.

gnueabihf

  • description: GNU EABI with hardware float (ARM)
  • notes: ARM embedded ABI with hardware FPU (VFPv3+).

gnuabi64

  • description: GNU ABI 64-bit (MIPS N64 ABI)
  • notes: Used for MIPS64 with N64 ABI.

gnux32

  • description: GNU x32 ABI (x86_64 with 32-bit pointers)
  • notes: ILP32 on x86_64 for reduced memory usage.

gnullvm

  • description: GNU/MinGW with LLVM toolchain
  • notes: MinGW environment using LLVM instead of GCC.

musl

  • description: musl libc (static-friendly, lightweight)
  • notes: Alternative libc. Commonly used for static linking.

musleabi

  • description: musl with EABI (ARM soft float)
  • notes: ARM musl with software floating point.

musleabihf

  • description: musl with EABI hard float (ARM)
  • notes: ARM musl with hardware floating point.

muslabi64

  • description: musl 64-bit ABI (MIPS N64)
  • notes: MIPS64 musl with N64 ABI.

msvc

  • description: Microsoft Visual C++ runtime and ABI
  • notes: Windows default. Uses MSVC CRT (ucrt/msvcrt). PE/COFF object format.

android

  • description: Android Bionic libc
  • notes: Android NDK environment. API level appended (e.g. android21).

androideabi

  • description: Android EABI (32-bit ARM)
  • notes: Android NDK for 32-bit ARM targets.

eabi

  • description: Embedded ABI (bare metal, soft float)
  • notes: ARM bare metal with software floating point.

eabihf

  • description: Embedded ABI with hardware float (bare metal)
  • notes: ARM bare metal with hardware FPU.

macabi

  • description: Mac Catalyst (iOS apps on macOS)
  • notes: Allows running iOS apps natively on macOS.

simulator

  • description: Apple platform simulator
  • notes: Used for iOS/tvOS/watchOS simulator builds.

ohos

  • description: OpenHarmony OS
  • notes: Huawei's open-source OS environment.

uclibc

  • description: uClibc (micro C library)
  • notes: Lightweight C library for embedded Linux.

newlib

  • description: Newlib C library
  • notes: C library for embedded systems (Red Hat).