-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add platform support documentation for x86_64h-apple-darwin
- Loading branch information
Showing
3 changed files
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
57 changes: 57 additions & 0 deletions
57
src/doc/rustc/src/platform-support/x86_64h-apple-darwin.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# `x86_64h-apple-darwin` | ||
|
||
**Tier: 3** | ||
|
||
Target for macOS on late-generation `x86_64` Apple chips, usable as the | ||
`x86_64h` entry in universal binaries, and equivalent to LLVM's | ||
`x86_64h-apple-macosx*` targets. | ||
|
||
## Target maintainers | ||
|
||
- Thom Chiovoloni `[email protected]` <https://github.com/thomcc> | ||
|
||
## Requirements | ||
|
||
This target is an `x86_64` target that only supports Apple's late-gen | ||
(Haswell-compatible) Intel chips. It enables a set of target features available | ||
on these chips (AVX2 and similar), and MachO binaries built with this target may | ||
be used as the `x86_64h` entry in universal binaries ("fat" MachO binaries), and | ||
will fail to load on machines that do not support this. | ||
|
||
It should support the full standard library (`std` and `alloc` either with | ||
default or user-defined allocators). This target is probably most useful when | ||
targetted via cross-compilation (including from `x86_64-apple-darwin`), but if | ||
built manually, the host tools work. | ||
|
||
It is similar to `x86_64-apple-darwin` in nearly all respects, although the | ||
minimum supported OS version is slightly higher (it requires 10.8 rather than | ||
`x86_64-apple-darwin`'s 10.7). | ||
|
||
## Building the target | ||
|
||
Users on Apple targets can build this by adding it to the `target` list in | ||
`config.toml`, or with `-Zbuild-std`. | ||
|
||
## Building Rust programs | ||
|
||
Rust does not yet ship pre-compiled artifacts for this target. To compile for | ||
this target, you will either need to build Rust with the target enabled (see | ||
"Building the target" above), or build your own copy of `core` by using | ||
`build-std` or similar. | ||
|
||
## Testing | ||
|
||
Code built with this target can be run on the set of Intel macOS machines that | ||
support running `x86_64h` binaries (relatively recent Intel macs). The Rust test | ||
suite seems to work. | ||
|
||
## Cross-compilation toolchains and C code | ||
|
||
Cross-compilation to this target from Apple hosts should generally work without | ||
much configuration, so long as XCode and the CommandLineTools are installed. | ||
Targetting it from non-Apple hosts is difficult, but no moreso than targetting | ||
`x86_64-apple-darwin`. | ||
|
||
When compiling C code for this target, either the "`x86_64h-apple-macosx*`" LLVM | ||
targets should be used, or an argument like `-arch x86_64h` should be passed to | ||
the C compiler. |