周五合并到 Linux 6.14 内核的是这个周期的 Kbuild 功能变化。这些内核构建更改最值得注意的是 gendwarfksyms 工具的引入,该工具用作 Linux 内核中正在进行的 Rust 编程语言推送的一部分。
gendwarfksyms 工具将用于根据 DWARF 信息计算导出符号的 CRC。
Sami Tolvanen 在构建这个 “gendwarfksyms” 工具的补丁系列中解释了:
“主要动机是对 Rust 的 Modversions 支持,这对于像 Android 这样即将发布 Rust 内核模块的发行版非常重要。根据 Luis 的要求,v2 从系列中删除了特定于 Rust 的部分,而是将该功能添加为整个内核的一个选项,以便更轻松地评估这种方法的好处,并获得更好的测试覆盖率。Matt 正在一个单独的补丁集中解决 Rust modversion_info 兼容性问题,该补丁集依赖于这个系列,并且实际上允许使用 Rust 启用 Modversion。
简短的背景:与 C 语言不同,Rust 源代码没有关于最终 ABI 的足够信息,因为编译器在调整结构布局方面有相当大的自由度,例如,这使得使用像 genksyms 这样的源代码解析器是不可能的。根据之前的反馈,本系列使用 DWARF 调试信息来计算版本。DWARF 是一种成熟且相对稳定的格式,它包括所有必要的 ABI 详细信息,为 Rust 符号版本控制添加 CONFIG_DEBUG_INFO 依赖项似乎是一个合理的权衡,因为大多数发行版已经支持它。
这个 gendwarfksyms 工具和 Rust 的 CONFIG_MODVERSIONS 启用以及其他一些 Kbuild 更新现在已经通过此拉取请求合并了。
随着本周早些时候为 Linux 6.14 合并了 Rust 代码,内核开发人员几乎能够用 Rust 编写真正的驱动程序。
转自 gendwarfksyms Tool Added To Linux 6.14 To Help With Rust Push – Phoronix