RISC-V Is Sloooow
Source: Hacker News
Triaging
I went through the Fedora RISC‑V tracker entries, triaged most of them (currently 17 entries remain in NEW) and tried to handle whatever was possible.
Fedora packaging
My usual workflow involves fetching the sources of a Fedora package (fedpkg clone -a) and then building it with:
fedpkg mockbuild -r fedora-43-riscv64
After the build finishes, I check whether it succeeded; if not, I review the build logs to determine the cause.
So far, I have sent 86 pull requests for Fedora packages (link). These range from heavy packages like llvm15 to simple ones such as iyfct (a small game). Most of them have been merged and built for Fedora 43, and we continue to build them as we follow the f43-updates tag on the Fedora Koji.
Slowness
Package building highlights a major challenge: speed, or rather the lack of it. Current RISC‑V hardware is slow, leading to terrible build times. For example, the build times for the binutils-2.45.1-4.fc43 package on various architectures are:
| Architecture | Cores | Memory | Build time |
|---|---|---|---|
| aarch64 | 12 | 46 GB | 36 min |
| i686 | 8 | 29 GB | 25 min |
| ppc64le | 10 | 37 GB | 46 min |
| riscv64 | 8 | 16 GB | 143 min |
| s390x | 3 | 45 GB | 37 min |
| x86_64 | 8 | 29 GB | 29 min |
The current RISC‑V Fedora port builds with LTO disabled to reduce memory usage and build times. RISC‑V builders typically have 4 or 8 cores with 8, 16, or 32 GB of RAM (depending on the board), often comparable to low‑end Arm Cortex‑A55 cores.
Future hardware such as the UltraRISC UR‑DP1000 SoC on the Milk‑V Titan motherboard (up to 64 GB RAM) or SpacemiT K3‑based systems (up to 32 GB RAM) will improve the situation, but they are not a complete solution. To bring the binutils build time below one hour, we need more powerful, rack‑mountable servers with LTO enabled system‑wide.
I still use QEMU
Because of the long native build times, I rely on QEMU for faster builds. With 80 emulated cores, I can compile the llvm15 package in about 4 hours, compared to 10.5 hours on a Banana Pi BPI‑F3 builder (potentially faster on a P550).

LLVM packages make real use of both available cores and memory, and I am curious how they would perform on a system with 192 or 384 cores, such as an Ampere One‑based server.
Future plans
We plan to start building Fedora 44. If all goes well, we will use a single kernel image across all builders (currently they run a mix of kernel versions). LTO will remain disabled for now.
To address the speed issue, we have plans to acquire newer, faster builders and to assign heavier packages to them.