Commit Graph

177 Commits

Author SHA1 Message Date
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
David Major
0fb3cb6a24 Bug 1326486 - build-clang: Install imports and asan symbols only in the final stage r=glandium
Otherwise, PGO builds would fail to find asan at stage2 because the instrumented build uses `LLVM_BUILD_RUNTIME=No`.

Differential Revision: https://phabricator.services.mozilla.com/D69082
2020-04-07 14:12:56 +00:00
David Major
149a4e1d41 Bug 1326486 - build-clang: avoid building unnecessary things in intermediate stages. r=glandium
This will partially atone for making builds longer with PGO.

Depends on D69618

Differential Revision: https://phabricator.services.mozilla.com/D69620
2020-04-07 14:12:47 +00:00
David Major
39215fc4fe Bug 1326486 - build-clang: pass is_final_stage even for stage1. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D69618
2020-04-07 14:12:49 +00:00
Mihai Alexandru Michis
6e318ac471 Backed out 7 changesets (bug 1326486) for causing bpgo failures.
CLOSED TREE

Backed out changeset 810a84a18948 (bug 1326486)
Backed out changeset e04c57ed0c04 (bug 1326486)
Backed out changeset 493c338ad705 (bug 1326486)
Backed out changeset 96701b9815c2 (bug 1326486)
Backed out changeset 8adfc59eb3c5 (bug 1326486)
Backed out changeset 441282fd1fea (bug 1326486)
Backed out changeset a64593d4c645 (bug 1326486)
2020-04-07 17:08:08 +03:00
David Major
773fddeaa4 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 08:32:32 +00:00
David Major
8d0ca79064 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 08:29:02 +00:00
David Major
5c15fe7f60 Bug 1326486 - build-clang: Install imports and asan symbols only in the final stage r=glandium
Otherwise, PGO builds would fail to find asan at stage2 because the instrumented build uses `LLVM_BUILD_RUNTIME=No`.

Differential Revision: https://phabricator.services.mozilla.com/D69082
2020-04-07 08:27:36 +00:00
David Major
31cc939032 Bug 1326486 - build-clang: avoid building unnecessary things in intermediate stages. r=glandium
This will partially atone for making builds longer with PGO.

Depends on D69618

Differential Revision: https://phabricator.services.mozilla.com/D69620
2020-04-07 08:27:26 +00:00
David Major
a5b7056a53 Bug 1326486 - build-clang: pass is_final_stage even for stage1. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D69618
2020-04-07 08:25:29 +00:00
Mike Hommey
4a3c606591 Bug 1450088 - Build clang with libxml2 support. r=froydnj
This is required for llvm-mt, which building winchecksec will require.
We do a dummy change to build-clang.sh so as to change the toolchain
index hash.

Differential Revision: https://phabricator.services.mozilla.com/D68153
2020-03-26 21:53:00 +00:00
Andi-Bogdan Postelnicu
5f558eb3a4 Bug 1619921 - enable clang-plugin with support for alpha checkers module. r=froydnj,sg
Differential Revision: https://phabricator.services.mozilla.com/D65314
2020-03-17 07:01:09 +00:00
David Major
1fa367e917 Bug 1614367 - Fix CMAKE_FIND_ROOT_PATH in build-clang for mac r=glandium
Best as I can tell, this was a longstanding typo. This went unnoticed because cmake didn't do any interesting `find`s -- until recently in LLVM 10, where zlib is now queried via `find_package`.

Differential Revision: https://phabricator.services.mozilla.com/D62829
2020-02-18 07:45:12 +00:00
Ricky Stewart
2c3b716311 Bug 1601448 - The clang.tar.xz bootstrap artifact should contain the libclang_rt.builtins-wasm32.a archive r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D56019
2019-12-09 16:59:49 +00:00
Andi-Bogdan Postelnicu
5b7059ac8c Bug 1584175 - Add lib/libclang-cpp.* to the clang-tidy artifact. r=froydnj,dmajor
Since we've upgraded to clang 9, clang-format changed and now uses dynamic libraries
for the clang tooling lib that it leverages.

Differential Revision: https://phabricator.services.mozilla.com/D47265
2019-09-27 12:19:13 +00:00
Nathan Froyd
40765919d7 Bug 1579870 - add wasm support to our clang builds; r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D45201
2019-09-17 20:14:17 +00:00
David Major
41825e54fd Bug 1578775: Remove LIBCXX_LIBCPPABI_VERSION from build-clang.py r=glandium
This build workaround was made unnecessary (and in fact harmful) by 2d0b4d6bb3 (diff-140d2deaecabaad987b883a1de1c2aa4) which landed in LLVM 9.

It seems that we don't need this anyway even on our current LLVM 8 builds, so landing this separately in preparation for bug 1573211.

Reviewed as part of a larger patch in https://phabricator.services.mozilla.com/D44160#1342283

MANUAL PUSH: This may cause a toolchain rebuild.
2019-09-04 12:01:59 -04:00
Nathan Froyd
036dfbf6a9 Bug 1572724 - remove unused URL_REPO definition from build-clang.py; r=glandium
This definition is now unnecessary, given that the source code is
fetched for us from elsewhere.

Depends on D41368

Differential Revision: https://phabricator.services.mozilla.com/D41369
2019-08-09 21:12:31 +00:00
Nathan Froyd
128b7adc73 Bug 1572724 - preserve symlinks when installing libgcc; r=glandium
Otherwise we wind up with clownshoes like:

```
froydnj@hawkeye:/opt/build/froydnj/tmp/clang$ ls -l lib/libstdc++.so*
-rwxr-xr-x 1 froydnj froydnj 11633720 Aug  6 20:44 lib/libstdc++.so
-rwxr-xr-x 1 froydnj froydnj 11633720 Aug  6 20:44 lib/libstdc++.so.6
-rwxr-xr-x 1 froydnj froydnj 11633720 Aug  6 20:44 lib/libstdc++.so.6.0.24
```

and have duplicate copies of shared libraries in our toolchain packages,
which are not exactly small.

Differential Revision: https://phabricator.services.mozilla.com/D41368
2019-08-09 21:11:31 +00:00
Mike Hommey
7864ddeec6 Bug 1573378 - Make build-clang independent of what MOZ_FETCHES_DIR resolves to. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D41711
2019-08-15 11:21:42 +09:00
Mike Hommey
6d834cb75d Bug 1571576 - Flush stderr before running subprocesses in build-clang. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D40728
2019-08-07 13:54:22 +09:00