s390x-unknown-linux-musl
级别: 3
在 Linux 上运行的 IBM z/Architecture (s390x) 目标(包括 IBM Z 和 LinuxONE)。
目标维护者
- Ulrich Weigand, [email protected], @uweigand
要求
此目标需要
- 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
。