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

900 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey 2733dbe0dc Bug 1713733 - Remove WASM_LDFLAGS. r=firefox-build-system-reviewers,mhentges
It's not practically make a difference (the flags we end up setting it
to don't do anything when linking all the wasm files into one).

Differential Revision: https://phabricator.services.mozilla.com/D116437
2021-06-02 04:34:20 +00:00
Nick Alexander 2f109387cc Bug 1707030 - Return to having NSDISTMODE=copy impact INSTALL. r=firefox-build-system-reviewers,mhentges
This reverts [part of Bug
1255485](https://hg.mozilla.org/mozilla-central/rev/5888578c22f8dc006cfd6a405c9fc53b2df73b44).

It should have been reverted in Bug 1641291, which allowed
NSDISTMODE=copy to impact build manifests.  This is useful when
cross-compiling: this stops some symlinks within the object directory
itself, say from `dist/include` to an object directory.

Differential Revision: https://phabricator.services.mozilla.com/D113149
2021-05-04 03:12:49 +00:00
David Major c2db81c2b7 Bug 1685758 - Increase stack size on win32 debug r=firefox-build-system-reviewers,mhentges
With clang 12, win32 debug tests run out of stack in the 1000-deep layout crashtests.

Usually when this type of thing happens, it's because the compiler made a drastically heavier inlining decision along the recursive part of the stack, with a difference in the hundreds of bytes, and we pay that price of that space 1000 times. In those cases we normally try to snip out the heavy piece with a MOZ_NEVER_INLINE.

However, in this case, the difference between old and new compilers was only something like 16 bytes of the cyclical piece. This suggests that we're already up pretty close against the limit, and we're only a bad day away from failing tests even with existing clang. This only happens in debug builds since they have lots of logging helpers on the stack. Release builds are still well under the limit.

So I propose to increase the stack limit in debug. While we normally have to be pretty careful about address space on win32, it should be less of a concern with these non-shipping builds.

Differential Revision: https://phabricator.services.mozilla.com/D101196
2021-01-11 22:09:32 +00:00
Ricky Stewart 362abcf949 Bug 1670357 - Remove `make` targets for cleaning: `clean`, `realclean`, `clobber`, `distclean`, `clobber_all`, `everything` r=firefox-build-system-reviewers,mhentges
The `clobber` targets are superseded by `mach clobber`, so we don't need them for any reason. The `clean` target is meant to get you to a post-`configure` state, but it doesn't really work, and if it's necessary for you to be in that state for some reason you can just clobber and re-`configure`, so it doesn't seem worth it to get it working again. Instead, delete all of them. Also delete `everything` which is not useful when `clobber` doesn't exist.

Differential Revision: https://phabricator.services.mozilla.com/D93514
2020-10-15 20:37:18 +00:00
Mike Hommey 8d261dbd4e Bug 1663850 - Remove unused variables in config/config.mk. r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D89551
2020-09-09 23:50:38 +00:00
Mike Hommey a34742d98f Bug 1620133 - Allow generated file rules to run in parallel in a given directory. r=firefox-build-system-reviewers,rstewart
Bug 1645986 solved the problem for most generated files by moving their
rules to the top-level, but we're going to add rules that will end up in
subdirectories, so we have to solve the same problem again, in the
subdirectories.

Differential Revision: https://phabricator.services.mozilla.com/D88389
2020-08-28 01:58:48 +00:00
Mike Hommey 748bff0a39 Bug 1658434 - Replace replace_malloc.mk with a mozbuild file. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D86639
2020-08-11 00:05:38 +00:00
Mike Hommey 527e667296 Bug 1537703 - Use llvm-rc instead of rc.exe. r=mhentges,froydnj
This makes us use one less tool from MSVC, and removes one more use of wine
in cross builds.

We replace the call to either rc/llvm-rc or windres with a wrapper script.
While the script is not strictly needed for the latter, we use a wrapper
in that case anyway because it's one step towards fixing bug 1498414.
For llvm-rc, however, we need a wrapper because llvm-rc doesn't preprocess
on its own, so the wrapper does that too.

The wrapper script also allows to deal with the default flags passed to
llvm-rc or windres, rather than inherit them from old-configure.

We also need to explicitly pass the codepage to llvm-rc, which was not
necessary with rc (presumably, llvm-rc has a different default).

While here, remove the unused WINDRES subst from js/src/old-configure.in.
Also, while here, we remove --use-temp-file, because as described in the
linked bug and in the windres manual page, it was used to work around bugs
on Windows 98 and earlier.

Differential Revision: https://phabricator.services.mozilla.com/D86312
2020-08-08 21:02:04 +00:00
Mike Hommey df18e17e18 Bug 1651608 - Remove leftovers from bug 1557788. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D82866
2020-07-09 12:19:58 +00:00
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