DEV Community

Ali Tariq
Ali Tariq

Posted on • Originally published at alitariq4589.github.io

I'm building prebuilt RISC-V64 binaries so you don't have to compile GCC/PyTorch/Kubernetes from source - feedback wanted

The problem

RISC-V hardware is finally real and buy-able, but the software story is still rough. Official releases of most major tools skip riscv64 entirely. Distro package managers ship ancient versions, if they ship anything at all. If you want a recent GCC, PyTorch, or a working Kubernetes control plane on a RISC-V board, you're usually looking at a multi-hour build from source, and doing it again next time you need an update.

What I built

RISC-V Software Archive: a set of GitHub Actions pipelines that build popular tools natively on real RISC-V hardware (via RISE Runners, not emulation/QEMU) and publish ready-to-use binaries automatically.

Currently in the archive (24 packages and growing):

  • Compilers & Toolchains: GCC, Binutils
  • Runtimes: Node.js, OpenJDK, Python, Ruby
  • ML Frameworks: PyTorch, Transformers, ONNX Runtime
  • Infrastructure: Kubernetes, Calico, containerd, etcd, Helm
  • Build Tools: CMake, Ninja, Bazelisk
  • Everything else: Coreutils, strace, SQLite, Zstd, Protobuf, gRPC, fzf

Multi-arch Docker images (amd64 + riscv64) are published to GHCR alongside the tarballs, so Kubernetes components (kube-apiserver, kube-controller-manager, etc.) work out of the box in a mixed-arch cluster.

How it works

Each package has its own build workflow. A central release job runs monthly, pulls the latest successful artifact from every package's workflow, and bundles them into one GitHub Release. A GitHub Pages site regenerates automatically after each release, so the package browser always reflects what's actually been built and tested (including build logs per version).

Individual build workflows (build-gcc.yml, build-calico.yaml, ...)
        │  runs natively on RISC-V hardware
        ▼
Central Release workflow (monthly)
        │  bundles latest successful artifacts
        ▼
GitHub Release ──────► GitHub Pages site (auto-regenerated)
Enter fullscreen mode Exit fullscreen mode

Adding a new package is 3 files: an entry in packages.json, a build workflow, and a docs page. Contributions welcome.

What I'd like from you

This is genuinely shaped by what people ask for next, so:

What's missing that you'd actually use? Specific packages/versions, not just "more stuff."
What's the RISC-V board/setup you're running? Helps me prioritize what to test against.
Anything broken? If you try a binary and it doesn't run on your hardware, I want to know.
Repo: https://github.com/Cloud-V-10xE/RISC-V-software
Browse packages: https://cloud-v-10xe.github.io/RISC-V-software/
Join our community: https://discord.gg/H7EGrzV93p

Thanks for reading. Curious what the community thinks.

Top comments (0)