Rust 1.99.1 发布:修四处回归,UEFI 目标恢复正常
来源:blog.rust-lang.org — 2026-10-15
📋 概述
Rust 团队发布点版本 1.99.1,内容全部是回归修复。第一处是缺少 wcslen 符号:LLVM 的 loop-idiom-wcslen 优化会引入对 wcslen 的调用,而部分目标的 libc 或运行环境里没有这个函数,UEFI 目标上任何使用 std 的项目都会链接失败——现在编译器内置库里加了一份回退实现。第二处是 x86_64 上 FFI 返回 bool 的错误编译:返回寄存器第 1 至 7 位可能未被指定,调用方会看到 0 或 1 之外的值,现在该返回类型重新标记为需要零扩展。第三处是 macOS 上 rust-lld 加载 libLLVM 失败,原因是不经 rustup 代理调用编译器时缺少库搜索路径,现在构建时为 libLLVM.dylib 所在目录加入了 rpath。
🔑 核心要点
- 第一处回归:LLVM 的 loop-idiom-wcslen 优化会引入 wcslen 调用,而某些目标没有这个函数
- 受害最重的是 UEFI 目标:预编译标准库里带入的调用让任何使用 std 的项目直接链接失败,现在编译器内置库提供回退实现
- 第二处是 ABI 缺陷:x86_64 上通过 FFI 返回 bool 时,返回寄存器第 1 至 7 位可能未指定,调用方会观察到 0 与 1 之外的值
- 修复方式是把该返回类型重新标记为零扩展,以符合 ABI 要求
- 第三处:macOS 上 rust-lld 可能加载 libLLVM.dylib 失败,尤其在不经 rustup 代理调用编译器时
- 修法是为 rust-lld 构建时加入指向 libLLVM.dylib 所在目录的 rpath;升级只需 rustup update stable
💡 金句
Rust 1.99.1 修复了此前版本引入的以下回归。
👍 0
👎 0
← 返回 Lobsters 首页