每周一龙:第 3 期
每周一都为大家报道 LoongArch 社区最前线的第一手新鲜资讯!
如无特别说明,文中提及的日期、时间都为北京时间(UTC+8)。
要闻速递
5 月 24 日下午,Rust 语言的 loongarch64-unknown-linux-gnu
目标成功晋升到
Tier 2 with Host Tools(带宿主工具的二级架构1)。
该支持已从 5 月 25 日开始出现于 Rust 1.71.0 Nightly 版本,并将在 7 月 13 日稳定。
5 月 26 日,mengqinggang 在 binutils 邮件列表贴出了 LoongArch linker relaxation 优化的补丁。
Linker relaxation 暂无广泛采用的中文翻译,拙译「链接器弛豫」或「链接器松弛」: 简单地说,该优化是链接器根据编译器、汇编器生成代码时提供的额外信息,将可缩短的较长序列缩短, 以达到减少指令数,且不用关心 code model 等代码生成细节的好处; 这类似材料科学中的「应力弛豫/松弛」现象,工程上乃至在家揉面时,「释放应力」也是必须的操作步骤。 在 Linker relaxation 中,被释放的「应力」就是为了实现一定语义,所可能用到的最长指令序列啦。
更多信息可参考 MaskRay 的专题文章:The dark side of RISC-V linker relaxation 与 RISC-V linker relaxation in lld。 (从第一篇文章的标题可见,这个优化对基础组件开发者来说,不见得完全是好事😼。)
该优化能带来性能好处,但也将较为深刻地影响 LoongArch 目标代码的重定位记录用法、编译器代码生成,乃至编译器命令行使用方式2等多个方面; 因此建议开发者同学们密切关注。
先「马」再看
本栏目的内容具有一定延续性,将持续追踪报道 LoongArch 领域的重要或长期项目(坑)。
发行版们
(上期没有注意到)5 月 20 日,Debian 上游新建了 pool-loong64
文件夹。
ClangBuiltLinux
上游的跟踪 issue 也会及时反映最新动态。
上周暂无进展(推进该项目的同学都在忙别的)。
Linux
5 月 22 日,Yinbo Zhu 贴出了龙芯 2 号系列的电源管理支持补丁。
5 月 23 日,Tiezhu Yang 尝试重构 perf
工具的系统调用表。
5 月 25 日,Binbin Zhou 贴出了龙芯 RTC 控制器驱动的第 4 版补丁。
5 月 29 日,Jianmin Lv 贴出了龙芯中断控制器驱动的一些行为修复的第 2 版补丁。
LLVM
本周合并了以下的功能改进等:
- tangyouling、Ami-zhang 为 compiler-rt fuzzer 组件适配了非 4KiB 页的系统。当然,也包括龙架构。
出现了以下的新动向:
- xen0n 终于找到了足够时间调试并修复了 lld/ELF LoongArch port 的 TLS 处理逻辑。该补丁终于称得上「完成」了。
Rust
添加龙架构裸机 targets 的 MCP 正在公示期内。目前没有反对意见,预计本周将获得通过。
龙架构 Rust 维护者们也在着手为 rustup 添加支持了:
截至发稿时,这些 PRs 都已被合并。 预计到 Rust 1.71.0 正式发布时,龙架构 Rust 开发者将得以享受不逊其他架构的同等开发体验。
社区整活:儿:
本栏目接受任何网友的投稿,只要内容与 LoongArch 有关,并可以为读者带来价值, 无论严肃贡献(整的大活:儿:)或是博君一笑都一概欢迎!
本周没有投稿。
张贴栏
本栏目目前可供张贴公益性质的各种信息。
- 杜比欢迎同学们去 LA UOSC 的 Debian port 页面看看。
- 本周报持续接受网友投稿。欢迎来上游坐坐!