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

170 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey 627c20902f Bug 1576099 - Allow to forcefully enable cargo incremental. r=firefox-build-system-reviewers,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D119714
2021-07-13 20:31:37 +00:00
Nick Alexander bef7042147 Bug 1524662 - Add --enable-path-remapping producing compiled objects with generic paths. r=glandium
For "c" (i.e., gcc, clang, and clang-cl), this configures the
`-f{debug,macro}-path-prefix` flags.  We'd prefer to use
`-ffile-path-prefix`, but it seems that `clang-cl` does not recognize
that flag.

For "rust" (i.e., rustc/cargo), this configures `--remap-path-prefix`.

This is one step toward getting `sccache` hits across source and
object directories.

Differential Revision: https://phabricator.services.mozilla.com/D113065
2021-06-10 17:08:06 +00:00
Mike Hommey 6aa8681545 Bug 1705324 - Enable CARGO_INCREMENTAL on local builds. r=firefox-build-system-reviewers,mhentges
irrespective of the optimization level. The code was previously using
the optimization level as a proxy for whether --enable-release is
enabled or not, which was invalidated by bug 1689284.

Differential Revision: https://phabricator.services.mozilla.com/D113730
2021-04-30 21:33:27 +00:00
Mike Hommey de4630db98 Bug 1708382 - Allow proc-macro-back-compat warning when building with rustc >= 1.52. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D113761
2021-04-29 21:08:27 +00:00
Mike Hommey c0e3e585ac Bug 1708382 - Inline rust_warning_flags into rust_flags. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D113760
2021-04-29 21:08:26 +00:00
Andi-Bogdan Postelnicu a63d3f564b Bug 1697215 - Disable value profiling in Rust PGO until we move to to rust 1.52. r=firefox-build-system-reviewers,glandium
Credit goes to dmajor.
Rust gets LLVM 12 - https://github.com/rust-lang/rust/pull/81451.
The PGO format changed between 11 and 12, and builds will have poor optimization if we mix versions in xLTO.
The above PR has landed on Rust nightly 1.52.
Until we move to 1.52 nightly we should have this landed.

In the meantime, for unblocking try builds, we can disable value-PGO in Rust.

Differential Revision: https://phabricator.services.mozilla.com/D113327
2021-04-28 09:56:12 +00:00
Mike Hommey 58fac4ff62 Bug 1704580 - Set rust optimization level via CARGO_PROFILE_*_OPT_LEVEL. r=firefox-build-system-reviewers,mhentges
Setting it via -C opt-level makes us hit
https://github.com/rust-lang/cargo/issues/9358 so use an alternative
way, that works since rust version 1.43.0.

Differential Revision: https://phabricator.services.mozilla.com/D112158
2021-04-20 00:33:59 +00:00
Mike Hommey 6736f91ada Bug 1704580 - Move various rust-related configure items to rust.configure. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D112157
2021-04-20 00:33:58 +00:00
Mike Hommey 856379bd2c Bug 1704685 - Fix lint.py mbu failures. r=fix 2021-04-13 08:58:54 +03:00
Mike Hommey 9bce63da4f Bug 1704685 - Remove leftover from bug 1686888. r=firefox-build-system-reviewers,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D111765
2021-04-13 04:57:48 +00:00
Chris Fallin e888f83b57 Bug 1701603 part 1 - Support WASI as a new target for compilation. r=glandium
Add new OS - WASI and new processor - wasm32 to the SM's build system.

Differential Revision: https://phabricator.services.mozilla.com/D110067
2021-04-08 08:02:15 +00:00
Mike Hommey de6099304e Bug 1686646 - Separate out Rust compiler search path. r=firefox-build-system-reviewers,dmajor
Differential Revision: https://phabricator.services.mozilla.com/D101717
2021-01-15 04:26:03 +00:00
Emilio Cobos Álvarez 04229a0075 Bug 1680080 - Optimize proc macros / build dependencies. r=glandium,firefox-build-system-reviewers,mhentges
On a very parallel debug build, I see a long time just waiting for
bindgen / style compilation / geckoservo.

Turns out that a bunch of this is just proc macros / build scripts.

Optimizing it saves between 10 and 17 seconds of my debug build. We
might want to consider running bindgen much like cbindgen rather than
rebuilding it all the time, which should help a lot more, but my guess
is that this should still help with the pretty hot custom derives that
the style crate runs.

This needs rust 1.41, so the requirement for tools/crashreporter needs
to be bumped as a consequence. To make things simpler, it was bumped
to 1.47 while we're at it.

Differential Revision: https://phabricator.services.mozilla.com/D98366
2020-12-04 01:35:51 +00:00
Mike Hommey 72cc842ad5 Bug 1671545 - Require at least rustc 1.47.0 to build. r=firefox-build-system-reviewers,dmajor
And remove the rust 1.43 toolchain, now it's not used anymore.

Differential Revision: https://phabricator.services.mozilla.com/D93733
2020-12-02 00:01:56 +00:00
Ricky Stewart 02a7b4ebdf 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 da1098d4aa 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 c0cea3b0fa 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 1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart 50762dacab 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
Mike Hommey 5afb69830c Bug 1670156 - Use the same prefix/suffix for rust libraries on mingw builds. r=firefox-build-system-reviewers,dmajor
Rustc >= 1.44 changed the file names of the static libraries it
produces with -windows-gnu targets, to match that of mingw clang/gcc.

Considering we still build on 1.43, the best fix would be to derive the
prefix/suffix based on the version of rust, but that actually turns into
a hard-to-solve problem because of configure tests for bindgen also
depending on the prefix/suffix value to be known.

On the other hand, we're soon due to an update to 1.47, so the simpler
solution is to just push mingw builds to require 1.44 (settling for the
smallest upgrade possible for now) and to remove the split between C and
rust library prefix/suffixes.

Differential Revision: https://phabricator.services.mozilla.com/D93726
2020-10-16 16:06:19 +00:00
Mike Hommey d3519998ac Bug 1520395 - Remove the python configure distinction between option and js_option. r=firefox-build-system-reviewers,andi,rstewart
Now that we don't recurse into the js python configure, we don't need to
have a special treatment for the options that need to be passed down to
that subconfigure, which is what js_option was for.

Differential Revision: https://phabricator.services.mozilla.com/D92727
2020-10-08 04:07:46 +00:00
Mitchell Hentges 915e40ef2c Bug 1658976: If usable Rust toolchain can't be found, print useful error r=froydnj
Previously, we would optimistically attempt to use a Rust toolchain that
matches the current C toolchain, and would throw an error if an
attempted compile with that Rust toolchain failed.

Instead, if we fail to detect a usable Rust toolchain, we now helpfully
inform users of their two options: change C toolchain, or install
matching Rust toolchain.

Differential Revision: https://phabricator.services.mozilla.com/D88084
2020-08-28 15:49:00 +00:00
Razvan Maries 61299e2191 Backed out 2 changesets (bug 1658976) for Gecko Decision Task bustages. CLOSED TREE
Backed out changeset 80fa7f7eea54 (bug 1658976)
Backed out changeset bcfab5a318fb (bug 1658976)
2020-08-28 18:44:31 +03:00
Mitchell Hentges 4b518c4edb Bug 1658976: If usable Rust toolchain can't be found, print useful error r=froydnj
Previously, we would optimistically attempt to use a Rust toolchain that
matches the current C toolchain, and would throw an error if an
attempted compile with that Rust toolchain failed.

Instead, if we fail to detect a usable Rust toolchain, we now helpfully
inform users of their two options: change C toolchain, or install
matching Rust toolchain.

Differential Revision: https://phabricator.services.mozilla.com/D88084
2020-08-28 14:22:43 +00:00
Mitchell Hentges 07133c01bc Bug 1656403: Configure should reject potentially-out-of-date nightlies r=firefox-build-system-reviewers,froydnj
We have a minimum rust version required for compilations. For both stable and beta rust compilers, we can trust that they will have all the stabilized features we're expecting.
However, for nightlies, they may "match" our minimum version, but may have been released in the version window before a certain feature we need has been stabilized.
So, when validating rustc version in configure, ensure that the nightly is at least one version newer than our expected version.

Differential Revision: https://phabricator.services.mozilla.com/D86889
2020-08-21 19:19:36 +00:00
Mike Hommey 2a4eb30ed4 Bug 1654465 - Set -Cembed-bitcode=yes instead of CARGO_PROFILE_RELEASE_LTO. r=firefox-build-system-reviewers,rstewart
It turns out setting CARGO_PROFILE_RELEASE_LTO has unwanted side
effects.

First it's not actually strictly equivalent to using `cargo rustc --
-Clto`. For instance, it apparently also enables cross-language LTO in
newer versions of cargo.

Second, it changes the rust computed hash for all the dependencies of
the crate being built with the variable set, which makes them diverge
from when the same dependencies are built through another crate in the
tree that is not LTOed. This effectively makes us build a _lot_ of
crates twice, many of which are not cacheable.

Since the original problem is that cargo >= 1.45 passes extra flags (`-C
embed-bitcode=no`) to rustc that are incompatible with `-Clto`, and while
it knows to adjust based on the `lto` setting in the build profile
(which CARGO_PROFILE_RELEASE_LTO overrides the default of), cargo
ignores flags passed via `cargo rustc -- ...` when making those
adjustments.

So, we need to override with `-C embed-bitcode=yes` on our own at the
same time we pass `-Clto`. But doing that through `cargo rustc -- ...`
is not enough because all the dependencies of the crate built with
`-Clto` need to be built with `-C embed-bitcode=yes`. So we need to
override with `RUSTFLAGS`, which will affect all the dependencies.
But we also need to do this consistently across all crates, not only the
dependencies of crates built with `-Clto`, otherwise we'd still end up
building crates twice (once with and once without the override).

Unfortunately, the `-C embed-bitcode=*` flag is also not supported in
versions older than 1.45, so we have to avoid adding it on older
versions.

We unfortunately support a large range of versions of rustc (albeit only
for tools/crashreporter), but we actually need to upgrade the smaller
supported version because rustc < 1.38 doesn't support our top-level
Cargo.lock. This makes the version check slightly less awful.

Differential Revision: https://phabricator.services.mozilla.com/D84652
2020-07-27 21:23:57 +00:00
Ricky Stewart 3395ee63c9 Bug 1649850 - Refactor minimum Rust version into a common place for `bootstrap` and `configure` r=nalexander
The lack of duplication should prevent bugs like bug 1649039 popping up again.

Differential Revision: https://phabricator.services.mozilla.com/D82060
2020-07-02 18:05:58 +00:00
Mike Hommey 90a47ff4ef Bug 1648343 - Require rustc 1.43 to build. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D81246
2020-06-25 23:41:16 +00:00
David Major 1a4ad7b34a Bug 1632950 - Avoid failing the build when rustlib/etc is missing r=glandium
This was the case with my local rustc build today. We only use this directory for natvis files, it's fine to not have those.

Differential Revision: https://phabricator.services.mozilla.com/D72440
2020-04-28 07:28:19 +00:00
Chris Manchester 9a39bce9e0 Bug 1615003 - Require rustc 1.41 to build. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D63372

--HG--
extra : moz-landing-system : lando
2020-02-27 16:21:13 +00:00
Bogdan Tara 32800c141f Backed out changeset 7bf42b92bb7e (bug 1615003) for causing build bustages CLOSED TREE 2020-02-26 20:35:02 +02:00
Chris Manchester f4fd5b69cb Bug 1615003 - Require rustc 1.41 to build. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D63372

--HG--
extra : moz-landing-system : lando
2020-02-26 18:12:34 +00:00
Brindusan Cristian b7970646fb Backed out changeset 1ce1b379d5c9 (bug 1615003) for breaking Gecko decision task. CLOSED TREE 2020-02-26 19:48:06 +02:00
Chris Manchester c54ae051b3 Bug 1615003 - Require rustc 1.41 to build. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D63372

--HG--
extra : moz-landing-system : lando
2020-02-20 12:38:43 +00:00
Ricky Stewart 232331fdb4 Bug 1610944 - configure/test_toolchain_configure.py and configure/test_toolchain_helpers.py support Python 3 r=firefox-build-system-reviewers,mshal CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D60743

--HG--
extra : source : f5b4973be6dac983ff87add5d198f959de2cec78
extra : amend_source : 30b53ec7c0a22138d43d9c7e85c6e43c9dea84b1
2020-01-23 17:15:38 +00:00
Csoregi Natalia c12e02a6be Backed out changeset f5b4973be6da (bug 1610944) for nightly bustages. a=backout 2020-01-24 13:40:32 +02:00
Ricky Stewart e82e92605b Bug 1610944 - configure/test_toolchain_configure.py and configure/test_toolchain_helpers.py support Python 3 r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D60743

--HG--
extra : moz-landing-system : lando
2020-01-23 17:15:38 +00:00
Cosmin Sabou 7b76379364 Backed out changeset 7c2048122a9f (bug 1610944) for causing L10n bustages. 2020-01-23 07:21:28 +02:00
Ricky Stewart 3003ade6dd Bug 1610944 - configure/test_toolchain_configure.py and configure/test_toolchain_helpers.py support Python 3 r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D60743

--HG--
extra : moz-landing-system : lando
2020-01-22 23:46:36 +00:00
Chris Manchester 4d12edfd8d Bug 1594538 - Require rustc 1.39 to build. r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D57396

--HG--
extra : moz-landing-system : lando
2019-12-17 17:12:21 +00:00
Chris Manchester 5a33be02e2 Bug 1595218 - Update rust target detection for rustc 1.39. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D53901

--HG--
extra : moz-landing-system : lando
2019-12-05 04:53:11 +00:00
Razvan Maries c9cf973dbf Backed out 3 changesets (bug 1595218) for build bustages. CLOSED TREE
Backed out changeset 499b0c27da4f (bug 1595218)
Backed out changeset f2f230a3028d (bug 1595218)
Backed out changeset 93ec75efbf41 (bug 1595218)
2019-12-05 02:53:04 +02:00
Chris Manchester a85167cf6b Bug 1595218 - Update rust target detection for rustc 1.39. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D53901

--HG--
extra : moz-landing-system : lando
2019-12-04 23:37:16 +00:00
Gurzau Raul 87ac4a3719 Backed out 3 changesets (bug 1595218) for Windows wrench failures.
Backed out changeset 9fdeeb697611 (bug 1595218)
Backed out changeset d7f9a4045360 (bug 1595218)
Backed out changeset 30bb03117312 (bug 1595218)
2019-12-04 05:49:06 +02:00
Ricky Stewart 7e35d31d8c Bug 1598642 - Fix error message when rustc/cargo are not installed r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D55738

--HG--
extra : moz-landing-system : lando
2019-12-03 22:39:17 +00:00
Chris Manchester be8da63e8e Bug 1595218 - Update rust target detection for rustc 1.39. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D53901

--HG--
extra : moz-landing-system : lando
2019-12-03 21:51:47 +00:00
shindli 4562fd4c3b Backed out 3 changesets (bug 1595218) for causing wrench bustages on central CLOSED TREE a=backout
Backed out changeset 1808b1722f64 (bug 1595218)
Backed out changeset 46fe2af291cf (bug 1595218)
Backed out changeset 11c0576cf3d5 (bug 1595218)
2019-12-03 13:17:59 +02:00
Chris Manchester 9eb1bdb17b Bug 1595218 - Update rust target detection for rustc 1.39. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D53901

--HG--
extra : moz-landing-system : lando
2019-11-22 00:02:18 +00:00
Chris Manchester e69835925b Bug 1587913 - Fix rust target detection for rustc 1.38. r=firefox-build-system-reviewers,glandium
Differential Revision: https://phabricator.services.mozilla.com/D48996

--HG--
extra : moz-landing-system : lando
2019-10-16 22:16:13 +00:00
Chris Manchester 0bb09fc35d Bug 1578596 - Require rustc 1.37. r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D44699

--HG--
extra : moz-landing-system : lando
2019-09-04 19:08:28 +00:00