x86_64h-apple-darwin

层级:3

面向最新一代 x86_64 苹果芯片的 macOS 目标,可用作通用二进制文件中的 x86_64h 条目,等效于 LLVM 的 x86_64h-apple-macosx* 目标。

目标维护者

要求

此目标是一个 x86_64 目标,只支持苹果的最新一代(与 Haswell 兼容)英特尔芯片。它启用了一组在这些芯片上可用的目标特性(AVX2 及类似特性),并且使用此目标构建的 MachO 二进制文件可以作为通用二进制文件(“胖”MachO 二进制文件)中的 x86_64h 条目,并且在不支持此特性的机器上加载时会失败。

它应该支持完整的标准库(stdalloc,无论是使用默认分配器还是用户定义的分配器)。此目标在通过交叉编译(包括从 x86_64-apple-darwin)进行目标定位时可能最有用,但如果手动构建,则主机工具可以正常工作。

它在几乎所有方面都类似于 x86_64-apple-darwin,尽管支持的最低操作系统版本略高(它需要 10.8,而不是 x86_64-apple-darwin 的 10.7)。

构建目标

苹果目标上的用户可以通过将其添加到 config.toml 中的 target 列表中,或使用 -Zbuild-std 来构建它。

构建 Rust 程序

Rust 尚未为此目标提供预编译的工件。要为此目标编译,您需要启用目标构建 Rust(请参阅上面的“构建目标”),或者使用 build-std 或类似方法构建自己的 core 副本。

测试

使用此目标构建的代码可以在支持运行 x86_64h 二进制文件的英特尔 macOS 机器集上运行(相对较新的英特尔 Mac)。Rust 测试套件似乎可以正常工作。

交叉编译工具链和 C 代码

从苹果主机到此目标的交叉编译通常应该在没有太多配置的情况下工作,只要安装了 XCode 和 CommandLineTools。从非苹果主机进行目标定位很困难,但并不比目标定位 x86_64-apple-darwin 更困难。

为该目标编译 C 代码时,应使用“x86_64h-apple-macosx*” LLVM 目标,或者将类似 -arch x86_64h 的参数传递给 C 编译器。