563 Commits

Author SHA1 Message Date
Josh Stone
e9cfc300a3 Only use cargo-vendor if building from git sources 2017-04-03 13:46:53 -07:00
Josh Stone
3fb1a849dd Add a common Build::src_is_git flag 2017-04-03 13:46:50 -07:00
bors
5c94997b6b Auto merge of #40524 - alexcrichton:update-bootstrap, r=alexcrichton
rustbuild: Update bootstrap compiler

Now that we've also updated cargo's release process this commit also changes the
download location of Cargo from Cargos archives back to the static.r-l.o
archives. This should ensure that the Cargo download is the exact Cargo paired
with the rustc that we release.
2017-03-30 17:10:11 +00:00
Alex Crichton
c033942925 rustbuild: Update bootstrap compiler
Now that we've also updated cargo's release process this commit also changes the
download location of Cargo from Cargos archives back to the static.r-l.o
archives. This should ensure that the Cargo download is the exact Cargo paired
with the rustc that we release.
2017-03-29 08:55:15 -07:00
Alex Crichton
700e2ea0c2 Rollup merge of #40852 - ollie27:rustbuild_compiler_docs, r=alexcrichton
rustbuild: Fix compiler docs again

The docs need to be built with the rustbuild feature so the correct
stability attributes (rustc_private) get applied.

r? @alexcrichton
2017-03-27 15:56:26 -07:00
Oliver Middleton
3545fb512e rustbuild: Fix compiler docs again
The docs need to be built with the rustbuild feature so the correct
stability attributes (rustc_private) get applied.
2017-03-27 12:55:57 +01:00
Oliver Schneider
eb447f4ef4
Fix various useless derefs and slicings 2017-03-27 08:58:00 +02:00
bors
c6df67afca Auto merge of #40515 - alexcrichton:tarball-names, r=brson
rustbuild: Don't hardcode 'nightly' for Cargo

It now follows rustc release trains. I also had to land this commit on beta (0a27a8713b) before https://github.com/rust-lang/rust/pull/40484 could land, so this is basically just a forward port (if you will) of that commit to master.
2017-03-23 06:48:23 +00:00
Alex Crichton
6ae22346b8 appveyor: Use Ninja to build LLVM on MinGW
I have a suspicion that MinGW's make is the cause of #40546 rather than anything
else, but that's purely a suspicion without any facts to back it up. In any case
we'll eventually be moving the MSVC build over to Ninja in order to leverage
sccache regardless, so this commit simply jumpstarts that process by downloading
Ninja for use by MinGW anyway.

I'm not sure if this closes #40546 for real, but this is my current best shot at
closing it out, so...

Closes #40546
2017-03-21 19:18:56 -07:00
Alex Crichton
fe2b7a4952
rustbuild: Don't hardcode 'nightly' for Cargo
It now follows rustc release trains
2017-03-21 16:26:13 -04:00
bors
58c701f5c7 Auto merge of #40693 - frewsxcv:rollup, r=frewsxcv
Rollup of 10 pull requests

- Successful merges: #40229, #40312, #40332, #40502, #40556, #40576, #40667, #40671, #40681, #40685
- Failed merges:
2017-03-21 17:02:38 +00:00
Corey Farwell
c6b2110714 Rollup merge of #40681 - est31:nightlies_txt_was_removed, r=alexcrichton
config.toml.example: nightlies.txt got removed

Instead, stage0.txt got introduced.

See also commit 02538d463a350f5c3658f7aabefca16eb599d31c
2017-03-20 23:45:03 -04:00
Alex Crichton
7305ca3852 travis: Don't set RUST_LOG globally
I have a suspicion that this caused a large regression in cycle times by forcing
the compiler to perform more checks on every `debug!` statement, so let's test
this out by removing the `RUST_LOG` env var globally.

This regression in cycle time was witnessed between [two] [builds] where the
[PR] in question didn't do much suspicious. Judging by how the stage0 times
*also* regressed though then this is my best guess.

[two]: https://travis-ci.org/rust-lang/rust/builds/210149932
[builds]: https://travis-ci.org/rust-lang/rust/builds/210179995
[PR]: https://github.com/rust-lang/rust/pull/40446
2017-03-20 14:32:36 -07:00
est31
aa83d7107f config.toml.example: nightlies.txt got removed
Instead, stage0.txt got introduced.

See also commit 02538d463a350f5c3658f7aabefca16eb599d31c
2017-03-20 19:28:04 +01:00
steveklabnik
23304593a6 skip nostarch directory
This is for coordinating with our publishers; we don't ever want to test it.
2017-03-20 10:10:15 -04:00
steveklabnik
966e72156f fix whitespace 2017-03-20 10:10:15 -04:00
steveklabnik
c97b48f261 Fix up some issues.
Becuase I had run a `x.py doc` before doing this work, I had
accidentally relied on some files existing in places that they didn't
need to be.
2017-03-20 10:10:15 -04:00
steveklabnik
422330df28 Render redirect pages.
These pages will help people who have links to the older book.
2017-03-20 10:10:15 -04:00
steveklabnik
5f2f3d07dc build book index 2017-03-20 10:10:15 -04:00
steveklabnik
8573a1319a build both editions of the book 2017-03-20 10:10:15 -04:00
Corey Farwell
dedf9d3593 Rollup merge of #40554 - nrc:rls-data, r=alexcrichton
Use rls-data crate

This basically pulls out a bunch of data structures used by save-analysis for serialization into an external crate, and pulls that crate in using Rustbuild. The RLS can then share these data structures with the compiler which in some cases will allow more efficient communication between the compiler and the RLS (i.e., without serialisation).

Along the way, I have to pull in rls-span, which is the RLS's way of defining spans (more type-safe than the compiler's built-in way). This is basically just to convert from compiler spans to RLS spans.

I also pull in the crates.io version of rustc-serialize, which is a bit annoying, but seems to be the only way to have serialisable data in an external crate. To make this work, all of the save-analysis crate has to use this version too (cc #40527).

Finally I pull in a line from #40347 to make the unstable crate checking stuff working.

There are a lot of changes to save-analysis but they are all mechanical and trivial - changing from using `From` to `Into` (because of orphan rules) being the main thing.

r? @alexcrichton
2017-03-19 20:51:10 -04:00
Corey Farwell
8287d0de0e Rollup merge of #40562 - mbrubeck:bootstrap, r=alexcrichton
Remove unused param from bootstrap::clean::rm_rf

None
2017-03-19 10:18:14 -04:00
bors
703b246287 Auto merge of #40482 - wagenet:fix-old-macos, r=alexcrichton
Target builds for older macOS

Fix #40481
2017-03-18 00:40:10 +00:00
Corey Farwell
b71e5f7b1f Rollup merge of #40545 - alexcrichton:retry-download-openssl, r=nikomatsakis
rustbuild: Retry downloads of OpenSSL source

We need this to compile Cargo and we download it at build time, but as like all
other network requests it has a chance of failing. This commit moves the source
of the tarball to a mirror (S3 seems semi-more-reliable most of the time) and
also wraps the download in a retry loop.

cc #40474
2017-03-17 08:49:09 -04:00
Corey Farwell
dee6989b43 Rollup merge of #40457 - frewsxcv:frewsxcv-macos, r=steveklabnik
Update usages of 'OSX' (and other old names) to 'macOS'.

As of last year with version 'Sierra', the Mac operating system is now
called 'macOS'.
2017-03-17 08:48:52 -04:00
Nick Cameron
1d93a6cce0 Fix handlebars failure by using the rustbuild feature less indiscriminately. 2017-03-17 10:23:40 +13:00
Matt Brubeck
befeb04370 Remove unused param from bootstrap::clean::rm_rf 2017-03-15 16:32:30 -07:00
Alex Crichton
5de04060ba rustbuild: Retry downloads of OpenSSL source
We need this to compile Cargo and we download it at build time, but as like all
other network requests it has a chance of failing. This commit moves the source
of the tarball to a mirror (S3 seems semi-more-reliable most of the time) and
also wraps the download in a retry loop.

cc #40474
2017-03-15 07:13:59 -07:00
bors
0aeb9c1297 Auto merge of #40383 - ishitatsuyuki:easy-dist-analysis, r=alexcrichton
rustbuild: Make save-analysis an option

This makes save-analysis an option independent from the release channel.

The CI build scripts have been modified to enable the flag.

*Merge with caution.* I haven't tested this, and this can cause nightly breakage.
2017-03-15 13:50:13 +00:00
Nick Cameron
2a3663f606 Handle feature=rustbuild
Taken from https://github.com/rust-lang/rust/pull/40347/files

And update rls-span to a version with the rustbuild boilerplate
2017-03-15 21:21:20 +13:00
Peter Wagenet
61d93877b7 Target builds for older macOS 2017-03-14 10:08:29 -07:00
bors
fd182c4010 Auto merge of #40329 - petrochenkov:llreuse, r=alexcrichton
rustbuild: Add option for enabling partial LLVM rebuilds

@alexcrichton , you probably didn't notice my [late comment](https://github.com/rust-lang/rust/pull/40236#issuecomment-284160749) on https://github.com/rust-lang/rust/pull/40236, but here's an implementation of that suggestion, it supersedes c652a4fb56.

r? @alexcrichton
2017-03-13 15:31:51 +00:00
bors
75fb56f152 Auto merge of #40448 - ollie27:rustbuild_docs_compiler, r=alexcrichton
rustbuild: Fix compiler docs

* Make sure std docs are generated before compiler docs so rustdoc uses
relative links.
* Don't document the rustc and rustdoc binary crates as they overwrite
the real rustc and rustdoc crates.

Fixes #40217

r? @alexcrichton
2017-03-13 02:24:16 +00:00
Corey Farwell
97a1b6a055 Update usages of 'OSX' (and other old names) to 'macOS'.
As of last year with version 'Sierra', the Mac operating system is now
called 'macOS'.
2017-03-12 14:59:04 -04:00
Alex Crichton
b5798a9be8 Update Cargo to fix nightly channel
This commit updates Cargo with rust-lang/cargo#3820 which includes a fix for
rust-lang/cargo#3819. At the same time this also slightly tweaks how rustbuild
builds cargo to ensure that all the build information (including git info and
such) makes its way into the binary.

Closes rust-lang/cargo#3820
2017-03-12 10:18:16 -07:00
Alex Crichton
4cda4d67f1 Allow cleaning llvm build dir to fail
It may not exist, so we don't want to spuriously generate an error.
2017-03-12 14:02:49 +03:00
Vadim Petrochenkov
362aa9a317 Default llvm.clean-rebuild to false 2017-03-12 14:02:49 +03:00
Vadim Petrochenkov
9b8b3b2b03 rustbuild: Add option for enabling partial LLVM rebuilds 2017-03-12 14:02:49 +03:00
bors
d9cf601ae8 Auto merge of #39770 - alexcrichton:configure-clean, r=brson
Delete more swaths of the configure script

This PR deletes more swaths of the `./configure` script which are either no longer necessary or already available in rustbuild (where an implementation is preferred)
2017-03-12 05:27:45 +00:00
Oliver Middleton
0e0bac914c rustbuild: Fix tests
Use the same step names as the actual build.
2017-03-12 05:09:10 +00:00
Oliver Middleton
7b04f7fa63 rustbuild: Fix compiler docs
* Make sure std docs are generated before compiler docs so rustdoc uses
relative links.
* Don't document the rustc and rustdoc binary crates as they overwrite
the real rustc and rustdoc crates.
2017-03-12 02:45:20 +00:00
Alex Crichton
8db566ee96 rustbuild: Fix a bug when manifesting with Cargo
The wrong Cargo version was passed down so it ended up panicking the
build-manifest script as it couldn't find the right tarball.
2017-03-11 09:30:51 -08:00
Alex Crichton
f8ca805422 configure: Remove --build detection
This commit removes detection of CFG_OSTYPE and CFG_CPUTYPE from the configure
script, which means that the default value of `--build` is no longer present in
the configure script. All this logic is now available in rustbuild itself, so
there's no need to duplicate it.
2017-03-11 08:41:36 -08:00
bors
5d0be0d72a Auto merge of #40199 - alexcrichton:doc-proc-macro, r=brson
rustbuild: Build documentation for `proc_macro`

This commit fixes #38749 by building documentation for the `proc_macro` crate by
default for configured hosts. Unfortunately did not turn out to be a trivial
fix. Currently rustbuild generates documentation into multiple locations: one
for std, one for test, and one for rustc. The initial fix for this issue simply
actually executed `cargo doc -p proc_macro` which was otherwise completely
elided before.

Unfortunately rustbuild was the left to merge two documentation trees together.
One for the standard library and one for the rustc tree (which only had docs for
the `proc_macro` crate). Rustdoc itself knows how to merge documentation files
(specifically around search indexes, etc) but rustbuild was unaware of this, so
an initial fix ended up destroying the sidebar and the search bar from the
libstd docs.

To solve this issue the method of documentation has been tweaked slightly in
rustbuild. The build system will not use symlinks (or directory junctions on
Windows) to generate all documentation into the same location initially. This'll
rely on rustdoc's logic to weave together all the output and ensure that it ends
up all consistent.

Closes #38749
2017-03-11 11:42:09 +00:00
Tatsuyuki Ishi
d4040c3a3f rustbuild: Add save-analysis to install 2017-03-11 20:00:06 +09:00
Tatsuyuki Ishi
5a88c7e5a1 rustbuild: Skip saving analysis when disabled 2017-03-11 20:00:06 +09:00
Tatsuyuki Ishi
e31e264c55 rustbuild: Make save-analysis an option 2017-03-11 20:00:05 +09:00
Alex Crichton
3493d91a18 Test fixes and rebase conflicts 2017-03-10 20:05:06 -08:00
Alex Crichton
ac1bbf7cee Rollup merge of #40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes https://github.com/rust-lang/rust/issues/40284
2017-03-10 16:18:28 -08:00
Alex Crichton
416889f499 Rollup merge of #40277 - rkruppe:llvm-parallel-link-jobs, r=alexcrichton
rustbuild: expose LLVM_PARALLEL_LINK_JOBS

This allows limiting the number of linker jobs to avoid swapping when linking LLVM with debug info.
2017-03-10 16:18:27 -08:00