跳到主要内容

每周两龙:第 6 期

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

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

因为笔者上周🐑了,本期改为周二更新前两周的内容,预计下期恢复周一更新。

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

先「马」再看

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

ClangBuiltLinux

上游的跟踪 issue 也会及时反映最新动态。 鉴于该倡议的龙架构部分主体工作已经完成,后续相关工作将在 Linux 一节合并报道。

感谢 @heiher 的参与,目前打过补丁的 LLVM/Clang 已经可以构建基本的 LoongArch Linux 镜像了。 截至发稿时相关内核补丁已被接受, 将进入 v6.5-rc1; LLVM 的变更情况见 LLVM 一节。 上游社区火速跟进了相关的自动化引导测试支持, 发现的小坑将在本周快速填平,后续的 LLVM/Clang 兼容性将由该设施自动化保证。

目前还缺模块和可重定位(CONFIG_RELOCATABLE)支持,这部分预计在后续的开发周期也会慢慢解决掉。

Linux

目前 Linux v6.5 的合并窗口已经开启。本周期的龙架构相关重大变更有:

详情请移步龙架构的上游集成分支

6 月 20 日,Youling Tang 基于 4 月份的 libelf 工作, 开始将 ORC unwinder 移植到龙架构:发出了一版初稿补丁。 (感谢 @xry111 的新闻线索。)

工具链

binutils

6 月 25 日,mengqinggang 向 GNU binutils 邮件列表提交了 LSX/LASX 支持, 又添加了 R_LARCH_64_PCREL 支持。

LLVM

两周间合并了以下的功能改进等:

  • SixWeining 允许了在任何场景下使用浮点、向量等扩展指令,以便裸机软件、内核等具备足够控制力的程序在本身不使用这些指令的前提下,仍然能够自行管理相应硬件资源。
    这是为啥

    龙架构下,管理扩展资源需要用到扩展指令,但先前如果告知 LLVM 不使用这些指令,那么只要尝试使用都会报错。 即便程序员知道自己在做什么、哪些地方的手写汇编用到扩展指令也是安全的,也没法搞。

  • xen0n 为 llvm-objcopy 添加了龙架构支持。
  • xen0n 使 Clang 处理 -m*-float 参数时也不忘检查 -mabi-mfpu 选项。

出现了以下的新动向:

  • Ami-zhang 接近完成了 MSan 的龙架构移植:D140528D152692,不日将合并。

社区整活

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

loongarch-opcodes 项目整理完成了所有 LSX、LASX 指令编码信息。有需要的同学可以参考起来了。 在龙芯公布《龙芯架构参考手册》卷二之前,社区同学也可以根据 QEMU 源码,推进指令文档的编撰了。

近日 Gentoo 社区一位国际友人拿到了 7A2000 板子,龙架构的朋友逐渐增多 😎

张贴栏

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