CPU architecture support
The solnix OS is a supported distribution of illumos aimed at four CPU
targets — x86_64, aarch64, RISC-V, and SPARC — across both
server and desktop use, and optimized for virtualized hosting on the major
cloud platforms (AWS/EC2, Microsoft Azure, Google Cloud, and the rest). That
is the design target; this page states current support honestly — the table
reflects reality, not aspiration. Only x86_64 is a working primary target; the
others are at various stages of bring-up, and desktop is a future core-team
goal. This page gives the status of each CPU target, what “bring-up” means for
it, and how cross-compilation fits in.
The four targets
| Arch | Platform tuple | Status | Cache | Phase |
|---|---|---|---|---|
| x86_64 (amd64) | x86_64-solaris | Primary target | live | 1 |
| aarch64 | aarch64-solaris | Out-of-tree illumos port exists; integrate it | live | 3 |
| SPARC v9 (sun4v) | sparcv9-solaris | Bit-rotting in-gate; revive with fork patches | live | 4 |
| RISC-V | riscv64-solaris | Kernel boots to a shell (try it in your browser); no builder/cache yet | planned | 5 |
amd64 first, always. No phase starts before the previous phase’s gate is green. This is the same honesty stance the binary cache takes: platforms without a builder yet appear as “no objects yet,” never as coverage that does not exist.
What each status means
x86_64 (amd64) — primary
The reference platform. illumos-gate builds natively on amd64, the seed toolchain is extracted here, and this is where the Nix-native stdenv comes up first. Everything in the roadmap is validated on amd64 before any other arch starts. If a solnix feature works anywhere, it works here first.
aarch64 — integrate the existing port
There is an out-of-tree illumos aarch64 effort. The work is not “port illumos to ARM from scratch” but “integrate that port and bring a Nix-native stdenv up on it.” The cache line is live because it can serve Linux cross-build artifacts today (see cross-compilation below); illumos-native aarch64 objects light up when an aarch64 builder is running.
SPARC v9 (sun4v) — revive
SPARC support exists in illumos-gate but has bit-rotted from disuse. Bringing it back means fork patches to get the gate building again for sun4v, then the usual seed-and-bootstrap path. This is later in the roadmap (Phase 4) precisely because it is revival work, not integration.
RISC-V — planned
No illumos RISC-V port exists yet in a usable state; this is the furthest-out target (Phase 5). Listed so the intent is clear, marked planned so no one mistakes it for working.
Cross-compilation notes
There are two distinct build directions and they matter for how the cache is populated per arch:
- Linux → target (cross). nixpkgs can cross-compile many packages from a Linux builder to a Solaris target tuple. This is what lets the cache line read live for arches whose native builder is not yet running: the cross-built artifacts are real, signed, and installable. It does not cover the load-bearing base or anything that needs a native illumos build — the gate does not cross-build from Linux (see How solnix is built).
- Native (illumos host). The seed toolchain and the load-bearing
pkgs.solnix.*world must be built natively on an illumos host of that arch. This is the gated part: an arch is only fully supported once a native builder for it exists.
So “Cache: live” for a non-primary arch means “cross-build artifacts are available”; full native coverage arrives with a native builder, and the cache never advertises coverage it does not have.
Further reading
- How solnix is built — how the platform tuple, seed toolchain, and native stdenv fit together.
- The binary cache — per-arch coverage and how artifacts are distributed.
- Contributing — every arch needs a builder; this is the most direct way to help.