Commit Graph

270 Commits

Author SHA1 Message Date
Chris Manchester
942b77d16c Bug 1294803 - Move MOZ_SYSTEM_FFI to moz.configure in preparation for moving libffi to our build system. r=glandium
This patch introduces a small change in behavior: we now unconditionally
require libffi > 3.0.9 when using system ffi, rather than accepting 3.0.9
when using GCC, as 3.0.10 was released 5 years ago, and should be widely
available.


MozReview-Commit-ID: DtSDPoZSPcx
2016-08-22 15:07:07 -07:00
Chris Manchester
470a2afbb6 Bug 1294803 - Move BUILD_CTYPES to Python configure. r=glandium
MozReview-Commit-ID: 3TlgdpNDLZW
2016-08-22 12:17:19 -07:00
Mike Hommey
b65bccd9ce Bug 1276003 - Move --enable-necko-protocols to python configure. r=chmanchester
--HG--
extra : rebase_source : 6187c1a382b240e2fa01f38f4c739000d5f177ce
2016-08-18 09:57:06 +09:00
Chris Manchester
76d8f148d9 Backed out changeset c0e6aae0b93d (bug 1294803) for breaking artifact builds.
MozReview-Commit-ID: BTrQMCJSCRn
2016-08-19 11:12:07 -07:00
Chris Manchester
65ba8ff0f6 Backed out changeset 7f6047b2bc09 (bug 1294803) for breaking artifact builds.
MozReview-Commit-ID: FdzqUJnaSQT
2016-08-19 11:12:07 -07:00
Chris Manchester
49a7faf599 Bug 1294864 - Move MOZ_PERMISSIONS to Python configure. r=glandium
MozReview-Commit-ID: AyaWOvm5cq
2016-08-18 13:39:40 -07:00
Chris Manchester
4cdee259e5 Bug 1295784 - Use the argument name for when when passing it to Python configure's pkg_check_modules. r=glandium
MozReview-Commit-ID: GcVEzS3nLql
2016-08-17 15:02:31 -07:00
Chris Manchester
7d9c80e4aa Bug 1295784 - Use when instead of condition as an argument name in Python configure's pkg_check_modules for consistency. r=glandium
MozReview-Commit-ID: 61XglTI0BII
2016-08-17 15:02:31 -07:00
Chris Manchester
872c57fe84 Bug 1294803 - Move BUILD_CTYPES to Python configure. r=glandium
MozReview-Commit-ID: 3TlgdpNDLZW
2016-08-17 15:02:31 -07:00
Chris Manchester
269e8590e8 Bug 1294803 - Move MOZ_SYSTEM_FFI to moz.configure in preparation for moving libffi to our build system. r=glandium
This patch introduces a small change in behavior: we now unconditionally
require libffi > 3.0.9 when using system ffi, rather than accepting 3.0.9
when using GCC, as 3.0.10 was released 5 years ago, and should be widely
available.


MozReview-Commit-ID: DtSDPoZSPcx
2016-08-17 15:02:31 -07:00
Wes Kocher
c84ec3b3f3 Merge m-c to inbound, a=merge 2016-08-16 22:06:58 -07:00
Wes Kocher
48b8d407c8 Merge inbound to central, a=merge
a=release to get around the webidl hook for a comment-only change

--HG--
extra : amend_source : f7e57101e1a25d3cf3536a256898ec2a21c54b38
2016-08-16 17:05:30 -07:00
Wes Kocher
073e095b66 Merge fx-team to central, a=merge CLOSED TREE 2016-08-16 16:37:28 -07:00
Ian Stakenvicius
1f75b211c2 Bug 1282843 - Add ability to specify system paths to @old_configure_options. r=glandium 2016-08-16 09:42:00 -04:00
Gregory Szorc
2562138ede Bug 1291944 - Verify makensis binary is 32-bits; r=glandium
This required implementing a utility function to resolve the binary
type. I used GetBinaryTypeW via ctypes because this seems the fastest.
I arbitrarily limited the function to testing 32-bit and 64-bit Windows
executables because hopefully those are the only executables we'll
ever encounter. We can expand the binary detection later, if needed.
This includes support for running on non-Windows platforms.

MozReview-Commit-ID: CYwyDWQrePc

--HG--
extra : rebase_source : 8fd7ca7f253d9e9e18d64784652a5ff934ad2272
2016-08-15 18:11:48 -07:00
Mike Hommey
ebd899b9d6 Another fixup for bug 1294639 on a CLOSED TREE. a=Kwierso 2016-08-16 08:53:33 +09:00
Mike Hommey
3f3d75fb1f Bug 1294632 - Remove unused old_configure_options. r=chmanchester
--enable-approximate-location and --enable-gps-debug were removed in bug
1278410.
--enable-media-navigator was removed in bug 1259581.
--enable-webapp-runtime was removed in bug 1238079.
2016-08-16 08:32:53 +09:00
Mike Hommey
c6d1e73834 Bug 1294585 - Move --with-*-keyfile options to python configure. r=chmanchester 2016-08-16 08:32:51 +09:00
Mike Hommey
02d1dcdac0 Bug 1294585 - Remove the --with-google-oauth-api-keyfile configure flag. r=mikedeboer 2016-08-16 08:32:49 +09:00
Wes Kocher
e9097643d5 Merge inbound to central, a=merge 2016-08-12 13:44:29 -07:00
Ms2ger
78f1853c94 Bug 1293981 - Move --enable-more-deterministic to moz.configure. r=chmanchester 2016-08-10 13:06:55 +02:00
Ms2ger
dc662f1b94 Bug 1293981 - Move --enable-perf to moz.configure. r=chmanchester 2016-08-10 13:06:49 +02:00
Ms2ger
a7c2d8106c Bug 1293981 - Move --enable-gc-trace to moz.configure. r=chmanchester 2016-08-10 13:06:40 +02:00
Mike Hommey
c504a71a5b Bug 1295480 - Move --enable-webspeechtestbackend to python configure. r=chmanchester 2016-08-17 11:01:56 +09:00
Mike Hommey
ff6286a8e2 Bug 1295480 - Move --disable-webspeech to python configure. r=chmanchester 2016-08-17 11:01:52 +09:00
Mike Hommey
86c8b781d4 Bug 1295480 - Move --enable-dbm to python configure. r=chmanchester 2016-08-17 11:01:44 +09:00
Mike Hommey
195a0eb8e7 Bug 1295480 - Move --enable-ipdl-tests to python configure. r=chmanchester 2016-08-17 11:01:40 +09:00
Mike Hommey
9cbe9243c6 Bug 1295480 - Move --enable-websms-backend to python configure. r=chmanchester 2016-08-17 11:01:35 +09:00
Mike Hommey
6f35afadf9 Bug 1295480 - Move --enable-synth-speechd to python configure. r=chmanchester 2016-08-17 11:01:30 +09:00
Mike Hommey
29f57f3e58 Bug 1295480 - Move --disable-printing to python configure. r=chmanchester 2016-08-17 11:01:24 +09:00
Mike Hommey
05f10c47d3 Bug 1294630 - Move --enable-ipc-fuzzer to python configure. r=chmanchester 2016-08-17 11:01:05 +09:00
Mike Hommey
77ee4f3ce4 Bug 1292463 - Move MOZ_C{,XX}_SUPPORTS_WARNING to python configure. r=chmanchester 2016-08-10 10:50:01 +09:00
Mike Hommey
7a80b4e7ee Bug 1292463 - Rename compilechecks.configure and test_header_checks.py. r=chmanchester
to, respectively, compile-checks.configure and test_compile_checks.py.


--HG--
rename : build/moz.configure/compilechecks.configure => build/moz.configure/compile-checks.configure
2016-08-10 10:49:59 +09:00
Mike Hommey
cc883a2e7a Bug 1292463 - Set MOZ_PGO subst/config from python configure. r=chmanchester 2016-08-10 10:49:58 +09:00
Mike Hommey
306558f1eb Bug 1292463 - Always set --enable-warnings-as-errors for MOZ_AUTOMATION builds. r=chmanchester
And remove it from mozconfigs.
2016-08-10 10:49:56 +09:00
Mike Hommey
4585ac7815 Bug 1292463 - Move --enable-warnings-as-errors to python configure. r=chmanchester 2016-08-10 10:49:54 +09:00
Mike Hommey
74733c57c1 Bug 1292463 - Add MOZ_AUTOMATION to python configure. r=chmanchester 2016-08-10 10:49:52 +09:00
Nathan Froyd
81545d0022 Bug 1290957 - ensure MOZ_AUTOMATION builds require a cargo with --frozen support; r=chmanchester
We want to ensure that our automation builds don't pull in libraries
from crates.io, and we need --frozen support in cargo to do that.  If we
don't have that support, we shouldn't build.
2016-08-09 18:10:19 -04:00
Nathan Froyd
d4a5791899 Bug 1268727 - part 1 - update Rust requirement to 1.10; r=chmanchester
We need Rust 1.10 to support the -C panic=abort flag and the
corresponding bits in cargo.
2016-08-09 18:10:20 -04:00
Mike Hommey
afa6c4d5f3 Bug 1292046 - Add a check that the compiler works with -c out of the box. r=chmanchester
The base compiler check in python configure does some preprocessing,
which ensures the compiler works to some extent. Autoconf used to have
a more complete test, doing a compile/link. We do have plenty of tests
afterwards that do that anyways, but it's better if we fail early if
the toolchain fails somehow.

This refactors try_compile such that the *_compiler variable themselves
can be used to trigger compiler tests. Eventually, we'll want something
similar for preprocessing and possibly other invocations.

This also removes similar tests from build/autoconf/toolchain.m4.

--HG--
extra : rebase_source : c60d1d6e39b6bd2a377516687affd9b8932ebc12
2016-08-04 15:51:47 +09:00
Mike Hommey
6bdf5756ec Bug 1292046 - Add language to the compiler namespace. r=chmanchester
--HG--
extra : rebase_source : c258416a1cec59627e27d4f59e40f1425464f9c5
2016-08-04 16:24:29 +09:00
Nathan Froyd
f7fb6722a6 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-06 00:49:26 -04:00
Nathan Froyd
8e363d817c Bug 1231764 - part 1 - search for cargo when --enable-rust; r=chmanchester
We've going to use it, the location of it should be configurable.
2016-08-06 00:49:26 -04:00
Mike Hommey
202b56d2fe Bug 1293840 - Determine HAVE_64BIT_BUILD from --target. r=chmanchester
Until now, HAVE_64BIT_BUILD was entirely determined by a compiler check.
But we didn't run the check on e.g. artifact builds, while relying on
its result for some non-compilation related things, leading to subtle
discrepancies.

This changes the configure check to derive HAVE_64BIT_BUILD from bitness
determined by the target CPU, and double checked with a compiler check.

--HG--
extra : rebase_source : 5dc0cf2369ed4457bdd9a15736a70265a771d919
2016-08-10 11:39:16 +09:00
Mike Hommey
a918e97bfa Bug 1293837 - Move HAVE_64BIT_BUILD test to python configure. r=chmanchester
Also, now that we're using modern C++11 compilers, we can just rely on
static_assert, instead of the pile of macros used in the autoconf test.

--HG--
extra : rebase_source : 85d507da653d07e6527a971082277486e3502ea2
2016-08-10 09:00:23 +09:00
Mike Hommey
93ac00658e Bug 1293837 - Change try_compile() to return True when the test passes. r=chmanchester
Currently, it returns either None or the contents of the compiler's stdout,
which is always expected to be an empty string, and is not very useful. So
instead, return True in the latter case.

--HG--
extra : rebase_source : ee69cdeab38d27178ce759591fb394da65e694ac
2016-08-10 10:00:43 +09:00
Mike Hommey
4eba7db364 Bug 1293579 - Use the new dependable function in a few places. r=chmanchester
--HG--
extra : rebase_source : 7062361fdb8e61b43a4044a3a7b1bf04f6ef3143
2016-08-09 15:55:10 +09:00
Mike Hommey
3e4c324c93 Bug 1293579 - Add a dependable function/decorator to avoid some of the depends('--help') weirdness in python configure. r=chmanchester
--HG--
extra : rebase_source : 957ae782df951e899d1142bd583423e6afdb605a
2016-08-09 15:54:20 +09:00
Wes Kocher
9605851be0 Backed out 7 changesets (bug 1231764) for apparently causing linux debug wpt bustage
Backed out changeset 4b71272c92cf (bug 1231764)
Backed out changeset 234d8a930afa (bug 1231764)
Backed out changeset f9b204c2f5a7 (bug 1231764)
Backed out changeset f933119e57e4 (bug 1231764)
Backed out changeset e3af0b1d3473 (bug 1231764)
Backed out changeset 643b03aae1dd (bug 1231764)
Backed out changeset a945dbf63410 (bug 1231764)

--HG--
extra : rebase_source : e71360fa4b5e3e74859c82e74e183e13e6211c4c
2016-08-03 16:27:06 -07:00
Nathan Froyd
6b2618fb44 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-03 19:40:41 -04:00