为龙芯笔记本交叉编译 Rust

为龙芯笔记本交叉编译 Rust

💡 原文中文,约6300字,阅读约需15分钟。
📝

内容提要

本文介绍了在龙芯笔记本上安装Rust的过程,包括交叉编译和安装常用软件。还提到了在宿主机上交叉编译的方法和所需时间。

🔎

延伸解读

为何需要交叉编译 Rust

龙芯 2F 芯片基于 mips3 架构,而 Rust 默认使用 mips64r2 架构编译,因此官方提供的 rust-bin 无法直接在龙芯笔记本上运行。虽然 Rust 对 MIPS 提供 Tier 3 支持,但必须通过交叉编译生成适配 mips3 的二进制包,才能正常使用 fd、rg 等依赖 Rust 的工具。

交叉编译的关键配置

使用 crossdev 交叉编译 Rust 时,需启用 system-bootstrap USE flag 并禁用 system-llvm,同时启用宿主机的 LLVM target。目标架构需从 mips64r2 改为 mips3,可通过 patch 或 env 文件实现。编译时 CFLAGS 必须还原为 crossdev 默认配置,避免 -march、-mtune 等选项导致问题。

本地编译与交叉编译的取舍

在龙芯笔记本上直接编译 Rust 软件速度极慢,例如 bat 耗时 2 小时 30 分,ripgrep 约 1 小时 10 分。虽然交叉编译可大幅缩短时间,但过程更复杂,部分软件需禁用 lto、调整 RUSTONIG 环境变量或使用 QEMU 模拟,适合愿意处理额外配置的用户。

安装软件时的注意事项

安装 lsd 时,CFLAGS 不能包含 -march=loongson2f,否则编译失败,改用 -march=mips3 可正常编译。生成的 lsd 二进制虽显示为 mips64r2 架构,但实际可运行。交叉编译 git-delta 和 bat 时,还需禁用 RUSTONIG_DYNAMIC_LIBONIG 或 lto 等选项。

❓

Q&A

如何在龙芯笔记本上安装Rust?

在龙芯笔记本上安装Gentoo后,使用crossdev交叉编译Rust编译器,并确保目标架构为mips3。

Rust对MIPS架构的支持情况如何?

Rust对MIPS提供Tier 3级别支持,但需要交叉编译以适应龙芯2F芯片的mips3架构。

交叉编译Rust时需要注意哪些配置?

需要启用system-bootstrap USE flag,禁用system-llvm,并确保CFLAGS还原为默认配置。

在龙芯笔记本上编译软件的速度如何?

由于龙芯CPU性能较弱,编译软件速度较慢,通常需要一小时以上。

如何解决交叉编译时的常见问题?

在交叉编译时,某些软件需要禁用lto或特定环境变量以成功编译,可能还需进行一些hack。

在宿主机上交叉编译Rust软件时需要注意什么?

需要处理一些问题,可能需要进行hack,且直接编译可能会遇到未解决的Bug。

🏷️

标签

➡️

继续阅读