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

6529 Коммитов

Автор SHA1 Сообщение Дата
Ryan VanderMeulen 1a86da24ad Backed out 9 changesets (bug 1383880) for decision task bustage.
Backed out changeset 53f5d47a7cb0 (bug 1383880)
Backed out changeset a0abda41172a (bug 1383880)
Backed out changeset 729a7e2091e8 (bug 1383880)
Backed out changeset a33f5a14a471 (bug 1383880)
Backed out changeset 5b10d321cfee (bug 1383880)
Backed out changeset 8056488d8aed (bug 1383880)
Backed out changeset e62c90e3c1e8 (bug 1383880)
Backed out changeset 91f116ce6c2a (bug 1383880)
Backed out changeset 045498bc36c4 (bug 1383880)
2017-09-01 15:37:08 -04:00
Dustin J. Mitchell 671dda0818 Bug 1383880: add support for optimizing tasks based on SCHEDULES; r=ahal
This adds some new optimization strategies.  For tests, we use Either(SETA,
SkipUnlessSchedules), thereby giving both mechanisms a chance to skip tasks. On
try, SETA is omitted.

MozReview-Commit-ID: GL4tlwyeBa6

--HG--
extra : rebase_source : 0c1ce762afc7a691788379d4f4206df106f6df63
2017-08-23 16:21:06 +00:00
Mike Hommey db9abf4e98 Bug 1395070 - Remove the MOZ_MEMORY_$platform defines. r=njn
--HG--
extra : rebase_source : d98dc4afaec44a3c65e4e1ff34824f6f8c512c8d
2017-08-30 17:01:30 +09:00
Tom Ritter d97705b95f Bug 1393607 Do not package tests if they are not enabled r=mshal
MozReview-Commit-ID: 1wQV41Nf8V5

--HG--
extra : rebase_source : e02b2b11935a177143328960af1505ba8b767252
2017-08-29 12:34:40 -05:00
Johan Lorenzo a716c447c0 Bug 1384482 - Rename android-api-15 into android-api-16 r=mtabara
MozReview-Commit-ID: 4j66pTZEJzq

--HG--
rename : mobile/android/config/mozconfigs/android-api-15-frontend/nightly => mobile/android/config/mozconfigs/android-api-16-frontend/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle-dependencies/nightly => mobile/android/config/mozconfigs/android-api-16-gradle-dependencies/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle/nightly => mobile/android/config/mozconfigs/android-api-16-gradle/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle/nightly-artifact => mobile/android/config/mozconfigs/android-api-16-gradle/nightly-artifact
rename : mobile/android/config/mozconfigs/android-api-15/debug => mobile/android/config/mozconfigs/android-api-16/debug
rename : mobile/android/config/mozconfigs/android-api-15/debug-artifact => mobile/android/config/mozconfigs/android-api-16/debug-artifact
rename : mobile/android/config/mozconfigs/android-api-15/l10n-nightly => mobile/android/config/mozconfigs/android-api-16/l10n-nightly
rename : mobile/android/config/mozconfigs/android-api-15/nightly => mobile/android/config/mozconfigs/android-api-16/nightly
rename : mobile/android/config/mozconfigs/android-api-15/nightly-artifact => mobile/android/config/mozconfigs/android-api-16/nightly-artifact
rename : mobile/android/config/mozconfigs/android-api-15/nightly-old-id => mobile/android/config/mozconfigs/android-api-16/nightly-old-id
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_debug.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_debug_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_dependencies.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle_dependencies.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_old_id.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_old_id.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_partner_sample1.py
rename : testing/mozharness/configs/single_locale/ash_android-api-15.py => testing/mozharness/configs/single_locale/ash_android-api-16.py
rename : testing/mozharness/configs/single_locale/date_android-api-15.py => testing/mozharness/configs/single_locale/date_android-api-16.py
rename : testing/mozharness/configs/single_locale/jamun_android-api-15.py => testing/mozharness/configs/single_locale/jamun_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-aurora_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-aurora_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-beta_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-beta_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-central_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-release_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-release_android-api-16.py
rename : testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py => testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_16.py
rename : testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py => testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_16.py
rename : testing/mozharness/configs/single_locale/tc_android-api-15.py => testing/mozharness/configs/single_locale/tc_android-api-16.py
rename : testing/mozharness/configs/single_locale/try_android-api-15.py => testing/mozharness/configs/single_locale/try_android-api-16.py
extra : rebase_source : d24bd3b0298e4fc21e9e8029e5f69a65fd1012f9
2017-08-09 16:18:15 +02:00
Makoto Kato f1c26e1010 Bug 1391547 - DIA SDK is missing when using MSVS2017. r=ted.mielczarek
MSVC path: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503
DIA SDK path: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\DIA SDK

dia_sdk_dir of windows.configure tries finding invalid path.

MozReview-Commit-ID: KQDNA1tdpW2

--HG--
extra : rebase_source : 5a5cf32202ac55ae773b3c11f65a4cb304bff417
2017-08-22 15:16:07 +09:00
David Major 3bc8841ee2 Bug 1356652 - Add Speedometer files to the PGO training list; r=ted
MozReview-Commit-ID: 9Ei8p0t1JbB

--HG--
extra : rebase_source : 63a169a38ae8f2bd1fcd86245aee7fbb8b139e6b
2017-08-25 13:24:01 -07:00
Gregory Szorc 7253036dad Bug 1356652 - Expose Speedometer to PGO HTTP server; r=froydnj,glandium
The HTTP server can dynamically map URLs to local filesystem paths.
We employ this so Speedometer's files are available to the server.

MozReview-Commit-ID: EpF1aD6meZH

--HG--
extra : rebase_source : 70f80e073c2bec92c9429dcc35cd12e27018f3cb
2017-08-25 10:33:11 -07:00
Wander Lairson Costa 82b8df7dff Bug 1338651 part 2: Add suppression for leaks in libllvm-3.6-mesa. r=jseward
New leaks emerged after updating docker images for new home path [1].

[1] https://treeherder.mozilla.org/#/jobs?repo=try&revision=0477c33232a7&selectedJob=122583760

MozReview-Commit-ID: B1Yu4eSweo7

--HG--
extra : rebase_source : e07a25ea0e8c83eb680b4d3ac7cdbc96964135f8
2017-08-28 08:44:51 -03:00
Wander Lairson Costa 6332ed5b0a Bug 1338651 part 1: Change docker image home dir to /build. r=dustin,mshal
Using /home/worker is the build directory has a 30% talos performance
loss, because test machines has a /home mount directory.

MozReview-Commit-ID: 554IPMRWgzK

--HG--
extra : rebase_source : 00827d3f6bd705419bc801eb05b543af1ddc274f
2017-08-28 08:44:51 -03:00
Wes Kocher 7ea5ed6e6a Merge m-c to autoland, a=merge
MozReview-Commit-ID: LEKykpTAKjv
2017-08-25 17:32:33 -07:00
Dustin J. Mitchell 81476e48ec Bug 1394054: include try_task_config.json in sparse checkout; r=gps
MozReview-Commit-ID: 5H5XH1Zpqw1

--HG--
extra : rebase_source : a1a9f8e44a6dabe1f53479a0b6d80b9bc4536f68
2017-08-26 00:19:36 +00:00
Wes Kocher 68149d6a59 Merge inbound to central, a=merge
MozReview-Commit-ID: 3N9jinnrmjb
2017-08-25 16:21:57 -07:00
Philip Chimento 034b4fdfa6 Bug 1379539 - Remove unnecessary NSPR dependency. r=glandium 2017-07-25 14:15:50 -07:00
Tom Ritter 284b42206f Bug 1393222 Disable the unused-function warning when compiling with gcc for Windows r=froydnj
In some cases, they are false positives. In other cases, the callsite is #ifdef-ed
out, so it's a true positive, but not one we would correct.

MozReview-Commit-ID: 6ThZH3wEXTp

--HG--
extra : rebase_source : aabdb93cb924e74cf9592a93c86062c4435ceaad
2017-08-23 16:08:30 -05:00
Gregory Szorc 276defc2a7 Bug 1393503 - Proper error handling for failure to find VCS tool; r=glandium,nalexander
``print()`` has no business being in library code like this. It was
a holdover from this code being copied from bootstrap. So remove it.

While we're here, replace the generic exception with a specific one.
We don't want to be swallowing bugs via ``except Exception``.

MozReview-Commit-ID: 49goUstfPBz

--HG--
extra : rebase_source : a821159bd12a449ed1a0edf21a1f9eb29711ad95
2017-08-24 17:09:09 -07:00
Gregory Szorc f344c387c4 Bug 1393657 - Use mozfile.TemporaryDirectory; r=glandium
An inline comment wanted it. The change is trivial.

MozReview-Commit-ID: CqyOYqNzwzr

--HG--
extra : rebase_source : d779d6bbca4aa57d9e95ead3a8403e0163106bdf
2017-08-24 18:32:05 -07:00
Gregory Szorc aebbd74800 Bug 1393657 - Reformat profileserver.py; r=glandium
The file was using 2 space indent. I ran `autopep8` on it. Most of the
changes are whitespace only.

MozReview-Commit-ID: 1C7yDUQCfKl

--HG--
extra : rebase_source : 9f2b52ef6d0887fbaa7f8410b32348d371e884d8
2017-08-24 18:30:18 -07:00
Gregory Szorc add347ff2a Bug 1393657 - Clean up imports in profileserver.py; r=glandium
Remove unused imports. Put stdlib imports first. And sort.

MozReview-Commit-ID: 9CAlCe2vA9z

--HG--
extra : rebase_source : 485076c84ce1abce942c27e630b33272153035da
2017-08-24 18:25:42 -07:00
Ting-Yu Chou 62922025c8 Bug 1373562 - Bump to clang r311608 to fix the errors running ASan on Windows 10 1703. r=Ehsan
MozReview-Commit-ID: CpiUizahZrj

--HG--
extra : rebase_source : 2182fe0f335fbcad7abacf7cb9a43bbc276ba656
2017-06-20 10:33:41 +08:00
Ryan VanderMeulen 2f60ba6fc6 Merge m-c to autoland. a=merge
CLOSED TREE

--HG--
extra : amend_source : 57c6e5e3155c1ad79d409f8a71c40704297b0600
2017-08-24 20:59:40 -04:00
Ryan VanderMeulen 3d0158833d Merge autoland to m-c. a=merge 2017-08-24 20:20:08 -04:00
Gregory Szorc ddb8b492b5 Backed out changesets 18d89d8ab860, ffe8bef74be0, 159028ef12d2, 217260fb6976, 0279960d71ab (bug 1393242)
For a test failure.

--HG--
extra : histedit_source : c5f4167443174fa3144f139e976ae504a8efdad3%2C43a2beb21406adf114e7b64a734ec71284e50cc5
2017-08-24 16:07:44 -07:00
Gregory Szorc 2dc1a0736c Bug 1390700 - Documentation for sparse checkouts; r=me
MozReview-Commit-ID: 571VpKWjImZ

--HG--
extra : rebase_source : 726d0ab474d0a37e0a094243a71cba8bd51bf6ae
2017-08-24 15:39:11 -07:00
Gregory Szorc e6c05965dd Bug 1390700 - Sparse checkout profiles for mach and taskgraph; r=dustin
Mercurial's sparse checkout support allows "profile" files defining
what's in sparse checkouts to be defined in-tree. This convenient
feature means you simply need to point a client at a path inside the
repository and it dynamically resolves what files to include in the
checkout. As you update revisions, the "profile" pulls in updates
to the underlying file.

We introduce 2 sparse profiles: 1 for mach and another for taskgraph.

The goal of the "mach" profile is to provide enough files to run
`mach`. If you activate this profile and run `mach`, it runs without
error. But there are practically no commands available. So it isn't
terribly useful.

The "taskgraph" profile allows us to run `mach taskgraph`. This
profile demonstrates a sparse profile feature: including other
profiles. The "taskgraph" profile is thus a union of "mach" and
its own entries.

There is definitely some fat in these profiles. I didn't feel like
chasing the long tail and getting overly granular with the profiles.
If we want to optimize later, we can do that.

For reference:

Full checkout: ~234,000 files
mach:            ~2,000 files
taskgraph:       ~3,600 files

MozReview-Commit-ID: 7pALt0MwHfE

--HG--
extra : rebase_source : 1a4ba4b8a63c522dab2841e2c0019501476da2fe
2017-08-23 11:47:44 -07:00
Gregory Szorc 258638f8d6 Bug 1393242 - Vendor python-hglib 2.4; r=mshal
python-hglib is a Python client for Mercurial's command server. It
facilitates querying Mercurial efficiently (using a single process)
and without having to parse output in the common case.

Let's vendor it so we can make use of it for more advanced Mercurial
scenarios.

Content vendored from changeset 820d7c1e470a without modifications
(other than deleting unwanted files).

As part of vendoring, we add the package to the virtualenv and make
it available to mach.

MozReview-Commit-ID: F4KLbW1lAvk

--HG--
extra : rebase_source : 39321a880a13a0b0323a7217f538978b729e2afe
2017-08-23 15:06:18 -07:00
Tristan Bourvon ba0998ae31 Bug 1380423 - Add static-analysis to enforce strict rules on functions which can run scripts. r=mystor
MozReview-Commit-ID: GGSyq0z5msB
2017-08-08 19:48:53 +03:00
Tom Ritter d69ec3ed28 Bug 1393216 Disable unknown pragma warnings when compiling for Windows with gcc r=froydnj
MozReview-Commit-ID: 6cZ96xe4h8C

--HG--
extra : rebase_source : f538720b67d54cb9755e7cf8a60441aa0c3b2389
2017-08-23 16:18:28 -05:00
Wes Kocher fb8abb94c7 Merge inbound to central, a=merge
MozReview-Commit-ID: 1mWKzfX4kl
2017-08-23 18:07:24 -07:00
David Major 406287685a Bug 1391420: Set NO_PGO on a bunch of binaries that we don't ship. r=ted 2017-08-23 15:05:40 -04:00
Sebastian Hengst 142b3bf28b Backed out changeset 109e89a7d561 (bug 1391420) for busting Linux pgo builds. r=backout on a CLOSED TREE
--HG--
extra : amend_source : 6a4421254e4de31071785b73abdd1186638e31f2
2017-08-23 18:12:46 +02:00
David Major 8cb2cb650a Bug 1391420: Set NO_PGO on a bunch of binaries that we don't ship. r=ted 2017-08-23 11:10:39 -04:00
Gregory Szorc c024875c88 Bug 1392886 - Ignore missing mach_commands.py when checkout is sparse; r=mshal
Sparse checkouts may not have all mach_commands.py files.

mach raises an error when a mach_commands.py file is missing.

So, we teach the mach driver to ignore missing file errors when
a sparse checkout is present.

The added code is optimized to avoid an import of mozversioncontrol
and some I/O as part of resolving the repo and VCS binaries because
this file is in the critical path of all mach commands and avoiding
I/O is worthwhile. Since we aren't using sparse checkouts in the
common case, this effectively makes the new code 0 cost.

MozReview-Commit-ID: C6itJga31t5

--HG--
extra : rebase_source : 4b2c18d30ff8b923a940c80ac81372a4076b8fdc
2017-08-23 08:41:01 -07:00
Gregory Szorc 197ad2c585 Bug 1392886 - Don't destroy reference to "mach" module; r=mshal
"mach" in this scope is both the mach module and the driver instance.
Let's change the latter's variable name so we can access the mach
module.

MozReview-Commit-ID: Db6sxDFl2oo

--HG--
extra : rebase_source : 0a51c7514cfdba40483b3b9b361cd03b8000c2c9
2017-08-22 20:29:37 -07:00
Gregory Szorc 5ce1624c85 Bug 1392886 - Determine if sparse checkout is being used; r=mshal
The Repository interface gains a new method to determine if a sparse
checkout is present. Mercurial's implementation is somewhat crude,
but it should work (Mercurial's sparse support is still experimental
and I only intend to support sparse checkout in Firefox CI until it
is less experimental). Git's always returns False (for now).

To prove it works and to expose the information more widely, we hook
it up to moz.configure. We do this by first implementing a function
that returns a Repository instance. Then we simply call a function on
it to resolve the sparse checkout flag.

MozReview-Commit-ID: AlsT5LdSPdZ

--HG--
extra : rebase_source : f1e9aaa7d15f11c7c5e8d268d4ad82468732103b
2017-08-22 20:26:46 -07:00
Phil Ringnalda 9359f5bf39 Merge inbound to m-c, a=merge
MozReview-Commit-ID: LCCoXUsCtmv
2017-08-19 15:29:10 -07:00
Chris Peterson ee0e6ae64b Bug 1389851 - build: Enable clang's -Wunreachable-code-return warnings. r=glandium
MozReview-Commit-ID: 8Zl0mbzcFBm

--HG--
extra : rebase_source : 36c92b50fac9e1f7991d977e1c878b4945e97528
2017-08-08 23:12:41 -07:00
Wes Kocher bb19458d5f Merge m-c to inbound, a=merge
MozReview-Commit-ID: EgYue63nSkv
2017-08-18 16:29:11 -07:00
Wes Kocher b1fc5e008c Merge inbound to central, a=merge
MozReview-Commit-ID: 4cWGBbMEU2x
2017-08-18 15:53:07 -07:00
Eric Rahm 50513900c7 Bug 1389598 - Part 2: Remove gonk references from media/ r=jesup
--HG--
extra : rebase_source : d1af2d0987038e1c0b0b0c971d0d2e4e9f08364a
2017-08-11 17:46:15 -07:00
Ted Mielczarek c4f93428a7 bug 1259832 - add a post-build task to upload generated source files. r=dustin
This change adds an upload-generated-sources task kind that runs after nightly
builds, fetches their `target.generated-files.tar.gz` artifact, and uploads
all the contained files to an S3 bucket. For actual nightly and release builds
on SCM level 3 trees, the S3 bucket is configured to be publicly accessible,
so that tools like Socorro will be able to fetch generated source files that
appear in crash reports, and debuggers will be able to fetch generated sources
when they show up while debugging Nightly or Release builds.

There are also level-2 and level-1 S3 buckets configured for builds happening
on trees of other levels such as try. They are not configured as publicly
accessible, but they exist so that these tasks can be tested in try.

MozReview-Commit-ID: Js1HRftbtep

--HG--
extra : rebase_source : b1172c9cc8b8be437d3b94a6bf0ff6b2f7d3508b
extra : source : 73bf88110b3821d62a3d393e85b56896a12f2930
2017-08-09 14:32:05 -04:00
Wes Kocher c043502159 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 7sFZmPUXSx6
2017-08-18 17:21:29 -07:00
Ted Mielczarek 8715819616 bug 1259832 - package generated sources and upload them along with other build artifacts. r=gps
This change makes us upload an `$(PKG_BASENAME).generated-files.tar.gz` archive
alongside other build artifacts which contains all the generated source files
from the build. A change after this will introduce an `upload-generated-sources`
task to take this artifact and upload the individual files to an S3 bucket.

This will be used to provide links to generated source files when they appear
in stack traces in crash reports.

MozReview-Commit-ID: 6yQAdlZ5q3O

--HG--
extra : rebase_source : d92fb17ae737d1360e9724997f6688e29bedef12
extra : source : 14d18d7cf454c4c3d0f6d49d1d01660e06e4be4b
2017-07-31 12:47:08 -04:00
Ted Mielczarek ddef773ef3 bug 1259832 - move artifact build automation step overrides to a common mozconfig. r=chmanchester
A followup change will be adding a new automation step that wants to be skipped
in artifact builds, and this will make that simpler.

MozReview-Commit-ID: 5xwRB9eCRQn

--HG--
extra : rebase_source : 2fccd9d128ab92c98515762a62a0a2e89bf9ca24
extra : source : a02695cbf5762eb0eb7087239319807eb447ca1e
2017-08-09 13:26:02 -04:00
Ting-Yu Chou 33c6c355d6 Bug 1385743 - Use copy_tree() to copy directory recursively instead. r=Ehsan
shutil.copy2() will fail if the destination directory doesn't exist.
Switch to copy_tree() instead so we don't need to worry about the
error cases of copy2() and copytree().

MozReview-Commit-ID: 3kHfgL57KfX

--HG--
extra : rebase_source : c7335b0c2854d53699dda0f0d2bd9d17b57c4e5d
2017-08-17 10:36:15 +08:00
Dave Hunt 5277a5a5cb Bug 1388340 - Vendor in six package for Python 2 and 3 compatibility; r=gps
MozReview-Commit-ID: JxtYnHOOZvy

--HG--
extra : rebase_source : 5f5226b94bdc03b877f9a34a262e04214bd415cb
2017-08-08 14:25:53 +01:00
Nathan Froyd 802e57346a Bug 1390524 - correctly pass extra_toolchain_flags only to target compiles; r=glandium
We define extra_toolchain_flags for passing extra flags to the target
compiler during configure.  But the way things are currently set up, we
pass those flags to the host compiler during configure as well.  This
behavior is incorrect, and we should only be passing the flags from
extra_toolchain_flags if we're compiling for the target.
2017-08-18 12:05:05 -04:00
Mike Hommey a3250ab5f7 Bug 1390752 - Avoid std::basic_ios<char, std::char_traits<char>>::operator bool() references. r=froydnj
This is similar to what we had until bug 1278456 removed them when we dropped
support for older libstdc++, but for a different symbol.

--HG--
extra : rebase_source : 641fc6c86c8f47e3dbd752bc20056f61646541a7
2017-08-16 15:03:43 +09:00
Eugen Sawin c0560f54d7 Bug 1388893 - [1.0] Abort code insertion if executable section was not found. r=glandium 2017-08-15 13:58:41 +02:00
Mike Hommey 733dc0bf95 Bug 1389422 - Avoid @GLIBCXX_3.4.22 symbols from the use of std::thread when building with GCC 6. r=froydnj
That the wrapper implementation works has been verified by creating a
dummy program such as:

  $ cat test.cc
  #include <thread>

  int main() {
    std::thread([]() {
      printf("foo\n");
    }).join();
    return 0;
  }

And compiling it with and without the hack:

  $ g++ -fno-rtti -o test test.cc -lpthread
  $ objdump -TC test | grep UND.*GLIBCXX_3.4.22
  0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4.22 std:🧵:_State::~_State()
  0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4.22 std:🧵:_M_start_thread(std::unique_ptr<std:🧵:_State, std::default_delete<std:🧵:_State> >, void (*)())

  $ ./test
  foo

  $ g++ -fno-rtti -o test test.cc $objdir/build/unix/stdc++compat/stdc++compat.o -lpthread
  $ objdump -TC test | grep UND.*GLIBCXX_3.4.22
  $ ./test
  foo

--HG--
extra : rebase_source : 53ca8e2d0424eaeb539d50510c441c8a3252c819
2017-08-11 17:20:47 +09:00
Wes Kocher 2458d6b297 Merge m-c to autoland, a=merge
MozReview-Commit-ID: KfZgcCxrZcg
2017-08-14 17:59:46 -07:00
Tristan Bourvon 5dba5275b8 Bug 1390064 - Fix IgnoreTrivials in Utils.h by changing cast to cast_or_null r=mystor
MozReview-Commit-ID: E1uMaMRrCuO

--HG--
extra : amend_source : 813d6f884ccb1736ee161d8cedce260a0a7a2a90
2017-08-14 11:40:36 +02:00
Gregory Szorc 80d6e033a7 Bug 1385381 - Detect and expose Python 3 to the build system; r=chmanchester
Various people want to start experimenting with Python 3 in the build
system and in related tools (like mach).

We want to make it easy to find and use an appropriate Python 3
binary.

This commit introduces a generic function for finding a Python 3
binary and resolving its version.

We use the new code in configure to set PYTHON3 and PYTHON3_VERSION
subst entries for later consultation.

We also expose a cached attribute on the base class used by many
mach and build system types to return a Python 3 executable's info.

By default, we only find Python 3.5+. From my experience, Python 3.5
was the first Python 3 where it was reasonable to write code that
supports both Python 2 and 3 (mainly due to the restoration of the
% operator on bytes types). We could probably support Python 3.4
in the build system. But for now I'd like to see if we can get
away with 3.5+.

MozReview-Commit-ID: BlwCJ3kkjY9

--HG--
extra : rebase_source : b00464972183ef1a97a0b5d888520be425717ae7
2017-07-27 21:19:25 -07:00
J. Ryan Stinnett 79915f9599 Bug 1365915 - Add Valgrind suppressions for Stylo. r=jseward
MozReview-Commit-ID: 8XrPy6ovbm7
2017-08-14 12:53:23 -05:00
Matt Brubeck 503070ad8d Bug 1386371 - Disable LTO by default, but enable in automation. r=froydnj
MozReview-Commit-ID: 2DIY9ex3Mch

--HG--
extra : rebase_source : 61f2f073adabfa7c46c324470a308adab23e7781
2017-08-10 11:38:10 -07:00
Sylvestre Ledru fa1440cf47 bug 1320656 - When exists, add -Wno-noexcept-type to the js build flags until we have a proper fix r=glandium
MozReview-Commit-ID: HeDMTxopx9V

--HG--
extra : rebase_source : a48fbfcd687d44ffe16be39f5c5e945d8df31b17
2017-08-11 10:46:02 +02:00
Wes Kocher cff9e9b197 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 2YvHbITn9w3
2017-08-10 18:25:34 -07:00
Julian Seward e714eb3dea Bug 1382280 - Update the version of Valgrind in the desktop-build image to one with unstripped shared libraries (part 3). r=n.nethercote.
This patch:

* Adds a suppression for some leaks in libLLVM-3.6-mesa.so.

* Adds Valgrind flag --keep-debuginfo=yes so that the abovementioned leak
  stacks can be symbolised and hence suppressed even after
  libLLVM-3.6-mesa.so is unmapped from the process.

* Adds Valgrind flag --expensive-definedness-checks=yes as an attempt to
  reduce Memcheck false positives from LLVM and rustc compiled code.  This
  change is aimed primarily at bug 1365915.

MozReview-Commit-ID: KiOZG2O8wzs
2017-08-07 11:49:28 +02:00
Wander Lairson Costa 285b4dbffb Bug 1382280 part 1: Upgrade valgrind r=ted
Bug 1338651 was backed out because when building a newer image, there
was a valgrind leak report that couldn't resolve symbols. Further
investigation showed the valgrind package installed had symbols stripped.

We upgrade valgrind version and build it from source with symbols.

We had to build inside the docker image because we need to run
"make install". Using "make dist" to generate a tar ball will also run
"make docs", and it is hard to make it work because of the outdated
texlive package present in CentOS 6.

We also apply a patch [1] to valgrind correctly generate symbols
for unloaded objects.

[1] https://bugs.kde.org/show_bug.cgi?id=79362#c62

MozReview-Commit-ID: 2IhuJY28Ke3
2017-08-10 13:42:11 -03:00
Sebastian Hengst 51d351f567 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-08-10 17:41:11 +02:00
Kris Maglione 9cc6707daf Bug 1350646: Part 1 - Remove addon-sdk moz.build generation gunk. r=Mossop
MozReview-Commit-ID: GMlOFoosVQZ

--HG--
extra : source : 67c251e2c9db1d42a8de6d09a44e9e2f7be084a4
2017-08-02 13:51:40 -07:00
Phil Ringnalda ca2c01b0ad Backed out 22 changesets (bug 1350646) for talos damp failures
Backed out changeset c3108aebee35 (bug 1350646)
Backed out changeset ee8f7fa9d410 (bug 1350646)
Backed out changeset 79e77c06ff44 (bug 1350646)
Backed out changeset 5584fdcd2ee0 (bug 1350646)
Backed out changeset 7571b064a77e (bug 1350646)
Backed out changeset 7f65323c56f9 (bug 1350646)
Backed out changeset 10bbf7c53afe (bug 1350646)
Backed out changeset e40544ead983 (bug 1350646)
Backed out changeset 5eb77e6de0a3 (bug 1350646)
Backed out changeset 6d9244a8ac40 (bug 1350646)
Backed out changeset 13110c98b0fd (bug 1350646)
Backed out changeset 096ff315b48b (bug 1350646)
Backed out changeset 57500d9ea832 (bug 1350646)
Backed out changeset 5a45d9e25a00 (bug 1350646)
Backed out changeset e931e4ff5e11 (bug 1350646)
Backed out changeset d914c050c965 (bug 1350646)
Backed out changeset 35c4d4cd77c7 (bug 1350646)
Backed out changeset 7687db575011 (bug 1350646)
Backed out changeset c68367bb0eb3 (bug 1350646)
Backed out changeset 3ca040743aeb (bug 1350646)
Backed out changeset 8d4c2f001354 (bug 1350646)
Backed out changeset 67c251e2c9db (bug 1350646)

MozReview-Commit-ID: GLM80BkVx85
2017-08-09 20:03:17 -07:00
Mike Hommey ccd43013f6 Bug 1388713 - Change how elfhack looks for the bss section. r=froydnj
In bug 635961, elfhack was made to (ab)use the bss section as a
temporary space for a pointer. To find it, it scanned writable PT_LOAD
segments to find one that has a different file and memory size,
indicating the presence of .bss. This usually works fine, but when
the binary is linked with lld and relro is enabled, the end of the
file-backed part of the PT_LOAD segment containing the .bss section
ends up in the RELRO segment, making that location read-only and
subsequently making the elfhacked binary crash when it tries to restore
the .bss to a clean state, because it's not actually writing in the .bss
section: lld page aligns it after the RELRO segment.

So instead of scanning PT_LOAD segments, we scan for SHT_NOBITS
sections that are not SHF_TLS (i.e. not .tbss).

--HG--
extra : rebase_source : f18c43897fd0139aa8535f983e13eb785088cb18
2017-08-10 07:55:55 +09:00
Sylvestre Ledru 77b71da58c Bug 1336978 - Add support of lld by adding a configure option --enable-linker='bfd', 'gold', 'lld', 'other' r=glandium
MozReview-Commit-ID: 7LI2lMXO2lG

--HG--
extra : rebase_source : d8531917f81e8f6e313b362ae182540312a5c676
2017-07-26 15:14:07 +02:00
Kris Maglione 9172d0a257 Bug 1350646: Part 1 - Remove addon-sdk moz.build generation gunk. r=Mossop
MozReview-Commit-ID: GMlOFoosVQZ

--HG--
extra : rebase_source : c4d52796531c12e136b47313c8ea614b8698fa66
2017-08-02 13:51:40 -07:00
Wes Kocher 223f322400 Merge m-c to autoland a=merge
MozReview-Commit-ID: 2qLtb79Nlhs
2017-08-08 15:26:30 -07:00
Tristan Bourvon cdc988e24a Bug 1374024 - apply clang-format on some files from static analysis. r=mystor
MozReview-Commit-ID: COh2u6PIeY
2017-07-13 12:00:06 +02:00
Tristan Bourvon 2e77c99160 Bug 1374024 - add checker to prevent dangling pointers returned by method calls on temporaries. r=mystor
MozReview-Commit-ID: 9khNt59ONF
2017-07-05 16:14:21 +02:00
Paul Adenot da39c08e8c Bug 1384655 - Backed out changeset 7829ceaaec31 for busting gUM on some configurations.
MozReview-Commit-ID: DSr6uAMzVxq

--HG--
extra : amend_source : 12e63146939d93f97cc31b3588187c234639de99
2017-08-08 09:50:07 +02:00
J. Ryan Stinnett 7bc9824a4f Bug 1363976 - Suppress global_style_data for LSAN. r=bholley
Suppress leaks for allocations where any stack frame matches the string
style::gecko::global_style_data.  This could be dangerous if someone were to
allocate non-global things with this on the stack, but hopefully that can be
avoided, given the name of the module.

MozReview-Commit-ID: 65HpUGsgPPM

--HG--
extra : rebase_source : 19ba5a5001de65628acdb0433341d14429e4af67
2017-08-07 19:55:51 -05:00
Carsten "Tomcat" Book 546b19363f Backed out changeset 514cf1f55c6f (bug 1380639) 2017-08-07 13:23:35 +02:00
Nathan Froyd 6b3217da7f Bug 1385276 - move PROFILE_*FLAGS to moz.configure; r=mshal
We are guaranteed to use a GCC or clang new enough that we don't have to
bother checking whether the flags are supported or not.
2017-08-04 13:56:38 -04:00
Nathan Froyd ff612fa73f Bug 1387185 - remove --enable-b2g-* options from moz.configure whitelist; r=mshal
These options do not exist in the old configure.
2017-08-04 13:56:38 -04:00
Nathan Froyd 26eec13ba0 Bug 1387185 - remove --enable-png-arm-neon-support from moz.configure whitelist; r=mshal
This option does not exist in the old configure.
2017-08-04 13:56:38 -04:00
Nathan Froyd 3a8877d401 Bug 1387185 - remove --enable-safe-browsing option from moz.configure whitelist; r=mshal
This option does not exist in the old configure.
2017-08-04 13:56:38 -04:00
Nathan Froyd d7190c617c Bug 1387185 - remove --enable-url-classifier configure option; r=mshal
Nothing uses the corresponding defines and substs.
2017-08-04 13:56:38 -04:00
Nathan Froyd 51495a8284 Bug 1387185 - remove --disable-mozril-geoloc configure option; r=mshal
Nothing uses the defines and substs that it sets, and no in-tree
mozconfigs pass it as an option.
2017-08-04 13:56:38 -04:00
Sebastian Kaspari b05b8a9729 Bug 1380639 - Add contraint-layout and constraint-layer-solver dependencies. r=mcomella
MozReview-Commit-ID: AbZLlwdDHRV

--HG--
extra : rebase_source : d4538afeca26349512f8453db4782be2bce28ee0
2017-07-25 10:12:38 +02:00
Makoto Kato d2130a3810 Bug 1386164 - Part 2. Use MOZ_SYSTEM_LIBEVENT for webrtc. r=jesup
GYP of WebRTC should reference MOZ_SYSTEM_LIBEVENT values if available.

MozReview-Commit-ID: CshsPrRidM8

--HG--
extra : rebase_source : 9e619c2f49e7c2b3f680814b95b823996773fa6c
2017-08-03 13:28:25 +09:00
Wes Kocher db7d003ae0 Merge m-c to autoland a=merge CLOSED TREE
MozReview-Commit-ID: Ko3lhAvzMJN
2017-08-03 18:22:09 -07:00
Wes Kocher 2196b718d3 Merge inbound to central, a=merge
MozReview-Commit-ID: DlSLhaepjeU
2017-08-03 18:06:53 -07:00
Mike Hommey 118fd76cf0 Bug 1356926 - Make all stdc++compat symbols weak. r=froydnj
In some cases, we can end up linking some things with
--static-libstdc++. The notable (only?) example of that is for the
clang-plugin, and that happens because it gets some of its flags from
llvm-config, which contains --static-libstdc++ because clang itself is
built that way.

When that happens, the combination of --static-libstdc++ and
stdc++compat breaks the build because they have conflicting symbols,
which is very much by design.

There are two ways out of this:
- avoiding either -static-libstdc++ or stdc++compat
- work around the symbol conflicts

The former is not totally reliable ; we'd have to accurately determine
if we're in a potentially conflicting case, and remove one of the two in
that case, and while we can do that for the cases we explicitly know
about, that's not future-proof, and might fail just as much in the
future.

So we go with the latter. The way we do this is by defining all the
std++compat symbols weak, such that at link time, they're overridden by
any symbol with the same name. When building with -static-libstdc++,
libstdc++.a provides those symbols so the linker eliminates the weak
ones. When not building with -static-libstdc++, the linker keeps the
symbols from stdc++compat. That last assertion is validated by the
long-standing CHECK_STDCXX test that we run when linking shared
libraries and programs.

That still leaves the symbols weak in the final shared
libraries/programs, which is a change from the current setup, but
shouldn't cause problems because when using versions of libstdc++.so
that do provide those symbols, it's fine to use the libstdc++.so version
anyways.
2017-08-04 06:07:42 +09:00
Ralph Giles 2a2cfd92f6 Bug 1383311 - Require rust 1.19.0. r=froydnj,gps
Bump the minimum required version of the Rust toolchain to
the current stable release so we can take advantage of new
features.

Highlights of the 1.19.0 release:

* C-compatible `union` (untagged enums).
* Support for Visual Studio 2017.
* Non-capturing closures can be coerced to `fn` bindings.
* Numeric field names in tuple struct initializers.
* Higher macro recursion limit.
* `break` can return a value from `loop` expressions.
* Better error handling with mis-configured Visual Studio environments.

This change also enables 1.18.0 features. Some highlights:

* `pub(mod)` &c. for better control of symbol visibility.
* struct packing for better memory footprint in generated code.
* Faster build times.

MozReview-Commit-ID: 2OpUjAcytpE

--HG--
extra : rebase_source : 2ed0d7c4e7b78c26f7a7476e7b284bf1bdbe7c8b
2017-07-24 07:51:57 -07:00
Axel Hecht d112ca24fa bug 1370506, update the docs, r=glandium
Mostly removals, but also adding docs on how to create a
multilingual package right now.

I think I'd like to take another pass at those docs in a follow-up.

MozReview-Commit-ID: Dkw4MJ5DLyb

--HG--
extra : rebase_source : 4f79499e376cf6ddd23169a1c4525ed6b551a740
2017-06-16 13:14:28 +02:00
Mike Hommey f548b4a8d4 Bug 1386588 - Always print out the commands run by the clang build job. r=gps,a=KWierso
Not doing so makes debugging harder, for no added value.
2017-08-03 08:14:02 +09:00
Mike Hommey cf23b5a7fa Bug 1386588 - Add a toolchain job for Clang 4. r=gps 2017-08-03 08:13:07 +09:00
Mike Hommey 614312f061 Bug 1386588 - Change the GCC build script to be future-proof. r=gps
It becomes a library of some sort, so that multiple scripts can benefit
from it to build different versions of GCC.

The GPG key associated with GCC is also refreshed from keys.gnupg.net,
adding a new subkey, used to sign newer versions of GCC (and
postprocessed with pgpstrip to make it smaller).
2017-08-03 08:12:47 +09:00
Mike Hommey c15ef2edff Bug 1386588 - Rename the linux64-clang and linux64-gcc jobs to include a version number. r=gps
We're soon going to build multiple versions of clang and gcc for linux,
and we need to differentiate them. Furthermore, there is a need for the
base-toolchains builds to use a fixed version of clang and gcc. So
rename the clang and gcc toolchain jobs to include their version, add
aliases to satisfy all existing jobs, and adjust the base-toolchains
jobs to use the explicit version.


--HG--
rename : build/build-clang/clang-linux64.json => build/build-clang/clang-3.9-linux64.json
rename : taskcluster/scripts/misc/build-gcc-linux.sh => taskcluster/scripts/misc/build-gcc-4.9-linux.sh
2017-08-03 08:12:43 +09:00
Mike Hommey ee6de1e835 Bug 1386588 - Rename the clang build manifests. r=gps
The clang toolchains have not been static-analysis-specific for a while.


--HG--
rename : build/build-clang/clang-static-analysis-linux64.json => build/build-clang/clang-linux64.json
rename : build/build-clang/clang-static-analysis-macosx64.json => build/build-clang/clang-macosx64.json
rename : build/build-clang/clang-static-analysis-win32.json => build/build-clang/clang-win32.json
rename : build/build-clang/clang-static-analysis-win64.json => build/build-clang/clang-win64.json
2017-08-03 08:12:29 +09:00
Sylvestre Ledru 6e1f2d507b Bug 1385910 - In the error message, also ask to upload the pre-elfhacked library r=froydnj
MozReview-Commit-ID: A7ADGyQunjN

--HG--
extra : rebase_source : fac3410f828871b5b694851f99bdf588b67f0ef8
2017-07-31 16:35:03 +02:00
Mike Hommey 48eba8560c Bug 1385783 - Insert the elfhack code before the first executable section. r=froydnj
The lld linker creates separate segments for purely executable sections
(such as .text) and sections preceding those (such as .rel.dyn). Neither
gold nor bfd ld do that, and just put all those sections in the same
executable segment.

Since elfhack is putting its executable code between the two relocation
sections, it ends up in a non-executable segment, leading to a crash
when it's time to run that code.

We thus insert the elfhack code before the first executable section
instead of between the two relocation sections (which is where the
elfhack data lies, and stays).

--HG--
extra : rebase_source : ab18eb9ac518d69a8639ad0e785741395b662112
2017-08-02 16:39:12 +09:00
Mike Hommey a2b46623f9 Bug 1385783 - Don't assume both elfhack sections are next to each other. r=froydnj
--HG--
extra : rebase_source : 989e0233f5c80c61680ad4578ea6bd835d231655
2017-08-02 16:05:07 +09:00
Cameron McCormack 66d005a1e5 Bug 1385537 - Check for writable segments correctly. r=glandium
MozReview-Commit-ID: FItpvVeiMJM

--HG--
extra : rebase_source : e9eaeba92967c1e839667fb0597fd0cd8a9616a8
2017-07-29 13:56:25 +08:00
Nick Alexander 6e4a13fad8 Bug 1376306 - Bootstrap and upload java_home.tar.xz; bump Java to 1.8. r=dustin,sebastian
MozReview-Commit-ID: 3EOsrOp924f

--HG--
rename : taskcluster/scripts/misc/repackage-jdk-centos.sh => taskcluster/docker/android-gradle-build/bin/repackage-jdk-centos.sh
extra : rebase_source : 308d03828a78036076f6cdb68587be6694ac49ae
2017-07-25 20:43:14 -07:00
Mike Hommey a15c6351cb Bug 1385117 - Make the bss section of the elfhack testcase large enough. r=froydnj
Since bug 635961, building with relro makes elfhack try to use the bss
data for a temporary function pointer. If there is not enough space for
a pointer in the bss, elfhack will complain it couldn't find the bss.

In normal circumstances, this is most likely fine. Libraries with a bss
so small that it can't fit a pointer are already too small to be
elfhacked anyways. In Firefox, the two libraries with the smallest bss
have enough space for two pointers, and aren't elfhacked (libmozgtk.so
and libplds4.so).

However, the testcase that is used during the build to validate that
elfhack works doesn't have a large enough bss on x86-64, making elfhack
bail out, and the build fail as a consequence.

This, in turn, is due to the only non-thread-local zeroed data being an
int, which is not enough to fit a pointer on x86-64. We thus make it a
size_t.

--HG--
extra : rebase_source : bca2ddbf9d4a5e8786881fc524d642c38d610227
2017-07-28 07:15:39 +09:00
Gregory Szorc 3eae4bab54 Bug 1384396 - Detect Watchman Mercurial integration in configure; r=nalexander
Configure now detects VCS info. Configure now detects Watchman.
We can combine the two so configure can detect if Mercurial
is configured with Watchman enabled.

This commit does two things:

1) collects the Mercurial config so it is available to downstream checks
2) examines the config for presence and state of the fsmonitor
   extension

We don't yet do anything with the fsmonitor state. But it should be
useful soon. Also, the return value is kinda wonky. This will almost
certainly be improved as soon as there is an actual consumer.

MozReview-Commit-ID: HyHZ2X8VI0h

--HG--
extra : rebase_source : e53928127470340275f0c0f07db72b536bba885b
extra : source : a8373914cbfd9b8595fc24f36c876cab0a26c02a
2017-07-27 14:12:35 -07:00
Gregory Szorc f6426ce5ad Bug 1384396 - Add a @depends_all utility function; r=nalexander
Often you only want to evaluate a function if all its dependencies
are true. Expressing this in a "when" can be difficult. So let's
add a convenience decorator for it.

The existing code for @depends_if() was refactored to take an
evaluation function as its first argument. This prevents some
duplicate code and turns @depends_if() and @depends_all() into
one-liners.

MozReview-Commit-ID: Jbugvf0lioM

--HG--
extra : rebase_source : 177741b80ac4fbfb547d6b36a6f5777fe514d91a
extra : source : 0c2bc12f4ebe44428385745266d2fd158e0c3382
2017-07-25 22:00:38 -07:00
Ralph Giles c7c885bcbe Bug 1384258 - Build Stylo by default. r=chmanchester
Build Stylo (the styling system from servo) by default in all
builds for win32, win64, macOS and linux64 targets. It was
previously enabled for automation builds, so this just changes
the behaviour for local developer builds.

Note that this introduces a new dependency on libclang for the
binding generator. If you're developing on a tier-1 platform,
run `./mach boostrap` to install a working copy. Otherwise
llvm+libclang 4.0.1 is recommended.

Remove the explicit --enable-stylo=build in mozconfig.stylo
in favour of the configure default.

Add mozconfig.stylo to the hazard and debug-asan mozconfigs
so LLVM_CONFIG is defined properly for those builds.

Based on a patch by Bobby Holly in bug 1356991.

MozReview-Commit-ID: C2wRNl7JHpz

--HG--
extra : rebase_source : 1ed7c36a64e25b235a26864592cd7ea969a4cd25
2017-07-25 14:29:52 -07:00
Paul Adenot a7e37160fa Bug 1384655 - Don't compile Alsa support in WebRTC on Linux. r=dminor
MozReview-Commit-ID: JtppIlCEiPn

--HG--
extra : rebase_source : 9ddc63c8bd3e93c3627c6c51b96f9021a7064b56
2017-07-27 12:05:19 +02:00
Sebastian Hengst 75704b249a Backed out changeset 0c2bc12f4ebe (bug 1384396) for breaking builds when hg username has non-ascii characters. r=backout a=backout on a CLOSED TREE
MozReview-Commit-ID: 2mqBxbDHsH0
2017-07-27 14:56:29 +02:00
Sebastian Hengst 359a334524 Backed out changeset a8373914cbfd (bug 1384396)
MozReview-Commit-ID: I8IOrpGH89l
2017-07-27 14:53:41 +02:00
Carsten "Tomcat" Book d360d49d2a merge mozilla-inbound to mozilla-central a=merge 2017-07-27 10:57:25 +02:00
Wes Kocher ad35031103 Merge m-c to inbound, a=merge
MozReview-Commit-ID: LhiAcCiFBus
2017-07-26 18:33:18 -07:00
Sylvestre Ledru bd568835bd Bug 1384449 - Implement the support of when= for js_option r=glandium
MozReview-Commit-ID: Eg4klzaCaAH

--HG--
extra : rebase_source : a7ab78d852d8b472d32e886229bc9ef51fc77c20
2017-07-26 10:22:47 +02:00
Wes Kocher 5dbd554bdd Backed out 2 changesets (bug 635961) at developer's request a=backout
Backed out changeset c56fa9c1eda0 (bug 635961)
Backed out changeset ddda63d5366e (bug 635961)

MozReview-Commit-ID: I6NxBctFn8e
2017-07-25 17:57:43 -07:00
Mike Hommey 680df47bd6 Bug 1384786 - Fix try artifact builds after bug 1382502. r=gps
--HG--
extra : rebase_source : e5a79afdb0d7b060ed50a17b2650b5d20babb854
2017-07-27 14:02:39 +09:00
Gregory Szorc 4d26cc09b2 Bug 1384396 - Detect Watchman Mercurial integration in configure; r=nalexander
Configure now detects VCS info. Configure now detects Watchman.
We can combine the two so configure can detect if Mercurial
is configured with Watchman enabled.

This commit does two things:

1) collects the Mercurial config so it is available to downstream checks
2) examines the config for presence and state of the fsmonitor
   extension

We don't yet do anything with the fsmonitor state. But it should be
useful soon. Also, the return value is kinda wonky. This will almost
certainly be improved as soon as there is an actual consumer.

MozReview-Commit-ID: HyHZ2X8VI0h

--HG--
extra : rebase_source : d245d316cc8a27b2827b7824204549b91465bd34
2017-07-25 22:05:23 -07:00
Gregory Szorc 869db005b9 Bug 1384396 - Add a @depends_all utility function; r=nalexander
Often you only want to evaluate a function if all its dependencies
are true. Expressing this in a "when" can be difficult. So let's
add a convenience decorator for it.

The existing code for @depends_if() was refactored to take an
evaluation function as its first argument. This prevents some
duplicate code and turns @depends_if() and @depends_all() into
one-liners.

MozReview-Commit-ID: Jbugvf0lioM

--HG--
extra : rebase_source : 38b4af7b668830589126e8a83f5d5ab73914d07c
2017-07-25 22:00:38 -07:00
Mike Hommey 4b822dd9f0 Bug 1382502 - Remove ${var}_IS_SET variables. r=ted
In bug 1181040, we added ${var}_IS_SET variables for
mk_add_options-defined variables. In the two years since, that has never
been used for anything else than MOZ_PGO_IS_SET, and the only use for
that has now been removed, so remove those ${var}_IS_SET variables.

--HG--
extra : rebase_source : 2fc9abe0c3badbf06f3858fcf326237e67891fee
2017-07-20 14:22:11 +09:00
Mike Hommey eaa93380ca Bug 1382502 - Enable sccache on PGO builds. r=ted
Note this will only enable it on try, autoland and mozilla-inbound,
which are the only branches where sccache are enabled at the moment.
Enabling on more builds (or not) is the subject of bug 1373460.

Also note that bug 1181040, that ensured PGO builds weren't using
sccache mentions that back then, link times went up when using sccache
(with -Z7) vs. without, but that was presumably with MSVC 2013. Try
suggests link times are the same using sccache now (still using -Z7,
pending bug 1318370).

--HG--
extra : rebase_source : 9f9d87714f3c841b790eb7d692ea0968b1755b70
2017-07-20 11:31:14 +09:00
Mike Hommey f751ce9e63 Bug 1382502 - Include mozconfig.cache in most cases. r=ted
We want most builds to be actually using sccache, so we include
mozconfig.cache from mozconfig.common. However, since the --with-ccache
configure option doesn't exist on non-compile jobs (e.g. artifact
builds), we move to using the CCACHE environment variable instead, which
allows us to unset it in mozconfig.no-compile.

And since mozconfig.no-compile is always included where no_sccache is
set, we can remove that variable.

--HG--
extra : rebase_source : a8c743de1fd7a3c0fbc53f7c233df36585897767
2017-07-20 11:07:53 +09:00
Mike Hommey 809895d12d Bug 1378986 - Avoid crashing in elfhack when the input file has no relocations. r=me a=bustage
MozReview-Commit-ID: 8jXvB8iRJkC

--HG--
extra : rebase_source : 6b5f24e9bca51d090c5a7c41977e42c513136ec4
2017-07-25 15:50:34 -07:00
Mike Hommey 43b0a30fd0 Bug 635961 - Allow elfhack to relocate data under the GNU_RELRO segment. r=froydnj
--HG--
extra : rebase_source : 873898d5929414b754bf592ab4d60574700b646a
2017-07-11 07:41:07 +09:00
Mike Hommey 76cfb9c89f Bug 635961 - Allow elfhack to relocate data under the GNU_RELRO segment. r=froydnj
--HG--
extra : rebase_source : abbb92ee6a8f317fe80af5bf982c93c8b773a42f
2017-07-11 07:41:07 +09:00
Gregory Szorc 204ba452aa Bug 1382930 - Remove configure references to gonk; r=glandium
Some gaia-related code was also found and removed as part of the
cleanup.

MozReview-Commit-ID: DEjVSljzzu1

--HG--
extra : rebase_source : 58c4c34df44a258d90029853f29ea01338bd142b
2017-07-20 21:48:10 -07:00
Tom Ritter 3efa760176 Bug 1370007 Generate Shaders on a MinGW Cross Compile on Linux r=dvander,ted
Bug 1365859 introduced a dependency on the Visual Studio binary 'fxc'
to generate Shader bytecode. This was unavailable when compiling for
Windows on Linux as part of a MinGW build.

This commit adds a configure check for fxc, and also searches for
fxc2, which was written (https://github.com/tomrittervg/fxc2) to be
a tiny application that wraps D3DCompileFromFile and can produce
similar (but not exactly the same) output as fxc.

fxc2 is compiled using MinGW for Windows, and runs under wine, so
we need to check for wine also.

Finally, fxc outputs some include information fxc2 doesn't, so
we will just change that assert to not take effect.

MozReview-Commit-ID: 8LVxuODi6cV

--HG--
extra : rebase_source : 9116d266663284d6594e34aa53bd37eae01ba67f
2017-07-24 14:32:08 -05:00
Sylvestre Ledru e49fe93233 Bug 1382364 - Do not fail the build when the linker is unknown. r=glandium
Instead, tag it as 'other'

MozReview-Commit-ID: 1yyLuMKkR7a

--HG--
extra : rebase_source : cf49793d52a7062b29f1476850ca121e6fb1442c
2017-07-21 10:03:30 +02:00
Andrew Halberstadt 88348cfd21 Bug 1382775 - Move testing/tools/autotry to tools/tryselect/selectors/syntax.py, r=chmanchester
The |mach try| implementation isn't really testing specific so figured while doing this refactor
anyway we could take the opportunity to move it to /tools. This renames the "autotry" module to
"syntax" as one of the 'selectors' under the newly created tryselect module.

MozReview-Commit-ID: DmnGU5sKuCk

--HG--
rename : testing/tools/autotry/autotry.py => tools/tryselect/selectors/syntax.py
extra : rebase_source : 52f2a61d97107b8d50e3894ea0f5cd9c24d4108d
2017-07-17 21:36:23 -04:00
Dustin J. Mitchell 75ef0012f1 Bug 1328727: vendor json-e 2.1.1; r=jonasfj
MozReview-Commit-ID: D5ZbZtMAlkN

--HG--
extra : rebase_source : 6650f2f6f104819a626b7b0075c868b9dee19f3b
2017-07-21 16:12:25 +00:00
Nathan Froyd 320fa56056 Bug 1384220 - remove --with-crashreporter-enable-percent configure option; r=ted.mielczarek
This option was added ~decade ago; AFAICT from bug archaeology, the
option was added to prevent our servers from being overwhelmed.
Somewhere over the years, however, we obtained more capable servers and
the option disappeared from mozconfigs.  It seems moderately unlikely
that we'll have a need for this option again, and we could reintroduce
this patch very easily in any event.  Let's go ahead and remove it.
2017-07-26 11:16:43 -04:00
Sebastian Hengst 88e9d5fb24 Backed out changeset 772250315e76 (bug 1390524) for build bustage in test_compile_checks.py: compiler_class() takes exactly 2 arguments (1 given). r=backout on a CLOSED TREE 2017-08-17 21:31:00 +02:00
Nathan Froyd cd71d2de73 Bug 1390524 - correctly pass extra_toolchain_flags only to the target; r=glandium
We define extra_toolchain_flags for passing extra flags to the target
compiler during configure.  But the way things are currently set up, we
pass those flags to the host compiler during configure as well.  This
behavior is incorrect, and we should only be passing the flags from
extra_toolchain_flags if we're compiling for the target.
2017-08-17 14:03:20 -04:00
Wes Kocher 749da2f3e6 Backed out 4 changesets (bug 1259832) for apparently scheduling nightlies on every push/platform a=backout
Backed out changeset 7781a37a4db0 (bug 1259832)
Backed out changeset 73bf88110b38 (bug 1259832)
Backed out changeset 14d18d7cf454 (bug 1259832)
Backed out changeset a02695cbf576 (bug 1259832)

MozReview-Commit-ID: 4Tf6jBcvKLq
2017-08-16 17:26:08 -07:00
Wes Kocher cb3e58d017 Merge m-c to inbound, a=merge
MozReview-Commit-ID: ENNd2QVktmQ
2017-08-16 17:07:52 -07:00
Ted Mielczarek 79436109ef bug 1259832 - add a post-build task to upload generated source files. r=dustin
This change adds an upload-generated-sources task kind that runs after nightly
builds, fetches their `target.generated-files.tar.gz` artifact, and uploads
all the contained files to an S3 bucket. For actual nightly and release builds
on SCM level 3 trees, the S3 bucket is configured to be publicly accessible,
so that tools like Socorro will be able to fetch generated source files that
appear in crash reports, and debuggers will be able to fetch generated sources
when they show up while debugging Nightly or Release builds.

There are also level-2 and level-1 S3 buckets configured for builds happening
on trees of other levels such as try. They are not configured as publicly
accessible, but they exist so that these tasks can be tested in try.

MozReview-Commit-ID: Js1HRftbtep

--HG--
extra : rebase_source : 13d6b71200cda11938af3048cbeddce4edfc9c07
2017-08-09 14:32:05 -04:00
Ted Mielczarek 3bf693fcb6 bug 1259832 - package generated sources and upload them along with other build artifacts. r=gps
This change makes us upload an `$(PKG_BASENAME).generated-files.tar.gz` archive
alongside other build artifacts which contains all the generated source files
from the build. A change after this will introduce an `upload-generated-sources`
task to take this artifact and upload the individual files to an S3 bucket.

This will be used to provide links to generated source files when they appear
in stack traces in crash reports.

MozReview-Commit-ID: 6yQAdlZ5q3O

--HG--
extra : rebase_source : 3f6ef734c062e0f5e9c2ca433ffad51fdf14b1ad
2017-07-31 12:47:08 -04:00
Ted Mielczarek 91b9359e99 bug 1259832 - move artifact build automation step overrides to a common mozconfig. r=chmanchester
A followup change will be adding a new automation step that wants to be skipped
in artifact builds, and this will make that simpler.

MozReview-Commit-ID: 5xwRB9eCRQn

--HG--
extra : rebase_source : 0b5b5087eddbf030161482f054ddd4d7cc08ffd4
2017-08-09 13:26:02 -04:00
Andrew Halberstadt 2bc4fc25c7 Bug 1311991 - Vendor in cram 0.7 to /third_party/python, r=gps
This was added by unzipping a binary wheel

MozReview-Commit-ID: ASHXfGdeVH8

--HG--
extra : rebase_source : 361134dd30f0267b7d1039ba92199ee999aab751
2017-01-17 16:05:56 -05:00
Bob Owen 847e4be624 Bug 1364137: Get both 32-bit and 64-bit registry values when searching for the Windows SDK. r=glandium
The values that we need to find in the registry can be inconsistent across
different installations, so we retrieve values from both views in our search
for a valid SDK. This also ensures this works for 32-bit and 64-bit python.
2017-07-22 11:32:24 +01:00
Gregory Szorc 79daf7649a Bug 1377216 - Search for hg.exe before hg; r=glandium
Mercurial installs on Windows often provide both a native hg.exe
and a hg shell script. This allows them to work from both Windows
and UNIX-like shells.

While the which Python package searches for .exe and other common
executable extensions on Windows automatically, it doesn't prefer
these results to an extension-less value. This meant that "hg"
was resolved to the shell script. When we went to run it, it
failed because it isn't a valid Win32 application.

We work around the problem by preferring "hg.exe" over "hg"
for the binary name.

Ideally this would be platform specific. But the harm should be
minimal.

--HG--
extra : rebase_source : 1354c739de1ff738812ad100176ad7e9d08fadde
2017-07-20 23:07:55 -07:00
Gregory Szorc 6f0154d4c2 Bug 1377216 - Add dependency on --help to vcs_checkout_type; r=glandium
This is now required as of 00ef8018730c.

Landing on a CLOSED TREE.

--HG--
extra : rebase_source : 410e4a677cdc1f1238f778a00078ac6e6de420bd
extra : amend_source : e81cf510948bedd76ac77790eb96aae1fe3cda1c
2017-07-20 15:08:20 -07:00
Gregory Szorc fa4893f658 Bug 1377216 - Discover version control info in configure; r=glandium
For reasons unknown to me, Windows CI is periodically failing to find
the Mercurial binary.

In addition, we've also reimplemented various VCS logic throughout
the build system. There is room to cut down on code complexity by
e.g. recording VCS info in configure instead of determining it
at run-time.

Also, for forensic purposes it is sometimes desirable to know which
VCS tool is in use by a build and which version of that tool is being
used.

This commit adds VCS type detection, binary searching, and version
resolution to configure.

substs now contains VCS_CHECKOUT_TYPE, HG, and GIT, which can be
consulted by downstream consumers.

If the Mercurial or Git versions could not be resolved, all variables
are not set. Otherwise, VCS_CHECKOUT_TYPE and one of HG or GIT is set.

If MOZ_AUTOMATION is set, we require that the VCS info be resolved.
This helps prevents weirdness in automation due to unexpected
environment configuration.

MozReview-Commit-ID: AMLy0Hfx5rD

--HG--
extra : rebase_source : edef9165d32dc47308a14b0fbabce3c1d3d28176
2017-07-18 18:07:29 -07:00
Gregory Szorc b47fb974f1 Bug 1377216 - Accept environment variables to check_cmd_output; r=glandium
And include code to work around a bug on older Python versions.

MozReview-Commit-ID: 4pBnMQQJOGB

--HG--
extra : rebase_source : 6f7c5784230bd37b3496b9bb1781e8d342f741b4
2017-07-18 18:06:03 -07:00
Gregory Szorc 499d2ea19c Bug 1381741 - Only fail gold detection when --enable-gold is specified; r=glandium
developer_options (!--enable-release) implies to search for and prefer
the gold linker. As part of porting gold detection to moz.configure
in d0e782180741 (bug 1351109), the logic inadvertently changed to
require gold when either --enable-gold or !--enable-release were
present.

This commit relaxes the requirement to find gold when only --enable-gold
is true.

MozReview-Commit-ID: HTBicWNUkvy

--HG--
extra : rebase_source : dd3938a7914f5db6c315fb775e7cc5ea177bf600
2017-07-20 08:24:36 -07:00
Mike Hommey 0cdaafffc5 Bug 1374727 - Apply check_prog's `when` to more of what it "expands" to. r=chmanchester
check_prog, when used with a `when` argument, doesn't work the same way
as putting it under a `with only_when()` block, while it should. The
difference comes from the fact that `with only_when()` applies the
`when` to every option and depends used in the block (which check_prog
calls a bunch of).

So, we "manually" apply the `when` to all option and depends in
check_prog. An alternative solution would be to put the whole function
under a `with only_when()` block, but that would mean reindenting the
whole function.

Either way, as a consequence, this requires the `when` to have a
dependency on --help for "non-trivial" functions, which fortunately,
there's only one of.

--HG--
extra : rebase_source : d91eca9e303c7062394d92a526983714ef3e612f
2017-06-21 07:19:33 +09:00
Mike Hommey 4c6aca3b5a Bug 1382525 - Move LLVM_CONFIG out of mozconfig.common. r=chmanchester
LLVM_CONFIG, per the contents of toolkit/moz.configure, is tied to
--enable-stylo, but it currently is set on all types of builds. It
currently happens to work, but it's actually not meant to, and sure
enough, the fix for bug 1374727 exacerbates that.

So we create a new mozconfig.stylo file that enables stylo and sets
LLVM_CONFIG, such that only build types that do enable stylo have
LLVM_CONFIG set.

--HG--
extra : rebase_source : 01277a79951888046c0b8e29c61cfc3b049ee0f0
2017-07-20 14:06:23 +09:00
Ryan VanderMeulen 741a7a5ea3 Backed out 6 changesets (bug 1377216) for SM(pkg) bustage on a CLOSED TREE.
Backed out changeset b5701f3ce506 (bug 1377216)
Backed out changeset 1f37aebe0f43 (bug 1377216)
Backed out changeset c8931588f674 (bug 1377216)
Backed out changeset ded5328ba74c (bug 1377216)
Backed out changeset 6cb234539746 (bug 1377216)
Backed out changeset ce836965fd58 (bug 1377216)
2017-07-19 22:14:03 -04:00
Gregory Szorc c310ba24a6 Bug 1377216 - Discover version control info in configure; r=glandium
For reasons unknown to me, Windows CI is periodically failing to find
the Mercurial binary.

In addition, we've also reimplemented various VCS logic throughout
the build system. There is room to cut down on code complexity by
e.g. recording VCS info in configure instead of determining it
at run-time.

Also, for forensic purposes it is sometimes desirable to know which
VCS tool is in use by a build and which version of that tool is being
used.

This commit adds VCS type detection, binary searching, and version
resolution to configure.

substs now contains VCS_CHECKOUT_TYPE, HG, and GIT, which can be
consulted by downstream consumers.

If the Mercurial or Git versions could not be resolved, all variables
are not set. Otherwise, VCS_CHECKOUT_TYPE and one of HG or GIT is set.

If MOZ_AUTOMATION is set, we require that the VCS info be resolved.
This helps prevents weirdness in automation due to unexpected
environment configuration.

MozReview-Commit-ID: AMLy0Hfx5rD

--HG--
extra : rebase_source : edef9165d32dc47308a14b0fbabce3c1d3d28176
2017-07-18 18:07:29 -07:00
Gregory Szorc c29efbaf05 Bug 1377216 - Accept environment variables to check_cmd_output; r=glandium
And include code to work around a bug on older Python versions.

MozReview-Commit-ID: 4pBnMQQJOGB

--HG--
extra : rebase_source : 6f7c5784230bd37b3496b9bb1781e8d342f741b4
2017-07-18 18:06:03 -07:00
Ryan VanderMeulen 0cfb1d8460 Merge inbound to m-c. a=merge
CLOSED TREE
2017-07-19 10:00:35 -04:00
Ryan VanderMeulen a064d6dbfc Merge m-c to inbound. a=merge 2017-07-18 13:00:03 -04:00
Dan Minor 817491807e Bug 1379836 - Fix AEC Logging; r=jesup
This enables apm logging by setting the apm_debug_dump variable in gyp.mozbuild.
Prior to this change, some files were including apm_data_dumper.h with logging
enabled and some were not.

This also removes the AEC* C interface and calls into webrtc::Trace directly.
Whatever historical reasons for having a C interface into these calls no
longer seems to apply. In addition reserving a buffer for the base file name
and then ensuring it was null terminated caused an ASAN "stack-buffer-overflow"
while testing. This was because it was not handling an empty base file
name properly. This would not normally happen if AEC logging was enabled through
about:webrtc, but it still seems safer to use std::string.

MozReview-Commit-ID: Ikz5xO74syA

--HG--
extra : rebase_source : 8e0c59117135fadb75f4a7e6be5588af1404533d
2017-07-12 16:49:15 -04:00
Bob Owen f33fd037aa Bug 1356493: Add the SDK version number to the bin path for Windows 10 SDK v10.0.15063.0 and above. r=glandium
This patch also works for the current preview SDK v10.0.16232.0.
2017-07-18 14:21:32 +01:00
Jean-Yves Avenard 77f31bcb34 Bug 1379190: P2. Remove OMX related config. r=glandium
They are no longer used.

MozReview-Commit-ID: BTTjmhoqKgi

--HG--
extra : rebase_source : 395f6385f7d5ee6bd4413e6247297aa5002ea137
2017-07-13 13:00:23 +02:00
Sylvestre Ledru b4dc56b423 Bug 1351109 - Move the gold linker support to the python configure r=glandium
MozReview-Commit-ID: 1FC0W7EqdCI

--HG--
extra : rebase_source : 6df832649a6130869b106cf8c79164b85d1f1ca6
2017-07-05 11:27:56 +02:00
mozilla@mozilla-23773 6d62fe4972 Bug 1344244 - Part 1: Accept newer Android lint version. r=glandium
MozReview-Commit-ID: KRwU0UKjkZZ

--HG--
extra : rebase_source : 45325d8c37dcdaffa6ee6f22273db59963758509
2017-06-29 11:43:22 -07:00
Mike Hommey 2a24da6832 Bug 1380964 - Get and upload useful sccache logs. r=gps
When investigating why a particular build got a particularly high number
of cache misses, it is useful to know exactly *what* had cache misses,
and you can't get the missing information after the fact.

We used to have some stats stored in a log file uploaded as artifact
with the old python sccache per bug 1005495 (and before that inline in
the build log), and we actually still have remains of that in the form
of a EXTRA_UPLOAD_FILES in build/mozconfig.cache.

Let's reuse that, and get some useful logs from sccache. Ideally sccache
would give better logs, but those are sufficient for now. We'll figure
things out eventually. https://github.com/mozilla/sccache/issues/151

--HG--
extra : rebase_source : a2e7093697a5b720ab28f155560211d6c0a4347e
2017-07-14 09:46:38 +09:00
Mike Hommey f5db615a54 Bug 1367940 - Ensure sccache inherits the make jobserver file descriptors. r=gps
Rustc 1.20 gained support for make jobserver. But when rustc is invoked
through sccache, sccache needs to have inherited the make jobserver file
descriptor to pass it down to rustc. But what will be running sccache
first during the build is not really deterministic. It might as well end
up being a script invoking the preprocessor that ends up doing it. And
we can't add the necessary + prefix to all commands that potentially can
end up invoking sccache.

So we manually start the sccache server at the beginning of the build,
through preflight.

Note this works on automation, but not for local builds, but few people
are using sccache locally for rust (yet). Let's figure that out in a
followup.

--HG--
extra : rebase_source : eda5853d7247be247a1bec1a5d7e84b3846fd2c1
2017-07-13 20:10:23 +09:00
Nick Alexander bd230aea82 Bug 1352602 - Part 2: Use build system SDK versions in Gradle configurations. r=maliu
This patch does two things:

- add a Gradle-only ANDROID_COMPILE_SDK_VERSION substitution;
- uses it while uniformizing all of the Gradle Android SDK version
  configurations.

The approach is fairly standard (and we were using it already); see,
for example
https://medium.com/@ali.muzaffar/gradle-configure-variables-for-all-android-project-modules-in-one-place-5a6e56cd384e

This will make bumping the Gradle configuration versions forward
easier.

MozReview-Commit-ID: 1j5siCvR5qt

--HG--
extra : rebase_source : 07afb00de0e4a72af4026eb19ff4f2530c119336
2017-06-21 10:52:30 -07:00
Nick Alexander 23b90d5c28 Bug 1352602 - Part 1: Don't AC_DEFINE ANDROID_TARGET_SDK, MOZ_ANDROID_{MIN,MAX}_SDK_VERSION. r=chmanchester
This is just a small piece in the larger project of minimizing the set
of global AC_DEFINEs.  None of these are relevant to C/C++ code;
they're mobile/android specific, so we should get them out of
mozilla-config.h.

In addition, this replaces hard-coded values with values from the
build system throughout mobile/android.

MozReview-Commit-ID: 9IJlsm38LFK

--HG--
extra : rebase_source : 0e55c0967cbb7f0df0d297eb330fc615e5759346
2017-06-21 11:16:08 -07:00