x86_64-fortanix-unknown-sgx
层级:2
使用基于 英特尔软件防护扩展 (SGX) 的安全飞地,该飞地基于 Fortanix 为 飞地开发平台 (EDP) 定义的 ABI。
目标维护者
Fortanix 的 EDP 团队。
- Jethro Beekman @jethrogb
- Raoul Strackx @raoulstrackx
- Mohsen Zohrevandi @mzohreva
要求
该目标支持使用默认分配器的 std
。仅支持交叉编译。
二进制文件支持所有包含英特尔 SGX 的 CPU。仅支持 64 位模式。
并非所有 std
功能都受支持,有关详细信息,请参阅 使用 Rust 的 std。
extern "C"
调用约定是 System V AMD64 ABI。
支持的 ABI 是 fortanix-sgx-abi。
编译器输出是 ELF,但平台的本机格式是 SGX 流 (SGXS) 格式。需要像 ftxsgx-elf2sgxs 这样的转换器。
符合 Fortanix SGX ABI 的 SGXS 格式程序可以使用任何兼容的运行器运行,例如 ftxsgx-runner。
有关如何设置开发和运行时环境的建议,请参阅 EDP 安装指南。
构建目标
作为二级目标,该目标由 Rust 项目构建。
您可以像这样配置 rustbuild
[build]
build-stage = 1
target = ["x86_64-fortanix-unknown-sgx"]
构建 Rust 程序
使用 cargo
或 rustc
的标准构建流程应该可以正常工作。
测试
如果 cargo 运行器配置正确,Rust 测试套件以及自定义单元和集成测试将在启用了英特尔 SGX 的硬件上运行,请参阅要求部分。
交叉编译工具链和 C 代码
通常不支持 C 代码,因为没有 libc。使用 System V AMD64 ABI 以独立模式为 x86-64 编译的 C 代码可能会起作用。 rs-libc crate 包含已知可与该目标一起使用的 libc 子集。