about summary refs log tree commit diff
path: root/src/bootstrap/tool.rs
AgeCommit message (Collapse)AuthorLines
2019-03-30Don't ignore git for LLVM infoJosh Stone-1/+1
2019-03-20Auto merge of #58897 - Mark-Simulacrum:tool-rework, r=alexcrichtonbors-39/+73
Rework how bootstrap tools are built This makes bootstrap tools buildable and testable in stage 0 with the downloaded bootstrap compiler, futhermore, it makes it such that they cannot be built in any other stage. Notably, this will also mean that compiletest may need to wait a cycle before it can use changes to `libtest`, as it no longer depends on the in-tree libtest.
2019-03-16Fix formattingbjorn3-1/+1
2019-03-16[bootstrap] Remove llvm.enabled configbjorn3-2/+2
2019-03-06Make Cargo a rustc tool againJohn Kåre Alsaker-1/+1
2019-03-05Bootstrap changesJohn Kåre Alsaker-2/+3
2019-03-03Permit getting stage 0 rustdocMark Rousskov-3/+5
This allows us to e.g. test compiletest, including doctests, in stage 0 without building a fresh compiler and rustdoc.
2019-03-03Tools built by the bootstrap compiler must be built by itMark Rousskov-36/+68
This avoids building compilers that we don't need -- most tools will work just fine with the downloaded compiler.
2019-02-25bootstrap: deny(rust_2018_idioms)Taiki Endo-18/+18
2019-02-13Auto merge of #58238 - Mark-Simulacrum:doctest-fix, r=alexcrichtonbors-18/+18
Fixes rustdoc in stage 0, stage 1 When a request for rustdoc is passed for stage 0, x.py build --stage 0 src/tools/rustdoc or ensure(tool::Rustdoc { .. }) with top_stage = 0, we return the rustdoc for that compiler (i.e., the beta rustdoc). This fixes stage 0 of https://github.com/rust-lang/rust/issues/52186 as well as being part of general workflow improvements (making stage 0 testing for std work) for rustbuild. The stage 1 fix (second commit) completely resolves the problem, so this fixes https://github.com/rust-lang/rust/issues/52186.
2019-02-11This fixes doctests in stage 1Mark Rousskov-18/+12
The RUSTDOC_LIBDIR should be rustc_libdir, not sysroot_libdir; rustdoc is like the compiler and should link against rustc's libdir. Some people currently (i.e., in general, may not be on master) have doc tests working, but no attempt to determine why has been attempted.
2019-02-11Never build rustdoc in stage 0Mark Rousskov-0/+6
When a request for rustdoc is passed for stage 0, x.py build --stage 0 src/tools/rustdoc or ensure(tool::Rustdoc { .. }) with top_stage = 0, we return the rustdoc for that compiler (i.e., the beta rustdoc).
2019-02-10rustc: doc commentsAlexander Regueiro-2/+2
2019-01-30bootstrap: Make LLD available to run-make tests.Michael Woerister-14/+27
2019-01-08fixupOliver Scherer-1/+3
2019-01-08Prepare everything for distributing miri via rustupOliver Scherer-0/+8
2019-01-02bootstrap: Link LLVM as a dylib with ThinLTOAlex Crichton-1/+1
When building a distributed compiler on Linux where we use ThinLTO to create the LLVM shared object this commit switches the compiler to dynamically linking that LLVM artifact instead of statically linking to LLVM. The primary goal here is to reduce CI compile times, avoiding two+ ThinLTO builds of all of LLVM. By linking dynamically to LLVM we'll reuse the one ThinLTO step done by LLVM's build itself. Lots of discussion about this change can be found [here] and down. A perf run will show whether this is worth it or not! [here]: https://github.com/rust-lang/rust/pull/53245#issuecomment-417015334
2018-12-28Update cargo, rls, miriEric Huss-1/+1
2018-12-25Remove licensesMark Rousskov-10/+0
2018-12-25Revert "Rollup merge of #56944 - alexcrichton:less-thin2, r=michaelwoerister"kennytm-1/+1
This reverts commit f1051b574c26e20608ff26415a3dddd13f140925, reversing changes made to 833e0b3b8a9f1487a61152ca76f7f74a6b32cc0c.
2018-12-17bootstrap: Link LLVM as a dylib with ThinLTOAlex Crichton-1/+1
When building a distributed compiler on Linux where we use ThinLTO to create the LLVM shared object this commit switches the compiler to dynamically linking that LLVM artifact instead of statically linking to LLVM. The primary goal here is to reduce CI compile times, avoiding two+ ThinLTO builds of all of LLVM. By linking dynamically to LLVM we'll reuse the one ThinLTO step done by LLVM's build itself. Lots of discussion about this change can be found [here] and down. A perf run will show whether this is worth it or not! [here]: https://github.com/rust-lang/rust/pull/53245#issuecomment-417015334
2018-12-10bootstrap: fix editionljedrz-10/+10
2018-12-07Various minor/cosmetic improvements to codeAlexander Regueiro-1/+1
2018-11-25Try to make top-level Cargo.toml work without __CARGO_TEST_ROOT.Eduard-Mihai Burtescu-18/+2
2018-11-22Move Cargo.{toml,lock} to the repository root directory.Eduard-Mihai Burtescu-4/+24
2018-11-21Forward rust version number to toolsOliver Scherer-0/+2
Clippy uses it to identify the correct documentation to point to
2018-10-26bootstrap: clean up a few clippy findingsMatthias Krüger-4/+4
remove useless format!()s remove redundant field names in a few struct initializations pass slice instead of a vector to a function use is_empty() instead of comparisons to .len() No functional change intended.
2018-10-20Update Cargo, build curl/OpenSSL statically via featuresAlex Crichton-11/+16
In addition to to updating Cargo's submodule and Cargo's dependencies, this also updates Cargo's build to build OpenSSL statically into Cargo as well as libcurl unconditionally. This removes OpenSSL build logic from the bootstrap code, and otherwise requests that even on OSX we build curl statically.
2018-09-12remove struct CleanToolsCollins Abitekaniza-27/+0
2018-09-12clear_if_dirty in Builder::cargo with passed modeCollins Abitekaniza-25/+2
2018-08-20bootstrap: Allow for building LLVM with ThinLTO.Michael Woerister-1/+1
2018-08-18Use the new Entry::or_default method where possible.Eduard-Mihai Burtescu-1/+1
2018-08-02Update Cargo submoduleAlex Crichton-0/+4
Bring in some fixes for `cargo fix` notably
2018-07-26Refactor is_external_tool into source_typeTatsuyuki Ishi-11/+21
2018-07-25Discriminate between external and optional toolsTatsuyuki Ishi-13/+20
2018-07-25Deny bare_trait_objects globallyTatsuyuki Ishi-7/+23
2018-07-21Run the error index tool against the sysroot libdirMark Rousskov-2/+2
Previously when building the error index tool in stage 0 we would attempt to use stage 0 libraries, but because it depends on rustdoc, those don't exist: rustdoc is built against stage 1 libraries. This patch aligns those two and passes the stage 1 libdir to the error index.
2018-07-11Remove unused variableOliver Schneider-1/+0
2018-07-11Hitchhike with rls into stableOliver Schneider-1/+1
2018-07-09Also distribute cargo clippyOliver Schneider-0/+8
2018-07-09Inject clippy into the rls againOliver Schneider-0/+9
Also makes sure we actually point to the local rls
2018-07-06Rollup merge of #52080 - oli-obk:dep_dedup_diagnostics, r=kennytmkennytm-6/+22
Improve dependency deduplication diagnostics r? @kennytm this is obviously hard to test :laughing: cc #52072
2018-07-05Address review commentsOliver Schneider-12/+5
2018-07-05Only display difference of features, not all featuresOliver Schneider-4/+22
2018-07-05Vertical list of tools to checkOliver Schneider-2/+7
2018-07-05Update Cargo.lock dependenciesAlex Crichton-1/+4
Run `cargo update` and let's see how far we can get!
2018-07-03Compile stage0 tools with the raw bootstrap compilerAlex Crichton-15/+20
This commit updates the stage0 build of tools to use the libraries of the stage0 compiler instead of the compiled libraries by the stage0 compiler. This should enable us to avoid any stage0 hacks (like missing SIMD).
2018-07-01Did you mean to block nightlies on clippy?Oliver Schneider-1/+1
2018-06-25Do not build LLVM tools for any of the toolsMark Simulacrum-6/+3
None of the tools in the list should need LLVM tools themselves as far as I can tell; if this is incorrect, we can re-enable the tool building later. The primary reason for doing this is that rust-central-station uses the BuildManifest tool and building LLVM there is not cached: it takes ~1.5 hours on the 2 core machine. This commit should make nightlies and stable releases much faster.
2018-06-10Added comment to explain why only RustIstaller has `llvm_tools = false`.kennytm-0/+3