Commit Graph

737 Commits

Author SHA1 Message Date
Nathan Froyd
18ef37dc2c Bug 1476427 - part 3 - convert bindgen options into js_options; r=chmanchester 2018-07-26 17:37:56 -04:00
Nathan Froyd
85b06ba88f Bug 1476427 - part 2 - whitelist projects that require bindgen; r=chmanchester
JS, at least, doesn't need bindgen at this point.  If JS does start
requiring bindgen under certain build configurations, we'll have to
figure out what to do about the bindgen dependency at that point:
require bindgen always, or just require bindgen for the
configuration(s).
2018-07-26 17:37:56 -04:00
Nathan Froyd
08902bdd4d Bug 1476427 - part 1 - move bindgen configure bits to a separate file; r=chmanchester
This change makes the config variables determined for
bindgen (MOZ_CLANG_PATH et al) available to JS.
2018-07-26 17:37:56 -04:00
Ivan Pozdeev
319f5fcf1d Bug 1323381 - Make 8dot3 error message useful for fixing; r=gps
--HG--
extra : amend_source : 72f43dbe21c9b0af738dccda80dff3b24da8e481
2018-07-23 18:09:15 -07:00
Mike Hommey
efde274619 Bug 1476875 - Change the node.js warning wording not to show up on treeherder as an error. r=froydnj
--HG--
extra : rebase_source : ba7ca29ba0d46094742f8867314f0f142c18b03f
2018-07-19 16:36:36 +09:00
David Major
6b830c8485 Bug 1475660: Make clang-cl PGO enable LTO (enables ThinLTO in official builds) r=froydnj,glandium
--HG--
extra : rebase_source : e4efb8d4bf7994ff51f20f51c6cd1eb45bd8339b
2018-07-16 17:59:49 -04:00
David Major
6043bb48c5 Bug 1448980: Make --enable-lto work with clang-cl. r=froydnj 2018-07-16 12:26:36 -04:00
David Major
1eb86751ab Bug 1448980 prequel: Rename LTO flags to cflags. r=froydnj 2018-07-16 12:25:40 -04:00
Chris Manchester
1ba362234e Bug 1475390 - Fail configure if Tup is specified on a non-linux build. r=gps
MozReview-Commit-ID: FO6wCbI7YwJ

--HG--
extra : rebase_source : 564b7d22deadfcaa6357a7c9ec7514daf5978127
2018-07-13 15:53:27 -07:00
Jacek Caban
041db4695b Bug 1443471 - Use correct rust target for mingw clang. r=glandium
MozReview-Commit-ID: G40IanxGWXv

--HG--
extra : rebase_source : 6d8ba3af796848320cc7e3db05e9c83ba4fecb45
2018-06-25 19:57:43 +02:00
Chris Manchester
04c4288d0d Bug 1472857 - Require rustc 1.27 to build. r=glandium
MozReview-Commit-ID: 5WsP4EQxSil

--HG--
extra : rebase_source : e4506f9c4dfcccdf691fb944270e1a508edc02d5
2018-07-03 15:27:20 -07:00
Mike Hommey
1cf4ac0f2e Bug 1469088 - Relax the assumptions of --enable-lto, and make it work for macOS builds. r=ted
Currently, --enable-lto just implies --enable-linker=lld, which
essentially only works on Linux, and assumes one can't do lto with
anything other than lld. Which is not true. As a matter of fact, even
ld.bfd can do lto, as long as the gold plugin for llvm is available,
or when doing lto with GCC instead of clang.

Anyways, to allow more lto setups, we adapt the --enable-linker setup
to:
- work on macOS, which it currently doesn't, and add support for the mac
  linker (ld64), which, unfortunately, doesn't have a clean way to be
  detected, so work around that.
- default to lld if lto is enable, no linker was explicitly given, the
  compiler is clang *and* the build target is not macOS.

--HG--
extra : rebase_source : 1dab2ad6230d18e7f4285943e76352e23b987d4e
2018-07-05 11:35:31 +09:00
Mike Hommey
c6c6db41d2 Bug 1473436 - Default to lld for local *nix builds when it is available. r=chmanchester
--HG--
extra : rebase_source : 0a1705241dcce807fb16f94218476ed184e551fa
2018-07-05 09:28:49 +09:00
Mike Hommey
da38aeba7d Bug 1457168 - Make configure tests use LINKER_LDFLAGS. r=chmanchester
Because we have no linking configure test in python configure (yet), we
just make old-configure tests use LINKER_LDFLAGS, and make those flags
added to LDFLAGS by old-configure at the same time.

--HG--
extra : rebase_source : 80ab7c5021c7ddd1b53d58ef76cd4372a524d3cb
2018-07-04 16:18:48 +09:00
Nathan Froyd
05c61df014 Bug 1473331 - fix environment issues when checking node version; r=me, a=bustage
MozReview-Commit-ID: SGkfho9nvV
2018-07-04 12:09:41 -04:00
Nathan Froyd
8d0bead1e6 Bug 1471028 - fix check for outdated node versions; r=bustage, a=bustage
MozReview-Commit-ID: 5OlPH2tUACP
2018-07-04 07:46:08 -04:00
Gregory Szorc
1843095b29 Bug 1471028 - Detect Node.js in configure; r=glandium
The intent is for the build system to soon require Node.js to build
Firefox. But we aren't ready to make Node.js a build requirement
just yet.

The goal of this commit is to implement configure detection for
Node.js so that we can a) work out detection bugs b) give people a
means to validate system compatibility *before* we throw the switch to
require Node.js.

This commit introduces configure logic for finding a Node.js
executable, resolving its version, and validating its suitability.

By default, if Node.js cannot be found or there is an error resolving
its version, we print some warning messages and move on.

If --enable-nodejs is used (not the default), errors are raised
if Node.js cannot be found or its version isn't suitable.

Once we require Node.js, the added code can likely be simplified.
When writing the code, I went out of my way to make failures as
non-fatal as possible. e.g. normally we'd say that failures to run
`node --version` would be fatal. I'm purposefully trying to not have
this configure check break anyone's environment, even if failure
occurs. Again, the goal is to introduce the configure checks first
in a non-fatal way such that we can debug failures so the flag day
transition is simpler.

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

--HG--
extra : moz-landing-system : lando
2018-07-03 21:24:58 +00:00
Mike Hommey
993aa6d00f Bug 1447116 - Require rust 1.26. r=froydnj
We're well overdue for an upgrade of the rust compiler requirements.
Now that we're building with 1.28 (albeit a beta, due to be bumped when
it's released), we can bump the requirement away from 1.24 which is now
old. 1.27 is too new, though, so settle for the older 1.26.

--HG--
extra : rebase_source : a17aa496bf3d4af4d1349d69a637c686c6817d0f
2018-06-26 18:05:23 +09:00
Xidorn Quan
9d13707bca Bug 1471486 part 1 - Detect rustfmt like other rust executables. r=froydnj
MozReview-Commit-ID: 8LMdpdqbrFS

--HG--
extra : rebase_source : e23b7e467993963eb1a69637dacdabb7cbff3e90
2018-06-27 15:27:43 +10:00
Chris Manchester
cf39792d69 Bug 1471425 - Require rustc 1.28 in configure when building with Tup. r=mshal
MozReview-Commit-ID: 9FCs5FPcchC

--HG--
extra : rebase_source : 7a4e7afa7825f3c73b5cc3571d1531f26cc964b1
2018-06-26 20:32:16 -07:00
Bogdan Tara
ee8db3bbe1 Backed out 2 changesets (bug 1447116) for debug reftests failures CLOSED TREE
Backed out changeset 0c8c7b025aee (bug 1447116)
Backed out changeset 82dc9159f28d (bug 1447116)
2018-06-27 05:17:03 +03:00
Mike Hommey
72fd93fa0f Bug 1471096 - Choose OOM hooking version to use at build time rather than configure time. r=froydnj
When I originally implemented bug 1458161, this is how it was done, but
it was suggested to use a configure-time check. This turned out to not
be great, because the rust compiler changes regularly, and we don't run
the configure tests when the version changes. When people upgraded their
rust compiler to 1.27, the code subsequently failed to build because the
features were still set for the previous version they had installed.

--HG--
extra : rebase_source : 1b5f7a02ad8495d68cd29289f7beea59b8912183
2018-06-23 07:28:26 +09:00
Mike Hommey
1ad0baf79f Bug 1447116 - Require rust 1.26. r=froydnj
We're well overdue for an upgrade of the rust compiler requirements.
Now that we're building with 1.28 (albeit a beta, due to be bumped when
it's released), we can bump the requirement away from 1.24 which is now
old. 1.27 is too new, though, so settle for the older 1.26.

--HG--
extra : rebase_source : c788ef4f7da9949b81df2f0577af6f6039ea63d8
2018-06-26 18:05:23 +09:00
Dave Hunt
0d9dbe14ab Bug 1466211 - Detect if we are running in a virtual environment; r=chmanchester
When we're running using pipenv, we have more than one virtual environment. This means the current check to see if python matches the initial virtual environment gives a false positive when we're in a secondary virtual environment. This patch changes the condition to check if the current python path exists within the virtual environments root directory.

MozReview-Commit-ID: AAONwLWsigL

--HG--
extra : rebase_source : c0ac94448ee4545417b5116e58b51c6187cdb175
2018-06-15 18:05:20 -07:00
Marco Castelluccio
7322ecf8fa Bug 1469804 - Disable Rust incremental compilation when code coverage is enabled. r=ted
--HG--
extra : rebase_source : 30d98009113554c266a46d4b74e7d3b7757114fe
2018-06-20 11:16:43 +01:00
Mike Hommey
abc300efbb Bug 1467039 - Default to gold on local builds. r=chmanchester
We used to do that before bug 1455767. Taking a step back, what we want
(and what this change implements) is to:
- allow to specify a linker to use explicitly
- check that using the corresponding linker flags makes us use that
  linker
- if no linker is specified, and developer options are enabled, we want
  to try to use gold if it's available, otherwise, we want to detect
  what kind of linker the default linker is
- if --disable-gold is explicitly given, we don't want to automatically
  use it.

--HG--
extra : rebase_source : 8d89c54bd5e555984d815beb8fdd3f5f75dae31e
2018-06-07 08:46:31 +09:00
Dorel Luca
1719a7ad5a Backed out changeset 0c800e84c991 (bug 1467039) for Spidermonkey failure. CLOSED TREE 2018-06-12 08:29:01 +03:00
Dorel Luca
f7a26a560f Backed out changeset 71ed3b0b1013 (bug 1467337) for build bustage. CLOSED TREE 2018-06-12 08:28:40 +03:00
Mike Hommey
a75a0b49d5 Bug 1467337 - Don't allow --enable-stdcxx-compat when the linker is gold. r=nalexander
--HG--
extra : rebase_source : 74fcad2dc3bda3cf223de615b38bd06aa5a91224
2018-06-07 10:36:10 +09:00
Mike Hommey
3a65dbeef2 Bug 1467039 - Default to gold on local builds. r=chmanchester
We used to do that before bug 1455767. Taking a step back, what we want
(and what this change implements) is to:
- allow to specify a linker to use explicitly
- check that using the corresponding linker flags makes us use that
  linker
- if no linker is specified, and developer options are enabled, we want
  to try to use gold if it's available, otherwise, we want to detect
  what kind of linker the default linker is

--HG--
extra : rebase_source : 655089f29c6403f6c31a977dcf5c6fd1e9941121
2018-06-07 08:46:31 +09:00
Mike Hommey
e1e5972b07 Bug 1467327 - Use bootstrapped clang if no system clang is found. r=froydnj
--HG--
extra : rebase_source : 4e646c27321d19d2d44df9911e5ef6fdb060ac48
2018-06-07 09:57:36 +09:00
Gurzau Raul
30ff1c45fb Backed out changeset ba02d348e3fd (bug 1467327) for LinuxToolchainTest bustages on a CLOSED TREE 2018-06-07 05:22:40 +03:00
Mike Hommey
b5dd8f7e9b Bug 1467327 - Use bootstrapped clang if no system clang is found. r=froydnj
--HG--
extra : rebase_source : fbb9e09e4211f6456391c8446899023520d2bbf9
2018-06-07 09:57:36 +09:00
Mike Hommey
65169421bc Bug 1467041 - Default to --enable-release when milestone is beta/release. r=froydnj
--enable-release not being passed means developer options are enabled,
which is generally speaking not desirable for builds meant to be
shipped. This is somewhat alleviated for Firefox by MOZILLA_OFFICIAL
implying --enable-release (as well as MOZ_AUTOMATION), but that doesn't
apply to e.g. standalone js builds (even some of the standalone js jobs
on our automation don't set MOZ_AUTOMATION for some reason).

A reasonable thing to do is just to default builds for release/beta
milestones to --enable-release, but still allow --disable-release
to enable the developer options.

--HG--
extra : rebase_source : 770d51b10a9cd17c63972435bb61eed10345ea71
2018-06-06 16:13:09 +09:00
Tom Ritter
2313bfe0d4 Bug 1457482 Add --enable-lto that turns on LTO r=glandium
MozReview-Commit-ID: DjICW7OKqzB

--HG--
extra : rebase_source : 92c766880845ec89305ef1e66ff13223421ac152
2018-04-13 15:55:39 -05:00
Miko Mynttinen
44b51ac0a2 Bug 1465060 - Part 2: Don't suppress pessimizing-move and self-move warnings r=froydnj
MozReview-Commit-ID: KtQ31q6uFqZ

--HG--
extra : rebase_source : 93b8550117410efb1839dc475d2bfec9ef4caf67
2018-06-01 14:09:30 +02:00
Jonathan Watt
5817084eb6 Bug 1270217 - Change the default MACOS_DEPLOYMENT_TARGET value to 10.9. r=froydnj 2018-05-10 10:41:13 +01:00
Cosmin Sabou
9994e67745 Backed out changeset cbf0895981cd (bug 1270217) for turning bug 1405083 into permafail. a=backout 2018-06-03 13:08:10 +03:00
Jonathan Watt
67537a721b Bug 1270217 - Change the default MACOS_DEPLOYMENT_TARGET value to 10.9. r=froydnj
--HG--
extra : rebase_source : bb180a82c87bb49c688dbcb2f8da6756e6c54224
2018-05-10 10:41:13 +01:00
Emilio Cobos Álvarez
9855a4330e Bug 1465585: Don't error on pessimizing-move and self-move, for now. r=froydnj
MozReview-Commit-ID: FzoqidPSCaV
2018-06-01 10:43:31 +02:00
Mike Hommey
81cf850f82 Bug 1253064 - Prefer Clang to GCC in local developer builds. r=gps
For Android targets, we just ignore plain clang, it's unlikely to work.

--HG--
extra : rebase_source : 2ba19ea608921acc2739055115082291bb8996f4
2018-05-31 10:16:10 +09:00
Christian Holler
570031d38c Bug 1464202 - Improve and centralize libFuzzer flag management. r=froydnj
MozReview-Commit-ID: HFrQDAZWtpo

--HG--
extra : rebase_source : ab1da001d7e9280fbfb37858505f1d0d0caf7d54
2018-05-24 21:11:46 +02:00
Sylvestre Ledru
3f0e9bf7a3 Bug 1464809 - Disable -Werror on -Wclass-memaccess until the backlog is fixed r=froydnj
https://bugzilla.mozilla.org/show_bug.cgi?id=1411029#c2

MozReview-Commit-ID: 2CyoNWMUrw9

--HG--
extra : rebase_source : 758d2c9bc9e2dd3502def27a0d9bc6f9e0887e2d
2018-05-28 14:56:41 +02:00
Masatoshi Kimura
b3f94f70ab Bug 1462616 - Unblock Windows 10 April 2018 Update SDK with clang-cl. r=ted
MozReview-Commit-ID: 9KGu1KTmyRM

--HG--
extra : rebase_source : d70c5dbabd15f10d865db7f5a9c7a4e76dd94fe8
2018-05-18 21:20:23 +09:00
Tom Ritter
e8b341f8cd Bug 1420350 Enable jemalloc on MinGW r=glandium
MozReview-Commit-ID: 6YUeFAJocHj

--HG--
extra : rebase_source : 016803ba5e3d5eaf8c937ac2f41e712fc543ba51
2018-03-07 10:49:28 -06:00
Sylvestre Ledru
f4b02c2f37 Bug 1453990 - Disable -Werror on -Wreturn-std-move. We have a false positive with nsAutoCString r=froydnj
See: https://bugs.llvm.org/show_bug.cgi?id=37249
MozReview-Commit-ID: VFvj33eeOm

--HG--
extra : rebase_source : 75208b2cfd1d3302ec0da2af3b24ceb36a4bdd8b
2018-05-12 12:00:39 +02:00
Cosmin Sabou
ea5feeedb6 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-05-10 01:16:27 +03:00
Sylvestre Ledru
3bed13c76e Bug 1453444 - Add support for versioned lld binaries r=glandium
Can be used:
ac_add_options --enable-linker=lld-7
or
ac_add_options --enable-linker=lld

MozReview-Commit-ID: GfDevGeooU4

--HG--
extra : rebase_source : ee2aad5f8f721a6fe5840affde6b29a3b940fb91
2018-05-09 13:53:16 +02:00
Nathan Froyd
493330ae3f Bug 1460379 - remove --with-pthreads option; r=ted.mielczarek
This option does nothing if it's provided, and things will probably
break in some most peculiar manner if somebody uses --without-pthreads.
Given that neither outcome is useful, we should remove the option.
2018-05-09 17:26:31 -04:00
Nathan Froyd
c21c323370 Bug 1460373 - move --enable-valgrind to moz.configure; r=ted.mielczarek 2018-05-09 17:26:31 -04:00