summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2019-09-13Include compiler-rt in the source tarballMatthew Maurer-0/+1
In #60981 we switched to using src/llvm-project/compiler-rt inside compiler-builtins rather than a separate copy of it. In order to have the "c" feature turn on in builds from the source tarball, we need to include that path in its creation. fixes #64239
2019-08-09Check links on all platforms when running locallyMateusz Mikuła-3/+23
2019-08-08don't set RUSTC_DEBUG_ASSERTIONS here; let cargo-miri do thatRalf Jung-2/+0
2019-08-08install and use xargo inside the build dirRalf Jung-0/+4
2019-08-08let us try to find out where that panic is coming fromRalf Jung-0/+2
2019-08-08dont test Miri by default (also be more verbose when being verbose)Ralf Jung-1/+1
2019-08-08more commentsRalf Jung-0/+1
2019-08-08remove test-miri flag from bootstrapRalf Jung-16/+1
2019-08-08Miri test: call 'cargo miri test' and use the sysroot it has set upRalf Jung-13/+76
2019-08-08simplify a matchRalf Jung-3/+1
2019-08-08bootstrap: get rid of TEST_MIRI env varRalf Jung-15/+0
2019-08-04Auto merge of #63199 - ehuss:fix-rustc-guide-toolstate, r=kennytmbors-1/+6
Fix rustc-guide toolstate tracking. The rustc-guide is still not saving its toolstate. It needs to be done explicitly. Note: There are some confusing bits here, like without `--no-fail-fast`, it saves the wrong value in `toolstates.json`. Also, "rustbook" is always added as "test-fail". Presumably [this code](https://github.com/rust-lang/rust/blame/63c1f17d950bfefc8f356777f124f304f0575c76/src/bootstrap/tool.rs#L201-L205) assumes everything fails until it passes tests, which is a bit confusing for things that don't run tests. cc @mark-i-m
2019-08-03Rollup merge of #63218 - lenary:riscv-non-experimental, r=alexcrichtonMazdak Farrokhzad-5/+8
rustbuild: RISC-V is no longer an experimental LLVM target This moves RISC-V from the experimental LLVM targets to the regular LLVM targets. RISC-V was made non-experimental in https://reviews.llvm.org/rL366399 I have also sorted the list of LLVM targets, and changed the code around setting llvm_exp_targets (and its default) to match the code setting llvm_targets (and its default), ensuring future changes to the defaults, as LLVM targets become stable, affect as few places as possible. Given WebAssembly is in `LLVM_ALL_TARGETS` and is therefore built by default (and has been since October 2018), I'm not sure why rust still has it in `experimental-targets`. I'm happy to update this PR to move it into the main list of LLVM targets. r? @alexcrichton
2019-08-02Fix rustc-guide toolstate tracking.Eric Huss-1/+6
2019-08-03Rollup merge of #63196 - RalfJung:build_helper, r=alexcrichtonMazdak Farrokhzad-4/+4
build_helper: try less confusing method names build_helper's `*_silent` methods were likely called that way because they do not print the command being run to stdout. [In the original file this all makes sense](https://github.com/rust-lang/rust/commit/046e6874c47ec55e23b7a566bca51d2920562485#diff-5c3d6537a43ecae03014e118a7fe3321). But later it also gained `*_suppressed` methods and the difference between `silent` and `suppressed` is far from clear. So rename `run` (which prints the command being run) to `run_verbose`. Then we can call the methods that just run a command and show its output but nothing extra `run` and `try_run`. `run_verbose` (formerly `run`) is unused from what I can tell. Should I remove it? r? @alexcrichton Cc @Mark-Simulacrum Also see https://github.com/rust-lang/rust/pull/63089#discussion_r308018890.
2019-08-03Rollup merge of #63107 - adrian-budau:master, r=alexcrichtonMazdak Farrokhzad-1/+3
Added support for armv7-unknown-linux-gnueabi/musleabi Fixes #63101 Some things that are not done and I hope someone can help me with: * During the ci build of `armv7-unknown-linux-gnueabi` `openssl` must be built (to build cargo) but `openssl` does not yet support this target. This feels slightly like a chicken-and-egg problem, any feedback is welcome. * Should I add any tests for any of these targets?
2019-08-02Added support for armv7-unknown-linux-gnueabi and armv7-unknown-linux-musleabi.Adrian Budau-1/+3
Support for the targets in the compiler and std build in the CI.
2019-08-02rustbuild: correct line lengthSam Elliott-1/+2
2019-08-02rustbuild: WebAssembly is no longer an experimental LLVM backendSam Elliott-2/+2
2019-08-02rustbuild: RISC-V is no longer an experimental LLVM targetSam Elliott-5/+7
This commit moves RISC-V from the experimental LLVM targets to the regular LLVM targets. RISC-V was made non-experimental in https://reviews.llvm.org/rL366399 I have also sorted the list of LLVM targets, and changed the code around setting llvm_exp_targets (and its default) to match the code setting llvm_targets (and its default), ensuring future changes to the defaults, as LLVM targets become stable, affect as few places as possible.
2019-08-02Remove some more `cfg(test)`sVadim Petrochenkov-2/+3
2019-08-01replace what I think is an erroneous try_run_quiet by try_runRalf Jung-1/+1
2019-08-01build_helper: rename (try_)run_silent -> (try_)runRalf Jung-3/+3
2019-07-30Auto merge of #62766 - alexcrichton:stabilize-pipelined-compilation, r=oli-obkbors-0/+3
rustc: Stabilize options for pipelined compilation This commit stabilizes options in the compiler necessary for Cargo to enable "pipelined compilation" by default. The concept of pipelined compilation, how it's implemented, and what it means for rustc are documented in #60988. This PR is coupled with a PR against Cargo (rust-lang/cargo#7143) which updates Cargo's support for pipelined compliation to rustc, and also enables support by default in Cargo. (note that the Cargo PR cannot land until this one against rustc lands). The technical changes performed here were to stabilize the functionality proposed in #60419 and #60987, the underlying pieces to enable pipelined compilation support in Cargo. The issues have had some discussion during stabilization, but the newly stabilized surface area here is: * A new `--json` flag was added to the compiler. * The `--json` flag can be passed multiple times. * The value of the `--json` flag is a comma-separated list of directives. * The `--json` flag cannot be combined with `--color` * The `--json` flag must be combined with `--error-format=json` * The acceptable list of directives to `--json` are: * `diagnostic-short` - the `rendered` field of diagnostics will have a "short" rendering matching `--error-format=short` * `diagnostic-rendered-ansi` - the `rendered` field of diagnostics will be colorized with ansi color codes embedded in the string field * `artifacts` - JSON blobs will be emitted for artifacts being emitted by the compiler The unstable `-Z emit-artifact-notifications` and `--json-rendered` flags have also been removed during this commit as well. Closes #60419 Closes #60987 Closes #60988
2019-07-29Auto merge of #63089 - kennytm:use-try-run-for-linkchecker, r=Mark-Simulacrumbors-3/+1
Fix rustc-guide build failure ignoring no-fail-fast
2019-07-29Fix rustc-guide build failure ignoring no-fail-fast.kennytm-3/+1
This caused clippy not being built on Linux previously.
2019-07-28Fix `cfg(parallel_compiler)` modeVadim Petrochenkov-0/+2
Fix rebase
2019-07-28Deny `unused_lifetimes` through rustbuildVadim Petrochenkov-5/+6
2019-07-28Remove lint annotations in specific crates that are already enforced by ↵Vadim Petrochenkov-5/+9
rustbuild Remove some random unnecessary lint `allow`s
2019-07-27Remove run-pass test suitesVadim Petrochenkov-38/+8
2019-07-26Rollup merge of #63002 - gilescope:better-build-diagnostics, r=Mark-SimulacrumMazdak Farrokhzad-1/+1
error_index_generator should output stdout/stderr when it panics. **bootstrap change** Call error_index_generator tool using run_quiet which will additionally print std out and std err of the command when it returns an error. (was `run` uses `run_silent` under the covers.) Why: PR #62871 is hitting a build error but the panic isn't getting shown so its unclear what the problem is.
2019-07-26rustc: Stabilize options for pipelined compilationAlex Crichton-0/+3
This commit stabilizes options in the compiler necessary for Cargo to enable "pipelined compilation" by default. The concept of pipelined compilation, how it's implemented, and what it means for rustc are documented in #60988. This PR is coupled with a PR against Cargo (rust-lang/cargo#7143) which updates Cargo's support for pipelined compliation to rustc, and also enables support by default in Cargo. (note that the Cargo PR cannot land until this one against rustc lands). The technical changes performed here were to stabilize the functionality proposed in #60419 and #60987, the underlying pieces to enable pipelined compilation support in Cargo. The issues have had some discussion during stabilization, but the newly stabilized surface area here is: * A new `--json` flag was added to the compiler. * The `--json` flag can be passed multiple times. * The value of the `--json` flag is a comma-separated list of directives. * The `--json` flag cannot be combined with `--color` * The `--json` flag must be combined with `--error-format=json` * The acceptable list of directives to `--json` are: * `diagnostic-short` - the `rendered` field of diagnostics will have a "short" rendering matching `--error-format=short` * `diagnostic-rendered-ansi` - the `rendered` field of diagnostics will be colorized with ansi color codes embedded in the string field * `artifacts` - JSON blobs will be emitted for artifacts being emitted by the compiler The unstable `-Z emit-artifact-notifications` and `--json-rendered` flags have also been removed during this commit as well. Closes #60419 Closes #60987 Closes #60988
2019-07-26`run_quiet` outputs stdout/stderr when things go wrong.Giles Cope-1/+1
(was `run` uses `run_silent` under the covers.)
2019-07-26Auto merge of #60260 - videolabs:rust_uwp2, r=alexcrichtonbors-1/+2
Add support for UWP targets Hi, This pull request aims at adding support for UWP (Universal Windows Apps) platform. A few notes: - This requires a very recent mingw-w64 version (containing this commit and the previous related ones: https://github.com/mirror/mingw-w64/commit/e8c433c871687a78408ae9b40ab7776577db908d#diff-eefdfbfe9cec5f4ebab88c9a64d423a9) - This was tested using LLVM/clang rather than gcc, and so far it assumes that LLVM/clang will be the native compiler. This is mostly due to the fact that the support for exceptions/stack unwinding for UWP got much more attention in libunwind - The "uwp" part of the target needs support for it in the `cc-rs` & `backtrace-rs` crates. I'll create the MR there right after I submit this one and will link everything together, but I'm not sure what's the correct way of dealing with external dependencies in the context of rust - Enabling import libraries and copying them across stages requires a change in cargo, for which I'll open a MR right after I submit this one as well - The i686 stack unwinding is unsupported for now, because LLVM assumes SjLj, while rust seems to assume SEH will be used. I'm unsure how to fix this Also, this is my first encounter with rust, so please bear with my code, it might not feel so idiomatic or even correct :) I'm pretty sure there's a way of doing things in a cleaner way when it comes to win/c.rs, maybe having a UWP & desktop specific modules, and import those conditionally? It doesn't feel right to sprinkle `#[cfg(...)]` all over the place Off course, I'll gladly update anything you see fit (to the extent of my abilities/knowledge :) )! Thanks,
2019-07-25Rollup merge of #61890 - golddranks:fix_sanity_check_llvm, r=Dylan-DPCMazdak Farrokhzad-2/+13
Fix some sanity checks Update: Changes that made it not to work dropped. * Fix `building_llvm` in sanity check * This was subtly broken: we build LLVM if any of the hosts builds LLVM, and not setting the config meant that LLVM is built for that target. Because of filtering away the targets not configured and the semantics of `Iterator::any`, it currently didn't set the `building_llvm` flag even if we indeed build it. * Add `swig` sanity check * This checks whether there is a `swig` executable needed for LLDB.
2019-07-25bootstrap: Build startup object for all windows-gnu targetHugo Beauzée-Luyssen-1/+1
So that uwp-windows-gnu also gets its startup objects built
2019-07-25rustc: codegen: Build import library for all windows targetsHugo Beauzée-Luyssen-0/+1
So far it is assumed that using a DLL as a -l parameter argument is ok, but the assumption doesn't hold when compiling the native code with llvm. In which case, an import library is required, so let's build one This also requires the cargo counterpart to add the import library in the stamp files, at least when compiling libstd. Otherwise, the files don't get uplifted
2019-07-23Require a value for configure --debuginfo-levelJosh Stone-5/+5
In `configure.py`, using the `o` function creates an enable/disable boolean setting, and writes `true` or `false` in `config.toml`. However, rustbuild is expecting to parse a `u32` debuginfo level. We can change to the `v` function to have the options require a value.
2019-07-23Fix building_llvm in sanity check, add swig sanity check.Pyry Kontio-2/+13
2019-07-18Rollup merge of #62752 - nikic:llvm-disable-z3, r=alexcrichtonMark Rousskov-0/+1
Disable Z3 in LLVM build Avoid building LLVM with Z3 if it happens to be installed. Fixes #62750. r? @alexcrichton
2019-07-17Update mdbook, cargo, booksEric Huss-29/+9
This updates the last of the books using mdbook 0.1, finally removing it from the build.
2019-07-17Disable Z3 in LLVM buildNikita Popov-0/+1
2019-07-16Auto merge of #61946 - BaoshanPang:vxworks, r=alexcrichtonbors-0/+2
port rust for vxWorks The supporting for vxWorks has been enabled in this branch. Although there are still a lots of work to do, I would like to upstream the code and fix the problems later. Please let me know if there is anything I have to do before upstream the code. r? @alexcrichton Thanks, Baoshan
2019-07-16Rollup merge of #62693 - alexcrichton:rm-travis-appveyor, r=Mark-SimulacrumMark Rousskov-116/+4
ci: Remove Travis/AppVeyor configuration Now that we've fully moved to Azure Pipelines and bors has been updated to only gate on Azure this commit removes the remaining Travis/AppVeyor support contained in this repository. Most of the deletions here are related to producing better output on Travis by folding certain sections. This isn't supported by Azure so there's no need to keep it around, and if Azure ever adds support we can always add it back!
2019-07-16Add supporting for vxWorksBaoshan Pang-0/+2
r? @alexcrichton
2019-07-15ci: Remove Travis/AppVeyor configurationAlex Crichton-116/+4
Now that we've fully moved to Azure Pipelines and bors has been updated to only gate on Azure this commit removes the remaining Travis/AppVeyor support contained in this repository. Most of the deletions here are related to producing better output on Travis by folding certain sections. This isn't supported by Azure so there's no need to keep it around, and if Azure ever adds support we can always add it back!
2019-07-15Update the stdarch submodulegnzlbg-1/+1
2019-07-12rustbuild: Improve assert about building tools onceAlex Crichton-21/+48
In developing #61557 I noticed that there were two parts of our tools that were rebuilt twice on CI. One was rustfmt fixed in #61557, but another was Cargo. The actual fix for Cargo's double compile was rust-lang/cargo#7010 and took some time to propagate here. In an effort to continue to assert that Cargo is itself not compiled twice, I updated the assertion in rustbuild at the time of working on #61557 but couldn't land it because the fix wouldn't be ready until the next bootstrap. The next bootstrap is now here, so the fix can now land! This does not change the behavior of rustbuild but it is intended to catch the previous iteration of compiling cargo twice. The main update here was to consider more files than those in `$target/release/deps` but also consider those in `$target/release`. That's where, for example, `libcargo.rlib` shows up and it's the file we learn about, and that's what we want to deduplicate.
2019-07-12Auto merge of #62549 - ehuss:update-cargo-vendor, r=alexcrichtonbors-46/+43
Update cargo-vendor usage This contains a variety of updates to clean up the usage of cargo-vendor. - Remove the install step for the old cargo-vendor now that it is built-in to cargo and available in the stage0 install. - Update installation instructions, dealing with vendoring. The current instructions of running `sudo ./x.py install` is broken, it will almost always fail (since the vendor directory doesn't exist). Since the steps for properly handling this are numerous, I'm recommending removing the suggestion to use `sudo` altogether. - If the sudo-forced-vendoring detects that the vendor directory is not available, abort with instructions on how to fix. - Now that cargo-vendor is built-in, automatically run it if it looks like it is needed. - Update instructions on how to install cargo. - Remove the unused markdown link references in README/CONTRIBUTING. This reverts most of #44935. These references don't do anything if they are unused. Closes #49269 cc #61142 #48771 #40108
2019-07-09Update cargo-vendor usageEric Huss-46/+43