s390x-unknown-linux-musl

级别: 3

在 Linux 上运行的 IBM z/Architecture (s390x) 目标(包括 IBM Z 和 LinuxONE)。

目标维护者

要求

此目标需要

  • Linux 内核版本 3.2 或更高版本
  • musl 1.2.3 或更高版本

目标生成的代码使用 z/Architecture ISA,假设最低体系结构级别为 z10(z/Architecture 操作原理的第八版),并符合 s390x ELF ABI。

参考资料

构建目标

由于它是第 3 级,Rust 尚未为此目标发布预编译的工件。

因此,您可以通过将其添加到 config.toml 中的目标列表来构建支持该目标的 Rust,下面显示了一个示例配置。

[build]
target = ["s390x-unknown-linux-musl"]

构建 Rust 程序

Rust 尚未为此目标发布预编译的工件。要为此目标进行编译,您首先需要构建启用该目标的 Rust(请参阅上面的“构建目标”)。

测试

测试和运行目标没有特殊要求。有关在主机上测试交叉构建,请参阅下面的“交叉编译工具链和 C 代码”部分。

交叉编译工具链和 C 代码

使用目标构建的 Rust 代码与使用 s390x-unknown-linux-musl 目标三元组(通过本机编译或交叉编译)使用 GCC 或 Clang 编译的 C 代码兼容。

根据您的系统,您可能需要配置目标以使用 GNU GCC 链接器。要使用它,请将以下内容添加到您的 .cargo/config.toml

[target.s390x-unknown-linux-musl]
linker = "s390x-linux-musl-gcc"

如果您的 s390x-linux-musl-* 工具链不在您的 PATH 中,您可能需要配置其他设置

[target.s390x-unknown-linux-musl]
# Adjust the paths to point at your toolchain
cc = "/TOOLCHAIN_PATH/bin/s390x-linux-musl-gcc"
cxx = "/TOOLCHAIN_PATH/bin/s390x-linux-musl-g++"
ar = "/TOOLCHAIN_PATH/bin/s390x-linux-musl-ar"
ranlib = "/TOOLCHAIN_PATH/bin/s390x-linux-musl-ranlib"
linker = "/TOOLCHAIN_PATH/bin/s390x-linux-musl-gcc"

要在非 s390x 主机上测试交叉编译的二进制文件,您可以使用 qemu