特定架构说明 — SPARC

SPARC 移植使用 sparc 关键词。它专注于 sun4u 硬件(具有 v9 CPU 的 Sun UltraSparc 系统)。v8 处理器和 2.4 内核应该仍然可以在 Gentoo 上工作,但它们不再受 Gentoo/SPARC 团队支持。

SPARC 系统对对齐访问非常严格:这是 SPARC 上最常见的错误类型(除了与大端相关的错误之外),会导致 SIGBUS 信号发送到错误进程。已知问题应链接到相关的跟踪错误

这通常是由于代码作者使用了看似聪明的指针转换和类型穿透技巧。

SPARC 内核和用户空间 ABI

v9 系统使用纯 64 位内核和纯 32 位用户空间。如果内核不提供可用的 32 位兼容性接口,这可能会在处理低级软件时导致可移植性问题。

v8 系统使用纯 32 位内核和纯 32 位用户空间。

上述所有 SPARC 系统都是大端,但是 v9 架构也利用小端指令来访问 PCI 总线上的数据。

额外的 SPARC 关键词要求

为了给软件包添加 ~sparc 关键词,通常必须满足以下额外条件

  • 该软件包必须由架构团队成员(或获得架构团队许可的人员)在 v9 系统上测试过。

通常期望任何为 SPARC 添加关键词的人都应该在 sparc@ 邮件列表中。

SPARC 指令集和性能说明

有三种基本的 SPARC 指令集标准。

  • v7 是非常旧的硬件中使用的原始指令集。Gentoo 不提供支持 v7 的阶段,但是理论上一个足够疯狂的人可以在 v7 机器上运行 Gentoo。
  • v8v7 的扩展,增加了对硬件整数乘法和除法的支持。Gentoo sparc32(sun4m)阶段上次可用是在 2006.1 版本。
  • v9 添加了 64 位支持和大量性能增强功能。Gentoo sparc64(sun4u)阶段是 v9

此外,各个 CPU 实现之间存在细微差异——例如,HyperSparc CPU 在调度某些指令时有更宽松的要求。这些差异相对较小。

如果 gcc 没有使用任何 -mcpu 参数调用,它将生成 v7 代码。根据应用程序的不同,在 UltraSparc 上运行时,这可能比 v9 代码慢五倍——大量使用整数乘法和除法的加密和图形应用程序受到的打击尤其严重。因此,不筛选变量 中的注释在 SPARC 上尤其重要。

联系 SPARC 团队

可以联系 SPARC 团队

  • 通过分配给 sparc@ 的 Bugzilla 错误
  • 通过电子邮件发送到 sparc@ 邮件列表
  • 通过电子邮件发送到 gentoo-sparc 邮件列表
  • 通过 Libera.Chat 上的 #gentoo-sparc IRC 频道