Commit Graph

197 Commits

Author SHA1 Message Date
Mike Hommey
5995e853ab Bug 1748373 - Don't print out the contents of CMake{Output,Error}.log. r=firefox-build-system-reviewers,mhentges
When cmake fails during the clang build, we currently print out the
contents of CMakeOutput.log and CMakeError.log because they may contain
something useful to debug what happened. Unfortunately, because the
treeherder log parser doesn't see the actual error, it reports the
normal error that are part of the logs as being the errors causing the
failure, the first one of which is a check whether malloc/malloc.h is a
thing, which it is not, and that's normal.

So instead of printing them out, we provide the files as artifacts.

Differential Revision: https://phabricator.services.mozilla.com/D134999
2022-01-04 22:15:16 +00:00
Mike Hommey
65fd541d6a Bug 1748056 - Build libc++ in clang for Windows. r=firefox-build-system-reviewers,andi
This brings parity with other platforms.

Differential Revision: https://phabricator.services.mozilla.com/D134911
2021-12-31 08:00:01 +00:00
Sylvestre Ledru
c98b01901b Bug 1747032 - Remove -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly and add it as target r=firefox-build-system-reviewers,glandium
Differential Revision: https://phabricator.services.mozilla.com/D134380
2021-12-22 06:39:00 +00:00
Mike Hommey
19efa34a94 Bug 1745115 - Allow to give multiple configs to build-clang.py. r=firefox-build-system-reviewers,andi
And merge them. This will allow to deduplicate and uniformize them.

Differential Revision: https://phabricator.services.mozilla.com/D133316
2021-12-10 00:29:58 +00:00
Mike Hommey
6fda315741 Bug 1745115 - Adjust patches paths earlier. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D133315
2021-12-10 00:29:57 +00:00
Mike Hommey
069f601300 Bug 1745115 - Default number of stages to build clang to 2. r=firefox-build-system-reviewers,andi
- stage 1 is building clang with whatever compiler is available
- stage 2 is building clang with the clang built during stage 1
- stage 3 is building clang with the clang built during stage 2. It's
only useful when it's actively compared against stage 2, or when
there's a stage 4.
- stage 4 is building clang with the clang built during stage 3, with the
profile generated during stage 3, when stage 2 produced a clang with
instrumentation enabled.

We're not actively comparing the output of stage 2 and 3 when not doing
PGO, so it's not useful to do 3-stage builds.

Differential Revision: https://phabricator.services.mozilla.com/D133314
2021-12-10 00:29:57 +00:00
Mike Hommey
9a17df5335 Bug 1744890 - Remove build_libcxx from individual configs. r=firefox-build-system-reviewers,andi
And make build-clang use a sensible default corresponding to what
the configs were doing.

Differential Revision: https://phabricator.services.mozilla.com/D133175
2021-12-08 06:29:14 +00:00
Mike Hommey
548aa9d677 Bug 1744182 - Disable clang support for curl. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D133011
2021-12-08 06:29:12 +00:00
Mike Hommey
8c298c086f Bug 1736502 - Work around clang trunk changes that break our clang-trunk build. r=andi
Short of solving this by fully embracing the monorepo build and removing
the projects/ workarounds (which will also require a compat more with
older clang versions we still build with the same script), we can solve
the bustage with a small hack.

Differential Revision: https://phabricator.services.mozilla.com/D131458
2021-11-18 06:43:03 +00:00
Andi-Bogdan Postelnicu
e3951683f2 Bug 1731582 - Move to clang-13 r=firefox-build-system-reviewers,mhentges,decoder
Join work with glandium.

Differential Revision: https://phabricator.services.mozilla.com/D126208
2021-10-20 12:03:20 +00:00
Mike Hommey
060f092d99 Bug 1730078 - Only use the sysroot for the final stage of the clang compilation. r=firefox-build-system-reviewers,andi
Using the sysroot with GCC requires some unnecessary complication, and
we don't really care if the first stages are not using the sysroot.

Differential Revision: https://phabricator.services.mozilla.com/D125161
2021-09-15 02:39:53 +00:00
Mike Hommey
639cb95294 Bug 1730078 - Don't build some things during early stages of the clang compilation. r=firefox-build-system-reviewers,andi,mhentges
Building sanitizers in older versions of clang emit errors when built with
newer GCC because of some narrowing conversions. We only really need the
sanitizers in the final stage anyways, so we force-disable them (and
everything else that might enable "sanitizer-common") in early stages.

Building the lli tool (also used in tests) fails as well, and we don't
need it until the final stage (where we need it to ship it).

Differential Revision: https://phabricator.services.mozilla.com/D125159
2021-09-15 02:39:52 +00:00
Mike Hommey
999e1095e7 Bug 1726453 - Don't set LLVM_LIBDIR_SUFFIX=64 when building android-cross clang. r=firefox-build-system-reviewers,mhentges
It's an unnecessary difference with our other clang builds. It looks
like it was cargo-culted from some external script. It makes the
android-cross clang different in the way it finds e.g. compiler
runtimes, some of which are in lib/, and others in lib64/, and only the
latter are actually found.

Differential Revision: https://phabricator.services.mozilla.com/D123017
2021-08-20 03:56:12 +00:00
Mike Hommey
859a6854ae Bug 1724522 - Split wasi-sysroot in two separate toolchains. r=firefox-build-system-reviewers,mhentges
The wasi-sysroot toolchain contains both a sysroot for wasi and a
compiler-rt for clang. That makes it impractical to use as a
bootstrapped sysroot for wasm32-wasi builds of Spidermonkey.

We thus split the toolchain in two, one for the compiler-rt and one
for the sysroot. Ideally, the compiler-rt one would avoid building
clang/llvm the same way the sysroot one does, but that leads to
a case of chicken-and-egg, because the compiler-rt is needed to build
the clang toolchain. Eventually, the clang build would be split from
the addition of the compiler-rt, but we're not there yet.

Differential Revision: https://phabricator.services.mozilla.com/D122402
2021-08-13 07:07:45 +00:00
Mike Hommey
2d5106dc7e Bug 1720820 - Remove python executable configuration from clang build script. r=firefox-build-system-reviewers,andi
Clang >= 11 ignores PYTHON_EXECUTABLE entirely (and uses python3, which
is not even what we pass, but that's actually fine), and all the build
tasks we have on older versions find the python executable they need on
their own.

Differential Revision: https://phabricator.services.mozilla.com/D120049
2021-07-17 04:29:10 +00:00
Mike Hommey
6c61b3d0e3 Bug 1704766 - Remove libstdc++ from clang toolchains. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D119140
2021-07-16 04:09:54 +00:00
Noemi Erli
b9568142b3 Backed out changeset a275000100a4 (bug 1704766) for causing build bustages CLOSED TREE 2021-07-15 02:14:21 +03:00
Mike Hommey
535903ba9e Bug 1704766 - Remove libstdc++ from clang toolchains. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D119140
2021-07-14 20:54:27 +00:00
Mike Hommey
21c0ef1bb9 Bug 1719226 - Fix clang bustage r=bustage-fix. CLOSED TREE 2021-07-07 03:15:49 +03:00
Mike Hommey
9db070c284 Bug 1719226 - Remove old workarounds when building clang. r=firefox-build-system-reviewers,andi
- we needed -gcc-toolchain to pick C/C++ standard headers from the right
version of GCC, but we now have them in the toolchain sysroot (bug
1719207), so we can use that instead.
- we needed LD_LIBRARY_PATH when clang was built on an older version of
Debian, but that was changed in bug 1694775.

Differential Revision: https://phabricator.services.mozilla.com/D119135
2021-07-06 21:47:10 +00:00
Mike Hommey
a0aa5df96e Bug 1719226 - Properly print cmake error files. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D119134
2021-07-06 21:47:10 +00:00
Mike Hommey
f6d6a49164 Bug 1719225 - Don't build binutils as part of gcc. r=firefox-build-system-reviewers,andi
We have a separate binutils toolchain already, and the only remaining
use of the binutils part of the the GCC toolchain is for the gold plugin
headers for clang, which we can add to the toolchain sysroot.

Differential Revision: https://phabricator.services.mozilla.com/D119133
2021-07-06 21:47:09 +00:00
Tom Ritter
9aa74fc199 Bug 1686975: Add clang-query to the clang-tidy tools r=andi
Differential Revision: https://phabricator.services.mozilla.com/D101939
2021-03-10 20:53:32 +00:00
Mike Hommey
582bcdb036 Bug 1692944 - Add a clang toolchain for arm64 mac. r=firefox-build-system-reviewers,andi,dmajor
Differential Revision: https://phabricator.services.mozilla.com/D105267
2021-02-22 21:38:34 +00:00
Mike Hommey
47d00cd583 Bug 1692944 - Reflect the fact that we're building clang with SDK 10.12. r=firefox-build-system-reviewers,andi,dmajor
We've been building clang with SDK 10.12 since bug 1680152, but the
build-clang script is still assuming we're building with an older one.

Differential Revision: https://phabricator.services.mozilla.com/D105266
2021-02-22 21:38:34 +00:00
Mike Hommey
2af25115fd Bug 1690937 - Build clang itself using a sysroot. r=firefox-build-system-reviewers,sheehan,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D104128
2021-02-09 00:44:01 +00:00
Mike Hommey
f4e30777ce Bug 1690934 - Adjust clang for use with sysroots. r=firefox-build-system-reviewers,sheehan,mhentges
When using the --sysroot argument to clang, clang changes where it
searches for libraries in its own directory, and excludes the lib and
lib32 subdirectories. So we need to move the gcc files to a place where
it does look (and that it also looks without --sysroot).

We however still keep a copy of libstdc++ in the lib directory for
runtime purposes.

Differential Revision: https://phabricator.services.mozilla.com/D104123
2021-02-08 20:06:40 +00:00
Cosmin Sabou
a2d836cae6 Bug 1686114 - Lint fix on build-clang.py. a=lint-fix 2021-01-29 15:43:10 +02:00
Tom Ritter
f3dafd68c0 Bug 1686114: Fix build-clang.py's --skip-checkout argument r=glandium DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D101397
2021-01-13 22:49:52 +00:00
Mike Hommey
2a6db6ddb1 Bug 1685034 - Add the task-id to the clang version. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D100875
2021-01-07 17:07:15 +00:00
David Major
8d6c68a85e Bug 1680826 - Update MSVC compat version in build-clang.py r=firefox-build-system-reviewers,mhentges
In https://reviews.llvm.org/D92515, clang-12 bumps the build requirement to MSVC version 19.14.

We've already updated well past that (most recently bug 1485224) but build-clang.py never got the memo.

Differential Revision: https://phabricator.services.mozilla.com/D98806
2020-12-04 20:43:30 +00:00
Mike Hommey
a16df7ef7e Bug 1680152 - Fixup: Bump deployment target to 10.12 when building clang.
Differential Revision: https://phabricator.services.mozilla.com/D98544
2020-12-02 22:43:11 +00:00
David Major
20491b0f28 Bug 1677147 - Update build-clang.py for "llvmbuildectomy" r=firefox-build-system-reviewers,mhentges
A recent change upstream [0] removed llvm-build, so we can't test for its files anymore.

[0] 9218ff50f9

Differential Revision: https://phabricator.services.mozilla.com/D97017
2020-11-14 03:15:54 +00:00
Ricky Stewart
31b8ca9716 Bug 1654103: Standardize on Black for Python code in mozilla-central.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Bogdan Tara
612312a64c Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart
065d2eb893 Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Dorel Luca
95b44c982f Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart
43baed3c18 Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
David Major
1dd334effe Bug 1662608 - Set -fcrash-diagnostics-dir in build-clang.py r=froydnj
This will let us get reproducers for compiler self-host assertion failures.

Differential Revision: https://phabricator.services.mozilla.com/D89079
2020-09-10 20:25:54 +00:00
Bogdan Tara
cdecea1029 Backed out changeset 1d92340a0f3c (bug 1662608) for clang5.0 failures CLOSED TREE 2020-09-09 01:43:09 +03:00
David Major
e1beae96e7 Bug 1662608 - Set -fcrash-diagnostics-dir in build-clang.py r=froydnj CLOSED TREE
This will let us get reproducers for compiler self-host assertion failures.

Differential Revision: https://phabricator.services.mozilla.com/D89079
2020-09-02 00:27:12 +00:00
Andi-Bogdan Postelnicu
f7fd17a94f Bug 1654557 - add clangd to the clang-tidy package. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D84528
2020-07-22 18:15:19 +00:00
David Major
be22488f0c Bug 1616694 - Allow build-clang to work with different Mac SDKs r=froydnj
LLVM 11 introduces a hard requirement for SDK 10.12 in order to build for Mac. We want to keep building older LLVMs with 10.11 though, so this patch adds some flexibility so that build-clang can make use of whatever SDK package a particular task pulls from tooltool (but still requesting a deployment target of 10.11).

Differential Revision: https://phabricator.services.mozilla.com/D82621
2020-07-13 22:44:54 +00:00
Tom Ritter
23ee0fb083 Bug 1652037 - Wire up build_clang_tidy_external in build-clang.py r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83120
2020-07-10 18:25:29 +00:00
Nathan Froyd
ef9678f6af Bug 1651675 - explicitly use some useful linker options when building clang; r=dmajor
clang/LLVM's build scripts can turn these on on their own, but explicitly
setting what we want is better than guessing.  The change is not huge, maybe
~2-3% on the major shared libraries (`libclang`, `libclang-cpp`, `libLLVM`),
about 1% on the overall `.tar.zst` size, but every little bit counts, right?

Differential Revision: https://phabricator.services.mozilla.com/D82896
2020-07-10 12:51:36 +00:00
june wilde
63268b0988 Bug 1648798 - Add option for importing external checks into clang-tidy; r=tjr,andi
Differential Revision: https://phabricator.services.mozilla.com/D81699
2020-07-07 18:05:27 +00:00
David Major
9aca834540 Bug 1650239 - Allow threads in our Mac clang build r=froydnj
Source history does not give any good clues about why this line was added in the first place. In any case, LLVM trunk currently has build bustage when threads are disabled. We could work around the bustage and/or wait for a fix, but it seems like threads are a good thing to have in general nowadays. Maybe this could help with LTO build times.

Differential Revision: https://phabricator.services.mozilla.com/D82447
2020-07-06 20:43:42 +00:00
Chris AtLee
bd503afc7b Bug 1637381: Use zstd for clang toolchains r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D74930
2020-05-21 13:31:55 +00:00
David Major
bcb9a52b46 Bug 1326486 - build-clang: Add support for PGO builds. r=glandium
This adds the ability to do four-stage PGO builds. This was surprisingly straightforward thanks to PGO being a well-supported scenario in LLVM's cmake.

For reference, the stages are:
stage1: Initial build with gcc
stage2: Instrumented build using stage1
stage3: Train by using the instrumented stage2 to build the clang tree
stage4: Optimize using the stage3 compiler and the profdata created with it

Differential Revision: https://phabricator.services.mozilla.com/D69080
2020-04-07 14:12:58 +00:00
David Major
a03ad942ec Bug 1326486 - build-clang: Add support for 4-stage builds r=glandium
Separating out the mechanical/"boring" changes to make the next patch more clear. This patch adds the ability to build a fourth stage that for now doesn't do anything special.

I changed to using >= to make it more obvious that e.g. "here is what's going to happen for stage 2" -- the off-by-one was too hard on my brain.

Differential Revision: https://phabricator.services.mozilla.com/D69079
2020-04-07 14:13:01 +00:00