皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 7.0 引入了多项改进,以应对即将发布的 Rust 语言更新,并进一步提升内核构建的可重现性

Linux 7.0 引入了多项改进,以应对即将发布的 Rust 语言更新,并进一步提升内核构建的可重现性

昨日合并至主线的 Linux 7.0 内核中,包含了更多与 Rust 相关的更新,旨在为即将发布的 Rust 新版本做准备,同时提升在启用 Rust 代码时内核构建的可重现性(build reproducibility)。

Miguel Ojeda 提交了最新的 Rust 工具链与基础设施更新,这些更改已由 Linus Torvalds 合并。此次更新包括为即将发布的 ‌Rust 1.95‌ 做准备,以改善构建的可重现性;此外,还有一项面向 ‌Rust 1.96‌ 的前瞻性变更。同时还有其他一些修复和改动:

工具链与基础设施:

  • 重新映射路径,避免从即将发布的 Rust 1.95.0 开始使用绝对路径。这有助于提高构建的可重现性,防止泄露确切的构建路径,并避免同一路径以两种形式出现。
    此次方法还特别避免了对调试信息进行重映射,以防破坏依赖这些路径访问源文件的工具——此前曾尝试重映射但因导致问题而不得不回退。

  • 允许在即将发布的 Rust 1.96.0 中启用 'unused_features' lint(代码检查规则)。尽管该 lint 出发点良好,但我们从中获益有限。

  • 直接将依赖信息输出到 $(depfile),不再生成临时的 .d 文件(这是一种过时的做法)。

kernel crate(内核模块):

  • str 模块:在未启用 CONFIG_BLOCK 配置时修复警告,方法是将 NullTerminatedFormatter 设为公开(public)。

  • cpufreq 模块:抑制 Clippy 报告的误报警告。

pin-init crate:

  • 移除 #[disable_initialized_field_access] 属性,因其存在逻辑不安全(unsound)问题。这意味着暂时移除了对字段未对齐结构体(通过 repr(packed) 属性定义)的支持。

    同时记录了一个关键事实:字段访问器(field accessors)在保证类型安全方面具有重要作用(即它们是确保类型安全所必需的)。

  • 将“被遮蔽的返回令牌”(shadowed return token)替换为需通过 unsafe 创建的令牌,以确保在面对上游 Rust 即将引入的 ‌Type Alias Impl Trait (TAIT)‌ 和新一代 trait 求解器时,代码仍能保持类型安全(remain sound)。

上述代码已合并,将随今日稍后发布的 Linux 7.0-rc4 一并推出。

转自 Linux 7.0 Lands Improvements To Deal With Upcoming Rust Changes, Build Reproducibility – Phoronix

已有 0 条评论
已有 0 条评论
-->