Граф коммитов

10381 Коммитов

Автор SHA1 Сообщение Дата
Mitchell Hentges 83f95f6c5d Bug 1723237: Move low-hanging fruit commands to centralized Python dep system r=ahal
Creates/updates virtualenvs for some mach commands, replacing
their ad-hoc usage of `install_pip_package()`, `pip install`,
and `sys.path` modifications.

Note: The `docs` virtualenv has `Sphinx==1.1.3` installed, even
though a more modern version of `Sphinx` is used when
`./mach doc` is run. This is ok for now, since `./mach doc` will
just install the newer `Sphinx` over top of the old one. Secondarily,
when we port `./mach doc` to use the centralized system, we'll
be incentivized to make the different `doc` commands use synchonized
versions of the same packages. Success!

Also, note that manual installation of `html5lib` and `requests`
isn't ported to the `wpt` site: this is because they're already
provided by the inherited Mach site.

Differential Revision: https://phabricator.services.mozilla.com/D122902
2022-03-22 20:49:42 +00:00
Randell Jesup 4ed7155770 Bug 1759501: turn on clang thread-safety checking r=firefox-build-system-reviewers,mhentges,andi
Differential Revision: https://phabricator.services.mozilla.com/D140973
2022-03-18 10:48:12 +00:00
smolnar 0b222551dc Backed out changeset 64ec4c736bb4 (bug 1759501) for causing build bustages in dom/base/BodyStream.cpp CLOSED TREE 2022-03-18 02:19:11 +02:00
Randell Jesup b535ed97f5 Bug 1759501: turn on clang thread-safety checking r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D140973
2022-03-17 21:56:51 +00:00
Narcis Beleuzu c4cce6ea63 Backed out changeset 6fd4b72c9a6c (bug 1617283) for dt failure on browser_dbg-backgroundtask-debugging.js . CLOSED TREE 2022-03-16 02:26:38 +02:00
Shazib Summar d3f3302860 Bug 1617283 - Shifted AudioSession to MTA and removed COM violations r=handyman
Pointer to AudioSession object is made std::atomic to resolve crashes (bug 1755700) by atomically modifying/reading the pointer as an effort to make sure any update to the pointer is seen across other threads immediately while not using locks to maintain such concurrency and avoiding dataraces.

This patch is built upon the work done in D136377.

Differential Revision: https://phabricator.services.mozilla.com/D140741
2022-03-15 19:48:43 +00:00
Mike Hommey 03e9935f48 Bug 1758782 - Force-use DWARF-4 debug info. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D140795
2022-03-15 00:24:25 +00:00
Mitchell Hentges f04ccd7a53 Bug 1759256: Update all PATH-munging to use os.pathsep r=webdriver-reviewers,ahochheiden,jgraham
Windows uses `;` as the path separator, Unix-based systems use `:`.
`os.pathsep` conveniently represents the current system's separator.

All OS-specific path separators have been replaced with `os.pathsep`
except for some explicitly Windows-specific mozharness configs.

Differential Revision: https://phabricator.services.mozilla.com/D140981
2022-03-14 18:41:49 +00:00
Mitchell Hentges 23226da5f7 Bug 1755516: Explicitly use system Python packages for Firefox build CI r=ahal
Updates all build-related jobs (`artifact-build`, `build` and
`instrumented-build`) tasks to explicitly set
`MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system`. This allows them
to consume `psutil` (if installed on the system) without needing
to hit PyPI.org.

Modifies `build-l10n.sh` and `build-linux.sh` to no longer
explicitly fetch `psutil` from PyPI
(`./mach python --virtualenv psutil`), since that is replaced
by Mach's "native package source" behaviour.

Differential Revision: https://phabricator.services.mozilla.com/D140257
2022-03-11 18:34:13 +00:00
Mike Hommey d6e5f60dce Bug 1758781 - Remove now unnecessary patch to link llvm-symbolizer statically. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D140712
2022-03-11 04:10:49 +00:00
Mike Hommey 3885f30dfb Bug 1758781 - Build llvm-symbolizer separately. r=firefox-build-system-reviewers,mhentges
The llvm-symbolizer tasks currently extract a llvm-symbolizer from clang
tasks. Changes in clang 14 make the hack that we have in place to keep
llvm-symbolizer statically linked to libllvm while clang uses a dynamic
libllvm not work anymore, so it's time to bite the bullet and build
llvm-symbolizer separately.

We share most of the build setup with the compiler-rt build.

Differential Revision: https://phabricator.services.mozilla.com/D140711
2022-03-11 04:10:49 +00:00
Chris Peterson 13de2f98de Bug 1758608 - Enable some Objective-C/C++ diagnostics that are currently warning-free. r=firefox-build-system-reviewers,andi
Only enable them when building on macOS or cross-compiling for macOS on Linux.

# catch redeclaration of ObjC method parameter name
-Wduplicate-method-arg

# catch multiple declarations of ObjC method found
-Wduplicate-method-match

# catch ObjC method with no return type specified
-Wmissing-method-return-type

# catch implicit conversions between ObjC BOOL and int
-Wobjc-signed-char-bool

# catch semicolon before ObjC method body
-Wsemicolon-before-method-body

# catch ObjC method parameter type not matching super class method
-Wsuper-class-method-mismatch

https://clang.llvm.org/docs/DiagnosticsReference.html

Differential Revision: https://phabricator.services.mozilla.com/D140598
2022-03-10 03:19:59 +00:00
Mike Hommey dcb88b4ebb Bug 1758617 - Make Firefox abort in case of content crash during PGO run. r=firefox-build-system-reviewers,mhentges
The expected behavior during a PGO run is that a browser is started and
exited once, and then it is started again on a page that runs various
workloads and once finished, exits.
When workload happens to crash the content process, the browser is left
running indefinitely, until the taskcluster task itself times out. This
leaves us with no possibility of knowing what actually went wrong during
the run, which is about the worst thing that can happen.
With the browser shutting down on its own in case of crash, the harness
can find the minidumps and report the crash, which is more useful.

Differential Revision: https://phabricator.services.mozilla.com/D140678
2022-03-09 21:46:18 +00:00
Alexis Beingessner ec10d290e7 Bug 1755602 - consistently use minidump-stackwalk instead of minidump_stackwalk. r=glandium
Inconsistency confuses some of our tools. As part of this, I:

* Updated some docs to point to rust-minidump
* Added a fallback to mozcrash.py to try both versions
* Make mozcrash.py use --brief output when the local mdsw is used
* Remove the renaming hack from build-minidump-stackwalk.sh

This isn't as simple as a sed because we still have breakpad in tree
for minidump-analyzer. I did my best to replace the right strings.

Differential Revision: https://phabricator.services.mozilla.com/D138971
2022-03-09 16:44:42 +00:00
mvollmer 96c7648608 Bug 1755305 - Fix invalid mach command for Visual Studio clean target r=mhentges DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D139595
2022-03-03 14:17:59 +00:00
Mitchell Hentges b48f6cf7dc Bug 1757813: Detect "MSYS" unames as `msyshost`s r=firefox-build-system-reviewers,nalexander
MozillaBuild 3.4's kernel name was `MINGW32_NT-6.2`, but the new
MozillaBuild's kernel name looks like `MSYS_NT-10.0-19044`.

Update existing first-party detection code to properly handle the modern
MSYS "kernel name" format.

Differential Revision: https://phabricator.services.mozilla.com/D140096
2022-03-02 21:01:07 +00:00
Nika Layzell 2f62d8c857 Bug 1751948 - Part 6: Add basic support for running IPDL unit tests during gtest, r=ipc-reviewers,andi,handyman
This patch introduces a new system for building IPDL unit tests, which is
roughly inspired by the old cxx unit test design, however designed to work with
gtest. It re-uses the existing IPDLUnitTest process type, using static
constructors only present in xul-gtest to register child actor constructors and
ProcessChild implementations to avoid bloating xul.

The IPDLUnitTest actor is used as a backchannel to communicate test failures
from the child process back to the parent process, and manage the test's async
lifecycle more reliably.

The IPDLUnitTest process also needed to have various properties about how it was
initialized adjusted:

* The IPDLUnitTest process should now always load xul-gtest when running
  gtests, by using the "Self" process type and adding a DYLD_LIBRARY_PATH override
  on macOS where the "Self" process type cannot be used.
* The IPDLUnitTest process now initializes minimal XPCOM, and runs a
  frankeneventloop to allow it to use XPCOM event loop structures such as
  SpinEventLoopUntil in tests.
* Support for creating IPDLUnitTest processes on Android was added, as these
  tests had never run on android before.

Differential Revision: https://phabricator.services.mozilla.com/D137170
2022-02-28 21:01:49 +00:00
Mitchell Hentges 6fb4802b2e Bug 1753182: Get realpath of Python during configure r=glandium
Previously, the Python virtualenv path would be `realpath`'d before the
virtualenv was activated [1].

However, now that (when going through Mach) we're calling `configure.py`
with the build virtualenv's Python binary directly, that `realpath()`
was lost.

We //could// `realpath(self.topsrcdir)` in `building.py`, but then the
virtualenv will be needlessly re-created when it's called from a
non-normpath'd context.

Instead, let's leave realpath-ing Mach's `self.topsrcdir` to another
day, and let's spot-fix this issue: when evaluating `PYTHON3` in
configure, do `realpath()` on the path we get from the running Python
process.

Note: `sys.prefix` was normpath'd instead of `(...).python_path`,
because on Linux virtualenv's `bin/python` is symlinked to the system
installation it's associated with, which we *don't* want here.

[1] https://hg.mozilla.org/mozilla-central/rev/ca4d439114f3#l1.61

Differential Revision: https://phabricator.services.mozilla.com/D138594
2022-02-28 16:12:41 +00:00
Zhao Jiazhong 62341514c5 Bug 1756570 - [loong64] Add basic build support for LoongArch64 port. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D139567
2022-02-25 03:42:34 +00:00
Zhao Jiazhong 8ec9867490 Bug 1756570 - Refresh config.guess and config.sub from upstream. r=glandium
Update config.{guess,sub} for LoongArch/Linux build support.

Differential Revision: https://phabricator.services.mozilla.com/D139456
2022-02-25 02:04:13 +00:00
Alex Ionescu 4f07163ef9 Bug 1749967 - Automated recording for android r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D135891
2022-02-21 07:32:13 +00:00
Andrew Osmond 45ae50555d Bug 1754978 - Part 1. Refactor CompositableHandle infrastructure to allow in-process driven handles. r=sotaro
For WebGPU, we produce the textures in the compositor process and the
content process doesn't need to be that involved except for hooking up
the texture to the display list. Currently this is done via an external
image ID.

Given that WebGPU needs to work with OffscreenCanvas, it would be best
if its display pipeline was consistent whether it was gotten from an
HTMLCanvasElement, OffscreenCanvas on the main thread, or on a worker
thread. As such, using an AsyncImagePipeline would be best.

However there is no real need to bounce the handles across process
boundaries. Hence this patch which adds CompositableInProcessManager.
This static class is responsible for collecting WebRenderImageHost
objects backed by TextureHost objects which do not leave the compositor
process. This will allow WebGPUParent to schedule compositions directly
in future patches.

Differential Revision: https://phabricator.services.mozilla.com/D138588
2022-02-18 15:59:12 +00:00
smolnar 4e4adb2951 Bug 1755956 - Fix python black failure. CLOSED TREE 2022-02-18 17:40:47 +02:00
Emilio Cobos Álvarez c9f9939aa6 Bug 1755956 - Really fix rusttests on windows, by using utf-8 to read Cargo.toml in RunCbindgen.py so it doesn't choke on my name.
(And revert the previous commit).

MANUAL PUSH: Silly windows-only encoding fix CLOSED TREE
2022-02-18 16:29:44 +01:00
Mitchell Hentges e2438c91d3 Bug 1732795: Install `coverage` using pip r=ahal
`coverage` has native code, so the vendored version was only used as
source code from which the actual package could be built.
Since its always used in a context where we can `pip install` over the
network, let's do that. This cleans up our tree a bit and allows us to
leverage the `coverage` wheels.

Differential Revision: https://phabricator.services.mozilla.com/D138816
2022-02-18 14:27:18 +00:00
Cosmin Sabou 66705c85f2 Bug 1755834 - Fix for clang-tidy bustage. r=glandium 2022-02-18 10:04:19 +02:00
Mike Hommey 2f9cc7e46f Bug 1755834 - Remove compiler-rt-13-no-codesign.patch. r=firefox-build-system-reviewers,andi
Now that mac compiler-rts are built with build-compiler-rt.sh, which has
its own hack around codesign (which was broken in bug 1755415, so fix that),
we don't need this patch anymore.

Differential Revision: https://phabricator.services.mozilla.com/D138985
2022-02-18 07:01:18 +00:00
Mike Hommey bc58a77443 Bug 1755826 - Apply clang upstream patch to ignore recent MSVC stdatomic.h. a=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D138975
2022-02-17 13:36:59 +00:00
Mike Hommey c10d0fa5e2 Bug 1755415 - Ship most compiler-rts alongside clang toolchains on all platforms. r=firefox-build-system-reviewers,mhentges
This improves out-of-the-box support for cross-compiles on tier-1 build
platforms, including for asan. This also reduces the number of different
*-cross toolchains we need for CI builds.

The linux clang is now also a repack, like the others, and the insertion
of the wasm compiler-rt is moved to the repack, which also allows to
remove that part of the build-clang.py script.

Differential Revision: https://phabricator.services.mozilla.com/D138749
2022-02-17 03:44:39 +00:00
Mike Hommey 6ae8fef73d Bug 1755415 - Use compiler-rt artifacts for clang PGO. r=firefox-build-system-reviewers,mhentges
Instead of building compiler-rt alongside clang, we reuse the clang
repack logic to put compiler-rts in place when building clang stage2
(which requires the profiling runtime).

The repack logic is unified to handle all platforms as well, and now
that compiler-rt is not built in clang, we also need to copy everything
that is not lib/* from the compiler-rt artifacts, so we now also ensure
that they're not diverging between those compiler-rt artifacts (except
for darwin libs, which need to be unified into universal libraries).

And as a bonus, we can also cross-build the mac clang toolchains with
the stage1 clang and the clang runtime for the target platform.

Differential Revision: https://phabricator.services.mozilla.com/D138748
2022-02-17 03:44:38 +00:00
Mike Hommey 99f2a96c74 Bug 1755415 - Encode the target in the compiler-rt artifact/directory. r=firefox-build-system-reviewers,mhentges
This simplifies the setup for cross clang repacks.

Also use `ninja install` to get all the relevant things in the artifact.

Differential Revision: https://phabricator.services.mozilla.com/D138745
2022-02-17 03:44:37 +00:00
Csoregi Natalia 9bed262383 Merge autoland to mozilla-central. a=merge 2022-02-16 23:39:12 +02:00
Narcis Beleuzu 6146db617b Backed out changeset e1b946a41694 (bug 1617283) for audio related crashes and hangs (bug 1755700, bug 1755717). a=backout 2022-02-16 18:14:02 +02:00
Marian-Vasile Laza dc5a07f0b1 Backed out 5 changesets (bug 1755415) for causing build bustages. CLOSED TREE
Backed out changeset e836c26855d4 (bug 1755415)
Backed out changeset 69d9d8005a83 (bug 1755415)
Backed out changeset a84913234c63 (bug 1755415)
Backed out changeset 709af6e17057 (bug 1755415)
Backed out changeset 0a5c1fe00f26 (bug 1755415)
2022-02-16 13:31:05 +02:00
Mike Hommey cd4ff2c4e5 Bug 1755415 - Ship most compiler-rts alongside clang toolchains on all platforms. r=firefox-build-system-reviewers,mhentges
This improves out-of-the-box support for cross-compiles on tier-1 build
platforms, including for asan. This also reduces the number of different
*-cross toolchains we need for CI builds.

The linux clang is now also a repack, like the others, and the insertion
of the wasm compiler-rt is moved to the repack, which also allows to
remove that part of the build-clang.py script.

Differential Revision: https://phabricator.services.mozilla.com/D138749
2022-02-16 08:24:40 +00:00
Mike Hommey 6366f29369 Bug 1755415 - Use compiler-rt artifacts for clang PGO. r=firefox-build-system-reviewers,mhentges
Instead of building compiler-rt alongside clang, we reuse the clang
repack logic to put compiler-rts in place when building clang stage2
(which requires the profiling runtime).

The repack logic is unified to handle all platforms as well, and now
that compiler-rt is not built in clang, we also need to copy everything
that is not lib/* from the compiler-rt artifacts, so we now also ensure
that they're not diverging between those compiler-rt artifacts (except
for darwin libs, which need to be unified into universal libraries).

And as a bonus, we can also cross-build the mac clang toolchains with
the stage1 clang and the clang runtime for the target platform.

Differential Revision: https://phabricator.services.mozilla.com/D138748
2022-02-16 08:24:40 +00:00
Mike Hommey aaf5a314c5 Bug 1755415 - Encode the target in the compiler-rt artifact/directory. r=firefox-build-system-reviewers,mhentges
This simplifies the setup for cross clang repacks.

Also use `ninja install` to get all the relevant things in the artifact.

Differential Revision: https://phabricator.services.mozilla.com/D138745
2022-02-16 08:24:39 +00:00
Mike Hommey 37fcdf3f08 Bug 1755379 - Build cctools with the stage1 clang. r=firefox-build-system-reviewers,mhentges
Bug 1752977 attempted to do that, but that part had to be backed out as
a fixup because it broke LTO support for the linker.

To make it work, cctools needs to link against clang's libLTO, which
requires libLTO to be built with the toolchain sysroot. But system GCC
doesn't support that in a nice way, so we switch to system clang. We
explicitly don't use /usr/bin/clang++ because that would use the system
libstdc++ headers instead of the ones from the sysroot, while using
/usr/lib/llvm-11/bin/clang++ uses the ones from the sysroot.

We keep building clang 5.0 with gcc, though, because that one fails to
build with clang 11.

Differential Revision: https://phabricator.services.mozilla.com/D138712
2022-02-16 08:20:25 +00:00
Shazib Summar b8d30e610b Bug 1617283 - Removed COM violations and shifted AudioSession to MTA r=handyman
Differential Revision: https://phabricator.services.mozilla.com/D136377
2022-02-15 22:28:41 +00:00
Thomas Wisniewski 6e59fe82c1 Bug 1715900 - Add a mach test-interventions command for testing webcompat interventions; r=jgraham,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D138384
2022-02-15 15:07:18 +00:00
Jan-Erik Rediger c6eac14b6e Bug 1754474 - Update to Glean 44.0.0 and glean_parser 5.0.1. r=janerik
Differential Revision: https://phabricator.services.mozilla.com/D138446
2022-02-15 13:35:07 +00:00
Mike Hommey 22040e3128 Bug 1726782 - Create a new task generating a clang profile for PGO. r=firefox-build-system-reviewers,mhentges
The new task builds a stage 2 compiler and uses it to generate the
profile as stage 3, and the profile is used to feed the now separate
stage 4 clang build. This will allow us to use this same profile to
build mac clangs with PGO.

Differential Revision: https://phabricator.services.mozilla.com/D138511
2022-02-14 21:10:00 +00:00
Mike Hommey 0f914f5902 Bug 1726782 - Separate stage from platform config for clang build. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D138510
2022-02-14 21:10:00 +00:00
smolnar 832f677438 Backed out 3 changesets (bug 1726782) for causing clang-format failures. CLOSED TREE
Backed out changeset 17bfaad3db80 (bug 1726782)
Backed out changeset f58fe19ec977 (bug 1726782)
Backed out changeset 2fc65de433eb (bug 1726782)
2022-02-13 11:27:16 +02:00
Mike Hommey 3789acd7bb Bug 1726782 - Create a new task generating a clang profile for PGO. r=firefox-build-system-reviewers,mhentges
The new task builds a stage 2 compiler and uses it to generate the
profile as stage 3, and the profile is used to feed the now separate
stage 4 clang build. This will allow us to use this same profile to
build mac clangs with PGO.

Differential Revision: https://phabricator.services.mozilla.com/D138511
2022-02-12 21:07:59 +00:00
Mike Hommey f0a2c36a16 Bug 1726782 - Separate stage from platform config for clang build. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D138510
2022-02-12 21:07:59 +00:00
Mike Hommey 52b59db295 Bug 1755076 - Remove loosen-msvc-detection.patch. r=firefox-build-system-reviewers,nalexander
The patch conflicts with latest clang trunk changes.

It was necessary back when we started using clang-cl instead of MSVC,
and we needed to fallback to MSVC for sources that clang-cl couldn't
build. Nowadays, with cross-compiles, that fallback can't happen
anyways, and even on native Windows builds we never use cl.exe.

Differential Revision: https://phabricator.services.mozilla.com/D138615
2022-02-12 05:52:14 +00:00
Mike Hommey 00c007643b Bug 1755076 - Adjust find_symbolizer_linux_clang patch to latest trunk. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D138592
2022-02-12 05:52:14 +00:00
Butkovits Atila 298b987a56 Backed out 3 changesets (bug 1715900) for causing Python failures. CLOSED TREE
Backed out changeset c1bad2dbd960 (bug 1715900)
Backed out changeset 2355ea418b97 (bug 1715900)
Backed out changeset 11c95163a2f6 (bug 1715900)
2022-02-11 20:41:49 +02:00
Thomas Wisniewski 10326d782c Bug 1715900 - Add a mach test-interventions command for testing webcompat interventions; r=jgraham,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D138384
2022-02-11 17:27:44 +00:00