x86_64h-apple-darwin

级别:3

适用于 macOS 上较新一代 x86_64 Apple 芯片的目标,可用作通用二进制文件中的 x86_64h 条目,并且等效于 LLVM 的 x86_64h-apple-macosx* 目标。

目标维护者

要求

此目标是一个 x86_64 目标,仅支持 Apple 的较新一代(兼容 Haswell)英特尔芯片。它启用这些芯片上可用的一组目标特性(AVX2 和类似特性),并且使用此目标构建的 MachO 二进制文件可以用作通用二进制文件(“胖” MachO 二进制文件)中的 x86_64h 条目,并且在不支持此特性的机器上将无法加载。

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

它在几乎所有方面都类似于 x86_64-apple-darwin

构建目标

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

构建 Rust 程序

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

测试

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

交叉编译工具链和 C 代码

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

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