支持的构建主机和目标¶
Firefox 构建主机和目标分为三个层级。这些层级代表了 Mozilla 项目的共享工程优先级。
“构建主机”是指执行 Firefox 构建的机器,“构建目标”是指将运行已构建的 Firefox 应用程序的机器。例如,如果您在 Linux 计算机上为 Android 构建 Firefox,那么 Linux 计算机将是“构建主机”。
注意
管理员负责监控代码树。他们对层级的定义用于自动化作业,告诉开发者在他们合并代码时应遵循哪些预期。本文档介绍的是支持的构建主机和目标的层级,告诉编译/使用 Firefox 的人员他们可以从 Mozilla 期望什么。有关更多信息,请参阅作业层级定义。
支持的构建主机¶
虽然我们希望帮助用户解决其系统上的与构建相关的问题,但我们无法帮助解决所有可能的运营系统和版本上的构建系统问题。
第 1 层主机和工具链¶
在为第 1 层 Firefox 构建目标构建时,支持以下**主机操作系统**和版本,包括跨编译(如果可用)。
- Ubuntu Linux x86_64
当前稳定版本
上一个稳定版本
当前 LTS 版本
- Debian Linux x86_64
当前稳定版本
当前测试版本
- Fedora Linux x86_64
当前稳定版本
上一个稳定版本
- macOS Intel 和 M1
当前主要 macOS 版本
上一个主要 macOS 版本
- Windows x86_64
使用 MozillaBuild 环境的 Windows 10
使用 MozillaBuild 环境的 Windows 11
第 2 层主机和工具链¶
除了第 1 层列表中概述的限制之外,我们提供使用/定位第 2 层主机/目标/编译器的构建问题帮助的能力并非无限。
虽然我们会尽力帮助解决问题,但您可能会被转介给相关的社区维护者以获取进一步的支持。
第 2 层主机为
其他 Linux x86_64 发行版和/或版本
较旧的 macOS 版本
较旧的 Windows x86_64 版本
第 3 层主机和工具链¶
我们无法保证在解决使用或定位第 3 层平台的构建问题方面提供任何帮助。
支持的构建目标¶
第 1 层目标¶
术语“第 1 层平台”是指那些平台——CPU 架构和操作系统——它们是 Firefox 开发工作的首要重点。Mozilla 的持续集成流程和推送到 Try完全支持第 1 层平台。对这些平台上的 Firefox 的任何建议更改,如果导致构建失败、测试失败、性能下降或其他重大问题,**将立即回滚**。
**第 1 层 Firefox 平台**及其支持的编译器为
Linux x86、x86-64、ARMv7 和 ARMv8-A 上的 Android(clang)
Linux/x86 和 x86-64(gcc 和 clang)
x86-64 和 AArch64 上的 macOS 10.15 及更高版本(clang)
Windows/x86、x86-64 和 AArch64(clang-cl)
在 Firefox 63 之前,Windows/x86 和 Windows/x86-64 依赖于 MSVC 编译器;从**Firefox 63 开始,不再支持 MSVC**。没有 SSE2 指令的旧版 32 位 x86 CPU(如奔腾 III 和 速龙 XP)也**不被视为第 1 层平台,并且不受支持**。另请注意,虽然 Windows/x86 和 ARM/AArch64 作为构建目标受支持,但无法在 Windows/x86 或 Windows/AArch64 系统上构建 Firefox。
第 2 层目标¶
**第 2 层平台**由 Mozilla 社区积极维护,但要求不太严格。导致这些平台出现故障或回归的建议更改**可能不会立即导致回滚**。但是,破坏这些平台的开发者应与平台维护者合作解决问题,并且如果找不到解决方案,**可能需要回滚其更改**。
**第 2 层 Firefox 平台**及其支持的编译器为
Linux/AArch64(clang)
Windows/x86(mingw-clang)——由 Tom Ritter 和 Jacek Caban 维护——
请注意,此平台的一些功能被禁用,因为它们需要 MS COM 或 w32api 项目未公开必要的 Windows API。
第 3 层目标¶
**第 3 层平台**有一个维护者或社区试图让平台保持工作状态。这些平台**不受我们的持续集成流程支持**,并且**Mozilla 不会定期在这些平台上进行测试**,我们也不会阻止进一步开发这些测试的结果。
在任何给定时间,从 mozilla-central 为这些平台构建的 Firefox 可能能够正常工作,也可能无法正常工作或根本无法构建。
**第 3 层 Firefox 平台**包括
各种 CPU 架构(包括上面未列出的 ARM 变体、PowerPC 和没有 SSE2 支持的 x86 CPU)上的 Linux——由各种 Linux 发行版维护
FreeBSD/x86、x86-64、Aarch64(clang)——由 [email protected] 维护
OpenBSD/x86、x86-64(clang)——由 Landry Breuil 维护
NetBSD/x86-64(gcc)——由 David Laight 维护
Solaris/x86-64、sparc64(gcc)——由 Petr Sumbera 维护
Windows/x86-64 (mingw-gcc) - 由于 clang-bindgen 的要求而不再支持
如果您在第 3 层平台(或上面未列出的任何操作系统、CPU 和编译器的组合)上针对 Firefox 提交错误,请记住 Mozilla 开发人员无法可靠地访问非第 1 层平台或构建环境。要使针对非第 1 层平台的错误报告具有可操作性,应包含尽可能多的信息,以帮助错误所有者确定问题的原因和正确的解决方案。如果您能够提供补丁、回归范围或协助验证开发人员的补丁是否适用于您的平台,这将极大地有助于修复您的错误并将其检入代码树。