支持的构建主机和目标

Firefox 支持的构建主机和目标分为三个层级。这些层级代表了 Mozilla 项目共享的工程优先级。

“构建主机”是指执行 Firefox 构建的机器,“构建目标”是指将运行已构建的 Firefox 应用程序的机器。例如,如果您在 Linux 计算机上构建用于 Android 的 Firefox,则 Linux 计算机将是“构建主机”。

注意

管理员负责监控代码库。他们对层级的定义适用于自动化作业,告诉开发人员在他们合并代码时需要做什么。本文档介绍的是支持的构建主机和目标的层级,告诉编译/使用 Firefox 的人员他们可以从 Mozilla 获得什么。有关更多信息,请参阅作业层级定义

支持的构建主机

虽然我们希望帮助用户解决系统上的构建相关问题,但我们无法帮助解决所有可能的运营系统和版本上的构建系统问题。

第一层级主机和工具链

在为第一层级 Firefox 构建目标构建时,支持以下**主机操作系统**和版本,包括在可用时进行交叉编译

  • Ubuntu Linux x86_64
    • 当前稳定版本

    • 之前的稳定版本

    • 当前 LTS 版本

  • Debian Linux x86_64
    • 当前稳定版本

    • 当前测试版本

  • Fedora Linux x86_64
    • 当前稳定版本

    • 之前的稳定版本

  • macOS Intel 和 M1
    • 当前主要 macOS 版本

    • 之前的 macOS 主要版本

  • Windows x86_64
    • Windows 10 以及 MozillaBuild 环境

    • Windows 11 以及 MozillaBuild 环境

第二层级主机和工具链

除了第一层级列表中概述的限制之外,我们提供使用/针对第二层级主机/目标/编译器构建问题的协助能力并非无限的。

虽然我们会尽力帮助解决问题,但您可能会被转介给相关的社区维护者以获得进一步的支持。

第二层级主机包括

  • 其他 Linux x86_64 发行版和/或版本

  • 较旧的 macOS 版本

  • 较旧的 Windows x86_64 版本

第三层级主机和工具链

我们无法保证协助解决使用或针对第三层级平台构建的问题。

支持的构建目标

第一层级目标

术语“**第一层级平台**”指的是那些平台——CPU 架构和操作系统——它们是 Firefox 开发工作的重点。第一层级平台得到 Mozilla 的持续集成流程推送到 Try的完全支持。对这些平台上的 Firefox 提出的任何会导致构建失败、测试失败、性能下降或其他重大问题的更改**将立即被回退**。

**第一层级 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。还要注意,虽然 Windows/x86 和 ARM/AArch64 作为构建目标受支持,但无法在 Windows/x86 或 Windows/AArch64 系统上构建 Firefox。

第二层级目标

**第二层级平台**由 Mozilla 社区积极维护,但要求没那么严格。导致这些平台出现故障或倒退的更改**可能不会立即导致回退**。但是,破坏这些平台的开发人员应与平台维护者合作解决问题,并且如果找不到解决方法,**可能需要回退他们的更改**。

**第二层级 Firefox 平台**及其支持的编译器是

  • Linux/AArch64 (clang)

  • Windows/x86 (mingw-clang) - 由 Tom Ritter 和 Jacek Caban 维护 -

    • 请注意,此平台的某些功能已禁用,因为它们需要 MS COM 或 w32api 项目未公开必要的 Windows API。

第三层级目标

**第三层级平台**有一个维护者或社区试图使平台保持运行。这些平台**不受我们的持续集成流程支持**,并且**Mozilla 不会定期在这些平台上进行测试**,我们也不会阻止进一步开发这些测试的结果。

在任何给定时间,从 mozilla-central 为这些平台构建的 Firefox 可能可以正常工作,也可能无法正常工作或根本无法构建。

**第三层级 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 的要求而不再支持

如果您针对第三层级平台(或上面未列出的任何操作系统、CPU 和编译器的组合)上的 Firefox 提交错误,请记住 Mozilla 开发人员无法可靠地访问非第一层级平台或构建环境。针对非第一层级平台的可操作错误报告应包含尽可能多的信息,以帮助错误所有者确定问题的原因和正确的解决方案。如果您能提供补丁、回归范围或协助验证开发人员的补丁是否适用于您的平台,这将非常有助于修复您的错误并将其检入代码库。