Commit Graph

8672 Commits

Author SHA1 Message Date
David Major
9d69f6a5ba Bug 1573211 - Update to clang 9.0.0 r=glandium
Updates all clang 8.0.1 to version 9.0.0, except for the mingw builds
which suffer from bug 1548624 and will be handled separately later.

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

MANUAL PUSH: Rebuild clang toolchains without stalling autoland

--HG--
rename : build/build-clang/clang-8-android.json => build/build-clang/clang-android.json
rename : build/build-clang/clang-8-linux64-aarch64-cross.json => build/build-clang/clang-linux64-aarch64-cross.json
rename : build/build-clang/clang-8-linux64.json => build/build-clang/clang-linux64.json
rename : build/build-clang/clang-8-macosx64.json => build/build-clang/clang-macosx64.json
rename : taskcluster/scripts/misc/build-clang-8-linux-macosx-cross.sh => taskcluster/scripts/misc/build-clang-linux-macosx-cross.sh
extra : amend_source : 2dc7e91897e869ead501f19fbd7960d59c4b79bd
2019-09-21 16:26:53 +02:00
David Major
401c1780fa Bug 1583138 - Prepare clang-tidy for clang-9 r=andi
In clang 9, the signature of `registerPPCallbacks` changed and it no longer provides us a `CompilerInstance` [0]. I couldn't find a way to reach the `CompilerInstance` from the new structures, so I've inserted a level into the class hierarchy that mimics the old functionality.

With this patch, clang-tidy compiles with either clang-8 or clang-9, so we can land this independently in preparation for bug 1573211.

[0] For reference: the new signature was introduced in bbc89dcb29, the old overload was marked deprecated in e9087fe75c and removed in ee737a84d7.

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

--HG--
extra : moz-landing-system : lando
2019-09-24 17:27:02 +00:00
Andrew Halberstadt
898dfb96b4 Bug 1567642 - [lint.flake8] Fix misc flake8 under Python 3 lint issues r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D45417

--HG--
extra : moz-landing-system : lando
2019-09-24 14:44:01 +00:00
Boris Zbarsky
fa0ce4b209 Bug 1581315 part 1. Adjust MOZ_MUST_RETURN_FROM_CALLER to only apply to method calls on arguments. r=nika
It doesn't really make sense to enforce this behavior for calls on stack
variables (which presumably we then want to do something with) and doesn't
necessarily make sense to enforce it for member variables either.

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

--HG--
extra : moz-landing-system : lando
2019-09-20 02:17:01 +00:00
Mike Shal
56ba0730bc Bug 1580899 - Remove MOZ_PGO from mozconfigs; r=glandium
Setting this flag still attempts to build with 1-tier PGO, unless we
detect that 3-tier PGO is enabled. Since we should be using 3-tier PGO
everywhere, the flag should be redundant in our automation mozconfigs.
It can still be used locally in a mozconfig to do a 1-tier PGO build.

Depends on D46069

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

--HG--
extra : moz-landing-system : lando
2019-09-18 18:29:00 +00:00
Mike Shal
00a274530f Bug 1580899 - Remove mozconfig.pgo; r=firefox-build-system-reviewers,chmanchester
This file is no longer required, since taskcluster handles scheduling
PGO tasks.

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

--HG--
extra : moz-landing-system : lando
2019-09-18 03:11:11 +00:00
Nathan Froyd
2b7fcaf969 Bug 1551726 - remove --enable-content-sandbox from old configure options; r=dmajor
The option was removed entirely several months ago, and this bit was missed.

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

--HG--
extra : moz-landing-system : lando
2019-09-18 15:29:30 +00:00
Chris Manchester
d03f6422fd Bug 1580331 - Update the workspace-hack to avoid duplicate work on windows. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D45581

--HG--
extra : moz-landing-system : lando
2019-09-17 20:46:47 +00:00
Nathan Froyd
9316120343 Bug 1579870 - add wasm support to our clang builds; r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D45201

--HG--
extra : moz-landing-system : lando
2019-09-17 20:14:17 +00:00
Dorel Luca
bff3d0e47a Backed out changeset bb15fe1fd2b1 (bug 1580331) for Spidermonkey failures. CLOSED TREE 2019-09-17 21:06:17 +03:00
Chris Manchester
2826f31324 Bug 1580331 - Update the workspace-hack to avoid duplicate work on windows. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D45581

--HG--
extra : moz-landing-system : lando
2019-09-17 17:34:13 +00:00
Tarek Ziadé
5dd9d5bcd0 Bug 1562870 - generate conditioned profiles r=gbrown,bc,aerickson
Generates "conditioned" profiles.

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

--HG--
extra : moz-landing-system : lando
2019-09-16 19:44:35 +00:00
Andi-Bogdan Postelnicu
1b886ecee7 Bug 1576659 - Update infer to 0.17.0. r=bastien
Differential Revision: https://phabricator.services.mozilla.com/D43471

--HG--
extra : moz-landing-system : lando
2019-09-13 14:25:32 +00:00
Mike Shal
ec7a8745f1 Bug 1580497 - Fix topobjdir in 1-tier PGO builds; r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D45707

--HG--
extra : moz-landing-system : lando
2019-09-12 19:30:17 +00:00
Nathan Froyd
020191bdfa Bug 1580931 - remove libc++ gcc 4.9 workarounds from toolchain.configure; r=nalexander
Getting rid of unneeded code and having fewer global defines are both
worthy things.

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

--HG--
extra : moz-landing-system : lando
2019-09-12 20:01:18 +00:00
Razvan Maries
98fb942aa9 Backed out changeset 70e72871917e (bug 1576659) for Linux x64 debug build bustages. CLOSED TREE 2019-09-12 15:51:31 +03:00
Andi-Bogdan Postelnicu
bc7bd7de68 Bug 1576659 - Update infer to 0.17.0. r=bastien
Differential Revision: https://phabricator.services.mozilla.com/D43471

--HG--
extra : moz-landing-system : lando
2019-09-12 12:17:50 +00:00
Nathan Froyd
2ffed65f8f Bug 1577272 - annotate some refcounted lambda tests with expected errors for C++17; r=andi
clang produces these errors itself, but only in C++17 mode.

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

--HG--
extra : moz-landing-system : lando
2019-09-12 06:40:49 +00:00
Emilio Cobos Álvarez
0140a5576c Bug 1577439 - Shutdown Servo's thread-pool in leak-checking builds, leak the atom table elsewhere. r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D44217

--HG--
extra : moz-landing-system : lando
2019-09-09 22:39:46 +00:00
Nathan Froyd
a66584728f Bug 1579523 - fix visibility definition for future NDKs on Android; r=nalexander
A previous patch defined `_LIBCPP_HIDE_FROM_ABI` to the empty string.
This definition worked for normal (opt/debug) builds, but
PGO-instrumented builds fell over with some linker errors.  A closer
look at the definition of `_LIBCPP_HIDE_FROM_ABI`:

```
#ifndef _LIBCPP_HIDE_FROM_ABI_PER_TU
#  ifndef _LIBCPP_HIDE_FROM_ABI_PER_TU_BY_DEFAULT
#    define _LIBCPP_HIDE_FROM_ABI_PER_TU 0
#  else
#    define _LIBCPP_HIDE_FROM_ABI_PER_TU 1
#  endif
#endif

#ifndef _LIBCPP_HIDE_FROM_ABI
#  if _LIBCPP_HIDE_FROM_ABI_PER_TU
#    define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_INTERNAL_LINKAGE
#  else
#    define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION
#  endif
#endif
```

says that there are two macros involved there: one to set hidden visibility
(which we don't want), and another to exclude the function definition
from explicit instantiation.  The semantics of this are not obvious (the
clang documentation only documents this attribute in terms of C++
templates; the particular case we're interested in sets the attribute on
normal function definitions).  But roughly, what this does is that it
forces the compiler to see that an equivalent function definition is
provided external to the compilation unit, so it doesn't have to keep
the annotated function definition around.

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

--HG--
extra : moz-landing-system : lando
2019-09-11 15:13:36 +00:00
Mike Shal
3b8df1c395 Bug 1580028 - Always merge PGO profile data in the run task; r=firefox-build-system-reviewers,chmanchester
If the run task generates bad profile data, the merge step in the
profile-use task will fail. However, retrying the profile-use task
doesn't fix the problem, and there isn't a straightforward way to retry
the run task in this situation. Instead we can add a clang toolchain to
all the run tasks, and perform the merge there.

This means the output from the run task will always be a successfully
merged file called 'merged.profdata', and we no longer need to perform
the merge as part of the profile-use build as a GENERATED_FILES step.

Depends on D45262

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

--HG--
extra : moz-landing-system : lando
2019-09-10 21:56:15 +00:00
Mike Shal
93f80b9e53 Bug 1580028 - Move pgo_flags to later in lto-pgo.configure; r=firefox-build-system-reviewers,chmanchester
This is needed in the following patch, but the diff is more clear with
this split out.

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

--HG--
extra : moz-landing-system : lando
2019-09-10 02:41:06 +00:00
Chris Manchester
4991e899e4 Bug 1578493 - Mention scheduler url in server setup section and bump suggested version in sccache-dist docs. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D45282

--HG--
extra : moz-landing-system : lando
2019-09-10 16:03:04 +00:00
Nathan Froyd
62a5c58f09 Bug 1579430 - mark some elfhack methods as override; r=glandium
This change silences a couple of clang warnings.

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

--HG--
extra : moz-landing-system : lando
2019-09-09 23:54:34 +00:00
Wander Lairson Costa
1e4f81ec22 Bug 1572236: Support sccache in Google Storage r=chmanchester,dustin
With the migration from AWS to GCP, we also need to migrate sccache
buckets from S3 to Google Storage.

The problem is how we deal with regions, since there isn't an exact
correspondence on the region names between the two cloud providers.

To make the transition smoother, docker-worker (and soon generic-worker)
provides a new environment variable called TASKCLUSTER_WORKER_LOCATION,
with information about the cloud provider the task is running on. Using
this new variable, we configure sccache to use the corresponding storage
service of the cloud provider where the task runs.

The bucket names in Google Storage are shorter because GCS imposes a
limit of 30 characteres for the names.

Ref: https://github.com/taskcluster/taskcluster-rfcs/pull/148/files

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

--HG--
extra : moz-landing-system : lando
2019-09-09 16:51:42 +00:00
Andi-Bogdan Postelnicu
5fbdc1ea98 Bug 1579351 - Add constant complexity for MemMoveAnnotation when looking for specific std::atomic. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D45027

--HG--
extra : moz-landing-system : lando
2019-09-09 13:30:16 +00:00
Andi-Bogdan Postelnicu
ef2739a418 Bug 1569350 - Added more primitives to our static-analysis from MSVC 2019. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D44827

--HG--
extra : moz-landing-system : lando
2019-09-05 12:57:18 +00:00
Sylvestre Ledru
20b343675a Bug 1577726 - Move generated directories into a dedicated file (Generated.txt) from ThirdPartyPaths.txt r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D44147

--HG--
extra : moz-landing-system : lando
2019-09-05 14:24:21 +00:00
Nathan Froyd
18e78c6b0d Bug 1578825 - add a strict version check for the NDK version; r=nalexander
One less thing for configurations to vary is a good thing.  This change
also means that when we do NDK bumps that introduce some kind of weird
incompatible change, configuration with a newly-pulled tree and an old
NDK halts at configure, rather than giving weird build errors.

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

--HG--
extra : moz-landing-system : lando
2019-09-04 19:20:39 +00:00
Sylvestre Ledru
931b1e9554 Bug 1579054 - Improve the --enable-clang-plugin description r=andi
Differential Revision: https://phabricator.services.mozilla.com/D44820

--HG--
extra : moz-landing-system : lando
2019-09-05 12:21:38 +00:00
Andrew Sutherland
dbbe7fbf1f Bug 1511025 - Correct searchfox template traversal. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D44755

--HG--
extra : moz-landing-system : lando
2019-09-05 07:17:57 +00:00
Bogdan Tara
2c0a60b5b0 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2019-09-05 06:51:36 +03: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
David Major
a6ecd0d619 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
ebeb43d427 Bug 1578478 - update disabling visibility on Android for newer libc++; r=nalexander
We define some libc++-internal macros to avoid conflicts between the way
we do symbol visibility and the way libc++ expects visibility to work.
Newer NDK versions use a newer libc++ which changes the way the macro we
were using works. To enable building with newer libc++ versions, let's
also define macros appropriate to those versions as well.

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

--HG--
extra : moz-landing-system : lando
2019-09-04 17:56:49 +00:00
Chris Manchester
5ac1f64990 Bug 1578493 - Suggest using an sccache-dist binary from automation in our docs. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D44577

--HG--
extra : moz-landing-system : lando
2019-09-03 23:12:51 +00:00
Chris Manchester
358a3fb5f1 Bug 1578493 - Fix sccache-dist docs to mention port for builders and remove unused email. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D44530

--HG--
extra : moz-landing-system : lando
2019-09-03 20:49:44 +00:00
Nathan Froyd
f29b892aa0 Bug 1578471 - consolidate NDK version detection; r=nalexander
We have an `ndk_version_major` and an `ndk_version_minor` that have a
lot of duplicated code in them.  We could factor them into a single
function, but it seems better to just pull their logic into `ndk_version`
directly, rearranging that function to be IMHO more understandable.

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

--HG--
extra : moz-landing-system : lando
2019-09-03 17:17:31 +00:00
Razvan Maries
9415ecf29b Backed out 2 changesets (bug 1569728) for causig Linux shippable opt build bustages.
Backed out changeset 2f873da4b36e (bug 1569728)
Backed out changeset aaae16f5f29d (bug 1569728)
2019-09-01 03:42:38 +03:00
Nathan Froyd
1bc5f4c3fe 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-25 19:27:47 +00:00
Andrew Halberstadt
f43a6e3051 Bug 1570772 - [lint.license] Fix or exclude errors under /build r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D41820

--HG--
extra : moz-landing-system : lando
2019-08-30 15:44:08 +00:00
Emilio Cobos Álvarez
b33e5051d2 Bug 1577749 - Fix check_sccache_version when using RUSTC_WRAPPER. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D44139

--HG--
extra : moz-landing-system : lando
2019-08-30 12:22:12 +00:00
Chris Manchester
3712f28127 Bug 1577351 - Require a recent version of sccache when it is in use. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D43861

--HG--
extra : moz-landing-system : lando
2019-08-29 17:45:23 +00:00
Chris Manchester
37a0bb26bb Bug 1576737 - Add sccache-dist in offices docs to the tree. r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D43531

--HG--
extra : moz-landing-system : lando
2019-08-27 22:10:54 +00:00
Andrew Halberstadt
333ffc4bcf Bug 1473498 - [mach] Support running mach commands with python 3 r=glandium,mars
Credit: mars for making the shell POSIX compliant

This embeds a blacklist of every mach command that needs to run with Python 2
directly in the mach driver itself. Initially this is every mach command. We
then use a bit of shell to determine whether the command being run needs Python
2 or 3.

While this approach may seem a bit hacky, it has several benefits:

1. No need to add complex machinery in mach's registration code.
2. No need to spawn two separate Python interpreters in the event a different
   Python from the original interpreter is needed.
3. Perf impact is negligible.
4. New commands are Python 3 by default.

It is also only a temporary hack. Once all commands are running with Python 3,
we can revert back to the original mach driver.

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

--HG--
extra : moz-landing-system : lando
2019-08-27 03:08:08 +00:00
Andrew Halberstadt
80160f742f Bug 1473498 - [configure] Fix ImportError in util.configure under Python 3, r=glandium
This import is actually unused as of bug 844509.

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

--HG--
extra : moz-landing-system : lando
2019-08-27 02:55:18 +00:00
Makoto Kato
8c25d0bb78 Bug 1575436 - Don't use absolute path for echo command. r=glandium
common.gypi uses hard-coded absolute path for echo command, but this path
is invalid on Windows.

But this lines are unused, so we should remove it.

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

--HG--
extra : moz-landing-system : lando
2019-08-27 03:25:37 +00:00
Emilio Cobos Álvarez
c17fdaaa27 Bug 1576703 - Update cbindgen. r=boris
This cleans up the pattern of "Use a private dtor so that the helper functions
do the right thing" by enabling it everywhere using:

  https://github.com/eqrion/cbindgen/pull/377

It also caught some uninitialized value issues.

I think they're mostly harmless since we zero-initialize our structs:

https://searchfox.org/mozilla-central/rev/325c1a707819602feff736f129cb36055ba6d94f/servo/components/style/properties/gecko.mako.rs#632

And since we override the clip rect, which is the other bit of code that was
failing to build with this change.

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

--HG--
extra : moz-landing-system : lando
2019-08-26 23:18:46 +00:00
Mihai Alexandru Michis
ac5564a095 Merge mozilla-central to autoland. 2019-08-27 02:02:26 +03:00
Mike Hommey
46c7dfffb5 Bug 1575804 - Don't decode the result from get_cmd_output. r=chmanchester
Also don't pass universal_newlines to check_cmd_output. That was added
to make python 3 happier when check_cmd_output still returned bytes, to
hint subprocess to return a unicode string, but now that
check_cmd_output does the decoding, that's not needed anymore.

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

--HG--
extra : moz-landing-system : lando
2019-08-26 22:05:51 +00:00
Tom Ritter
9dfb78cd80 Bug 1576710 - Perform the correct comparison with OS Arch r=nalexander
This removes an unrecognized parameter warning.

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

--HG--
extra : moz-landing-system : lando
2019-08-26 18:58:51 +00:00
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
Sylvestre Ledru
c9832fdc18 Bug 1566409 - Force the deactivation of the llvm binding generation r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D38176

--HG--
extra : moz-landing-system : lando
2019-07-17 05:07:53 +00:00
Andi-Bogdan Postelnicu
782c64d21c Bug 1514801 - refactor clang based checker - KungFuDeathGripChecker. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D38187

--HG--
extra : moz-landing-system : lando
2019-07-17 05:05:30 +00:00
Mike Hommey
9f33118c8c Bug 1562952 - Always build signmar when mar is built. r=nalexander
When we build mar, there is no reason not to build signmar as well. It
used to be optional because not all platforms were supported, but they
are now.

... except when building the newly added tools/update-packaging,
which builds the mar tool as a standalone thing, and building signmar
as well causes complications.

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

--HG--
extra : moz-landing-system : lando
2019-07-16 19:01:03 +00:00
Mike Hommey
79919f31ad Bug 1357317 - Add an rpath to cctools such that it doesn't require LD_LIBRARY_PATH at run-time. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D38140

--HG--
extra : moz-landing-system : lando
2019-07-16 20:54:42 +00:00
Kartikaya Gupta
2d73759624 Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 15:38:39 +00:00
Andrew Halberstadt
39c3fe6605 Bug 1473498 - Don't add backport libraries to the Py3 environment r=Callek
Depends on D37762

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

--HG--
extra : moz-landing-system : lando
2019-07-15 17:39:21 +00:00
Narcis Beleuzu
ab956a715f Backed out 2 changesets (bug 1523321) for webrender bustages. CLOSED TREE
Backed out changeset d86e7c8f1e14 (bug 1523321)
Backed out changeset 18414da977c3 (bug 1523321)
2019-07-16 18:23:45 +03:00
Kartikaya Gupta
b3bebb6eca Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 14:09:47 +00:00
Brindusan Cristian
3de8b088e1 Backed out 2 changesets (bug 1523321) for breaking Gecko Decision Task. CLOSED TREE
Backed out changeset c032bed595dc (bug 1523321)
Backed out changeset 0a4f53b896b1 (bug 1523321)
2019-07-16 17:00:24 +03:00
Kartikaya Gupta
c6cc78e85f Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 13:49:54 +00:00
Mike Shal
562accde43 Bug 1561474 - Define and use a sparse profile for the profile-run task; r=sheehan
This was originally from bug 1528374 for Mac PGO, but that isn't able to
land yet and it should help Windows PGO runs in the meantime.

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

--HG--
extra : moz-landing-system : lando
2019-07-15 21:40:09 +00:00
Csoregi Natalia
fcccd2b6b0 Merge mozilla-central to autoland. CLOSED TREE 2019-07-12 02:06:45 +03:00
Csoregi Natalia
65fc5da4af Merge autoland to mozilla-central. a=merge 2019-07-12 01:59:03 +03:00
Bogdan Tara
4d6dbdf94c Backed out 2 changesets (bug 1562952) for causing mar-tools failures a=backout
Backed out changeset 6b09d4c0868c (bug 1562952)
Backed out changeset 250696e18e7d (bug 1562952)
2019-07-12 00:04:53 +03:00
Mike Hommey
f7f0525dc1 Bug 1564314 - Move gdbpp back to python/. r=nalexander
Somehow bug 1346025 moved it to third_party/python but... it's not third
party code.

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

--HG--
rename : third_party/python/gdbpp/gdbpp/__init__.py => python/gdbpp/gdbpp/__init__.py
rename : third_party/python/gdbpp/gdbpp/enumset.py => python/gdbpp/gdbpp/enumset.py
rename : third_party/python/gdbpp/gdbpp/linkedlist.py => python/gdbpp/gdbpp/linkedlist.py
rename : third_party/python/gdbpp/gdbpp/owningthread.py => python/gdbpp/gdbpp/owningthread.py
rename : third_party/python/gdbpp/gdbpp/smartptr.py => python/gdbpp/gdbpp/smartptr.py
rename : third_party/python/gdbpp/gdbpp/string.py => python/gdbpp/gdbpp/string.py
rename : third_party/python/gdbpp/gdbpp/tarray.py => python/gdbpp/gdbpp/tarray.py
rename : third_party/python/gdbpp/gdbpp/thashtable.py => python/gdbpp/gdbpp/thashtable.py
extra : moz-landing-system : lando
2019-07-11 02:39:31 +00:00
Tom Prince
0cd3337d90 Bug 1458385: Package mar and mbsdiff as a toolchain; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D24229

--HG--
extra : moz-landing-system : lando
2019-07-11 16:40:13 +00:00
Andrew Halberstadt
1190fb0269 Bug 1563797 - Use 'backports.shutil_which' instead of 'which' in the build system r=firefox-build-system-reviewers,chmanchester
Credit: Callek for figuring out an issue in 'make check' making the binary
absolute in mozbuild.base.

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

--HG--
extra : moz-landing-system : lando
2019-07-11 14:04:39 +00:00
Andrew Halberstadt
54355ca715 Bug 1563797 - Vendor backports.shutil_which r=Callek
I couldn't use 'mach vendor python' to get this module in-tree because that
puts a 'backports' module on the PYTHONPATH. This is a problem because many
(most?) compatibility backports also use a 'backports' library. So in the
likely event that a user happens to have one of these installed in their
system Python, we'll search that module before the vendored one and fail to
find it.

This gets around the issue by foregoing 'backports' and just putting
'shutil_which' on the path

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

--HG--
extra : moz-landing-system : lando
2019-07-11 14:03:30 +00:00
Mike Hommey
c957b25a9f Bug 1562952 - Always build signmar when mar is built. r=nalexander
When we build mar, there is no reason not to build signmar as well. It
used to be optional because not all platforms were supported, but they
are now.

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

--HG--
extra : moz-landing-system : lando
2019-07-11 06:09:02 +00:00
Andreea Pavel
5d60cdbd27 Backed out 2 changesets (bug 1562952) for failing xpcshell at test_create.js on a CLOSED TREE
Backed out changeset 12099ffad9ca (bug 1562952)
Backed out changeset fc4a6e8f6e34 (bug 1562952)
2019-07-10 11:06:58 +03:00
Andreea Pavel
a35fc693c4 Backed out changeset fa94c9a03e3f (bug 1564314) for linting failures on a CLOSED TREE
--HG--
rename : python/gdbpp/gdbpp/__init__.py => third_party/python/gdbpp/gdbpp/__init__.py
rename : python/gdbpp/gdbpp/enumset.py => third_party/python/gdbpp/gdbpp/enumset.py
rename : python/gdbpp/gdbpp/linkedlist.py => third_party/python/gdbpp/gdbpp/linkedlist.py
rename : python/gdbpp/gdbpp/owningthread.py => third_party/python/gdbpp/gdbpp/owningthread.py
rename : python/gdbpp/gdbpp/smartptr.py => third_party/python/gdbpp/gdbpp/smartptr.py
rename : python/gdbpp/gdbpp/string.py => third_party/python/gdbpp/gdbpp/string.py
rename : python/gdbpp/gdbpp/tarray.py => third_party/python/gdbpp/gdbpp/tarray.py
rename : python/gdbpp/gdbpp/thashtable.py => third_party/python/gdbpp/gdbpp/thashtable.py
2019-07-10 10:12:34 +03:00
Mike Hommey
2f3833c4b3 Bug 1564314 - Move gdbpp back to python/. r=nalexander
Somehow bug 1346025 moved it to third_party/python but... it's not third
party code.

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

--HG--
rename : third_party/python/gdbpp/gdbpp/__init__.py => python/gdbpp/gdbpp/__init__.py
rename : third_party/python/gdbpp/gdbpp/enumset.py => python/gdbpp/gdbpp/enumset.py
rename : third_party/python/gdbpp/gdbpp/linkedlist.py => python/gdbpp/gdbpp/linkedlist.py
rename : third_party/python/gdbpp/gdbpp/owningthread.py => python/gdbpp/gdbpp/owningthread.py
rename : third_party/python/gdbpp/gdbpp/smartptr.py => python/gdbpp/gdbpp/smartptr.py
rename : third_party/python/gdbpp/gdbpp/string.py => python/gdbpp/gdbpp/string.py
rename : third_party/python/gdbpp/gdbpp/tarray.py => python/gdbpp/gdbpp/tarray.py
rename : third_party/python/gdbpp/gdbpp/thashtable.py => python/gdbpp/gdbpp/thashtable.py
extra : moz-landing-system : lando
2019-07-09 16:09:14 +00:00
Mike Hommey
1c3ea4d6bf Bug 1562952 - Always build signmar when mar is built. r=nalexander
When we build mar, there is no reason not to build signmar as well. It
used to be optional because not all platforms were supported, but they
are now.

--disable-verify-mar is kept to still allow to disable mar verification in
the updater for debugging purpose.

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

--HG--
extra : moz-landing-system : lando
2019-07-10 03:17:26 +00:00
André Bargull
2268647965 Bug 1473229 - Part 1: Bump minimum required ICU version to 64.1. r=jwalden
- Part 3 uses functions added in ICU 64, so we need to bump the version requirement.
- Also remove a version check which is now true be default.

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

--HG--
extra : moz-landing-system : lando
2019-07-09 10:04:06 +00:00
Mihai Alexandru Michis
57a64c3906 Backed out 3 changesets (bug 1473229) for causing bustages in ICUStubs.h CLOSED TREE
Backed out changeset 953a2bd4220b (bug 1473229)
Backed out changeset f3a2031bde94 (bug 1473229)
Backed out changeset 5109ce5a4b44 (bug 1473229)
2019-07-09 12:07:22 +03:00
André Bargull
cafc533177 Bug 1473229 - Part 1: Bump minimum required ICU version to 64.1. r=jwalden
- Part 3 uses functions added in ICU 64, so we need to bump the version requirement.
- Also remove a version check which is now true be default.

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

--HG--
extra : moz-landing-system : lando
2019-07-09 08:44:28 +00:00
Csoregi Natalia
3ee5aa5125 Backed out changeset 43e086ced66f (bug 1562953) for toolchains bustage. CLOSED TREE 2019-07-09 08:54:59 +03:00
Nathan Froyd
c762dc8e76 Bug 1562953 - update cctools-port; r=mshal
We need a fix from `cctools-port` master for cross-language LTO builds
to work properly on the Mac.  Rather than cherry-picking yet another
commit, which would have to deal with a updated `ld64` upstream, we've
opted to go ahead and update directly to upstream.

This choice brings about some significant build changes, as TAPI support
has moved to a different library that is not easily buildable directly.

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

--HG--
extra : moz-landing-system : lando
2019-07-09 04:59:37 +00:00
Mike Hommey
280a850db7 Bug 1561821 - Enable frame pointers in Rust code when building with --enable-frame-pointers. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D37021

--HG--
extra : moz-landing-system : lando
2019-07-05 00:08:32 +00:00
Mike Hommey
3ea251d03f Bug 1561821 - Bump toolkit/crashreporter's minimum supported rust version. r=dmajor
As it turns out, the version the minidump-stackwalk tasks use (1.31), is
the first version that actually builds the project: 1.30 and earlier
fail because for some reason, cargo wants to read all Cargo.toml files
in the workspace, including unrelated ones, and barfs on features that
weren't supported until 1.31.

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

--HG--
extra : moz-landing-system : lando
2019-07-05 22:01:23 +00:00
Jonathan Kingston
31441f82ea Bug 1560455 - rename CodebasePrincipal to ContentPrincipal. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D35504

--HG--
extra : moz-landing-system : lando
2019-07-08 16:37:45 +00:00
Makoto Kato
ecd47d34f4 Bug 1562389 - Better detect non-clang-cl native windows clang. r=glandium
When building Gecko/Android/aarch64 on Windows, `--target` parameter may not be incorrect value. Although `check_compiler`'s `info` is target compiler, clang on Windows is always detected as `clang-cl`, not `clang`.

```
c:/Users/mkato/.mozbuild/clang/bin/clang.exe -E  -dM - < /dev/null
...
#define _MSC_VER 1916
```

So even if using clang on Windows, not clang-cl, we should detect as 'clang' correctly

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

--HG--
extra : moz-landing-system : lando
2019-07-08 10:35:40 +00:00
Makoto Kato
b26c7976c7 Bug 1562389 - Set correct triple for rustc when host and target are different compiler type. r=froydnj
When host and target are different compiler type, triple for rustc may be incorrect. If target is clang, host is always clang, not using host compiler type.

Example, when host is clang-cl for windows, and target is clang for Android, host's triple for ructc sets `windows-gnu`, not `windows-msvc`.

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

--HG--
extra : moz-landing-system : lando
2019-07-08 10:35:31 +00:00
Sylvestre Ledru
fc2eb5393c Bug 1562642 - Part 2 - Add missing MPL2 headers r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D37146

--HG--
extra : moz-landing-system : lando
2019-07-08 09:27:47 +00:00
Mike Hommey
1e693768bf Bug 1563465 - Remove leftovers from bug 1451104. r=froydnj
Bug 1451104 removed the GCC 4.9 toolchain, but left the build script and
the patch that only that toolchain build was using.

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

--HG--
extra : moz-landing-system : lando
2019-07-04 13:00:43 +00:00
shindli
d3e7218ba8 Backed out 2 changesets (bug 1562389) for causing bustages in ../python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py::WindowsToolchainTest::test_clang_cl CLOSED TREE
Backed out changeset 7dbb546e6138 (bug 1562389)
Backed out changeset 68ad44276058 (bug 1562389)
2019-07-04 07:44:49 +03:00
Makoto Kato
fa0b6ffc5f Bug 1562389 - Better detect non-clang-cl native windows clang r=glandium
When building Gecko/Android/aarch64 on Windows, `--target` parameter may not be incorrect value. Although `check_compiler`'s `info` is target compiler, clang on Windows is always detected as `clang-cl`, not `clang`.

```
c:/Users/mkato/.mozbuild/clang/bin/clang.exe -E  -dM - < /dev/null
...
#define _MSC_VER 1916
```

So even if using clang on Windows, not clang-cl, we should detect as 'clang' correctly

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

--HG--
extra : moz-landing-system : lando
2019-07-04 01:28:12 +00:00
Makoto Kato
52aaf37d4d Bug 1562389 - Set correct triple for rustc when host and target are different compiler type. r=froydnj
When host and target are different compiler type, triple for rustc may be incorrect. If target is clang, host is always clang, not using host compiler type.

Example, when host is clang-cl for windows, and target is clang for Android, host's triple for ructc sets `windows-gnu`, not `windows-msvc`.

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

--HG--
extra : moz-landing-system : lando
2019-07-01 20:11:08 +00:00
David Major
3eb2b38c97 Bug 1563252 - Merge LLVM fix for ASan with VS2019 r=froydnj
https://reviews.llvm.org/rL357725

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

--HG--
extra : moz-landing-system : lando
2019-07-03 20:04:21 +00:00
Mike Hommey
d26da0b870 Bug 1560044 - Make Xcode checks macOS host only. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D36559

--HG--
extra : moz-landing-system : lando
2019-07-02 23:24:57 +00:00
Mike Hommey
7256ffeb9b Bug 1560044 - Always use a SDK path on macOS. r=nalexander
The SDK headers may not be installed in /usr/include. The usual response
has been to have people run e.g. `open
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg`
which is not really sustainable.

This makes builds that happen on a macOS host try to detect their SDK
and use that as a default for --with-macos-sdk, which has the side
effect of enabling the SDK version check in that configuration.

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

--HG--
extra : moz-landing-system : lando
2019-07-03 22:11:05 +00:00
Mike Hommey
dc4a97fb4e Bug 1560044 - Allow --with-macos-sdk as an option when cross-compiling on macOS. r=nalexander
Building host tools on macOS require a macOS SDK, but it's currently
not configurable when cross-compiling for e.g. Android.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 23:25:01 +00:00
Mike Hommey
7905091bbe Bug 1528314 - Make configure find an appropriate java via /usr/libexec/java_home on macOS. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D36561

--HG--
extra : moz-landing-system : lando
2019-07-02 23:25:04 +00:00
Andreea Pavel
c92947ecc6 Backed out 5 changesets (bug 1528314, bug 1560044) for build bustages on a CLOSED TREE
Backed out changeset 4a544cd4b035 (bug 1528314)
Backed out changeset 91919cdf9159 (bug 1528314)
Backed out changeset 1271940e91e8 (bug 1560044)
Backed out changeset a5bbaa8c1001 (bug 1560044)
Backed out changeset 7ae0d606f1c6 (bug 1560044)
2019-07-03 02:20:15 +03:00
Mike Hommey
5762785f58 Bug 1528314 - Make configure find an appropriate java via /usr/libexec/java_home on macOS. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D36561

--HG--
extra : moz-landing-system : lando
2019-07-02 17:25:05 +00:00
Mike Hommey
e1e0add912 Bug 1560044 - Make Xcode checks macOS host only. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D36559

--HG--
extra : moz-landing-system : lando
2019-07-02 17:24:04 +00:00
Mike Hommey
65dabdc42b Bug 1560044 - Always use a SDK path on macOS. r=nalexander
The SDK headers may not be installed in /usr/include. The usual response
has been to have people run e.g. `open
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg`
which is not really sustainable.

This makes builds that happen on a macOS host try to detect their SDK
and use that as a default for --with-macos-sdk, which has the side
effect of enabling the SDK version check in that configuration.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 17:23:23 +00:00
Mike Hommey
4e854757b0 Bug 1560044 - Allow --with-macos-sdk as an option when cross-compiling on macOS. r=nalexander
Building host tools on macOS require a macOS SDK, but it's currently
not configurable when cross-compiling for e.g. Android.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 17:21:54 +00:00
David Major
88ae3f5fcb Bug 1557338 - Fix up TestSprintfLiteral.cpp for warnings on clang trunk r=andi
LLVM r356397 added some new warnings to the compiler that in this file complain about `size argument is too large; destination buffer has size 100, but size argument is 101`.

The easiest path is to just remove those lines; doing so doesn't really weaken the test coverage of the SprintfLiteral checker.

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

--HG--
extra : moz-landing-system : lando
2019-07-01 21:37:44 +00:00
Mihai Alexandru Michis
a2163018a4 Backed out changeset 23973e3a5e95 (bug 1557338) for causing bustages on OS X Cross Compiled. CLOSED TREE 2019-07-02 00:30:06 +03:00
David Major
213d34fa80 Bug 1557338 - Fix up TestSprintfLiteral.cpp for warnings on clang trunk r=andi
LLVM r356397 added some new warnings to the compiler that in this file complain about `size argument is too large; destination buffer has size 100, but size argument is 101`.

The easiest path is to just remove those lines; doing so doesn't really weaken the test coverage of the SprintfLiteral checker.

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

--HG--
extra : moz-landing-system : lando
2019-07-01 18:32:34 +00:00
Andi-Bogdan Postelnicu
247d96a5f4 Bug 1559740 - add separate modules for build, static-analysis and artifacts. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D36479

--HG--
extra : moz-landing-system : lando
2019-07-01 14:02:20 +00:00
Sylvestre Ledru
da21266863 Bug 1559740 - Move the clang-{format,tidy} and infer declarations into a separate directory r=andi
Differential Revision: https://phabricator.services.mozilla.com/D35187

--HG--
extra : moz-landing-system : lando
2019-07-01 13:57:18 +00:00
Kartikaya Gupta
721a5dbcf4 Bug 1558598 - Ensure mozinfo correctly detects WebRender. r=ahal
I don't know if this covers all the things that use mozinfo (probably not)
but it covers all the suites that use mozinfo and have webrender conditions
in the test manifests (i.e. mochitest and wpt variants).

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

--HG--
extra : moz-landing-system : lando
2019-06-29 09:51:14 +00:00
championshuttler
e2b2c11969 Bug 1536103 - Fix Sphinx Warning - Title Underline too short in 'mach doc' (2). r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D35309

--HG--
extra : moz-landing-system : lando
2019-06-25 12:02:51 +00:00
Cosmin Sabou
20f7fd4c63 Backed out 3 changesets (bug 1559740) for linting errors and android bustages. CLOSED TREE
Backed out changeset 39db36060b8a (bug 1559740)
Backed out changeset df14ac0c2421 (bug 1559740)
Backed out changeset 089e04f53971 (bug 1559740)
2019-06-28 19:40:13 +03:00
Sylvestre Ledru
85ae7943fc Bug 1559740 - Move the clang-{format,tidy} and infer declarations into a separate directory r=andi
Differential Revision: https://phabricator.services.mozilla.com/D35187

--HG--
extra : moz-landing-system : lando
2019-06-28 07:39:48 +00:00
David Major
029c3f2a24 Bug 1561822 - Clean up a workaround for frame pointer flags in aarch64 clang-cl r=froydnj
Glandium pointed out that we're actually using the same flag for both `enable=` and `disable=`. Oops.

It turns out that we don't need this code anymore anyway, since the needed patch got merged to clang 8.0.0 [0], which we now require [1].

[0] https://reviews.llvm.org/rGa576b44d09080661fc9f83a94f66eccb44d5f3ce
[1] https://hg.mozilla.org/integration/autoland/rev/0a49234facf2

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

--HG--
extra : moz-landing-system : lando
2019-06-28 13:55:01 +00:00
Emilio Cobos Álvarez
3d0f056ca7 Bug 1559814 - Update cbindgen. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D36020

--HG--
extra : moz-landing-system : lando
2019-06-26 20:32:41 +00:00
Mike Hommey
ed3910db06 Bug 1560545 - Force-enable wayland support in Linux builds. r=chmanchester
So that we don't end up disabling it by accident.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 06:03:20 +00:00
Cosmin Sabou
58cc56c50f Backed out 3 changesets (bug 1560545) for causing build bustages. CLOSED TREE
Backed out changeset 31177fcc3123 (bug 1560545)
Backed out changeset e3e1ad8d7709 (bug 1560545)
Backed out changeset fd64770f1342 (bug 1560545)
2019-06-26 07:56:47 +03:00
Mike Hommey
54617f4cc0 Bug 1560545 - Force-enable wayland support in Linux builds on automation. r=chmanchester
So that we don't end up disabling it by accident.

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

--HG--
extra : moz-landing-system : lando
2019-06-25 20:22:15 +00:00
Mike Hommey
7d0561299d Bug 1561465 - Remove ELOG. r=nalexander
The condition that enabled ELOG to do something has been broken since
bug 279212 landed two years ago, because MAKEFLAGS doesn't contain the
dash for flags, so looking for "-s" never did anything.

Bug 1560527 changed the condition to !BUILD_VERBOSE_LOG, which as of the
previous commit, does work. This would restore the old behavior, at the
expense of build time, since it involves wrapping in a shell script,
which is not necessarily desirable (and hasn't been done for two years
now)

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

--HG--
extra : moz-landing-system : lando
2019-06-26 02:20:29 +00:00
Mike Shal
9ea52410d9 Bug 1557785 - Fix automatic setting of LTO with clang-cl; r=dmajor
With clang-cl and PGO enabled, toolchain.configure automatically turns
on LTO for compatibility with MSVC. However, MOZ_PGO is set for both the
profile-generate and profile-use builds in a 3-tier PGO setup via
imply_option(), but we only want LTO enabled for the profile-use build
(see bug 1483778).

For 1-tier PGO builds, which are still used by local developers, MOZ_PGO
will be set and --enable-profile-generate will be unset, so LTO will be
automatically enabled. The profiledbuild target in make is responsible
for disabling MOZ_LTO on the profile-generate build.

For 3-tier PGO builds, MOZ_PGO will still be set, so we can skip setting
LTO in configure when --enable-profile-generate is set.

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

--HG--
extra : moz-landing-system : lando
2019-06-25 18:38:15 +00:00
Mike Shal
628c15f57c Bug 1557785 - Allow LLVM_PROFDATA to work even if not explicitly set in the environment; r=firefox-build-system-reviewers,chmanchester
Windows finds llvm-profdata in the PATH, in contrast to Linux or Android
builds that set LLVM_PROFDATA as an environment variable in mozconfigs.
The pgo_profile_path() configure checks should still work in this case.

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

--HG--
extra : moz-landing-system : lando
2019-06-19 22:05:56 +00:00
Mike Shal
5e2e67f17f Bug 1557785 - Hook MOZ_PGO_PROFILE_USE environment variable into common Windows mozconfig; r=firefox-build-system-reviewers,chmanchester
MOZ_PGO_PROFILE_USE is set when the use-pgo attribute is defined in the
task. This environment variable is used to enable --enable-profile-use
and related configure flags.

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

--HG--
extra : moz-landing-system : lando
2019-06-19 22:05:52 +00:00
David Major
df7699c43c Bug 1561350 - Fix libclang detection for clang-cl 9 r=glandium
In the clang-cl 9 case where we have semicolon-separated paths, the `dirs` variable is never read, so the libclang detection fails.

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

--HG--
extra : moz-landing-system : lando
2019-06-25 20:39:01 +00:00
Kartikaya Gupta
870cc36ca1 Bug 1519598 - Add a mach command to import PRs from github. r=kvark,ahal
This is a simple mach command that imports a PR from a whitelisted set
of github repositories into the local m-c clone. It works by downloading
the .patch file from github, splitting the different commits, and
applying those commits to the local repo via the `patch` tool and git/hg
commit. It optionally allows filing a bug or providing a bug number, and
specifying a reviewer.

This is one part of a larger workflow that facilitates landing
contributor patches into m-c when those patches are submitted as PRs.
Other components of the workflow (to be added in the future) will make
it easier to actually test and land the patch.

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

--HG--
extra : moz-landing-system : lando
2019-06-24 20:30:32 +00:00
Petr Sumbera
506f679f53 Bug 1554582 - Solaris SPARC packaging should include libfreebl_64fpu_3.so and libfreebl_64int_3.so r=mshal
Differential Revision: https://phabricator.services.mozilla.com/D32690

--HG--
extra : moz-landing-system : lando
2019-06-19 09:34:51 +00:00
Wes Kocher
dca287e7da Bug 1560077 - Fix typo in sparse checkout docs
Differential Revision: https://phabricator.services.mozilla.com/D35299

--HG--
extra : moz-landing-system : lando
2019-06-19 05:24:56 +00:00
Mike Hommey
5091811073 Bug 1559301 - Straighten up C/C++ standard compiler flags. r=nalexander
- `info.type in ('clang-cl', 'clang', 'gcc')` is always true since MSVC
support was removed.
- For some reason, we didn't enforce C++14 on GCC.

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

--HG--
extra : moz-landing-system : lando
2019-06-14 16:14:50 +00:00
Marian Raiciof
b2b633e095 Bug 1526752 - [mozdevice] Update adb.py and other necessary files to support python3 r=ahal,davehunt
Improve support for Python 3 by running modernize over adb.py and a few other related changes.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 08:44:15 +00:00
Chris Manchester
c74a1fa131 Bug 1558996 - Require rust 1.35 r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D34794

--HG--
extra : moz-landing-system : lando
2019-06-13 06:02:05 +00:00
Bob Clary
2a1c46386f Bug 1559103 - RemoteAutomation should call parent class init first, r=gbrown.
Differential Revision: https://phabricator.services.mozilla.com/D34856

--HG--
extra : moz-landing-system : lando
2019-06-13 13:54:18 +00:00
Mike Hommey
85e29d1e3b Bug 1557583 - Add a --enable-frame-pointers option. r=chmanchester
We've been relying on frame pointers being indirectly enabled via things
like --enable-profiling for some time, but this doesn't scale because
some things may want frame pointers while wanting --disable-profiling.

So we move MOZ_FRAMEPTR_FLAGS to python configure and add a new option
to decide whether to enable frame pointers or not.

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

--HG--
extra : moz-landing-system : lando
2019-06-12 22:30:46 +00:00
Mike Hommey
958968bcdc Bug 1557583 - Move --enable-*-sanitizers options to python configure. r=dmajor
But keep the corresponding logic in sanitize.m4.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 13:08:27 +00:00
Mike Hommey
44e96352da Bug 1557547 - Actively reject clang < 4.0 during configure. r=mshal
Bug 1394825 bumped the minimum version of clang we use on automation,
for the base toolchain jobs, and there's a libclang test for bindgen,
but we should reject the compiler in the first place.

The check to do that works in both C and C++, contrary to the original
3.6 test that was checking a C++ feature ; the test was later changed
for 3.9, using a check that would have worked in both C and C++, but
the C exception was left around. We remove it now.

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

--HG--
extra : moz-landing-system : lando
2019-06-12 22:22:24 +00:00
Jan de Mooij
dc18804805 Bug 1556646 part 2 - Rename JS_POSIX_NSPR to JS_WITHOUT_NSPR and remove --enable-posix-nspr-emulation configure flag. r=sfink,glandium
Stand-alone JS builds now default to without-NSPR on all platforms.

Note that the JS shell builds we do in automation pass --enable-nspr-build so they shouldn't be affected by
the JS shell changes.

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

--HG--
extra : moz-landing-system : lando
2019-06-08 09:10:59 +00:00
Mike Hommey
ff4ab7e28f Bug 1557855 - Use a sensible default for --with-android-ndk. r=nalexander
Use the same logic as for --with-android-sdk to use the NDK downloaded
by mach bootstrap by default.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 22:23:37 +00:00
Mike Hommey
177ad5806d Bug 1557855 - Change how --with-android-sdk is handled. r=nalexander
We make it have a default value only if the corresponding directory exists,
and make it throw a more explicit error when the explicitly given directory
doesn't exist.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 22:20:48 +00:00
Mike Hommey
4b49193e14 Bug 1557855 - Define MOZBUILD_STATE_PATH as an option. r=nalexander
Rather than taking it from the environment every time it's necessary.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 23:25:01 +00:00
Mike Hommey
47925b3f7a Bug 1557507 - Default to lld linker for local builds in more cases. r=nalexander
The current logic is that if the compiler somehow uses gold rather than
BFD ld by default, we let it, but if it uses BFD ld, we default to lld.
When doing Android builds, the compiler finds the linker in the NDK, and
the default `ld` binary is gold. So we currently end up using fold for
Android builds.

Here, we change the logic such that we use lld when the default linker
the compiler uses is either BFD ld or gold. We can't go with "is not
lld" because the other possible kind, ld64, is what we actually want to
use on mac, since lld doesn't support mach-o fully just yet.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 04:43:45 +00:00
Bogdan Tara
12782914a5 Backed out changeset 2d8ad105aac8 (bug 1557507) on Glandium's request CLOSED TREE 2019-06-07 07:38:03 +03:00
Mike Hommey
6b74e0f7de Bug 1557507 - Default to lld linker for local builds in more cases. r=nalexander
The current logic is that if the compiler somehow uses gold rather than
BFD ld by default, we let it, but if it uses BFD ld, we default to lld.
When doing Android builds, the compiler finds the linker in the NDK, and
the default `ld` binary is gold. So we currently end up using gold for
Android builds.

Here, we change the logic such that we use lld when the default linker
the compiler uses is either BFD ld or gold. We can't go with "is not
lld" because the other possible kind, ld64, is what we actually want to
use on mac, since lld doesn't support mach-o fully just yet.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 00:40:53 +00:00
Mike Hommey
7dcedba0bf Bug 1557213 - Don't try to use NDK clang. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D33902

--HG--
extra : moz-landing-system : lando
2019-06-07 00:40:10 +00:00
David Major
5827377048 Bug 1557313 - Update ExplicitOperatorBoolChecker.cpp for clang trunk changes r=andi
https://reviews.llvm.org/rL360311 reworked the handling of `explicit` in `CXXConversionDecl`, and the `isExplicitSpecified()` method no longer exists. We can instead use `isExplicit()` which conveniently works on both old and new clangs. (Before 360311, `isExplicit()` just forwarded to `isExplicitSpecified()`.)

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

--HG--
extra : moz-landing-system : lando
2019-06-06 15:42:25 +00:00
Gerald Squelart
b601187bf1 Bug 1492121 - Suppress dlopen leak triggered by next patch - r=njn
Valgrind report:
```
TEST-UNEXPECTED-FAIL | valgrind-test | 192 bytes in 3 blocks are definitely lost at malloc / dl_open_worker / _dl_catch_error / _dl_open
==2561== 192 bytes in 3 blocks are definitely lost in loss record 348 of 399
==2561==    at 0x4C2B240: malloc+112 (vg_replace_malloc.c:298)
==2561==    by 0x4012919: dl_open_worker+1977 (dl-open.c:457)
==2561==    by 0x400DD55: _dl_catch_error+101 (dl-error.c:178)
==2561==    by 0x4011CC9: _dl_open+185 (dl-open.c:633)
==2561==    by 0x5051F65: dlopen_doit+101 (dlopen.c:67)
==2561==    by 0x400DD55: _dl_catch_error+101 (dl-error.c:178)
==2561==    by 0x50522EB: _dlerror_run+123 (dlerror.c:164)
==2561==    by 0x5051EE0: dlopen@@GLIBC_2.2.5+48 (dlopen.c:88)
==2561==    by 0x1148FC: GetLibHandle (xpcom/glue/standalone/nsXPCOMGlue.cpp:86)
==2561==    by 0x1148FC: ReadDependentCB (xpcom/glue/standalone/nsXPCOMGlue.cpp:136)
==2561==    by 0x1148FC: XPCOMGlueLoad (xpcom/glue/standalone/nsXPCOMGlue.cpp:306)
==2561==    by 0x1148FC: mozilla::GetBootstrap(char const*, mozilla::LibLoadingStrategy)+572 (xpcom/glue/standalone/nsXPCOMGlue.cpp:374)
==2561==    by 0x114213: InitXPCOMGlue(mozilla::LibLoadingStrategy)+131 (browser/app/nsBrowserApp.cpp:223)
==2561==    by 0x113E6B: main+219 (browser/app/nsBrowserApp.cpp:284)
```

Nothing due directly to this patch, so it is likely a dlopen issue.

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

--HG--
extra : moz-landing-system : lando
2019-06-06 06:20:23 +00:00
Mike Hommey
1c5cf6c437 Bug 1519954 - Pick binaries from mach bootstrap first on local developer builds. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D33884

--HG--
extra : moz-landing-system : lando
2019-06-06 01:22:21 +00:00
Mike Hommey
cbb9f80c77 Bug 1556880 - Support GCC ARM preprocessor defines to detect the ARM target. r=chmanchester
Also set `fpu` to None for when we don't find it.

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

--HG--
extra : moz-landing-system : lando
2019-06-05 02:53:01 +00:00
Mike Hommey
985a376afa Bug 1526857 - Improve bindgen configuration wrt clang. r=chmanchester
The current setup for bindgen relies on either finding clang/libclang
from the output of llvm-config, or from the paths given via the
configure flags --with-clang-path/--with-libclang-path.

One _very_ common problem is that the llvm-config we end up using does
not correspond to the clang used for compilation, which has some
undesirable side effect, like failing to build.

So instead of relying on llvm-config, we do the following:
- when the compiler is clang, we just use that
- when the compiler is clang-cl, we use clang from the same directory
- otherwise, we either try to find clang in PATH, or rely on
  --with-clang-path.

Once clang is found, we try to deduce the location of the corresponding
libclang via the output of `clang -print-search-dirs`, or rely on
--with-libclang-path.

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

--HG--
extra : moz-landing-system : lando
2019-06-05 02:48:20 +00:00
Andrew Sutherland
4e20ede87a Bug 1533802 - Sticky nesting for C++, Rust, JS r=kats
These are the changes from https://github.com/mozsearch/mozsearch/pull/212
(including the typo fixes requested today.

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

--HG--
extra : moz-landing-system : lando
2019-06-04 20:49:34 +00:00
Yaron Tausky
7892bfc18a Bug 1554989 - Fix implicit checker on inheriting constructors r=andi
Inheriting constructors are implicitly introduced via a using-declaration.
Since the C++ grammar doesn't allow attributes on using-declarations, it
is currently impossible to add MOZ_IMPLICIT to implicit inheriting
constructors.

This commit changes the AST matcher such that it ignores inheriting
constructors altogether. If they are inheriting from an implicit inherited
constructor, that constructor's check should be enough to ensure that no
constructors are unintentionally implicit.

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

--HG--
extra : moz-landing-system : lando
2019-06-04 11:36:46 +00:00
David Major
6fe1e35fab Bug 1553864 - Clean up some VS2015 PGO build config code r=nalexander
This code was already dead during the VS2017 era (since that compiler changed to the `Hostx64\x86` path scheme), let alone clang-cl.

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

--HG--
extra : moz-landing-system : lando
2019-06-03 20:30:31 +00:00
Mike Shal
e52ded1092 Bug 1553065 - Move profile-use mozconfig info into common mozconfigs; r=firefox-build-system-reviewers,chmanchester
The 3-tier PGO builds used a separate mozconfig called 'profile-use' for
the final tier. This created a problem when it rode to beta, since the
same mozconfig was used for all trees, which meant we ended up with
nightly branding on beta builds.

With the PGO-enabling logic in common mozconfigs, we can enable it by
setting the MOZ_PGO_PROFILE_USE environment variable from the task
definition. All of the final-tier PGO builds now use the nightly, beta,
etc mozconfigs like before, so branding should be intact.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 23:56:16 +00:00
Mike Shal
f5680f2fee Bug 1553065 - Use MOZ_LTO environment variable in mozconfig.unix; r=firefox-build-system-reviewers,chmanchester
This makes it consistent with bug 1530908 and 1536194.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 23:56:12 +00:00
Cosmin Sabou
85466f08fd Backed out 2 changesets (bug 1486042) for causing crashes @ servo_arc::Arc<T>::drop_slow. CLOSED TREE
Backed out changeset 5e85998c4d97 (bug 1486042)
Backed out changeset d083a8bd98ed (bug 1486042)
2019-06-01 02:19:19 +03:00
Nathan Froyd
915bec197e 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-05-31 17:24:02 +00:00
Gijs Kruitbosch
871405553f Bug 1196094 - use e10s when doing PGO profiling, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D32329

--HG--
extra : moz-landing-system : lando
2019-05-31 14:18:05 +00:00
Gijs Kruitbosch
fd337bafb4 Bug 1196094 - disable _exit in child processes when generating profile information, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D33269

--HG--
extra : moz-landing-system : lando
2019-05-31 14:17:47 +00:00