Commit Graph

891 Commits

Author SHA1 Message Date
Axel Hecht
22b8c9b311 Bug 1642092, find toolkit/locales/en-US/defines.inc for comm* builds, r=nalexander
This was regressed by bug 1641791, mostly for the lack of comments in at
least two places.

Differential Revision: https://phabricator.services.mozilla.com/D77590
2020-05-31 01:30:57 +00:00
Axel Hecht
1343d506c0 Bug 1641184, use only the merge dir for repacks, r=nalexander
l10n-merge creates a full merge dir for a while now, let's
simplify the build logic to only read from that directory
during repacks and langpacks.

Differential Revision: https://phabricator.services.mozilla.com/D77023
2020-05-27 17:04:06 +00:00
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
Ricky Stewart
3749c34fb4 Bug 1632916 - Run JS/web-platform/ipdl build machinery in Python 3 r=jgraham,nika,glandium
Differential Revision: https://phabricator.services.mozilla.com/D72478
2020-05-05 20:32:12 +00:00
Bogdan Tara
f137fa0613 Backed out 6 changesets (bug 1632916, bug 1599658, bug 1633037, bug 1633039, bug 1633016, bug 1632920) for SA bustages CLOSED TREE
Backed out changeset 332ce0963b4e (bug 1633039)
Backed out changeset a9904cbc40d9 (bug 1633037)
Backed out changeset d06b0ec349f8 (bug 1599658)
Backed out changeset 8fd300cad80f (bug 1633016)
Backed out changeset f8820941c703 (bug 1632916)
Backed out changeset ac9c2c8746ed (bug 1632920)
2020-05-02 01:49:29 +03:00
Ricky Stewart
d990224458 Bug 1632916 - Run JS/web-platform/ipdl build machinery in Python 3 r=jgraham,nika,glandium
Differential Revision: https://phabricator.services.mozilla.com/D72478
2020-05-01 16:31:21 +00:00
Mike Hommey
5944220eee Bug 1628205 - Convert nsinstall.py to python 3. r=rstewart
Also enable all config/tests with python3. unit-nsinstall.py was the
last one that didn't pass with python 3.

Switch the test to using @unittest.skipIf and disable the subprocess
test because we purposely broke running nsinstall.py independently with
python 2.

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

--HG--
extra : moz-landing-system : lando
2020-04-09 00:24:51 +00:00
David Major
5310d823e4 Bug 1617639 - No need to pass -LTCG in AR_FLAGS for Windows r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63888

--HG--
extra : moz-landing-system : lando
2020-02-24 20:16:55 +00:00
Nathan Froyd
d98002172b Bug 1606625 - don't add PGO flags for wasm compilation; r=rstewart
At the moment, everything we're putting in a wasm sandbox is not
performance-critical, so we don't need PGO.  It's also not clear that
PGO would actually work properly with code that's been run through
wasm.  Let's leave figuring that out until, at the very least, the wasm
toolchain is a little more mature.

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

--HG--
extra : moz-landing-system : lando
2020-01-02 15:38:20 +00:00
Mike Shal
580f0c293f Bug 1557788 - Remove OBJS_VAR_SUFFIX & .i_o suffix for instrumented builds; r=firefox-build-system-reviewers,chmanchester
In 1-tier PGO builds that shared the objdir between the instrumented and
profile-use builds, the instrumented build objects used a different
suffix (.i_o) to separate them from the profile-use build (which uses
the default .o suffix). These builds are now always in separate objdirs,
and don't need special suffix rules anymore.

As a bonus, this helps fix an issue with buildid.cpp continually
rebuilding because libxul_so.list always lists the inputs as *.o, which
don't exist if we're using a .i_o suffix. Make would always re-create
buildid.cpp and therefore libxul.so in the instrumented build even when
nothing has changed.

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

--HG--
extra : moz-landing-system : lando
2019-12-09 18:03:49 +00:00
Ricky Stewart
d5eb7d0ea5 Bug 1594867 - Add moz.build/backend bits to specify files that should be built as a sandboxed wasm library r=firefox-build-system-reviewers,mshal
Add backend stuff to build sandboxed wasm libraries. (Don't actually update any moz.build files to consume this yet.)

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

--HG--
extra : moz-landing-system : lando
2019-11-27 20:11:59 +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
Tom Ritter
2459299591 Bug 1565877 - Bump the stack size on mingwclang builds r=firefox-build-system-reviewers,mshal
Differential Revision: https://phabricator.services.mozilla.com/D38019

--HG--
extra : moz-landing-system : lando
2019-07-18 13:04:19 +00:00
Gijs Kruitbosch
72cdd37986 Bug 1557762 - ensure we define NS_FREE_PERMANENT_DATA for single-stage pgo builds, r=chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D35469

--HG--
extra : moz-landing-system : lando
2019-06-28 16:38:14 +00:00
Andreea Pavel
796eb812c0 Backed out changeset 455dff329fcc (bug 1557762) build bustages on a CLOSED TREE 2019-06-28 00:59:10 +03:00
Gijs Kruitbosch
aa0f4d84f5 Bug 1557762 - ensure we define NS_FREE_PERMANENT_DATA for single-stage pgo builds, r=chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D35469

--HG--
extra : moz-landing-system : lando
2019-06-27 19:53:07 +00:00
Mike Hommey
d128a390a6 Bug 1561465 - Avoid being too verbose after bug 1560527. r=nalexander
Bug 1560527 was not supposed to change verbosity for mach build, but it
turns out it did, because the ifeq it copied from one place to another
was wrong in the first place.

While here, replace a ifeq that did work with the now equivalent
BUILD_VERBOSE_LOG.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 02:19:43 +00:00
Mike Hommey
9c53f7e19d Bug 1560527 - Enable make backend verbose mode automatically rather than relying on mach setting it. r=froydnj
This makes running without mach more consistent. e.g. running
`make -C $objdir/toolkit/library/rust target` makes the cargo log
verbose, and adding `-s` makes it less verbose.

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

--HG--
extra : moz-landing-system : lando
2019-06-21 13:15:30 +00:00
Nathan Froyd
0839a1bd24 Bug 1542746 - remove code for frontend-based PGO instrumentation; r=dmajor
We're moving to IR-level PGO instrumentation for clang-cl.  We've also
moved to using static linker ordering files, which was the primary
application of the previous style of PGO instrumentation.  We therefore
we no longer need this code.

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

--HG--
extra : moz-landing-system : lando
2019-05-24 20:00:38 +00:00
Henri Sivonen
1240f02f32 Bug 1536575 - Stack size on aarch64 Windows should match stack size on x86_64 Windows. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D26272

--HG--
extra : moz-landing-system : lando
2019-04-09 08:15:24 +00:00
Mike Hommey
fa7300a70b Bug 1531680 - Don't disable LTO on standalone profile-generate builds. r=chmanchester
On one-go MOZ_PGO builds, it's generally not wanted to do LTO during the
profile-generate phase. And the build system doesn't really support
different build options between both phases in this case, so we relied
on MOZ_PROFILE_GENERATE to disable the LTO flags.

However, in standalone profile-generate builds, if --enable-lto is
passed explicitly, the build should respect that choice.

So instead of checking MOZ_PROFILE_GENERATE to disable the LTO flags,
we disable them when MOZ_LTO is not set, and we force it to be disabled
during the profile-generate phase of one-go MOZ_PGO builds.

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

--HG--
extra : moz-landing-system : lando
2019-03-05 22:09:46 +00:00
Ted Mielczarek
0539de896a bug 1481614 - detect icecream usage in build telemetry. r=chmanchester,glandium
This patch adds detection for when icecream is in use to build telemetry.
icecream is commonly enabled in two ways: by either setting CC/CXX to point
to icecream's cc/c++ symlinks, or by setting adding
mk_add_options 'export CCACHE_PREFIX=icecc' to a mozconfig when also using
ccache. For the former, this patch adds a simple configure check to see
if CXX is a symlink to a file named 'icecc'. For the latter this patch adds
CCACHE_PREFIX as a configure subst to capture the value.

We don't currently have a facility for writing telemetry tests that depend on
configure values. Local manual testing shows that it does work as expected.

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

--HG--
extra : moz-landing-system : lando
2019-02-25 19:06:27 +00:00
Mike Hommey
ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

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

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Mike Hommey
2b3de8f0dc Bug 1523203 - Don't override HOST_LINKER with cargo-linker.bat. r=froydnj
This was added back in bug 1414287, as a sort of quick hack, but since
then, bug 1515528 fixed things such that the hack is not necessary
anymore, and bug 1523201 allows for things to work on automation
(HOST_LINKER ended up being wrong because of the lack of "proper" VC
configuration on automation)

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

--HG--
extra : moz-landing-system : lando
2019-01-28 23:13:40 +00:00
Mike Hommey
03a6fa8570 Bug 1521691 - Remove _MSC_VER from configure. r=chmanchester
The only use in configure itself is for a MSVC version check that is now
always true (we don't accept versions < 19.15 anymore).

The only uses in the build system are in code that could just use
CC_TYPE instead.

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

--HG--
extra : moz-landing-system : lando
2019-01-23 00:35:10 +00:00
Henri Sivonen
f28bbfc06f Bug 256180 build config part - Increase the max size for the runtime stack on Windows. r=glandium. 2019-01-11 09:44:09 +02:00
Andreea Pavel
f5a1a0f098 Backed out 5 changesets (bug 256180) for failing win xpcshell at xpcshell.ini:toolkit/mozapps/extensions/test/xpcshell/test_temporary.js on a CLOSED TREE
Backed out changeset e85e41f84971 (bug 256180)
Backed out changeset 125ebcfac58d (bug 256180)
Backed out changeset bc2e0a89d88e (bug 256180)
Backed out changeset b696df615c8b (bug 256180)
Backed out changeset 2d69841d2eb7 (bug 256180)
2019-01-08 20:35:31 +02:00
Henri Sivonen
0ce4f36c7a Bug 256180 build config part - Increase the max size for the runtime stack on Windows. r=glandium. 2019-01-08 18:08:37 +02:00
Nick Alexander
2027f25d2b Bug 1496190 - Pre: Default L10NBASEDIR to correct value in automation. r=Callek
At some point we made L10NBASEDIR required.  That means that

env L10NBASEDIR=... make chrome-AB_CD

takes the value set by configure.  That is different than

make chrome-AB_CD L10NBASEDIR=...

which uses the value passed on the command line.  Rather than making
the latter style work with `mach build`, we instead set the "correct"
value for L10NBASEDIR in automation.

We could remove the --with-l10n-base stanzas from many automation
mozconfigs, but there's some small advantage to keeping them explicit.
Perhaps eventually we will remove them -- hopefully after
standardizing l10n vs l10n-central!

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

--HG--
extra : moz-landing-system : lando
2019-01-07 19:21:21 +00:00
Mike Hommey
de511e5cee Bug 1414287 - Use a 64-bits clang-cl for 32-bits static analysis builds r=dmajor
This also requires the 64-bits rust compiler and some build system
tweaks.

And since we make the 32-bits builds cross-compiles on CI, we also need
to adjust the MSVC build mozconfigs such that the host compiler points
to the right MSVC cl. Likewise, the DIA SDK is used for host things, so
use the 64-bits version or it.

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

--HG--
extra : moz-landing-system : lando
2018-10-10 17:53:06 +00:00
Noemi Erli
8e3fe95bfb Backed out 3 changesets (bug 1414287) for causing bug 1497029 a=backout
Backed out changeset b8da3d4e6da0 (bug 1414287)
Backed out changeset 273e84414434 (bug 1414287)
Backed out changeset 76fafdaa9216 (bug 1414287)
2018-10-09 05:07:54 +03:00
Mike Hommey
10ee195be0 Bug 1414287 - Use a 64-bits clang-cl for 32-bits static analysis builds r=dmajor
This also requires the 64-bits rust compiler and some build system
tweaks.

Differential Revision: https://phabricator.services.mozilla.com/D7845
2018-10-06 19:57:11 +09:00
Ciure Andrei
a48af06d13 Backed out 3 changesets (bug 1414287) for build bustages module machine type 'x64' conflicts with target machine type 'x86 CLOSED TREE
Backed out changeset 5cc491e4d9cb (bug 1414287)
Backed out changeset 98bb6d9eb63c (bug 1414287)
Backed out changeset 73dcff37f846 (bug 1414287)
2018-10-06 03:02:41 +03:00
Mike Hommey
ac4f925b8b Bug 1414287 - Use a 64-bits clang-cl for 32-bits static analysis builds r=dmajor
This also requires the 64-bits rust compiler and some build system
tweaks.

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

--HG--
extra : moz-landing-system : lando
2018-10-05 22:56:34 +00:00
Nick Alexander
ceef29e5a6 Bug 1443332 - Fold APK signing from android-common.mk into upload-files-APK.mk. r=firefox-build-system-reviewers,mshal
This merely centralizes logic that was formerly used at multiple sites
into the single remaining use site.

None of the JAVA* flags have been used for a long time.

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

--HG--
extra : moz-landing-system : lando
2018-10-03 18:05:27 +00:00
Ted Mielczarek
115b2651d5 Bug 1490463 - part 3 - remove BUILD_TOOLS from config.mk; r=mshal
BUILD_TOOLS was only ever used for things that another variable provides
equally well.  Removing BUILD_TOOLS means that we can remove win_srcdir
and WIN_TOP_SRC as well.
2018-09-18 16:02:22 -04:00
Ted Mielczarek
201bd292e7 Bug 1384557 - move _DEPEND_CFLAGS+CL_INCLUDES_PREFIX to toolchain.configure, ignore {CC,CXX}_WRAPPER when using sccache; r=glandium
Currently mozconfig.cache overrides a few build options for sccache.
This patch moves them into toolchain.configure so that the build system
will set them properly when sccache is in use.  Additionally,
{CC,CXX}_WRAPPER are set in config.mk, so just avoid setting them when
sccache is in use.
2018-09-14 12:12:34 -04:00
Mike Hommey
ba761cd383 Bug 1483778 - Skip LTO during the profile-generate phase of PGO. r=froydnj
When both LTO and PGO are enabled, there is no point LTO'ing during the
first phase of PGO.
2018-08-22 07:05:40 +09:00
Mike Hommey
d1714fc61d Bug 1484872 - Move LTO flags to python configure. r=froydnj 2018-08-21 08:40:26 +09:00
Mike Hommey
40d73395b9 Bug 1476174 - Fix-up the change from bug 1474024 to avoid creating lto object files in installed locations. r=ted
--HG--
extra : rebase_source : 3ec10cc8801b2b6890496d77fdbcc429e31afca5
2018-07-17 11:29:49 +09:00
Mike Hommey
826bfa5d74 Bug 1474024 - Avoid LTO breaking debug info on macOS builds. r=froydnj
--HG--
extra : rebase_source : 75b5f251373bf410a5fb6fdeba71b9bc293279c0
2018-07-10 07:09:24 +09:00
Nathan Froyd
9277d23dba Bug 1444171: Generate profiling instrumentation for clang-cl in PGO builds; r=glandium 2018-07-09 18:26:24 -04:00
Nathan Froyd
9bf1ff2b31 Bug 1444171: Make clang-cl work with OBJS_VAR_SUFFIX as well; r=gps 2018-07-09 18:25:37 -04:00
Mike Hommey
354a9e27a0 Bug 1470127 - Move binary checks to a standalone script. r=froydnj
We perform, on the binaries we build, a series of check, that are
implemented as half-baked make commands, invoked after linking them.

- check libstdc++ symbol versions to ensure binary compatibility with
  a baseline.
- check glibc symbol versions to ensure binary compatibility with a
  baseline.
- check that target binaries don't contain text relocations.
- check that libmozglue is linked before libc on android.
- on libxul, check that NSModules are laid out correctly.
- on libxul, check that there is more than one PT_LOAD segment.

Those checks happen to work where they matter, but their setup is
unreliable. For example, the checks for symbol versions are supposed to
work for libclang-plugin on cross osx builds, but in fact, don't,
because the readelf path doesn't exist, and the command doesn't fail in
that case.

So move them all to a standalone script, performing the checks more
thoroughly (especially the NSModules one, where we now also check that
they are all adjacent), and more verbosely.

--HG--
extra : rebase_source : 7072e622e95f363d4a6c3a8e272d3445d998b592
2018-06-21 18:13:03 +09:00
Mike Shal
8d4c5d5849 Bug 1454912 - Use a .stub file as the target for all GENERATED_FILES rules; r=nalexander
The make backend was treating the first output of a GENERATED_FILES rule
specially, since it was the target of the rule containing the script
invocation. We want the outputs of GENERATED_FILES rules to be
FileAvoidWrite so that we avoid triggering downstream rules if the
outputs are unchanged, but if the target of the script invocation is
FileAvoidWrite, then make may continually re-run the script during a
no-op build.

The solution here is to use a stub file as the target of the script
invocation which will always be touched when the script runs. Since
nothing else in the build depends on the stub, we don't need to
FileAvoidWrite it. All actual outputs of the script can be
FileAvoidWrite, and make can properly avoid work for files that haven't
changed.

MozReview-Commit-ID: 3GejZw2tpqu

--HG--
extra : rebase_source : 2b9be82f893e89a4c2f254f05b1e8b9a0f9c631b
2018-05-09 08:24:31 -04:00
Tom Prince
c8c9d47e92 Bug 1436662: Package translated uninstaller; r=pike,mshal
The uninstaller was being built as a side-effect of building `setup.exe`. In
Bug 1385227, that was moved from "somewhere" to part of the windows installer
packaging, which happens after the zip and mar are generated. Since the
installer we ship is actually repackaged from the zip[1], we stopped shipping
translated uninstallers.

This changes things around so that the uninstaller gets translated:
- Explicitly build the uninstaller as part of the L10n repack step.
- Use the same logic to build the installer locally as we do to create the ones
  we ship.

[1] Except on Thunderbird

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

--HG--
extra : rebase_source : 05fe935c1d2a9fbfeef786819bfe5913ed8ef862
extra : source : d6bf22099e2195dcb64c3c3d7700d3edd0850a3a
2018-04-16 12:49:53 -06:00
Brindusan Cristian
34b33a520a Backed out 2 changesets (bug 1436662) for build bustages on /installer/windows. CLOSED TREE
Backed out changeset fcb756834abb (bug 1436662)
Backed out changeset d6bf22099e21 (bug 1436662)
2018-04-17 19:08:21 +03:00
Tom Prince
cdf80aa336 Bug 1436662: Package translated uninstaller; r=pike,mshal
The uninstaller was being built as a side-effect of building `setup.exe`. In
Bug 1385227, that was moved from "somewhere" to part of the windows installer
packaging, which happens after the zip and mar are generated. Since the
installer we ship is actually repackaged from the zip[1], we stopped shipping
translated uninstallers.

This changes things around so that the uninstaller gets translated:
- Explicitly build the uninstaller as part of the L10n repack step.
- Use the same logic to build the installer locally as we do to create the ones
  we ship.

[1] Except on Thunderbird

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

--HG--
extra : rebase_source : 2b28b9ff7196d12f4a188c8dddf750b9a5efac5b
extra : histedit_source : 9bc28891950ae8c226cfdefef6f8121ce0b51f58
2018-04-16 12:49:53 -06:00
Chris Manchester
0a830e8691 Bug 1429875 - Implement OBJ_SUFFIX overriding for the profile generation phase on linux in mozbuild. r=glandium
MozReview-Commit-ID: 8PtgxfbxuE

--HG--
extra : rebase_source : fd8934ee2c70883e30a7b51d4b64944d3ce7e6ee
2018-03-20 16:44:12 -07:00
Chris Manchester
de12a7992b Bug 1429875 - Remove expandlibs and instead generate list files in the mozbuild backend. r=glandium
MozReview-Commit-ID: 5eLwnh1HHGj

--HG--
extra : rebase_source : cd308adc4542be0f9b33b64d31a2d0dc0310fcd4
2018-03-20 16:31:05 -07:00