Commit Graph

8471 Commits

Author SHA1 Message Date
Sylvestre Ledru
65d8b0025e Bug 1564252 - Move to clang 8.0.1 r=glandium
Differential Revision: https://phabricator.services.mozilla.com//D42325

--HG--
extra : amend_source : 129ff97f6edc41ad7a2f54520141158416e75b8d
2019-08-20 21:06:24 +02:00
Nicholas Nethercote
adb9edf389 Bug 1574388 - Implement PHC on Mac. r=gsvelto,glandium
But it is not yet enabled; bug 1576515 will do that.

Differential Revision: https://phabricator.services.mozilla.com/D42264

--HG--
extra : moz-landing-system : lando
2019-08-25 23:16:05 +00:00
Razvan Maries
74868f6da5 Backed out 2 changesets (bug 1569728) for Android 4.0 API16+ GeckoView multi-arch fat AAR opt build bustages.
Backed out changeset a420714ee262 (bug 1569728)
Backed out changeset d24ed38c76cd (bug 1569728)
2019-08-24 19:09:21 +03:00
Nathan Froyd
faaa483c34 Bug 1569728 - manually instantiate some basic_string members for libstdc++ compat; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D41370

--HG--
extra : moz-landing-system : lando
2019-08-24 13:51:32 +00:00
Mike Hommey
d9320a4077 Bug 1576003 - Update workspace hack to avoid multiple builds of cranelift. r=nalexander
The discrepancy of features used for syn between jsrust and gkrust
triggered syn and its reverse dependencies up to cranelift to be
built once for jsrust and once for gkrust, while they are time consuming
to build.

Differential Revision: https://phabricator.services.mozilla.com/D43209

--HG--
extra : moz-landing-system : lando
2019-08-23 17:01:40 +00:00
Nathan Froyd
1c00fec375 Bug 1573820 - default to bfd ld for x86-64 Android; r=nalexander
This change looks a lot more complicated than it actually is.

The motivating issue is that on x86-64 android, the NDK uses gold as its
default linker, and on this platform gold has some bugs in how it handles
`.note.*` sections that lead to `strip` and `objcopy` produce invalid
binaries...or at least invalid binaries according to `elfhack`.  When
`elfhack` complains, the build stops, which is suboptimal.  Instead, let's
use bfd `ld`, which doesn't have these problems.

Except that when we make the change to provide `--enable-linker` with a
platform-specific default, the lint configure tests complain that the
provided help string is not using the proper format.  So we tack on the
sekret `{|}` string to satisfy the linter.

Differential Revision: https://phabricator.services.mozilla.com/D43098

--HG--
extra : moz-landing-system : lando
2019-08-23 19:26:22 +00:00
Dustin J. Mitchell
23d547abce Bug 1562686 - revert remaining unnecessary bit of bug 1187245; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D42644

--HG--
extra : moz-landing-system : lando
2019-08-23 12:32:02 +00:00
Dustin J. Mitchell
af8483e1ae Bug 1562686 - use AWS_IAM_CREDENTIALS_URL for all S3 sccache invocations r=chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D41454

--HG--
extra : moz-landing-system : lando
2019-08-23 12:39:25 +00:00
Bogdan Tara
b5b30d8b87 Backed out changeset cace4ffbecb2 (bug 1576030) requested by glandium 2019-08-23 11:36:03 +03:00
Mike Hommey
a1ebadbc30 Bug 1576030 - Allow to forcefully enable cargo incremental. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D43189

--HG--
extra : moz-landing-system : lando
2019-08-23 03:11:35 +00:00
Mike Hommey
3e303cdeb9 Bug 1576030 - Disable cargo incremental when using sccache. r=nalexander
For some reason, cargo incremental doesn't work as well as it should,
and doesn't perform as well as sccache does. So when building with
sccache, disable cargo incremental. This brought a no-change clobber
build with 100% cache from 3:50 to 2:05 on a beefy AWS instance I was
testing this with.

Differential Revision: https://phabricator.services.mozilla.com/D43188

--HG--
extra : moz-landing-system : lando
2019-08-23 04:50:55 +00:00
Mike Hommey
32044bbc45 Bug 1575804 - Don't decode the result from check_cmd_output. r=froydnj
Bug 1575135 changed check_cmd_output to return unicode strings, but a
couple places were already trying to do their own decoding, which now
can fail. Remove those.

Interesting the decoding was previously broken on Windows, this
actually fixes it (the output of hg config is not actually utf-8 on
Windows).

Differential Revision: https://phabricator.services.mozilla.com/D43044

--HG--
extra : moz-landing-system : lando
2019-08-22 17:02:39 +00:00
Mike Hommey
250c3cbc9a Bug 844509 - Don't encode environment in get_cmd_output and old_configure. r=nalexander
The configure sandbox has wrapped subprocess methods to add its own
encoded environment if none is provided, since bug 1520394. It only
makes sense that it normalizes the environment that comes in too,
avoiding caller in the configure sandbox to have to do it themselves.

OTOH, and while we're here, none of get_cmd_output, old_configure or the
sandbox were actually using the right encoding for this conversion, so
fix the configure sandbox to use the right one, and make it stop using
encode(), which does deep recursion that is not necessary here, and that
I'm trying to remove entirely.

Also while here, remove an unused import of encode().

Differential Revision: https://phabricator.services.mozilla.com/D42608

--HG--
extra : moz-landing-system : lando
2019-08-20 22:12:23 +00:00
Razvan Maries
3d74e341f9 Backed out 2 changesets (bug 1562686) as per glandium's request. CLOSED TREE
Backed out changeset 0ce37eda652a (bug 1562686)
Backed out changeset fe7b9445e1d3 (bug 1562686)
2019-08-22 02:43:16 +03:00
Mike Hommey
2efacbae3d Bug 1560700 - Remove now unused allow_unknown argument to split_triplet. r=chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D41482

--HG--
extra : moz-landing-system : lando
2019-08-13 22:30:38 +00:00
Mike Hommey
b444ca8929 Bug 1560700 - Change how the rust target is derived from the build system target. r=froydnj
There are a few problems with the strategy currently used to find the
rust target. For example, we don't find a target for arm freebsd, and we
pick the wrong target for armel linux. Both are related to how things
currently work when multiple targets have the same (cpu, endianness,
os).

So, to derive the rust target, we now use a more fine-grained approach.

Differential Revision: https://phabricator.services.mozilla.com/D41481

--HG--
extra : moz-landing-system : lando
2019-08-21 23:22:24 +00:00
Mike Hommey
47cdf6ea6a Fixup bug 1575471 to unbust aarch64 builds on a CLOSED TREE.
Differential Revision: https://phabricator.services.mozilla.com//D42981
2019-08-22 02:12:08 +03:00
Mike Hommey
76b948abd2 Bug 1575471 - Move make check from mozharness to moz-automation.mk. r=froydnj
Currently, we have no real visibility on the time spent after the build
finished, despite the fact that a large chunk is actually happening via
make check (although thankfully more and more of it is moving out to
separate tasks).

Also, the mozharness machinery for make check dates from when we were
running in buildbot and takes care of turning builds orange instead of
red in case of failure, etc. which doesn't do anything useful anymore.

Differential Revision: https://phabricator.services.mozilla.com/D42806

--HG--
extra : moz-landing-system : lando
2019-08-21 12:31:30 +00:00
Mike Hommey
e9fda46587 Bug 1575471 - Properly report the beginning of automation tiers. r=nalexander
The automation tiers all have a dependency:
  automation/%: automation-start/%

The dependency runs the command for BUILDSTATUS, making the resource
monitor aware of what tiers start. Unfortunately, Make decides to run
all these automation-start/% targets way before starting the
automation/% targets, because of how the interdependencies are laid out.

Use a slightly better way, albeit still biased, making the
automation-start/% target for a tier depend on the dependencies, which
at least ensures that the resource monitor doesn't see a tier starting
before its dependencies are finished.

Differential Revision: https://phabricator.services.mozilla.com/D42805

--HG--
extra : moz-landing-system : lando
2019-08-21 21:25:35 +00:00
David Major
cd1c868537 Bug 1573501 - Disable -Wtautological-type-limit-compare r=froydnj
This warning, new in clang 9, is noisy about patterns like:

```
unsigned long x = ...
if (x > 4294967295)
```

The condition is always false on 32-bit and LLP64 systems, but on LP64 it's a valid test.

Differential Revision: https://phabricator.services.mozilla.com/D42346

--HG--
extra : moz-landing-system : lando
2019-08-21 15:32:26 +00:00
Dustin J. Mitchell
be3fd44f98 Bug 1562686 - revert remaining unnecessary bit of bug 1187245; r=glandium
Depends on D41454

Differential Revision: https://phabricator.services.mozilla.com/D42644

--HG--
extra : moz-landing-system : lando
2019-08-21 03:32:05 +00:00
Dustin J. Mitchell
13f9bc563c Bug 1562686 - use AWS_IAM_CREDENTIALS_URL for all S3 sccache invocations r=chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D41454

--HG--
extra : moz-landing-system : lando
2019-08-20 14:03:12 +00:00
Daniel Varga
b703653c18 Merge mozilla-central to autoland. On a CLOSED TREE
--HG--
extra : rebase_source : ae31c873768b4a95fc6574d1bfbe7d17125bb40e
2019-08-21 14:45:21 +03:00
Daniel Varga
8b04757a32 Backed out changeset e533d2907a31 (bug 1564252) for build bustage at /lib/gcc/x86_64-unknown-linux-gnu/6.4.0. a=backout 2019-08-21 14:35:03 +03:00
Daniel Varga
ae8445aebc Merge mozilla-central to autoland. On a CLOSED TREE 2019-08-21 13:06:00 +03:00
Sylvestre Ledru
16b33cea9a Bug 1564252 - Move to clang 8.0.1 r=glandium
Remove r355141-arm64-cfg.patch (merged upstream)

Differential Revision: https://phabricator.services.mozilla.com/D42325

--HG--
extra : rebase_source : f74202e4459c46d45a8b4f5a8c00da080904e8bf
2019-08-20 21:06:24 +02:00
Chris Peterson
41241f3418 Bug 1514965 - Part 2: Enable clang -ftrivial-auto-var-init to initialize local variables with 0xAA in debug builds. r=froydnj
Disable -ftrivial-auto-var-init for DllBLocklistWin.cpp with clang-cl because the file's interceptions happen so early in the main process that the loader hasn't yet resolved the import of memset (used by -ftrivial-auto-var-init) from vcruntime140.dll.

Disable -ftrivial-auto-var-init on Linux32 because it causes some xpcshell test failures.

Differential Revision: https://phabricator.services.mozilla.com/D42273

--HG--
extra : moz-landing-system : lando
2019-08-21 07:08:29 +00:00
Chris Peterson
539da64637 Bug 1514965 - Part 1: Refactor mingw_clang checks for reuse. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D27358

--HG--
extra : moz-landing-system : lando
2019-08-21 07:08:04 +00:00
Cameron Kaiser
efe5f0901c Bug 1571613 - basic support for Power ISA SIMD detection (v2). r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D42592

--HG--
extra : moz-landing-system : lando
2019-08-21 03:36:55 +00:00
Mike Hommey
e0be5605ec Bug 1575135 - Return an unicode path for nodejs. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D42606

--HG--
extra : moz-landing-system : lando
2019-08-20 21:24:35 +00:00
Mike Hommey
00256d3837 Bug 1575135 - Make configure sandbox open() look more like python 3's. r=nalexander
As a consequence, we can replace the encoded_open function that did the
same in an opt-in manner.

Differential Revision: https://phabricator.services.mozilla.com/D42605

--HG--
extra : moz-landing-system : lando
2019-08-21 04:44:43 +00:00
Mike Hommey
16c5b7db29 Bug 1575135 - Change get_cmd_output to emit unicode strings. r=nalexander
Because most calling places in python configure don't actually want to
deal with encodings, although in practical terms they should, make
get_cmd_output handle it itself.

Places that explicitly do want bytes can keep using subprocess directly.

Differential Revision: https://phabricator.services.mozilla.com/D42604

--HG--
extra : moz-landing-system : lando
2019-08-20 16:43:15 +00:00
Mike Hommey
cce0006157 Bug 1575135 - Use functions from util.configure instead of subprocess.*. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D42603

--HG--
extra : moz-landing-system : lando
2019-08-20 16:42:16 +00:00
Mike Hommey
cc52fc2e1a Bug 1575135 - Define whether the system encoding is mbcs or utf-8 once. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D42601

--HG--
extra : moz-landing-system : lando
2019-08-20 16:40:24 +00:00
Mike Hommey
76e02a9e5d Bug 1575135 - Remove unused subprocess imports. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D42600

--HG--
extra : moz-landing-system : lando
2019-08-20 16:39:30 +00:00
Mike Hommey
2e9307d967 Bug 1574761 - Avoid race condition creating old-configure. r=nalexander
This is not something that happens under normal circumstances, but it
can happen when you go fancy and run multiple configures in parallel
with different objdirs, and old-configure doesn't exist in the first
place ; then one configure may overwrite old-configure while another is
starting to execute it, resulting in the latter nor executing
old-configure completely.

Differential Revision: https://phabricator.services.mozilla.com/D42428

--HG--
extra : moz-landing-system : lando
2019-08-19 23:21:27 +00:00
Nathan Froyd
e03796ae1a 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

--HG--
extra : moz-landing-system : lando
2019-08-09 21:12:31 +00:00
Nathan Froyd
10d28350d8 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

--HG--
extra : moz-landing-system : lando
2019-08-09 21:11:31 +00:00
David Major
0db5cad5ae Bug 1574565 - Whitelist __cxx_atomic for memmove static analysis r=Ehsan
In some libstdc++ these appear in the inheritance hierarchy of __atomic_base, which is already whitelisted.

Differential Revision: https://phabricator.services.mozilla.com/D42348

--HG--
extra : moz-landing-system : lando
2019-08-16 23:01:03 +00:00
Mike Hommey
312ec28e99 Bug 1573566 - Move the real libxul definition in a subdirectory. r=froydnj
The current setup, where gtest/libxul uses the static library in
the same directory as the shared libxul, and somehow the backend ignores
gkrust for gtest/libxul, is fragile.

Differential Revision: https://phabricator.services.mozilla.com/D42246

--HG--
rename : toolkit/library/dependentlibs.py => toolkit/library/build/dependentlibs.py
extra : moz-landing-system : lando
2019-08-16 21:44:10 +00:00
Razvan Maries
cff855aa9c Backed out changeset 91eca815c9fc (bug 1562686) for build bustages. CLOSED TREE 2019-08-16 22:38:19 +03:00
Dustin J. Mitchell
ad85abed68 Bug 1562686 - use AWS_IAM_CREDENTIALS_URL for all S3 sccache invocations r=chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D41454

--HG--
extra : moz-landing-system : lando
2019-08-16 17:17:02 +00:00
Andreas Tolfsen
8350dc3134 bug 1540655: build, remote: add mach command for vendoring Puppeteer; r=firefox-build-system-reviewers,chmanchester
Introduces "./mach remote vendor-puppeteer" for vendoring the
Puppeteer client without dependencies into remote/test/puppeteer/.

The particular checkout of Puppeteer is
https://github.com/andreastt/puppeteer/tree/firefox, which contains a
couple of hotfixes we need for the client to work with the Firefox
implementation of CDP.

The remote agent targets a specific version of Puppeteer, so it is
not suitable for this to be vendored under third_party/.  We also
wouldn't want other code in central to accidentally use a patched fork.

The vendoring process is not part of "./mach vendor" because it does
not yet have Node.js support, and implementing that for mach is outside
the scope of getting the Puppeteer tests running with the remote agent.

Differential Revision: https://phabricator.services.mozilla.com/D37007

--HG--
extra : moz-landing-system : lando
2019-08-16 12:58:06 +00:00
Andreas Tolfsen
1c7db08de2 bug 1540655: build: sort MACH_MODULES; r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D37006

--HG--
extra : moz-landing-system : lando
2019-08-16 12:58:05 +00:00
Mike Hommey
c173540215 Bug 1573435 - Use toolchain fetches for all remaining toolchain uses. r=nalexander
The remaining uses all need adjustements to in-tree mozconfigs, so they
all need to be done at once.

However, to make things slightly more intelligible, we do this in two
steps. This is step 1: we modify the use_toolchain transform to take care of
the transformation, while keeping the task definitions intact, so that
we only deal with mozconfig and build script adjustements here.

Differential Revision: https://phabricator.services.mozilla.com/D41890
2019-08-15 11:21:52 +09:00
Mike Hommey
639908c191 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
Ciure Andrei
8a1785a6cc Backed out 11 changesets (bug 1540655) for test_resolve.py perma failures CLOSED TREE
Backed out changeset 1a23d770d8a1 (bug 1540655)
Backed out changeset 641a7cb25298 (bug 1540655)
Backed out changeset 73236f81da44 (bug 1540655)
Backed out changeset 8d7bad30be46 (bug 1540655)
Backed out changeset bb012df3018b (bug 1540655)
Backed out changeset 8c67b494e207 (bug 1540655)
Backed out changeset c0a80d37576d (bug 1540655)
Backed out changeset 939ce2afcf0b (bug 1540655)
Backed out changeset 3b3a2a9fbc8b (bug 1540655)
Backed out changeset b96dede008ad (bug 1540655)
Backed out changeset 997d1568d944 (bug 1540655)
2019-08-14 18:53:36 +03:00
Andreas Tolfsen
1c16637ab1 bug 1540655: build, remote: add mach command for vendoring Puppeteer; r=firefox-build-system-reviewers,chmanchester
Introduces "./mach remote vendor-puppeteer" for vendoring the
Puppeteer client without dependencies into remote/test/puppeteer/.

The particular checkout of Puppeteer is
https://github.com/andreastt/puppeteer/tree/firefox, which contains a
couple of hotfixes we need for the client to work with the Firefox
implementation of CDP.

The remote agent targets a specific version of Puppeteer, so it is
not suitable for this to be vendored under third_party/.  We also
wouldn't want other code in central to accidentally use a patched fork.

The vendoring process is not part of "./mach vendor" because it does
not yet have Node.js support, and implementing that for mach is outside
the scope of getting the Puppeteer tests running with the remote agent.

Differential Revision: https://phabricator.services.mozilla.com/D37007

--HG--
extra : moz-landing-system : lando
2019-08-14 14:57:51 +00:00
Andreas Tolfsen
e24280acf0 bug 1540655: build: sort MACH_MODULES; r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D37006

--HG--
extra : moz-landing-system : lando
2019-08-14 14:57:49 +00:00
Nathan Froyd
08b51223a9 Bug 1560666 - turn off C++17 aligned allocation support; r=glandium
Just like C++14 sized deallocation support, we don't want to support
this.  We shouldn't be using `new` on over-aligned types anyway.

Differential Revision: https://phabricator.services.mozilla.com/D41819

--HG--
extra : moz-landing-system : lando
2019-08-14 01:37:34 +00:00
Sylvestre Ledru
0dc8a7e274 Bug 1573769 - Update of the build-clang doc after the move to git r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D41910

--HG--
extra : moz-landing-system : lando
2019-08-14 07:40:58 +00:00
Nicholas Nethercote
4e52c0f072 Bug 1573080 - Fix some incorrect preprocessor.py docs. r=glandium
As shown by python/mozbuild/mozbuild/test/test_preprocessor.py, whitespace is
allowed within expressions, and chained #if/#elif/#else sequences work as you'd
expect.

Differential Revision: https://phabricator.services.mozilla.com/D41494

--HG--
extra : moz-landing-system : lando
2019-08-13 22:20:04 +00:00
Nathan Froyd
9fc6f1be89 Bug 1573601 - remove tabs in toolchain.configure; r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D41800

--HG--
extra : moz-landing-system : lando
2019-08-13 18:12:54 +00:00
André Bargull
268981bb20 Bug 1539780: Remove "--with-intl-api=build" build config option. r=jwalden
There are about the same number of occurrences of "ENABLE_INTL_API" and "EXPOSE_INTL_API"
in the tree, so preferring one over the other doesn't lead to fewer changes. Therefore
I went with "ENABLE_INTL_API", because "ENABLE_" (resp. "MOZ_ENABLE") is already used as
the prefix for other preprocessor ifdef's.

Differential Revision: https://phabricator.services.mozilla.com/D41188

--HG--
extra : moz-landing-system : lando
2019-08-09 19:43:19 +00:00
Brendan Dahl
b474db77c6 Bug 1551344 - Part 1: Remove XULDocument code. r=smaug,Jamie
All .xul files have been loading as HTMLDocuments for a few weeks now, so
it should be safe to remove the XULDocument implementation.

Differential Revision: https://phabricator.services.mozilla.com/D41238

--HG--
extra : moz-landing-system : lando
2019-08-09 19:57:50 +00:00
Nathan Froyd
3608ab49b8 Bug 1572216 - move LTO defaulting into mozconfig.win-common; r=glandium
Some recent changes to how we set cross-language LTO for Windows
resulted in compilation-time decreases and small performance regressions
on a few benchmarks.  The changes intended to remove explicit enablement
of cross-language LTO for all builds, but rely on shippable builds being
built with PGO and moz.configure's clever defaulting of cross-language
LTO for PGO'd builds on Windows, which would then enable cross-language
LTO for only shippable builds.

Obviously something went wrong with those changes.

The problem was our defaulting wasn't visible to moz.configure's logic
for how to pass command-line options to the JS subconfigure.  We set the
value (`cross`) after the value for `--enable-lto` has been determined,
and the default value is off (that is, `--disable-lto`).  Since
moz.configure is very thorough in passing configure options down into
JS, it dutifully looked at what the default value of `--enable-lto` was
supposed to be, and passed `--disable-lto` to JS's configure.

There's some evidence that we knew our defaulting was a little sketchy:
we'd only attempt cross-language LTO when we were performing the PGO use
phase, and only if the value of `--enable-lto` wasn't explicitly passed.
Which was a fine idea--you don't want to override what the user was
trying to do--but in the case of JS backfired on us: the value *was*
coming from the explicitly-passed command-line option of
`--disable-lto`.  So JS didn't enable any kind of LTO, with attendant
consequences.

This problem *didn't* happen before the aforementioned change because we
were explicitly specifying that `--enable-lto=cross` should be passed in
the mozconfig, which ensured that the correct setting was passed into
JS.  We were just setting `--enable-lto=cross` for *all* builds, which
was less than desirable.

The easiest way to fix all this is simply to put the
`--enable-lto=cross` setting in the Windows mozconfigs, conditional on
`MOZ_PGO_PROFILE_USE`.  That placement captures the intent of the
previous attempt at defaulting, but without the troubles described
above: the option explicitly appears on the command line, and
moz.configure will correctly pass it through to the JS subconfigure.
This also makes our Windows configuration closer to our Linux
configuration (the Linux configuration enables cross-language LTO for
both PGO phases, which is arguably a bug).

Differential Revision: https://phabricator.services.mozilla.com/D41080

--HG--
extra : moz-landing-system : lando
2019-08-09 13:22:08 +00:00
Mike Hommey
ee928b205d Bug 1572363 - Add a sparse profile for webrender tasks. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D41152

--HG--
extra : moz-landing-system : lando
2019-08-08 13:47:51 +00:00
Justin Wood
605aa0fa02 Bug 1473498 - More support for py3. r=firefox-build-system-reviewers,mshal
This patch makes BuildEnvironmentNotFoundException a subclass of AttributeError as well, because hasattr in
python3 no longer catches all tracebacks but only AttributeError, and we use both hasattr and
BuildEnvironmentNotFoundException to guard against a handful of buildconfig variables in a few places
where it is OK to not have a buildenvironment.

We also use universal_newlines in real_host in init.configure (since I found
that fix while working on the AttributeError one) so that we get the right string type back from the process call

Lastly this patch also uses BytesIO for calling into a ReducedConfigureSandbox as its stdout and stderr pipes,
This ensures that related code handling the sandbox doesn't complain about getbuffer() missing in StringIO in py3.

Differential Revision: https://phabricator.services.mozilla.com/D36605

--HG--
extra : moz-landing-system : lando
2019-08-06 21:26:54 +00:00
Mike Hommey
375094b924 Bug 1571596 - Repack GCC and related source tarballs. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D40748
2019-08-07 13:54:27 +09:00
Mike Hommey
392c0b5ec8 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
Mike Hommey
9cfb69a1b0 Bug 1571566 - Fix cmake error handling in build-clang.py after python3 conversion. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D40720
2019-08-07 13:54:21 +09:00
Mike Hommey
0d49eb3466 Bug 1571562 - Make tooltool-download.sh download and extract to MOZ_FETCHES_DIR. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D40712
2019-08-07 13:54:18 +09:00
Mike Hommey
034e9b6b7b Bug 1570541 - Use git fetch tasks for clang. r=froydnj
What this means is that the sources for clang/llvm are downloaded
separately from the toolchain build (which also means we finally only
download a given version of clang once for all platforms).

In turn, this means the build-clang.py script needs to start with an
existing llvm-project tree, and we choose to make build-clang.py expect
that it's run from the llvm-project root directory.

This also means we don't need to download git for the windows toolchain
task.

Differential Revision: https://phabricator.services.mozilla.com/D40402
2019-08-07 13:54:15 +09:00
Eric Rahm
26bdfd6480 Bug 1571836 - Enable Rust PGO on Linux64. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D40858

--HG--
extra : moz-landing-system : lando
2019-08-06 22:26:49 +00:00
Nicholas Nethercote
28a0265183 Bug 1569864 - Enable PHC on Win64 Nightly builds. r=glandium
Depends on D39841

Differential Revision: https://phabricator.services.mozilla.com/D39842

--HG--
extra : moz-landing-system : lando
2019-08-03 00:20:09 +00:00
Bogdan Tara
0ffa9e372d Merge inbound to mozilla-central. a=merge 2019-08-03 12:47:05 +03:00
Mike Hommey
9b84c9014f Bug 1570598 - Pass the clang json file as an argument to the toolchain script. r=froydnj
Make the argument use the same format as resources, so move the
sub-script invocation accordingly.

Differential Revision: https://phabricator.services.mozilla.com/D40364
2019-08-03 07:08:49 +09:00
Nathan Froyd
909e9c6f30 Bug 1568450 - explicitly specify a cpu for LTO linking on Windows; r=dmajor
By default, the linker chooses a "generic" 32-bit CPU to optimize for,
and LLVM's "generic" 32-bit CPU model doesn't include some features that
are helpful for performance on microbenchmarks.  We explicitly specify a
CPU model to ensure the model we want is selected.

On x86-64, we explicitly force a generically good processor model, even
though the automatically selected one didn't seem to hurt benchmarks.

Differential Revision: https://phabricator.services.mozilla.com/D40479

--HG--
extra : moz-landing-system : lando
2019-08-02 20:43:52 +00:00
Mike Hommey
c638ab3c85 Bug 1570796 - Use a fetch task for hfsplus-tools source code. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D40329

MANUAL PUSH: avoid closing autoland while all docker images and
toolchains are rebuilt.
2019-08-02 19:07:06 +09:00
Mike Hommey
6e5fc78628 Bug 1570564 - Convert build-clang.py to python 3. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D40152
2019-08-02 19:06:20 +09:00
Mike Hommey
4c62b1281b Bug 1570515 - Change how build-clang.py consumes subprocess output. r=froydnj
Bug 1546136 wrapped subprocess execution output to capture cmake's, but
at the detriment of other output, and hiding everything unless an error
occurs.

So instead, we only capture the output when the called process is cmake,
and even when it is cmake, we don't pipe stderr at all (since we only
care about cmake's stdout) and we print out stdout as it comes in rather
than later. We then later check the output for hints at the more useful
cmake logs and dump them.

While here, add verbosity to ninja output (which gives the command
lines, rather than generic "Building foo.o" output).

Differential Revision: https://phabricator.services.mozilla.com/D40142
2019-08-02 19:06:00 +09:00
Nathan Froyd
8118763f6a Bug 1569709 - add --enable-profile-{generate,use}=cross option; r=mshal
This change gives us the ability to selectively turn on cross-language
PGO, just like we have the ability to selectively turn on cross-language LTO.

There is room for things to go wrong here: it's not guaranteed that
`--enable-profile-generate=cross` will always be used with
`--enable-profile-use=cross`.  Nothing bad will happen in the sense that
the build will succeed, but it's possible that we miss out on
optimizations on the Rust side.  Either we fail to generate profile data
for the Rust code, or the Rust compiler fails to use the profile data.

In the future, we may want to default to cross-language PGO to avoid
these kind of mismatches.

Differential Revision: https://phabricator.services.mozilla.com/D39727

--HG--
extra : moz-landing-system : lando
2019-08-02 00:57:46 +00:00
Nathan Froyd
f51898d9da Bug 1568026 - move LTO/PGO configure bits to a new file; r=dmajor
To do properly checks on LLVM version correspondence between `clang` and
`rustc`, we need information about both of those compilers to be
available.  The current placement of the LTO/PGO checks is after we know
something about `clang`, but before we know something about `rustc`.
Therefore we need to move those checks after we've gathered information
about `rustc`.

The PGO bits come along for this bug because the LTO bits depend on
them, and we're going to need the Rust information for cross-language
PGO checks in a different bug.  So we might as well move everything all
at once.

Differential Revision: https://phabricator.services.mozilla.com/D39390

--HG--
rename : build/moz.configure/toolchain.configure => build/moz.configure/lto-pgo.configure
extra : moz-landing-system : lando
2019-07-30 16:38:39 +00:00
Nathan Froyd
748c1f7ff0 Bug 1568026 - parse the LLVM version from rustc's version output; r=dmajor
This change will eventually enable us to cross-check `rustc`'s version
with `clang`'s version when doing cross-language LTO/PGO and avoid
people running into peculiar errors at link time.

Differential Revision: https://phabricator.services.mozilla.com/D39388

--HG--
extra : moz-landing-system : lando
2019-07-25 20:45:34 +00:00
Razvan Maries
3ca183c1a2 Merge mozilla-inbound to mozilla-central a=merge 2019-08-02 00:21:57 +03:00
Sylvestre Ledru
2505df426c Bug 1566336 - Build clang from git rather than subversion. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D38361

MANUAL PUSH: avoid closing autoland while clang rebuilds.
2019-08-01 07:26:55 +09:00
Mike Hommey
70693454fd Bug 1570224 - Use nproc instead of getconf _NPROCESSORS_ONLN. r=nalexander
Plenty of places use `nproc`, and only a couple use `getconf
_NPROCESSORS_ONLN`. Use the former instead of the latter.

Differential Revision: https://phabricator.services.mozilla.com/D39999

--HG--
extra : moz-landing-system : lando
2019-07-31 17:21:22 +00:00
Andrew Halberstadt
d3ccaac56c Bug 1473498 - Fix Python 3 environment variables with subprocess r=glandium
On Windows in Python 2, the subprocess module requires the use of bytes with
the 'env' argument. For that reason, we would sometimes use byte strings with
'os.environ' like so:

    os.environ[b"FOO"] = b"bar"

However, this is a failure with Python 3 as 'os.environ' must only be used with
the text type. This patch creates a new 'setenv' helper that ensures we create
new environment with 'bytes' on Python 2, and 'text' on Python 3.

Differential Revision: https://phabricator.services.mozilla.com/D38237

--HG--
extra : moz-landing-system : lando
2019-07-30 21:35:53 +00:00
Aaron Klotz
20bd2d4b30 Bug 1569681: Part 2 - Add new clang-plugin tests for moz_static_local_class and moz_trivial_destructor attributes; r=Ehsan
These tests are based on `moz_global_class` and `moz_trivial_ctor_dtor` tests,
respectively, but adapted for the semantics of the new attributes.

Differential Revision: https://phabricator.services.mozilla.com/D39718

--HG--
rename : build/clang-plugin/tests/TestGlobalClass.cpp => build/clang-plugin/tests/TestStaticLocalClass.cpp
rename : build/clang-plugin/tests/TestTrivialCtorDtor.cpp => build/clang-plugin/tests/TestTrivialDtor.cpp
extra : moz-landing-system : lando
2019-07-30 18:50:54 +00:00
Aaron Klotz
b21e723d2e Bug 1569681: Part 1 - Add support for moz_static_local_class and moz_trivial_dtor to clang-plugin; r=Ehsan
This patch is in support of adding a variant of Static{Auto,Ref}Ptr for use as
static locals, taking advantage of C++11 "magic statics" such that we can lazily
initialize those variables in a thread-safe way.

In support of those classes, this patch adds two new attributes:

* `moz_static_local_class` to ensure that any instantiations of that class only
  occur as static local variables;
* `moz_trivial_dtor` to ensure that these classes do not implicitly call `atexit`
  and add a whole bunch of shutdown crap.

`moz_static_local_class` works similarly to `moz_global_class`, except that its
object must only instantiate as static locals.

`TrivialDtorChecker` is based on `TrivialCtorDtorChecker`, with the ctor-specific
bits removed.

Differential Revision: https://phabricator.services.mozilla.com/D39717

--HG--
rename : build/clang-plugin/TrivialCtorDtorChecker.cpp => build/clang-plugin/TrivialDtorChecker.cpp
rename : build/clang-plugin/TrivialCtorDtorChecker.h => build/clang-plugin/TrivialDtorChecker.h
extra : moz-landing-system : lando
2019-07-30 18:50:52 +00:00
Mike Hommey
713a866401 Bug 1569355 - Upgrade python-zstandard to 0.11.1. r=tomprince
Differential Revision: https://phabricator.services.mozilla.com/D39583

MANUAL PUSH: avoid closing autoland while all docker images and
toolchains are rebuilt due to both changes.
2019-07-30 14:49:16 +09:00
Makoto Kato
44c1524bcd Bug 1568455 - Detect Android NDK on Windows. r=nalexander
Toolchain path for Windows version is `<NDK ROOT>/toolchains/llvm/prebuilt/windows-x86_64` etc, so it isn't '`winnt`.
So we has to replace `host.kernel.lower()` with `windows`.

Differential Revision: https://phabricator.services.mozilla.com/D39474

--HG--
extra : moz-landing-system : lando
2019-07-26 15:54:07 +00:00
Nathan Froyd
23b65ca007 Bug 1563204 - diagnose issues on Mac with cross-language LTO early; r=dmajor
...rather than people running into peculiar crashes running their tests
because functions are pointing at the wrong thing.

It would be more robust to version-check `ld`, but I figure people
wanting to do local cross-language LTO builds is rare enough that
setting an environment variable and rerunning configure is not a huge
hardship.

Differential Revision: https://phabricator.services.mozilla.com/D36742

--HG--
extra : moz-landing-system : lando
2019-07-25 14:26:51 +00:00
Andreea Pavel
08dfeb92cf Backed out changeset b80d14f72e5b (bug 1563204) build bustges on a CLOSED TREE 2019-07-25 17:13:14 +03:00
Nathan Froyd
6112863ed7 Bug 1563204 - diagnose issues on Mac with cross-language LTO early; r=dmajor
...rather than people running into peculiar crashes running their tests
because functions are pointing at the wrong thing.

It would be more robust to version-check `ld`, but I figure people
wanting to do local cross-language LTO builds is rare enough that
setting an environment variable and rerunning configure is not a huge
hardship.

Differential Revision: https://phabricator.services.mozilla.com/D36742

--HG--
extra : moz-landing-system : lando
2019-07-25 13:16:59 +00:00
Makoto Kato
f8907645db Bug 1568452 - Move ANDROID and ANDROID_PLATFORM to moz.configure r=froydnj
ANDROID_SOURCE is for gonk, so it is unnecessary now.

Differential Revision: https://phabricator.services.mozilla.com/D39149

--HG--
extra : moz-landing-system : lando
2019-07-24 13:41:20 +00:00
Nick Alexander
280126dff5 Bug 1564256 - Part 2: Produce browsertime.zip in a toolchain task. r=mshal
In browsertime.zip we should have:

browsertime/
  package.json
  package-lock.json
  node_modules/
    .bin/
      browsertime -> ../browsertime/bin/browsertime.js
    browsertime/
      ...

The idea is that we'll fetch browsertime.zip in a generic-worker
environment and be able to run Node.js from within the top level
browsertime/ directory.

Differential Revision: https://phabricator.services.mozilla.com/D38773

--HG--
extra : moz-landing-system : lando
2019-07-24 20:59:55 +00:00
Mike Shal
98ffc560c9 Bug 1561146 - Enable PGO for Windows aarch64 builds; r=firefox-build-system-reviewers,chmanchester
This build re-uses the PGO profile from the win64 build in the
win64-aarch64-shippable-no-eme part of the aarch64 build. Even though
the profile isn't generated on the smae platform, we still get enough of
a performance win to make this worthwhile.

Note that the pgo_flags() in configure need to be tweaked slightly since
we don't supprt the -fprofile-generate flag for aarch64 (we don't build
the clang_rt.profile lib there). So we always want to return the flags
namespace to make sure we get the use_* versions of flags, which we do
need.

Differential Revision: https://phabricator.services.mozilla.com/D38928

--HG--
extra : moz-landing-system : lando
2019-07-23 23:42:47 +00:00
Mike Hommey
6a8d20b0cc Bug 1564216 - Require clang 5 for OSX builds. r=froydnj
There is less incentive to keep things building with older versions of
clang for OSX builds, and we're going to require an objective-C feature
that was added in clang 5.

Differential Revision: https://phabricator.services.mozilla.com/D38581

--HG--
extra : moz-landing-system : lando
2019-07-22 21:31:39 +00:00
Simon Sapin
0540fe3688 Bug 1565193 - Require Rust 1.36 r=glandium
MozReview-Commit-ID: GjcKBjZvTPr

Differential Revision: https://phabricator.services.mozilla.com/D37709

--HG--
extra : moz-landing-system : lando
2019-07-19 04:50:22 +00:00
Nicholas Nethercote
3b27d4cb5e Bug 1567065 - Enable PHC on Linux64 Nightly builds. r=glandium
Depends on D38444

Differential Revision: https://phabricator.services.mozilla.com/D38453

--HG--
extra : moz-landing-system : lando
2019-07-19 11:28:46 +00:00
Agi Sferro
d0cb127dad Bug 1515248 - Upgrade to Android-Gradle plugin 3.2.1 and build-tools 28.0.3. r=agi
Differential Revision: https://phabricator.services.mozilla.com/D15159

--HG--
extra : moz-landing-system : lando
2019-07-20 17:27:53 +00:00
Makoto Kato
c0d323f7d3 Bug 1567069 - Set valid _DEPEND_CFLAG for host compiler when target and host are different type. r=glandium
Actually we set _DEPEND_CFLAGS to both host and target compiler. But if host and target are different compiler type, we may pass invalid option.

Differential Revision: https://phabricator.services.mozilla.com/D38457

--HG--
extra : moz-landing-system : lando
2019-07-18 07:46:03 +00:00
David Walsh
5b1625c2cb Bug 1561723 - Add debugger to whitelist for import-pr usage r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D36082

--HG--
rename : gfx/thebes/mach_commands.py => tools/vcs/mach_commands.py
extra : moz-landing-system : lando
2019-07-19 14:18:56 +00:00
Csoregi Natalia
96403eac4f Merge inbound to mozilla-central. a=merge 2019-07-19 12:43:24 +03:00
Mike Hommey
83c4e99e8e Bug 1566768 - Upgrade valgrind to 3.15.0. r=mshal
Differential Revision: https://phabricator.services.mozilla.com/D38296

--HG--
extra : moz-landing-system : lando
2019-07-19 04:28:38 +00:00
Nicholas Nethercote
44ed879798 Bug 1523276 - Disable PHC for the moment. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D38444

--HG--
extra : rebase_source : 1b7fc097a624c53e0a9c24737738c044e60d0238
2019-07-18 10:46:37 +10:00
Nathan Froyd
2c71c84a33 Bug 1486042 - default clang-cl pgo to use cross-language LTO; r=dmajor
This change is a little bit of a cheat, because of course MSVC doesn't
do cross-language LTO by default, but it seems consistent.

Depends on D33317

Differential Revision: https://phabricator.services.mozilla.com/D33318

--HG--
extra : moz-landing-system : lando
2019-07-16 02:39:18 +00:00
Nathan Froyd
bde244933a Bug 1486042 - switch all existing MOZ_LTO configs to use cross-language LTO; r=dmajor
This change is a no-op for win64 configs, as they had this feature before.

Differential Revision: https://phabricator.services.mozilla.com/D33317

--HG--
extra : moz-landing-system : lando
2019-07-16 02:39:16 +00:00
Nicholas Nethercote
38dbbfcffc Bug 1523276 - Implement PHC, a probabilistic heap checker. r=glandium,gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D25021

--HG--
extra : rebase_source : 86e94499f746b18a596130341692c6a9992d4867
2019-07-03 09:26:11 +10:00