Update tooltool manifests for official builds to use repacks
of the upstream rustc 1.17.0 (56124baa9 2017-04-24) stable release.
These repacks include cargo 0.19.0-beta.1 (03efb7fc8 2017-04-23)
to include support for the RUSTC_WRAPPER environment variable
needed for use of sccache with rust code.
MozReview-Commit-ID: L9Nq2iK4GK8
--HG--
extra : rebase_source : 882b201282a0e13ed77ec5876972657eab81a562
Update tooltool manifests to reference rustc 1.16.0 stable repacks
which include cargo 1.19.0 nightly builds from 2017-04-19 which
support the RUSTC_WRAPPER environment override.
We're shipping with an unstable cargo while this feature makes its
way to release because it is necessary for deploying sccache support
for rust language code in our build and test automation.
MozReview-Commit-ID: Iow2894OPq7
--HG--
extra : rebase_source : f1a8e6cab612714f7b73ca8a14d14cabe9f4aef7
Apply a 2-character indent to in-tree tooltool manifests to make
them easier to read, and to make the formatting more consistent
so automating updates is simpler.
Modern editors will maintain json indentation. The only long
lines we have are already over 80 characters, so the extra space
shouldn't create new long lines.
Also update mercurial installer script to generate json with
the same indentation, even though its output is temporary.
Tooltool itself was updated to generate manifests with this
indentation in Bug 1325225.
MozReview-Commit-ID: DKj6nL9OENv
--HG--
extra : rebase_source : fc3f8616ec689d74e06c0db84c2b261825f86453
Update to the point release. These are repacks of the
upstream builds for 1.15.1 stable with appropriate
libstd builds for each target.
This incorporates the -fPIC fix for linux32 so we can
use upstream builds instead of our patched toolchain.
It also corrects the signature of vec::IntoIter::as_mut_slice
which was incorrect in 1.15.0.
MozReview-Commit-ID: JvEdGPwgS03
--HG--
extra : rebase_source : 9edd9970d8328274311493c2c3c4fffa97b258a9
Use a custom build of rust 1.15.1 with an additional bump of the
gcc crate to 0.3.43 to pass -fPIC to the C compiler on i686-linux.
While 1.15.1 was tagged today, there's some question as to whether
it would be released from the tag or if the tag would be moved
to incorporate this fix.
This works around the issue with text segment relocations with
the 1.15.0 stable release. For more information see the upstream
issue at https://github.com/rust-lang/rust/pull/39523
MozReview-Commit-ID: 83IxtJeJxlh
--HG--
extra : rebase_source : 8deda9058c77a98c65a46949768702c56296d9d4
Repack of the upstream builds of the rust 1.15.0 stable release.
MozReview-Commit-ID: KDjkSQSFrFA
--HG--
extra : rebase_source : 7ca562b3d1cc4d051d9cfc25ef14fbbe2dbd77bb
Repacks of the upstream builds of rust 1.14.0 stable release.
MozReview-Commit-ID: B5DclOLeBjM
--HG--
extra : rebase_source : 67db55dd62d6177b30ace5008edc680f95c6ed22
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
Update tooltool manifests to repacks of upstream builds of
rustc 1.14.0-beta.2 (e627a2e6e 2016-11-16)
cargo 0.15.0-nightly (a9c23dd 2016-11-15)
for the relevent hosts and target platforms.
We prefer to use stable rust but this bump gets us debuginfo
for the rust standard library on all platforms, which we hope
will improve crash reporting (bug 1268328). That is higher
priority. The rust 1.14 version should be in stable release
before Firefox 53 goes to Aurora, so we'll still stabilize
and ship with stable rust.
This build also contains the fix for the arm code generation
bug blocking update from 1.12 on android, so we can use 1.13
language features in Firefox 53. For more information, see
https://github.com/rust-lang/rust/pull/37815
This doesn't update the native MacOS build because of an
openssl link issue with cargo. This is resolved upstream
for rust 1.15; getting that ported to a later 1.14 beta is
tracked in https://github.com/rust-lang/rust/issues/37969
MozReview-Commit-ID: JbJTd4D7VOu
--HG--
extra : rebase_source : 0690f3d4443f3fc7f224f051f910de92c54b8f60
Run the tooltool manifests through a python script to read the
json as an OrderedDict and when write it back out with normal
tooltool formatting options. This regularizes the whitespace,
fixing trailing spaces written by older versions of the python
json serializer, dos-vs-unix line endings, and regularizing
opening '[{' and closing '}]' to be on separate lines.
The android manifests have a 'versions' key which has indenting,
unlike the rest of the files. I've left that as-is.
MozReview-Commit-ID: EVW1YlgRJJL
--HG--
extra : rebase_source : 40c1992090807dc40495ebacb37ee358c1d6a6f1
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
We no longer make use of these, instead using the cargo included
in the rustc packages.
MozReview-Commit-ID: Dr9q0g7amEk
--HG--
extra : rebase_source : d4e46a02ef34ad070a2934a1af88e26cdf97bd6f
Update builders to repacks of the upstream stable builds.
We did not update the Android build because 1.13.0 has a
code-generation bug on Android.
MozReview-Commit-ID: Ju0CI8JYLbz
--HG--
extra : rebase_source : aa7c77dd9b02717f7b9763667633ccb6ed994768
Update linux32 tooltool manifest to use a gecko build of rustc and cargo
for x86_64-unknown-linux-gnu host targeting both x86_64 and i586.
rustc built with --enable-llvm-static-stdcpp --disable-docs
--enable-debuginfo --release-channel=stable from 'stable' branch
rust 1.11.0 (commit 9b21dcd6a89f38e8ceccb2ede8c9027cb409f6e3)
Pass --target i585-unknown-linux-gnu when building for 32-bit linux.
We mostly want this for official builds, but Debian needs it too,
in both cases to support old machines without SSE2 instruction set
support, so while it means developers will have to `rustup target add
i585-unknown-linux-gnu` when building for this architecture that is
not a common task (most linux devs will be on 64-bit) and it reduces
variance and surprise if binaries are distributed.
MozReview-Commit-ID: 3mAjWxYGpwZ
Repacks of upstream builds of rust 1.11.0 stable with std libraries
for the appropriate targets. Remove the separate rust-std package
references since the new repacks include the necessary targets.
Also update clang and hazard builds to the latest toolchain.
MozReview-Commit-ID: K7oBxQZnLPu
--HG--
extra : rebase_source : 9f339ff52e9e2f6c28d4bb7a734b9f0eae43a47a
Update tooltool cargo packages to the 2016 August 31 nightly
build. These have source-redirection support needed by the
stylo project but not available in stable cargo yet.
Repacks of the upstream build cargo 0.13.0-nightly (e713e7f 2016-08-31).
MozReview-Commit-ID: 7Ejckg9dPZy
--HG--
extra : rebase_source : bae84e6336feb259954c093dc377e6504e973682
Update clang for the built version shipping libc++. This is primarly
intended to fix Mac OSX cross builds, but for a matter of consistency,
we update it for all clang builds done in a Linux host.
Repacks of upstream builds cargo 0.13.0-nightly (664125b 2016-07-19)
for each host platform. Unpacks into cargo/bin/cargo.
This version supports `cargo build --frozen` to disallow
network access during the build.
MozReview-Commit-ID: IihpDlqxPx6
Gecko builds of rustc and cargo. x86_64-unknown-linux-gnu host
targeting both x86_64 and i686.
rustc built with --enable-llvm-static-stdcpp --disable-docs
--enable-debuginfo --release-channel=stable from 'stable' branch
rust 1.10.0 (commit cfcb716cf0961a7e3a4eceac828d94805cf8140b)
cargo built from 'master' branch
cargo 0.11.0-119-g9f1ffdd (commit 9f1ffdd69b9fc564431e027a5043b303c7ec3808)
MozReview-Commit-ID: 4hq6dan8pk0
Custom build of rust 1.9.0 stable for gecko with
--enable-llvm-static-stdcpp --disable-docs --release-channel=stable
--enable-debuginfo for x86_64-unknown-linux-gnu targeting
x86_64-unknown-linux-gnu and i686-unknown-linux-gnu.
MozReview-Commit-ID: 1ycJzrPGkeA
This is the same repack of the upstream 1.8.0 stable build
for x86_64-unknown-linux-gnu hosts plus the i686 and
x86_64 std libraries used for the linux64 builds.
MozReview-Commit-ID: Gfd9YkNVe4K
Ideally, we'd use the tarballs from
http://llvm.org/releases/download.html but I didn't feel like modifying
the script more than I already did to make it work at all (bug 1262735).
The new tarball for Linux was built on
https://tools.taskcluster.net/task-inspector/#LCUn8aEgTBeRJ11a3qTlDQ/0
The new tarball for Mac was built on a loaner, after installing cmake
and ninja, as well as building ld64 127.2 from source because the
installed version would assert while building clang. The latter required
manually adding some missing headers to /usr/include. TSAN was also
disabled because it requires APIs that are not available on the OSX
version on the build slaves (e.g. pthread_introspection_hook_install).
Building clang also required using a mac clang from tooltool, the system
one lacking support for atomics.