跳到主要内容

每周一龙:第 9 期

· 阅读需 5 分钟
WANG Xuerui
🐲龙门客栈打杂的

每周一都为大家报道 LoongArch 社区最前线的第一手新鲜资讯!

如无特别说明,文中提及的日期、时间都为北京时间(UTC+8)。

先「马」再看

本栏目的内容具有一定延续性,将持续追踪报道 LoongArch 领域的重要或长期项目(坑)。

Linux

7 月 13 日,hev 修复了 copy_user_fastclear_user_fast 各自异常处理路径中的一处下溢。

7 月 13 日,FreeFlyingSheep 贴出了 LS7A 集成网卡的驱动补丁草稿,请社区给点意见。

7 月 11 日,xen0n 将龙架构 CPU 空闲时执行的函数名字加入了 perf 工具的相关列表,以去除 perf 输出中的这部分噪声。

7 月 10 日,@specialpointcentral 贴出了龙芯二进制翻译扩展(LBT)的内核适配。 截至发稿时该补丁已迭代到第三版。

7 月 9 日,@donmor 尝试修复龙架构内核的命令行处理, 使其能正确支持以内建命令行来扩展或代替引导器所传的命令行。 截至发稿时该补丁已迭代到第四版。

工具链

LLVM

上周 7 月 11 日开始 hev 陆续交了一串代码生成优化:补丁一补丁二补丁三补丁四,主要都是告诉 LLVM 优化器更多相关信息以辅助其决策。

同样在 7 月 11 日,leecheechen 为 Clang 增加了 LSX/LASX 的内联汇编支持。

xen0n 也在这一天整理了龙架构指令定义文件让它清爽一点,也为接下来的重构作准备。

Rust

中国时间 7 月 13 日晚间,Rust 1.71.0 正式发布。 龙架构在该版本首次作为 Tier 2 with host tools带宿主工具的二级架构 获得支持。 已经可以通过 rustup 装上标准库,用来交叉编译了(当然,目前仍需自行准备 C/C++ 交叉工具链)。

$ rustup target list | grep loong
loongarch64-unknown-linux-gnu (installed)

在此之后,为了龙架构电脑用户也能方便使用官方安装渠道 rustup.rs,hev 提交了为其稳定分支 开启龙架构二进制构建的变更并请求发布新版,xen0n 整了个活让安装脚本可以识别新旧世界,为旧世界用户报个友好的错。

杂项

睽违两年,GNU GRUB 的 2.12-rc1 版本在 7 月 10 日正式被 tagged。 2.12 正式版预计将在一个月内发布,届时所有发行版都可以丢掉一坨补丁了。

社区整活

本栏目接受任何网友的投稿,只要内容与 LoongArch 有关,并可以为读者带来价值, 无论严肃贡献(整的大活)或是博君一笑都一概欢迎!

日前 Deepin 社区技术委员会(TC)在例会上讨论了合并龙架构支持的一些潜在问题等。 会议也讨论了 RISC-V 移植的类似问题。(感谢 Revy 的线索投递。)

xen0n 整了个 156 字节的新旧世界内核 ABI 检测工具 (看源码需要梯子,不过总共也没几行,复杂度主要在于 ELF 头需要手工构造)。

Try it yourself!

$ base64 -d > check-new-world <<EOF
f0VMRgIBAQAAAAAAAAAAAAIAAgEBAAAAeAAgAAAAAABAAAAAAAAAAAAAAAAA
AAAAQQAAAEAAOAABAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAACAAAAAAAAAA
IAAAAAAAJAAAAAAAAAAkAAAAAAAAAAAAAQAAAAAABCiAAwUAFQAGABUAByCA
AwsYggMAACsAC3iBAwAAKwAxen0n
EOF
$ chmod a+x check-new-world
$ ls -l check-new-world
-rwxr-xr-x 1 xenon xenon 156 Jul 17 14:30 check-new-world.tiny
$ ./check-new-world && echo "new world" || echo "old world"
new world

张贴栏

本栏目可供张贴公益性质的各种信息。