Commit Graph

102 Commits

Author SHA1 Message Date
Ricky Stewart
933b3522b8 Bug 1633156 - Don't emit cached table files from ply r=glandium
`ply`, [by design](https://github.com/dabeaz/ply/issues/79), does not produce reproducible table files; hence bug 1633156. (Note that this was *always* true, but only became a problem once we switched to Python 3, which has more unpredictable dict iteration order than Python 2.7, at least prior to [3.7](https://docs.python.org/3/whatsnew/3.7.html#summary-release-highlights).)

In any other circumstance I would consider submitting a patch to `ply` to fix this, but as of the [in-progress version 4.0 of the library](https://github.com/dabeaz/ply/blob/master/CHANGES), it doesn't even emit this cached data any more, and indeed the [latest version of the code](1fac9fed64/ply) doesn't even call `open()` at all except to do logging or to read the text data to be parsed from `stdin`. So if we were going to pin our future on `ply` and upgrade to later versions of the library in the future, we would have to live in a world where `ply` doesn't generate cached table files for us anyway.

Emitting the cached table files so later build steps can consume them is an "optimization", but it's not clear exactly how much actual value that optimization provides overall. Quoth the `CHANGES` file from that repository:

```
PLY no longer writes cached table files.  Honestly, the use of
the cached files made more sense when I was developing PLY on
my 200Mhz PC in 2001. It's not as much as an issue now. For small
to medium sized grammars, PLY should be almost instantaneous.
```

In practice, I have found this to be true; namely, `./mach build pre-export export` takes just about as long on my machine after this patch as it did before, and in a try push I performed, there's no noticeable performance regression from applying this patch. In local testing I also found that generating the LALR tables in calls to `yacc()` takes about 0.01s on my machine generally, and we generate these tables a couple dozen times total over the course of the `export` tier now. This isn't *nothing*, but in my opinion it's also not nearly long enough where it would be a concern given how long `export` already takes.

That `CHANGES` file also stresses that if caching this data is important, we have the option of doing so via `pickle`. If and when we decide that re-enabling this optimization is valuable for us, we should take control of this process and perform the generation in such a way that we can guarantee reproducibility.

Differential Revision: https://phabricator.services.mozilla.com/D73484
2020-05-07 00:39:28 +00:00
Mike Hommey
824e3fcd1f Bug 1634926 - Drive-by: fix condition for security/target vs. multiple target. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73797
2020-05-05 11:07:16 +00:00
Mike Hommey
4fc2a1364a Bug 1634926 - Don't depend on in-tree NSS/NSPR when building against system NSS/NSPR. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73796
2020-05-05 11:28:54 +00:00
Kirk Steuber
01623391ec Bug 1627805 - Allow the update agent to link against updatecommon r=glandium
Linking Rust code against the updatecommon library is not well supported by our build system, but it should be possible. The changes to updatecommon's moz.build will cause updatecommon.lib to be created, which Rust can link against. The build.rs script tells cargo which shared Windows libraries are needed for linking, and where updatecommon.lib can be found. The change to config/recurse.mk enforces the dependency of the update agent on updatecommon, so that we do not attempt to link the agent before updatecommon has been built.

Differential Revision: https://phabricator.services.mozilla.com/D70207
2020-04-24 19:23:08 +00:00
Jan Beich
307671c87e Bug 1628660 - Unbreak tests on Tier3 platforms after bug 1587353 r=dragana
Differential Revision: https://phabricator.services.mozilla.com/D70374

--HG--
extra : moz-landing-system : lando
2020-04-09 16:19:04 +00:00
Michal Novotny
e4de0c38d1 Bug 1587353 - Add an http3 test server r=agrover
Differential Revision: https://phabricator.services.mozilla.com/D48666

--HG--
extra : moz-landing-system : lando
2020-03-28 20:06:41 +00:00
Mike Hommey
b483279699 Bug 1586100 - Only depend on js/src/export when it is available. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D51978

--HG--
extra : moz-landing-system : lando
2019-11-06 13:16:40 +00:00
Mike Hommey
4734e201cf Bug 1586100 - Avoid circular dependencies related to config/export|host. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D51977

--HG--
extra : moz-landing-system : lando
2019-11-06 13:17:09 +00:00
Mike Hommey
8f69271ae4 Bug 1579761 - Add missing dependencies on .cargo/config. r=mshal
.cargo/config is necessary for all invocations of cargo, which, apart
from normal rust targets, actually also happens indirectly when we
invoke cbindgen.

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

--HG--
extra : moz-landing-system : lando
2019-10-25 23:55:50 +00:00
Nick Alexander
c46ec74815 Bug 1580356 - Remove Fennec (Firefox for Android). r=snorp,mshal
This does many things:

1) stops producing (and consuming) `FennecJNI*` JNI wrappers
2) removes the :app and :thirdparty Gradle projects
3) removes relevant pieces of the Gradle target configuration
4) updates lints
5) purges old configurations

After this commit, the `mobile/android` project/application builds
only GeckoView.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 20:55:11 +00:00
Emilio Cobos Álvarez
9c8ffa9e68 Bug 1578661 - Add telemetry histograms for all CSS properties. r=chutten,boris
And add them to the UseCounter enum. Also add some sanity-check assertions that
the reporting code relies on.

This works much like the deprecated operation list.

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

--HG--
extra : moz-landing-system : lando
2019-09-19 00:20:37 +00:00
Cosmin Sabou
2978a72248 Backed out 10 changesets (bug 1578661) for linting failures on layout/style/ServoCSSPropList.py. CLOSED TREE
Backed out changeset b1b5393b1099 (bug 1578661)
Backed out changeset b87eebb0cf6e (bug 1578661)
Backed out changeset 6ba2ee45f26e (bug 1578661)
Backed out changeset 4a1d45160d60 (bug 1578661)
Backed out changeset 7a5687bebc02 (bug 1578661)
Backed out changeset 33c306c9020a (bug 1578661)
Backed out changeset 89d7e6fb24b0 (bug 1578661)
Backed out changeset 42c4943e569b (bug 1578661)
Backed out changeset 88d988a80de1 (bug 1578661)
Backed out changeset 78c90f9e9eee (bug 1578661)
2019-09-19 01:50:03 +03:00
Mike Hommey
a2c98c357d Bug 1578530 - Add missing dependencies for clang-plugin tests. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D46255

--HG--
extra : moz-landing-system : lando
2019-09-18 13:39:03 +00:00
Emilio Cobos Álvarez
7155c266f5 Bug 1578661 - Add telemetry histograms for all CSS properties. r=chutten,boris
And add them to the UseCounter enum. Also add some sanity-check assertions that
the reporting code relies on.

This works much like the deprecated operation list.

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

--HG--
extra : moz-landing-system : lando
2019-09-18 15:44:39 +00:00
Andreea Pavel
7494b360c0 Backed out 10 changesets (bug 1578661) for lints failure at ServoCSSPropList.cpp on a CLOSED TREE
Backed out changeset ed3c619100e7 (bug 1578661)
Backed out changeset 027514a2eaf6 (bug 1578661)
Backed out changeset f2e228282b20 (bug 1578661)
Backed out changeset 67c36136dce7 (bug 1578661)
Backed out changeset 2280b27cc130 (bug 1578661)
Backed out changeset 445d13a2c452 (bug 1578661)
Backed out changeset 89caaa850049 (bug 1578661)
Backed out changeset 2f8be5db1786 (bug 1578661)
Backed out changeset 51a015a9a0f8 (bug 1578661)
Backed out changeset ad8e1f27a600 (bug 1578661)
2019-09-18 18:09:30 +03:00
Emilio Cobos Álvarez
e1882a044c Bug 1578661 - Add telemetry histograms for all CSS properties. r=chutten,boris
And add them to the UseCounter enum. Also add some sanity-check assertions that
the reporting code relies on.

This works much like the deprecated operation list.

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

--HG--
extra : moz-landing-system : lando
2019-09-18 12:04:35 +00:00
Mike Shal
4d1c6efb73 Bug 1579969 - Don't add export dependency on .cargo/config when testing; r=glandium
Bug 1578254 added a dependency on .cargo/config to export, which happens
to work in the python/mozbuild/mozbuild/test/backend/test_build.py test
cases because DEPTH=., and make finds the checked-in file .cargo/config
in topsrcdir because VPATH points there. After removing VPATH in bug
1496746, the test no longer finds the file in topsrcdir, and doesn't
have a rule to build it since that exists in the top-level moz.build
file.

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

--HG--
extra : moz-landing-system : lando
2019-09-09 23:56:10 +00:00
Mike Hommey
d9362c0f85 Bug 1578254 - Trick Make into running rust targets earlier again. r=nalexander
One of the things bug 1567616 did was to change how .cargo/config is
preprocessed, from it happening during configure to it happening during
the build. And to make things happen properly, dependencies were added
on the rust targets to ensure the .cargo/config file is created before
they run.

Unfortunately, that changed the order in which Make would run all the
targets while recursing for the compile tier, when the file doesn't
exist first. So instead of starting the compile tier with rust targets,
it would start with most C++, then do rust... which we know to make
builds slower overall because of the need to wait for those rust builds
to finish which C++ has all been dealt with already, and lacking
parallelism during the rust build.

So we force .cargo/config to be generated during export (which it is not
already because OBJDIR_PP_FILES are currently dealt with during misc).
That makes Make still run the rust targets early during the compile
tier.

And while here, we extend the if block in recurse.mk that excludes all
the top-level recursion dependencies when running from subdirectories.

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

--HG--
extra : moz-landing-system : lando
2019-09-06 22:58:03 +00:00
Mike Hommey
2c49da7d67 Bug 1575760 - Generate .cargo/config as part of the build rather than as a configure subst file. r=firefox-build-system-reviewers,chmanchester
We'll require preprocessing that configure subst files don't allow in
the next change, so prepare for that.

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

--HG--
extra : moz-landing-system : lando
2019-08-22 21:27:24 +00:00
Mike Hommey
5426bad1b9 Bug 1575484 - Don't LTO gkrust-gtest. r=froydnj
We don't actually care that much about LTO'ing the rust parts of libxul
for gtests, and not LTO'ing it would save multiple minutes of build time
on automation.

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

--HG--
extra : moz-landing-system : lando
2019-08-21 11:14:14 +00:00
Mike Hommey
66d7fe943e Bug 1575420 - Replace MOZ_WIDGET_TOOLKIT value of "gtk3" with "gtk". r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D42765

--HG--
extra : moz-landing-system : lando
2019-08-21 12:25:42 +00:00
Mike Hommey
c8dc824814 Bug 1573566 - Add target/host-objects targets to build objects. r=froydnj
Make the target and host targets depend on those, and flatten the
dependencies.

That is, instead of chains like:
  browser/app/target: mozglue/build/target
  mozglue/build/target: memory/build/target

we now have:
  browser/app/target: browser/app/target-objects \
                      mozglue/build/target-objects \
                      memory/build/target-objects

Which means Make can feel free to build the object files in browser/app
before building other dependencies.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 17:25:05 +00:00
Mike Hommey
c15df41c2f Bug 1573566 - Undo bug 1573314 and bug 1572046. r=froydnj
With the addition of toolkit/library/build because of the rust
shenanigans, bug 1573314 and bug 1572046 don't do anything useful
anymore. We're going to do something better anyways.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 14:39:54 +00:00
Rob Lemley
428f3b39d5 Bug 1572394 - Remove MOZ_LDAP_XPCOM ifdef from config/recurse.mk. r=glandium
Fixes Thunderbird build bustage related to target-shared.

Investigation into the build issue revealed that this hack is no longer necessary and can be removed. And it's always nice to remove Thunderbird specific code from the build system.

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

--HG--
extra : moz-landing-system : lando
2019-08-09 01:48:46 +00:00
Mike Hommey
0637bfef3e Bug 1572046 - Build shared libraries in a separate target. r=nalexander
When a directory, like toolkit/library, builds both a static and a
shared library, and another, like toolkit/library/gtest, depends on the
static part, it currently needs to wait for the shared library to be
finished building, preventing both libraries being built in parallel.

By separating shared libraries to a different target, we allow more
parallelism to the build.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 22:50:14 +00:00
Mike Hommey
6098f22649 Bug 1565706 - Allow to run mach build rust without setting MOZ_RUST_TIER. r=froydnj
At the same time, make things a little more tangible in the tiers setup
in baseconfig.mk.

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

--HG--
extra : moz-landing-system : lando
2019-07-15 23:50:31 +00:00
Chris Manchester
c346a68ae0 Bug 1474028 - Add a way to exclude libraries from the default build. r=ted
MozReview-Commit-ID: MVfplx9lN2

--HG--
extra : rebase_source : 10b4bd3dcc1386d782531206c84b66207297d00a
2018-08-10 12:07:29 -07:00
Narcis Beleuzu
f4e5fb2d0f Backed out 2 changesets (bug 1474028) per chmanchester`s request. a=backout
Backed out changeset 52bd814d3589 (bug 1474028)
Backed out changeset 39a528147c34 (bug 1474028)
2018-08-12 21:22:45 +03:00
Chris Manchester
2476269229 Bug 1474028 - Add a way to exclude libraries from the default build. r=ted
MozReview-Commit-ID: MVfplx9lN2

--HG--
extra : rebase_source : 3eb5352b5bc0d1b9be857c16efa5af0313afb6e7
2018-08-10 12:07:29 -07:00
Mike Hommey
b2837054ff Bug 1469091 - Build the clang plugin as a host shared library. r=ted
This adds just enough host shared library support for this one use case,
but also takes shortcuts, because fully supporting host shared library
is a deep rabbit hole I'm not ready to take just to fix --enable-lto
--enable-clang-plugin on mac builds.

One downside is that one my machine the plugin now takes > 80s to build,
instead of 15s before, thanks to the lack of unified sources.

--HG--
extra : rebase_source : bf52a72a01d4e3eb77cf52b646b19734b9273075
2018-07-05 14:58:09 +09:00
Chris Manchester
a4d8492ece Bug 1464954 - Call TIERS when invoking the build with individual tier names. r=gps
MozReview-Commit-ID: FIEE7jd1jDD

--HG--
extra : rebase_source : 771909ae7376b8d6efc4518126917ab28bef1284
2018-05-31 21:08:18 -07:00
Nick Alexander
bf575d403e Bug 1444546 - Part 4: Use GENERATED_FILES for Android JNI wrapper generation. r=froydnj,jchen
MozReview-Commit-ID: 1IjoQdEMqr8

--HG--
extra : rebase_source : 9f2e539328d83aa15bce0357a8c7d2722d517b2a
2018-03-06 20:09:37 -08:00
Nick Alexander
53a4852ffa Bug 1444546 - Part 3: Use GENERATED_FILES for Android SDK bindings generation. r=froydnj,jchen
MozReview-Commit-ID: 2blmzKTvpj3

--HG--
extra : rebase_source : 0954b407ce6625510eadc67dd9989da949b22110
2018-03-06 19:19:48 -08:00
Nick Alexander
520b63c85e Bug 1444546 - Part 2: Build annotationProcessors with Gradle. r=jchen
We want annotationProcessors to be compiled and archived into a JAR at
build time, ready to generate JNI wrappers.  (That is, until we turn
the whole thing into a real annotation processor.)  But even if we do
use a real annotation processor, we still need to generate SDK
bindings, which is less clearly expressed as an annotation processor.
(It's more of a build step.)

Gradle provides a huge number of ways to organize build logic to
achieve this: see
https://docs.gradle.org/current/userguide/organizing_build_logic.html.
Unfortunately, the best such way -- putting the code into
$topsrcdir/buildSrc -- has key disadvantages:

1) it pollutes the top-level $topsrcdir, and there's no way to change the
location of buildSrc (https://github.com/gradle/gradle/issues/2472);

2) it's complicated to have a dependent project
(mobile/android/annotations) expose its code via a buildSrc project;

3) using buildSrc at all appears to conflict with the Android-Gradle
plugin version that we are using.

Therefore, this commit does something much simpler: it adds a
Java-only project and uses the resulting Gradle "Jar" task and archive
output as input to the existing Gradle "generate JNI wrappers" task.

MozReview-Commit-ID: 2OyYLPneE1M

--HG--
extra : rebase_source : d99b74a0a1e0bb3e8f4d4540978328388e5c2e42
2018-02-22 16:11:14 -08:00
Xidorn Quan
a8cc0738f6 Bug 1452542 part 6 - Replace uses of PythonCSSProps.h with the data file generated from Servo. r=froydnj
Some content in Makefile.in is removed because after this change, the
scripts no longer invoke the preprocessor and thus don't have unknown
dependencies anymore outside what is provided in their inputs array.

The order of exports.PREFERENCES in properties-db changes because the
data file has shorthands placed after longhands. The only usage of it
is in test_css-properties-db.js which doesn't care about the order.

MozReview-Commit-ID: AMjzTRf2HYN

--HG--
extra : rebase_source : 7976e48e7c7bba467d77a34ab0d7709cde1ecdf4
2018-04-17 14:40:12 +10:00
Andreea Pavel
1b610a02c9 Backed out 7 changesets (bug 1452542) for failing toolkit/content/tests/chrome/test_arrowpanel.xul on a CLOSED TREE
Backed out changeset f206acff283f (bug 1452542)
Backed out changeset be97e652391f (bug 1452542)
Backed out changeset 4d3a028edaed (bug 1452542)
Backed out changeset 5619bba37cdd (bug 1452542)
Backed out changeset e83a797bdc61 (bug 1452542)
Backed out changeset 255e2feff19f (bug 1452542)
Backed out changeset fac55b1a0706 (bug 1452542)
2018-04-18 20:10:35 +03:00
Xidorn Quan
ddcc60ec27 Bug 1452542 part 6 - Replace uses of PythonCSSProps.h with the data file generated from Servo. r=froydnj
Some content in Makefile.in is removed because after this change, the
scripts no longer invoke the preprocessor and thus don't have unknown
dependencies anymore outside what is provided in their inputs array.

The order of exports.PREFERENCES in properties-db changes because the
data file has shorthands placed after longhands. The only usage of it
is in test_css-properties-db.js which doesn't care about the order.

MozReview-Commit-ID: AMjzTRf2HYN

--HG--
extra : rebase_source : f9db0659a81bea28b335806ac70e23dc0d36e493
2018-04-17 14:40:12 +10:00
David Major
8cc756f020 Bug 1448378: Fix build and symbols on Windows ASan. r=froydnj
--HG--
extra : rebase_source : 86b0702d54af96ee39ff82e109164cd10a8d138e
2018-03-26 17:07:30 -04:00
Mike Hommey
ed863255b4 Bug 1378592 - Remove MOZ_REPLACE_MALLOC_LINKAGE. r=froydnj
MOZ_REPLACE_MALLOC_LINKAGE was added back when there were problems with
getting weak references working properly for replace-malloc.

Versions of OSX < 10.6 needed flat namespace, but aren't supported
anymore.

Versions of Xcode < 4.5 required flat namespace + a dummy library in
order to produce proper weak references. There is virtually nobody still
building with such an ancient toolchain.

Keeping those around doesn't /really/ hurt, except recent versions of
Xcode don't expose dyldinfo in /usr/bin, used for the configure test.
Consequently, MOZ_REPLACE_MALLOC_LINKAGE ended up being set to use the
dummy library setup, which, by using flat namespace, now causes harm in
bug 1356701, causing bug 1378332.

--HG--
extra : rebase_source : e3edc1f2cf905943c33fafeb631f2f88fc87167e
2017-07-06 10:26:04 +09:00
Nick Alexander
744e5386aa Bug 1361418 - Remove Java Addons from Firefox for Android. r=sebastian
The Java Addons mechanism never got traction and is not Web Extensions
compatible.  Removing it simplifies the product and the build system.

MozReview-Commit-ID: ABUxkqqMISa

--HG--
extra : rebase_source : 346f88882774f072316714cf637a54d771d81a9a
2017-05-02 11:49:16 -07:00
Chris Manchester
03bb24b8ba Bug 1337986 - Build dump_syms before any syms target. r=glandium
MozReview-Commit-ID: CXlmMVMhzmf

--HG--
extra : rebase_source : 0ce885e1827b406cc4342309a060a0c1fa57ba8b
2017-04-10 10:27:49 -07:00
Chris Manchester
4db8e0b54a Bug 1337986 - Generate "syms" targets for directories containing programs or shared libraries. r=glandium
This creates "syms" targets that depend on the corresponding "target" for
directories containing shared libraries or programs. These targets are added
to the main compile graph in automation, and can be invoked through a special
"symbols" target. A future commit will use these targets to dump symbols for
shared libraries and programs during the compile tier.

MozReview-Commit-ID: KLuvmqsK4Zj

--HG--
extra : rebase_source : 8d76b999cb6fac8f11168ac6ebfb58774dfc2d3c
2017-04-10 10:27:49 -07:00
Mike Hommey
4bd092e460 Bug 1262241 - Add a build system mode that prints out how directories are recursed. r=mshal
Run with:
  make -C objdir target RECURSE_TRACE_ONLY=1

--HG--
extra : rebase_source : 25fd1812985433523cf94998b6f48fab8ace526f
2017-04-04 14:02:45 +09:00
Richard Marti
26169e82fa Bug 1318798 - Remove config/external/nss/target in recurse.mk. r=ted
MozReview-Commit-ID: 884NGQYXfQl

--HG--
extra : amend_source : ed7edd124dc7f1847063f5c0f5a9b068cf45ffa3
2016-11-19 16:15:35 +01:00
Jan Beich
5e4ba89dca Bug 1315882 - Unbreak --with-system-nspr after bug 1115944. r=glandium
MozReview-Commit-ID: H9A63lwCasG

--HG--
extra : rebase_source : eded64cd638b5efc1293af0060e684c743993177
2016-11-08 06:44:36 +00:00
Mike Hommey
342e5e3816 Bug 1115944 - Work around race condition between building NSPR and NSS. r=mshal
--HG--
extra : rebase_source : 61a9a23360d16ad6d60b0bb65107f2cb797d9736
2016-11-04 17:06:51 +09:00
Tooru Fujisawa
c0fc17d9f4 Bug 1298779 - Port jskwgen to Python. r=jwalden 2016-09-14 12:16:41 +09:00
Mike Shal
549dd4ff30 Bug 1293784 - Only recurse into xpcom/idl-parser/xpidl once; r=gps
MozReview-Commit-ID: 823OM551BH6

--HG--
extra : rebase_source : 0770b3156d9abd60cb3520eaee87f1a3211a8351
2016-08-09 16:58:18 -04:00
Gregory Szorc
5030a743a1 Bug 1186064 - Require Visual Studio 2015 Update 2; r=glandium
Per froydnj in bug 1186064 comment #23, "it makes sense to proceed with removing
MSVC 2013 support." This commit does that.

We also go a step further and require VS2015 Update 2 instead of just
update 1. This temporarily brings us down to just 1 officially supported
Visual Studio version. However, VS2015u3 was just released and is
unofficially supported.

Since MOZ_CRT is no longer set, references to it have been removed.

MozReview-Commit-ID: 8MUR6qLzQA5

--HG--
extra : rebase_source : 8f5061080a3d56dd484f9be03649fb65f0145f67
2016-07-06 09:01:38 -07:00
Wes Kocher
a425a052c1 Backed out changeset d7f98208809f (bug 1186064) for breaking SM(pkg) jobs a=backout 2016-07-06 10:11:04 -07:00