Debian 移植 RISC-V 64 架构已完成 90%,LLVM 成阻碍

移植 64 进展迅速,目前已经完成了近 90% 的软件包移植。

Debian 移植 RISC-V 64 架构已完成 90%,LLVM 成阻碍

上图展示的是目前 Debian 软件包移植到各个架构平台上的情况,其中 RISC-V 64(灰线)已经完成了近 90%,而这距离刚开始向该平台迁移才经过短短几个月。Debian开发者在博客中指出,因为与架构无关的软件包大约占 Debian 的一半,而且只要所依赖的编程语言解释器之类的软件存在,那么所有移植版本其实都可以使用与架构无关的软件包。这意味着一开始就有大约 90% 的软件包可用于 RISC-V 64 架构。

但是剩下的大约 10% 是怎么回事呢?答案是与 LLVM 和 Rust 相关的软件,RISC-V 目前仍然缺乏对 LLVM 编译器的支持。Rust 其实也基于 LLVM,并且没有基于 GCC 或其它工具链的 Rust 编译器,LLVM 是唯一的选择,所以归结起来就是LLVM 成了移植障碍。

目前 Debian 中有超过 500 个来自 Rust 生态的软件包(约占 4%),在 Rust 支持 RISC-V 64 之前,它们都无法构建和使用。

值得注意的是,Firefox 是依赖于 Rust 的主要高级包,但许多包也依赖于 librsvg2 渲染SVG 图像,此库已切换到Rust 上,而 Debian 当前还在使用 C 版本,这不是长久之计。

除了 Rust,其它软件包也在某种程度上直接依赖或使用 LLVM,这些都造成了移植 RISC-V 64 困难。不过开发者预计今年将会完成对LLVM for RISC-V 64 的支持。

开发者也介绍了接下来几个月的优化计划:

  • 改进对Debian RISC-V 64 可用硬件的支持,改进引导加载选项,改进 RISC-V 64 上 Debian 的命令。
  • 完成Debian RISC-V 的 wiki 页,其中包含了一个chroot 在 HiFive Unleashedboard 中运行而不会破坏初始工厂设置的说明。
  • 引导系统的完善,同时有设置 riscv64 Qemu VM并使用u-boot 和 opensbi引导的说明。此外还有增加debian-installer 支持,这是安装 Debian 系统的主要/规范方式。
  • 提供Qemu 和可用硬件的系统镜像支持。