Document x86_64-fortanix-unknown-sgx platform
This commit is contained in:
parent
8abe7cbf35
commit
0303a31c8a
3 changed files with 74 additions and 1 deletions
|
|
@ -32,6 +32,7 @@
|
|||
- [*-unknown-openbsd](platform-support/openbsd.md)
|
||||
- [\*-unknown-uefi](platform-support/unknown-uefi.md)
|
||||
- [wasm64-unknown-unknown](platform-support/wasm64-unknown-unknown.md)
|
||||
- [x86_64-fortanix-unknown-sgx](platform-support/x86_64-fortanix-unknown-sgx.md)
|
||||
- [x86_64-unknown-none](platform-support/x86_64-unknown-none.md)
|
||||
- [Targets](targets/index.md)
|
||||
- [Built-in Targets](targets/built-in.md)
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ target | std | notes
|
|||
`wasm32-unknown-unknown` | ✓ | WebAssembly
|
||||
`wasm32-wasi` | ✓ | WebAssembly with WASI
|
||||
`x86_64-apple-ios` | ✓ | 64-bit x86 iOS
|
||||
`x86_64-fortanix-unknown-sgx` | ✓ | [Fortanix ABI] for 64-bit Intel SGX
|
||||
[`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX
|
||||
`x86_64-fuchsia` | ✓ | 64-bit Fuchsia
|
||||
`x86_64-linux-android` | ✓ | 64-bit x86 Android
|
||||
`x86_64-pc-solaris` | ✓ | 64-bit Solaris 10/11, illumos
|
||||
|
|
|
|||
|
|
@ -0,0 +1,72 @@
|
|||
# `x86_64-fortanix-unknown-sgx`
|
||||
|
||||
**Tier: 2**
|
||||
|
||||
Secure enclaves using [Intel Software Guard Extensions
|
||||
(SGX)](https://www.intel.com/content/www/us/en/developer/tools/software-guard-extensions/overview.html)
|
||||
based on the ABI defined by Fortanix for the [Enclave Development Platform
|
||||
(EDP)](https://edp.fortanix.com/).
|
||||
|
||||
## Target maintainers
|
||||
|
||||
The [EDP team](mailto:edp.maintainers@fortanix.com) at Fortanix.
|
||||
|
||||
- Jethro Beekman [@jethrogb](https://github.com/jethrogb)
|
||||
- Raoul Strackx [@raoulstrackx](https://github.com/raoulstrackx)
|
||||
- Mohsen Zohrevandi [@mzohreva](https://github.com/mzohreva)
|
||||
|
||||
## Requirements
|
||||
|
||||
The target supports `std` with a default allocator. Only cross compilation is
|
||||
supported.
|
||||
|
||||
Binaries support all CPUs that include Intel SGX. Only 64-bit mode is supported.
|
||||
|
||||
Not all `std` features are supported, see [Using Rust's
|
||||
std](https://edp.fortanix.com/docs/concepts/rust-std/) for details.
|
||||
|
||||
The `extern "C"` calling convention is the System V AMD64 ABI.
|
||||
|
||||
The supported ABI is the
|
||||
[fortanix-sgx-abi](https://edp.fortanix.com/docs/api/fortanix_sgx_abi/index.html).
|
||||
|
||||
The compiler output is ELF, but the native format for the platform is the SGX
|
||||
stream (SGXS) format. A converter like
|
||||
[ftxsgx-elf2sgxs](https://crates.io/crates/fortanix-sgx-tools) is needed.
|
||||
|
||||
Programs in SGXS format adhering to the Fortanix SGX ABI can be run with any
|
||||
compatible runner, such as
|
||||
[ftxsgx-runner](https://crates.io/crates/fortanix-sgx-tools).
|
||||
|
||||
See the [EDP installation
|
||||
guide](https://edp.fortanix.com/docs/installation/guide/) for recommendations
|
||||
on how to setup a development and runtime environment.
|
||||
|
||||
## Building the target
|
||||
|
||||
As a tier 2 target, the target is built by the Rust project.
|
||||
|
||||
You can configure rustbuild like so:
|
||||
|
||||
```toml
|
||||
[build]
|
||||
build-stage = 1
|
||||
target = ["x86_64-fortanix-unknown-sgx"]
|
||||
```
|
||||
|
||||
## Building Rust programs
|
||||
|
||||
Standard build flows using `cargo` or `rustc` should work.
|
||||
|
||||
## Testing
|
||||
|
||||
The Rust test suite as well as custom unit and integration tests will run on
|
||||
hardware that has Intel SGX enabled if a cargo runner is configured correctly,
|
||||
see the requirements section.
|
||||
|
||||
## Cross-compilation toolchains and C code
|
||||
|
||||
C code is not generally supported, as there is no libc. C code compiled for
|
||||
x86-64 in freestanding mode using the System V AMD64 ABI may work. The
|
||||
[rs-libc](https://crates.io/crates/rs-libc) crate contains a subset of libc
|
||||
that's known to work with this target.
|
||||
Loading…
Add table
Add a link
Reference in a new issue