每周一龙:第 45 期
每周一都为大家报道 LoongArch 社区最前线的第一手新鲜资讯! 上周的进展主要有工具链和官方文档上新。 详情点进来看!
本期周报的实际发稿时间是周二凌晨,因为笔者的工作站周末坏掉了,搭建临时环境、处理工作等事务费了很多时间。 网页上显示的发稿时间仍然是 4 月 22 日: 这是 Docusaurus 早期为了修复一个时区 bug 而导致的又一个时区 bug。
如无特别说明,文中提及的日期、时间都为北京时间(UTC+8)。
先「马」再看
本栏目的内容具有一定延续性,将持续追踪报道 LoongArch 领域的重要或长期项目(坑)。
Linux
4 月 16 日 Miguel Ojeda 发现
linux-next 的 LLVM=1
构建任务失败了,原因又是做重构的人忘了改 LoongArch。David Hildenbrand
修复了问题。
工具链
binutils
Jinyang He 避免了
gas 在非代码段中产生不必要的 ADD
/SUB
重定位记录对。
Lulu Cai 对链接共享目标代码(-shared
)时使用绝对地址类重定位的错误给出了详细报错。
Lulu Cai 还修复了 BFD 链接器处理 TLS 符号时可能崩溃的问题。
GCC
Yang Yujie 实现了新《工具链约定》所描述的指令集版本写法
-march=la64v1.0
、-march=la64v1.1
。
杂闻播报
龙芯官方发布了 Assembly Language Programming Guide for the LoongArch™ Architecture(《LoongArch™ 架构汇编语言编程指南》)一书的首个正式版本 1.0。感谢 Revy(在群聊)与 jiegec(在投稿信箱)投递新闻线索!
本书不是 2023 年由人民邮电出版社在中国大陆出版的《汇编语言编程基础 基于 LoongArch》一书的英文版。
在 xen0n 看来,《基础》一书与本书虽然在内容上有相似之处——毕竟硬件是定死的,谁来介绍指令用法都只能这么介绍——但整体叙述上更偏科普。
《基础》一书对读者的要求是「具有计算机的使用经验,具有计算机基础知识,具有一门高级语言(C、Java、Python
等)的基本编程基础知识」;相比之下,本书则「assumes that you are an
experienced assembly language developer and that you are familiar with the
LoongArch
architecture」——「假定您是有经验的汇编语言开发者,并且熟悉 LoongArch
架构」。
根据 xen0n 的简单浏览,本书的英语表达仍有改进空间。虽不至影响非汉语母语者的阅读,一些简单失误(例如词性用错)也总有些扎眼。 考虑到优先以英语编撰此资料的目的显然是向国际社区播撒 LoongArch 而非中式英语的知识, 建议行有余力的同学考虑去 GitHub 帮官方做做校对。
龙芯官方也发布了
Toolchain Conventions of the LoongArch™ Architecture(《LoongArch™ 架构工具链约定》)的
1.1 版本。相比很久之前的 1.0 版本,主要的变化是终于新增了不与具体硬件型号相关,而仅反映架构版本的通用
-march
写法 -march=la64v1.0
、-march=la64v1.1
。
多次见报的老面孔,来自龙芯的工具链维护者 mengqinggang 响应了二月份 xen0n 发布的英雄帖:为 BLAKE3 哈希算法库增加 LoongArch 向量优化。 按照 BLAKE3 仓库中的介绍,这意味着不久后包括但不限于 Bazel、IPFS、LLVM、OpenZFS、Wasmer 等知名项目都可以在 LoongArch 上将这部分计算跑得更快了。
张贴栏
本栏目可供张贴公益性质的各种信息。