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

359 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey 885f0dae93 Bug 1339670 - Use cargo --version --verbose output when available. r=froydnj
Fallback to regexp on older versions of cargo.

--HG--
extra : rebase_source : d67c25ad48b1b23c9bb555b65e4241920914886f
2017-02-15 11:22:34 +09:00
Jan Beich 397f7a4910 Bug 1339161 - Add more rustc targets for cross-compilation. r=rillian
MozReview-Commit-ID: 5C7Bgsx2B2z

--HG--
extra : rebase_source : ee4e14091b772121f391568d21dd56ef68ac95be
2017-02-13 19:08:53 +00:00
Nathan Froyd 552f6522ad Bug 1298600 - part 2 - check Cargo's version; r=rillian
We need a particular version of Cargo, and we can't assume that because
the user has Rust 1.X, they necessarily have Cargo 0.(X+1).
2017-02-13 10:42:33 -05:00
Nathan Froyd a7c48382ee Bug 1298600 - part 1 - reindent rustc_info; r=rillian
For whatever reason, rustc_info was indented a bit too far.
2017-02-13 10:42:33 -05:00
Ralph Giles d9052fefa0 Bug 1337153 - Require rust 1.15.1. r=Ehsan
Bump the minimum version of the rust toolchain we require to
build. The 1.15 release includes support for custom #[derive]
directives, letting us use the serde serialization crate without
checking in a lot of generated code.

This is primarily motivated by webrender and the audio remoting
work, and lets us drop the heavy syntex dependency.

MozReview-Commit-ID: 6IObHhouPAn

--HG--
extra : rebase_source : 4be8b148fb653a48f6df4309811ab1d8755f7edf
2017-02-09 09:38:48 -08:00
Tom Ritter 8d3b0051f6 Bug 1336569 Define SYMBOL_UNDERSCORE for ffi in the mingw build r=glandium
MozReview-Commit-ID: 6BiTcohFDPk

--HG--
extra : rebase_source : d783f2950009d07ea45cdcc693771f4141df6ee9
2017-02-08 09:36:04 -06:00
Landry Breuil 54965a1d24 Bug 1336825 - Add i686-unknown-openbsd to known rust targets. r=froydnj 2017-02-05 12:36:00 -05:00
Mike Hommey 9de779f50a Bug 1335666 - Remove @depends_when. r=chmanchester
In bug 1296530, we made @depends take a when argument, it can now replace
all uses of @depends_when.

--HG--
extra : rebase_source : d090723fcbf3a56e06bd9c2defc3301cac04d8b0
2017-02-01 16:25:29 +09:00
Ralph Giles 4efb911890 Bug 1284816 - Remove --disable-rust. r=ted
Remove the option to build without rust code. We are not testing
this configuration and expect to land non-optional rust code in
the near future, so it doesn't make sense to maintain this option.

MozReview-Commit-ID: CwTlMXGvr5n

--HG--
extra : rebase_source : 080a9df5b4828c66aa2452ad1c16a503bcd5e689
2017-02-01 15:38:49 -08:00
Mike Hommey 9982192790 Bug 1322025 - Provide variants of host and target that depend on --help. r=chmanchester
We want to avoid giving --help dependencies to host and target, so that
they we don't spawn config.guess and config.sub when running configure
--help, and don't need to reach out to the which module to find a
suitable shell to execute them.

So, when --help is given, we return a fake host/target namespace, and
avoid the config.guess/config.sub-invoking code being executed.

Then, by giving the --help option to the linter, it can properly find
that the config.guess/config.sub-invoking code doesn't need the
dependency on --help.

This effectively unbreaks configure --help after bug 1313306.

--HG--
extra : rebase_source : 9ed4cbe5a81121b139d0d86aff6af542c2dff53b
2017-01-25 17:54:16 +09:00
Mike Hommey c754dd4f3e Bug 1256730 - Fail configure when API key files do not exist or are empty. r=chmanchester,mikedeboer
--HG--
extra : rebase_source : 33b182bf0bffefacc408e9b52dd004c987ffc648
2016-08-09 18:17:35 +09:00
John Paul Adrian Glaubitz 5a74d13630 Bug 1329194 - mozbuild: Add SH4 as target architecture. r=glandium 2017-01-20 09:11:54 +09:00
Ted Mielczarek 72abec04a5 bug 1329320 - replace makecab with rust-makecab in symbolstore. r=gps
It turns out that running makecab to compress PDB files takes a significant
amount of time in the buildsymbols step. I wrote an implementation of
makecab in Rust that implements only the subset of features we use and
it's significantly faster:
https://github.com/luser/rust-makecab

This patch adds a makecab check to moz.configure, adds a release build of
the makecab binary to the Windows tooltool manifests, points the build at
it from mozconfig.win-common, and changes symbolstore.py to use MAKECAB
from substs instead of calling `makecab.exe` directly.

MozReview-Commit-ID: 76FHLIZFCXS

--HG--
extra : rebase_source : af4cf2e4db4607ec9329b2811cc0175d3e113b66
2017-01-06 05:57:10 -05:00
Sylvestre Ledru b68ae46ad6 No bug - Add a space in the configure script. We are currently showing 'Mozillaautomation' r=trivial
MozReview-Commit-ID: KDn1ob7Pt6q
2017-01-09 10:12:45 +01:00
Mike Hommey 6b392d8d0c Bug 1324998 - Error out when a in-tree mozconfig is included. r=gps
Many people have been shooting themselves in the foot for too long by
including in-tree mozconfigs.

This change adds a guard that makes it an error when this happens on
builds not running on automation.

Analysis of the in-tree mozconfigs indicate that
build/mozconfig.automation is properly included by the in-tree
mozconfig that matter, directly or indirectly.

The only ones that don't include it are:
  b2g/config/mozconfigs/common.override
  b2g/graphene/config/mozconfigs/common.override
  browser/config/mozconfigs/linux64/source
  browser/config/mozconfigs/win64/common-win64
  build/mozconfig.cache
  build/mozconfig.clang-cl
  build/mozconfig.common.override
  build/mozconfig.rust
  build/mozconfig.vs-common
  build/mozconfig.win-common
  build/unix/mozconfig.gtk
  build/unix/mozconfig.stdcxx
  build/win32/mozconfig.vs-latest
  build/win32/mozconfig.vs2015-win64
  build/win64/mozconfig.vs-latest
  build/win64/mozconfig.vs2015
  mobile/android/config/mozconfigs/common.override

which are either empty for use in try builds (override files), or would
already cause great pain if they were directly included, so there's
little chance they would be.

--HG--
extra : rebase_source : 0e6accf241759f8d44868f253874f6546dbadb52
2016-12-21 16:58:38 +09:00
Carsten "Tomcat" Book 5615a8aaba Bug 1323901 - Bustage fix from glandium 2016-12-28 09:29:31 +01:00
Mike Hommey 74f8bb6e5e Bug 1323901 - Force `which` to use lowercase extensions on Windows. r=cmanchester+432261
--HG--
extra : rebase_source : 1932e63f7e02a80e5c83ee6bc0963d2c98d7fdd9
2016-12-23 06:28:03 +09:00
Nathan Froyd a4e86a0fbf Bug 1322792 - require GCC 4.9 to build; r=glandium 2016-12-23 05:47:31 -05:00
Carsten "Tomcat" Book 0aed7a4ac5 Merge mozilla-central to mozilla-inbound
--HG--
rename : testing/docker/base-build/HASH => taskcluster/docker/base-build/HASH
rename : testing/docker/base-test/HASH => taskcluster/docker/base-test/HASH
rename : testing/docker/centos6-build-upd/HASH => taskcluster/docker/centos6-build-upd/HASH
rename : testing/docker/centos6-build/HASH => taskcluster/docker/centos6-build/HASH
rename : testing/docker/decision/HASH => taskcluster/docker/decision/HASH
rename : testing/docker/image_builder/HASH => taskcluster/docker/image_builder/HASH
rename : testing/docker/recipes/tooltool.py => taskcluster/docker/recipes/tooltool.py
rename : testing/docker/tester/HASH => taskcluster/docker/tester/HASH
2016-12-22 16:25:35 +01:00
Makoto Kato 57a8e37fef Bug 1324994 - Add Linux/aarch64 target to rust.configure. r=glandium
MozReview-Commit-ID: 2St6G9FiOHz

--HG--
extra : rebase_source : 62c3e963035972d02c4e6f0e8b7770ded25e42d1
2016-12-21 14:44:11 +09:00
Masatoshi Kimura a654e25d18 Bug 1317569 - Unship d3dcompiler_43.dll. r=glandium
MozReview-Commit-ID: DSOOKc94wNV

--HG--
extra : rebase_source : 007a4c974ba16f2dc6e77e4b78e919769e0af8d1
extra : source : b448674d91482b214fb2a6c4e83d2e86638f28ef
2016-11-15 06:56:01 +09:00
Ryan VanderMeulen 946e064ee8 Bug 1319901 - Enforce Visual Studio 2015 Update 3 as the minimum supported compiler version for Windows builds. r=ted 2016-12-15 19:27:03 -05:00
Mike Hommey 36952d2ae0 Bug 1283898 - Don't check for rust outside of toolkit builds. r=rillian
Spidermonkey doesn't currently depend on rust code, and this
unblocks enabling rust by default on gecko builds until we
can get the appropriate toolchain hooked up to all of the
SM automation jobs.

The include must be conditional to avoid breaking artifact builds.

MozReview-Commit-ID: 1PmcFvcZLM2

--HG--
extra : rebase_source : 1a22232e064dd253b80ebaa55decfde1ba7e1ea0
2016-12-15 13:40:06 -08:00
Ralph Giles 3a9dd658c4 Bug 1283898 - Enable rust by default. r=ted
Switch from --enable-rust to optionally enable rust code
to --disable-rust to optionally disable it.

MozReview-Commit-ID: C8cQr5MXUzV

--HG--
extra : rebase_source : 0372be3cc3da56b49104b80c41974139a488ecb2
2016-11-24 16:11:27 -08:00
Ralph Giles d3c4fa1f17 Bug 1320710 - Target i686 rust code on linux32. r=froydnj
Official Mozilla builds no longer support non-SSE2 x86 cpus,
so we can use the default i686 rust target here. This allows
better code generation and removes a dependency on the extra
i585 rust std library.

MozReview-Commit-ID: BHrm4tieIym

--HG--
extra : rebase_source : e791068b6128b9f3153b9c85ebd8551d583c2bc7
2016-11-28 09:17:11 -08:00
Ralph Giles af3411a664 Bug 1321696 - Require rust 1.13 with --enable-rust. r=chmanchester
Bug 1320425 using the '?' operator stabilized in rust 1.13.0.
Update the minimum supported version to reflect this.

MozReview-Commit-ID: 3HKrhfNavEZ

--HG--
extra : rebase_source : 3acb73d551b5c24dff61254e74d0c1c514b2a77c
2016-12-01 17:35:52 -08:00
Ralph Giles eec7f7ee4a Bug 1321691 - Suggest boostrap if configure fails to find rust. r=chmanchester
Now that `./mach boostrap` installs rustup, suggest this if
configure fails to find the toolchain when building with
--enable-rust.

Also point out https://rustup.rs/ for those who want more control.

MozReview-Commit-ID: 8JIbERfz12f

--HG--
extra : rebase_source : a23b3f747f1d430120f16b56e79085dabf3b2018
2016-12-01 17:01:55 -08:00
Ralph Giles 492e3e6a3b Bug 1320741 - Recommend `rustup target add`. r=chmanchester
Provide some guidance on how to resolve the common

  error: can't find crate for `std`

when cross-compiling rust code. This most commonly comes up
with the Android build.

MozReview-Commit-ID: 8PKKt7tf1KS

--HG--
extra : rebase_source : 5d18bb3a2ef8b3c4c5700b87c4a899b26160999d
2016-11-28 10:51:59 -08:00
Mike Hommey 4dfb89fd86 Bug 1316957 - Include windows.configure conditionally instead of using @depends_win. r=chmanchester
--HG--
extra : rebase_source : 51cadae94195439797524b8e81f72c21960aed67
2016-11-12 06:05:07 +09:00
Mike Hommey 07083a8dfb Bug 1317504 - Make MSVC builds use the LINK variable instead of LD. r=chmanchester
At the same time, remove HOST_LD. It was only used for MSVC builds,
which don't support cross-compile anyways, so we can, at least for now,
use LINK for both host and target.

--HG--
extra : rebase_source : 9ee9e7e1bd3edefc043fa63d5c03f2a242f76982
2016-11-24 15:45:16 +09:00
Mike Hommey 39e4c74722 Bug 1317504 - Warn that LD is not used by the build system. r=chmanchester
It turns out that, in practice, the LD variable is not used by the build
system, except on Windows, where it's used to feed the default for LINK,
which is then re-injected as LD.

The upcoming changes are going to normalize the use of LD/LINK.

--HG--
extra : rebase_source : 2a1a9924e963e082e119ff3874e8ff24247f4f94
2016-11-24 15:07:01 +09:00
Nathan Froyd 00c9adec24 Bug 1293253 - part 3 - add configure support for determining a --target value for Rust host code; r=chmanchester
We'll need this for compiling host binaries.  We could just call `rustc`
without any --target value whatsoever, but since we use --target for
target code, we might as well be consistent and explicit, and use
--target for host code as well.
2016-11-28 11:20:39 -05:00
Carsten "Tomcat" Book 61849e269d merge mozilla-inbound to mozilla-central a=merge 2016-11-24 16:41:59 +01:00
Makoto Kato f593baff8c Bug 1318189 - mach configure cannot detect MFC library path on VS2017. r=glandium
VS2017's directory structure for mfc is the following.

 Directory of C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\vc\Tools\msvc\14.10.24629\atlmfc\lib

2016/11/21  13:57    <DIR>          .
2016/11/21  13:57    <DIR>          ..
2016/11/21  13:57    <DIR>          arm
2016/11/21  14:00    <DIR>          x64
2016/11/21  13:59    <DIR>          x86

So this structure is changed, we cannot detect mfc when using VS2017.


MozReview-Commit-ID: 2ft4stYPZbe

--HG--
extra : rebase_source : c985022eb5b99f32398f1f5c1d2e274c2a4677e7
extra : amend_source : 8b94aba289397dc84d0d360991666ed5a5a8ac07
2016-11-21 10:55:50 +09:00
Mike Hommey 84aa5c4927 Bug 1319959 - Set _topsrcdir, _objdir, MOZ_BUILD_ROOT and DIST from python configure. r=gps
In some cases, on OSX, python's `os.path.realpath` and shell's `pwd -P`
don't agree on the case of paths on case-insensitive filesystems.

So make everyone agree by using the value from python configure.

--HG--
extra : rebase_source : 4d26bf30f3f125c4f75d42f79d8a80a4a0bf11ec
2016-11-24 09:47:15 +09:00
Ted Mielczarek fa343243d0 bug 1286934 - Switch to using sccache2. r=gps
This patch does a few things:
1) Change all the in-tree tooltool manifests to contain sccache2 instead of the existing Python sccache
2) Change mozconfig.cache to point at sccache.
3) Lightly tweak the --with-cccache configure option to support sccache, and detect whether we're using ccache or sccache and set an option appropriately.
4) Add a MOZ_SCCACHE_VERBOSE_STATS option, and add a target in the top-level Makefile to make sccache spit out its stats at the end of the build. This is useful to see the cache hits/errors until we get something better.
5) Add MOZ_USING_SCCACHE to the build telemetry. Not that I think it will be immediately useful, but for future use.

MozReview-Commit-ID: 9lrdLwNj5Bm

--HG--
extra : rebase_source : d323457df10d0ee0ac5811940e518d9422a7e070
2016-08-25 18:39:57 -04:00
Ted Mielczarek 26ebd20ebf bug 1295937 - Improvements to gyp_reader to handle NSS gyp files. r=glandium
This patch contains a number of changes to the gyp_reader code:
* Add three new flags to GYP_DIRS:
** no_chromium, to skip forcing the includes/etc needed for chromium gyp files
** no_unified, to force building all sources without unification
** action_overrides, to pass scripts used when mapping gyp actions to moz.build GENERATED_FILES
* Handle the flags mentioned above in read_from_gyp
* Handle actions in gyp targets by mapping them to GENERATED_FILES, using scripts specified in the action_overrides flag. We don't try to handle the generic action case, we require special-casing for each action.
* Handle a subset of copies in gyp targets by mapping them to EXPORTS, just enough to handle the use of them for NSS exports.
* Handle shared_library and executable gyp targets
* Handle gyp target dependencies/libraries as USE_LIBS/OS_LIBS
* Handle generated source files
* Handle .def files in sources by mapping them to SYMBOLS_FILE
* Special-case some include_dirs:
** Map `<(PRODUCT_DIR)/dist/` to $DIST/include (to handle include paths for NSS exports)
** Map include_dirs starting with topobjdir to objdir-relative paths, to handle passing the NSPR include path to NSS
* split /build/gyp.mozbuild into two parts, with gyp_base.mozbuild containing generic bits, and gyp.mozbuild containing chromium-specific bits


MozReview-Commit-ID: FbDmlqDjRp4

--HG--
extra : rebase_source : d3fb470c589f92d8c956b9ecd550fb8df79ff5bc
2016-11-15 12:37:09 -05:00
Mike Hommey 9b452a533f Bug 1317359 - Propagate MOZ_ADJUST_SDK_KEY to old-configure. r=chmanchester
--HG--
extra : rebase_source : 207defc410cd9fe01689b136c79e84046b7d3ae9
2016-11-15 07:43:39 +09:00
Mike Hommey 5fd2ce5f30 Bug 1317359 - Move add_old_configure_* functions to util.configure. r=chmanchester
--HG--
extra : rebase_source : 240fd42920ed4a17592c368ab764672cac01ca31
2016-11-15 14:35:22 +09:00
Gregory Szorc 4732e7cb34 Bug 1171610 - Automatically enable color in compiler output; r=glandium
GCC and Clang will colorize compiler output automatically if stdout is a
TTY. Unfortunately, when the build backend is invoked via `mach`,
stdout is not a TTY.

6e9a4c0b9cd8 (bug 1315785) changed mach so it exports an environment
variable indicating whether mach's original stdout is a TTY. This was
later used to add color flags to `cargo` invocations.

Building on that work, this patch adds color flags to compiler
invocations if the compiler supports color and a mach TTY is
detected. The result is that compiler output from `mach build`
will be colorized automatically if Clang or a modern version of
GCC is used.

The only issue I see with this is that Clang doesn't "unset" its color
sequences when printing a newline. As a result, mach's time line
prefixing can sometimes inherit "bold" or other stylings. AFAICT this is
only a minor cosmetic concern. GCC does not exhibit this issue.

MozReview-Commit-ID: 5Icu6aXGZBL

--HG--
extra : rebase_source : 5b2bf5a287fdf8075b3d7dde36b91f3c65b60728
2016-11-09 14:01:24 -08:00
Phil Ringnalda 21a7a3eb46 Backed out changeset 6d6366a2842e (bug 1317359) for test_checks_configure.py bustage
CLOSED TREE
2016-11-14 21:36:44 -08:00
Mike Hommey e8b62f1ea5 Bug 1317359 - Propagate MOZ_ADJUST_SDK_KEY to old-configure. r=chmanchester
--HG--
extra : rebase_source : ad7b1089d99b9c3477ef882a5664341fe648b41f
2016-11-15 07:43:39 +09:00
Wes Kocher c71ee484aa Backed out changeset c403ebdab6b8 (bug 1317359) for build bustage a=backout CLOSED TREE
--HG--
extra : amend_source : 578c7a50c7d04c6578448d780ee06076069ee783
2016-11-14 16:48:00 -08:00
Mike Hommey 36d47d7464 Bug 1317359 - Propagate MOZ_ADJUST_SDK_KEY to old-configure. r=chmanchester
--HG--
extra : rebase_source : fb3ba7a9f158a6d0e95b748b82f1b193903a75f0
2016-11-15 07:43:39 +09:00
Mike Hommey 6fa3828b4e Bug 1316844 - Remove unused dependencies. r=chmanchester
--HG--
extra : rebase_source : f9c4f39b198fbb83aa02b2eee65863695e7b75ca
2016-11-11 12:52:37 +09:00
Wes Kocher f6f88173df Backed out changeset 2b174353e76a (bug 1316957) at glandium's request a=backout 2016-11-11 18:58:24 -08:00
Mike Hommey fb3661afd7 Bug 1316957 - Include windows.configure conditionally instead of using @depends_win. r=chmanchester
--HG--
extra : rebase_source : ae9d0b364d11e351735d731c33757fb6f30f1bfa
2016-11-12 06:05:07 +09:00
Mike Hommey 17153e5c27 Bug 1314894 - Avoid path changes from b6be0e9e3e1e. r=chmanchester
Importing 'os' in python configure functions, on Windows, changes the
separate the various os.path functions use, and that can have
unexpected, badly handled, consequences. While on the long term, it is
desirable to make @imports('os') modify os.path to use the same base
functions as if there were no @imports, let's go with the simpler
workaround of restoring the non-{isfile,isdir,exists} os.path functions
from b6be0e9e3e1e.

--HG--
extra : rebase_source : a1857b5dce2aa818c72a77d0d9727ac6ce16cb8f
2016-11-04 06:50:43 +09:00
Ralph Giles efaa5037bb Bug 1266792 - Target armv7 android. r=kinetik,snorp
We actually target armv7, so we need this distinct triple
with the rust toolchain, while it's implicit with the
android ndk.

MozReview-Commit-ID: LUwdpOaWB6M

--HG--
extra : rebase_source : 820de90d0844e1519f9e02a583c8cc3abf1dfdc0
2016-10-27 12:19:59 -07:00
Mike Hommey 900e53b021 Bug 1293675 - Error out when GetShortPathName returns a long path name. r=gps
--HG--
extra : rebase_source : fa95f8a1356009c44b33701b76d878e75fba7324
2016-11-01 08:06:40 +09:00