更新 Rust 的 Linux musl 目标

2023 年 5 月 9 日 · Wesley Wiser 代表 编译器团队

从 Rust 1.71(计划于 2023-07-13 发布稳定版)开始,各种 *-linux-musl 目标将 搭载 musl 1.2.3。 这些目标目前使用 musl 1.1.24。 虽然 musl 1.2.3 引入了一些新特性,最值得注意的是所有平台上的 64 位时间,但它与早期 musl 版本 ABI 兼容。

因此,此更改不太可能影响您。

更新的目标

以下目标将被更新

目标 支持级别
aarch64-unknown-linux-musl 第二级,带主机工具
x86_64-unknown-linux-musl 第二级,带主机工具
arm-unknown-linux-musleabi 第二级
arm-unknown-linux-musleabihf 第二级
armv5te-unknown-linux-musleabi 第二级
armv7-unknown-linux-musleabi 第二级
armv7-unknown-linux-musleabihf 第二级
i586-unknown-linux-musl 第二级
i686-unknown-linux-musl 第二级
mips-unknown-linux-musl 第二级
mips64-unknown-linux-muslabi64 第二级
mips64el-unknown-linux-muslabi64 第二级
mipsel-unknown-linux-musl 第二级
hexagon-unknown-linux-musl 第三级
mips64-openwrt-linux-musl 第三级
powerpc-unknown-linux-musl 第三级
powerpc64-unknown-linux-musl 第三级
powerpc64le-unknown-linux-musl 第三级
riscv32gc-unknown-linux-musl 第三级
riscv64gc-unknown-linux-musl 第三级
s390x-unknown-linux-musl 第三级
thumbv7neon-unknown-linux-musleabihf 第三级

注意:musl 1.2.3 不会提高任何目标所需的最低 Linux 内核版本。

64 位时间会破坏 32 位目标上的 libc crate 吗?

不会,musl 项目在进行此更改时谨慎地保持了 ABI 兼容性。 libc crate 将继续正常工作,无需修改。

未来的 libc crate 版本将 更新 与时间相关的结构和函数的定义,使其在所有 musl 目标上均为 64 位,但这受限于 musl 目标本身先被更新。 目前,尚无预计此更改何时发生,并且将谨慎行事,以帮助 Rust 生态系统成功过渡到更新的与时间相关的定义。