Skip to content

Commit

Permalink
Backed out changeset 29d7e91fe721 (bug 1725125) for plain Bp-hybrid b…
Browse files Browse the repository at this point in the history
…ustages
  • Loading branch information
nbeleuzu committed Aug 25, 2021
1 parent 4b8a4fc commit 50dd054
Show file tree
Hide file tree
Showing 9 changed files with 1 addition and 170 deletions.
4 changes: 0 additions & 4 deletions browser/config/mozconfigs/linux64/hybrid

This file was deleted.

4 changes: 0 additions & 4 deletions browser/config/mozconfigs/macosx64/hybrid

This file was deleted.

4 changes: 0 additions & 4 deletions browser/config/mozconfigs/win64/hybrid

This file was deleted.

16 changes: 0 additions & 16 deletions build/docs/unified-builds.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,6 @@ together for a single compilation, so sometimes the addition of a new file will
to be bumped into a different chunk. If that other chunk doesn't meet the implicit requirements
of the bumped file, there will be a tough-to-debug compilation failure.

Building outside of the unified environment
===========================================

As described above, unified builds can cause source files to implicitly depend on each other, which
not only causes unexpected build failures but also can cause issues when using source-analysis tools.
To combat this, we'll use a "hybrid" build that attempts to perform a build with as many files compiled
individually as possible.

Due to the implicit dependency problem, not all modules are able to be compiled in a non-unified
environment yet. To designate these for the hybrid build, the ``REQUIRES_UNIFIED_BUILD`` option can be
set in their corresponding ``moz.build`` file.

To build in the hybrid mode, set the following flag in your ``mozconfig``:

``ac_add_options --disable-unified-build``

Other notes:
============

Expand Down
11 changes: 0 additions & 11 deletions moz.configure
Original file line number Diff line number Diff line change
Expand Up @@ -179,17 +179,6 @@ add_old_configure_assignment("DEVELOPER_OPTIONS", developer_options)
set_config("DEVELOPER_OPTIONS", developer_options)


# hybrid build handling
# ==============================================================

option(
"--disable-unified-build",
help="Enable building modules that are not marked with `REQUIRES_UNIFIED_BUILD` in non unified context",
)

set_config("ENABLE_UNIFIED_BUILD", True, when="--disable-unified-build")


option(
env="MOZ_FETCHES_DIR",
nargs=1,
Expand Down
10 changes: 1 addition & 9 deletions python/mozbuild/mozbuild/frontend/emitter.py
Original file line number Diff line number Diff line change
Expand Up @@ -649,8 +649,6 @@ def _handle_linkables(self, context, passthru, generated_files):
host_linkables = []
wasm_linkables = []

unified_build = context.config.substs.get("ENABLE_UNIFIED_BUILD", False)

def add_program(prog, var):
if var.startswith("HOST_"):
host_linkables.append(prog)
Expand Down Expand Up @@ -1131,13 +1129,7 @@ def canonical_suffix_for_file(f):
self._asm_compile_dirs.add(context.objdir)
arglist = [context, list(files), canonical_suffix]
if variable.startswith("UNIFIED_"):
if (
unified_build is False
and context.get("REQUIRES_UNIFIED_BUILD", False) is False
):
arglist.append(1)
else:
arglist.append(context.get("FILES_PER_UNIFIED_FILE", 16))
arglist.append(context.get("FILES_PER_UNIFIED_FILE", 16))
obj = cls(*arglist)
srcs = list(obj.files)
if isinstance(obj, UnifiedSources) and obj.have_unified_mapping:
Expand Down
42 changes: 0 additions & 42 deletions taskcluster/ci/build/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,48 +127,6 @@ linux64-plain/opt:
optimization:
skip-unless-expanded: null

linux64-hybrid/plain:
description: "Linux64 Plain Hybrid"
index:
product: firefox
job-name: linux64-hybrid-plain
treeherder:
platform: linux64/plain
symbol: Bp-hybrid
tier: 1
worker-type: b-linux
worker:
docker-image: {in-tree: debian11-amd64-build}
max-run-time: 5400
env:
PERFHERDER_EXTRA_OPTIONS: hybrid
run:
using: mozharness
actions: [get-secrets, build]
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
script: mozharness/scripts/fx_desktop_build.py
secrets: true
tooltool-downloads: public
extra-config:
disable_package_metrics: true
mozconfig-variant: hybrid
run-on-projects: ['integration']
use-sccache: true
fetches:
toolchain:
- linux64-binutils
- linux64-clang
- linux64-rust
- linux64-nasm
- linux64-node
- linux64-cbindgen
- linux64-sccache
- linux64-dump_syms
- sysroot-x86_64-linux-gnu
- sysroot-wasm32-wasi

linux64-gcc/opt:
description: "Linux64 GCC Opt"
index:
Expand Down
29 changes: 0 additions & 29 deletions taskcluster/ci/build/macosx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,35 +57,6 @@ macosx64/debug:
- macosx64-sdk-10.12
- sysroot-wasm32-wasi

macosx64-hybrid/plain:
description: "MacOS X x64 Hybrid Cross-compile"
index:
job-name: macosx64-hybrid
treeherder:
platform: osx-cross/plain
symbol: Bp-hybrid
tier: 1
worker:
max-run-time: 5400
env:
PERFHERDER_EXTRA_OPTIONS: hybrid
run:
config:
- builds/releng_base_firefox.py
- builds/releng_base_mac_64_cross_builds.py
mozconfig-variant: hybrid
extra-config:
disable_package_metrics: true
use-sccache: true
run-on-projects: ['integration']
fetches:
toolchain:
- linux64-cctools-port
- linux64-clang-macosx-cross
- linux64-sccache
- macosx64-sdk-10.12
- sysroot-wasm32-wasi

macosx64/opt:
description: "MacOS X x64 Cross-compile"
index:
Expand Down
51 changes: 0 additions & 51 deletions taskcluster/ci/build/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -174,57 +174,6 @@ win64/debug:
- nsis-3.01-win
- upx-3.95-win

win64-hybrid/plain:
description: "Win64 Hybrid Plain"
index:
product: firefox
job-name: win64-hybrid-plain
treeherder:
platform: windows2012-64/debug
symbol: Bp-hybrid
tier: 1
worker-type: b-linux
worker:
docker-image: {in-tree: debian11-amd64-build}
max-run-time: 7200
env:
PERFHERDER_EXTRA_OPTIONS: hybrid
TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/vs2017-15.8.manifest"
run:
options: [append-env-variables-from-configs]
actions: [get-secrets, build]
script: mozharness/scripts/fx_desktop_build.py
secrets: true
config:
- builds/releng_base_firefox.py
- builds/releng_base_linux_64_builds.py
mozconfig-variant: hybrid
extra-config:
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4"
use-sccache: true
run-on-projects: ['integration']
fetches:
toolchain:
- linux64-binutils
- linux64-clang-win-cross
- linux64-rust-cross
- linux64-rust-size
- linux64-nasm
- linux64-node
- linux64-cbindgen
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- sysroot-x86_64-linux-gnu
fetch:
- nsis-3.01-win
- upx-3.95-win

win64-fuzzing/debug:
description: "Win64 Fuzzing Debug"
index:
Expand Down

0 comments on commit 50dd054

Please sign in to comment.