*-unknown-netbsd

Tier: 3

NetBSD 多平台 4.4BSD 衍生类 UNIX 操作系统。

目标名称遵循以下格式:$ARCH-unknown-netbsd{-$SUFFIX},其中 $ARCH 指定目标处理器架构,-$SUFFIX(可选)可能表示 ABI。以下目标目前已定义为在 NetBSD 上运行

目标名称NetBSD 平台
x86_64-unknown-netbsdamd64 / x86_64 系统
armv7-unknown-netbsd-eabihf带有硬浮点的 32 位 ARMv7 系统
armv6-unknown-netbsd-eabihf带有硬浮点的 32 位 ARMv6 系统
aarch64-unknown-netbsd小端序 64 位 ARM 系统
aarch64_be-unknown-netbsd大端序 64 位 ARM 系统
i586-unknown-netbsd32 位 i386,限制为 Pentium
i686-unknown-netbsd带有 SSE 的 32 位 i386
mipsel-unknown-netbsd32 位 mips,需要 mips32 CPU 支持
powerpc-unknown-netbsd各种 32 位 PowerPC 系统,例如 MacPPC
riscv64gc-unknown-netbsd64 位 RISC-V
sparc64-unknown-netbsdSun UltraSPARC 系统

所有目标都使用“原生” stdc++ 库,该库与给定操作系统版本原生提供的 GNU C++ 编译器一起使用。许多引导程序是为 NetBSD 9.x 构建的,尽管存在一些例外情况(有些是为 NetBSD 8.x 构建的,但也适用于较新的操作系统版本)。

指定开发者

回退到 [email protected],或通过 NetBSD 的错误报告系统进行故障报告。

要求

x86_64-unknown-netbsd 工件由 rust 项目分发。

其他目标由指定的开发者构建(见上文),这些目标最初是交叉编译的,但即使不是大多数,也有许多目标也作为测试的一部分进行原生构建。

构建

软件包的默认构建模式是原生构建。

交叉编译

这些目标可以进行交叉编译,我们通过 pkgsrc 软件包执行此操作。

交叉编译通常需要从 NetBSD 本身的正常交叉构建产生的 “tools” 和 “dest” 树,参考我们的主构建脚本 build.sh

例如,请参阅 do-cross.mk Makefile,了解用于交叉构建上述所有 NetBSD 目标(amd64 目标除外)的 Makefile。

rust 构建的主要选项是是否使用 rust 发行版中携带的 LLVM 构建 rust,或者使用从 pkgsrc 安装的 LLVM 软件包。PKG_OPTIONS.rust 选项是 rust-internal-llvm,参考 rust 软件包的 options.mk make 片段。出于各种原因(请参阅注释),默认情况下为上述几个平台设置了此选项,但在其他情况下未设置,因此表示使用 pkgsrc LLVM。

测试

Rust 测试套件大概可以在原生环境下运行。

对于维护者可以进行原生构建的系统,rust 编译器本身会进行原生重新构建。这涉及到使用新构建的 rust 编译器重新构建 rust 编译器,因此对结果进行了相当广泛的测试。

此外,对于某些系统,我们构建 librsvg,对于性能更强的系统,我们构建和测试 firefox (amd64、i386、aarch64)。

构建 Rust 程序

Rust 为 x86_64-unknown-netbsd 目标提供了预编译的工件。

对于上面提到的其他系统,使用 pkgsrc 途径可能是最简单的,可能通过 rust-bin 软件包来节省时间,请参阅 rust.mk Makefile 片段中的 RUST_TYPE 变量。

pkgsrc rust 软件包有一些文件,用于协助构建用 rust 编写的 pkgsrc 软件包,参考 lang/rust 软件包中的 rust.mkcargo.mk Makefile 片段。