about summary refs log tree commit diff
path: root/src/bootstrap/builder
AgeCommit message (Collapse)AuthorLines
2020-09-28Remove skip_only_host_stepsTyler Mandry-45/+22
And make tests explicitly list their hosts and targets.
2020-09-28bootstrap: Always build for host, even when target is givenTyler Mandry-12/+7
This changes the behavior from *not* building for host whenever an explicit target is specified. I find this much less confusing. You can still disable host steps by passing an explicit empty list for host. Fixes #76990.
2020-09-22Auto merge of #76799 - Mark-Simulacrum:fix-cross-compile-dist, r=alexcrichtonbors-0/+48
Fix cross compiling dist/build invocations I am uncertain why the first commit is not affecting CI. I suspect it's because we pass --disable-docs on most of our cross-compilation builders. The second commit doesn't affect CI because CI runs x.py dist, not x.py build. Both commits are standalone; together they should resolve #76733. The first commit doesn't really fix that issue but rather just fixes cross-compiled x.py dist, resolving a bug introduced in #76549.
2020-09-20Specify output directory for bootstrap testsMark Rousskov-0/+3
2020-09-17Add test for x.py build cross-compilationMark Rousskov-0/+48
2020-09-15Make the default stage for x.py configurableJoshua Nelson-7/+7
This allows configuring the default stage for each sub-command individually. - Normalize the stage as early as possible, so there's no confusion about which to use. - Don't add an explicit `stage` option in config.toml This offers no more flexibility than `*_stage` and makes it confusing which takes precedence. - Always give `--stage N` precedence over config.toml - Fix bootstrap tests This changes the tests to go through `Config::parse` so that they test the actual defaults, not the dummy ones provided by `default_opts`. To make this workable (and independent of the environment), it does not read `config.toml` for tests.
2020-09-11Verify we compile std without involving a b host compilerMark Rousskov-0/+10
2020-09-11Remove host parameter from step configurationsMark Rousskov-10/+0
rustc is a natively cross-compiling compiler, and generally none of our steps should care whether they are using a compiler built of triple A or B, just the --target directive being passed to the running compiler. e.g., when building for some target C, you don't generally want to build two stds: one with a host A compiler and the other with a host B compiler. Just one std is sufficient.
2020-09-01Move ninja requirements to a dynamic check, when actually buildingMark Rousskov-1/+1
It isn't practical to determine whether we'll build LLVM very early in the pipeline, so move the ninja checking to a dynamic check.
2020-08-30mv compiler to compiler/mark-1/+1
2020-08-28Disable ninja on the dry-run builderJosh Triplett-0/+1
2020-07-28reenable tests after moving stdmark-3/+1
2020-07-28Fix bad rebaseJoshua Nelson-1/+1
2020-07-27Add tests for the new behaviorJoshua Nelson-3/+92
- Only set stage 2 in dist tests - Add test for `x.py doc` without args - Add test for `x.py build` without args - Add test for `x.py build --stage 0`
2020-07-27Move tests into a submoduleJoshua Nelson-461/+470
2020-07-27Fix most bootstrap testsJoshua Nelson-1/+2
Uses --stage 2 for all the existing tests
2020-07-27mv std libs to library/mark-3/+5
2020-07-17Teach bootstrap about target files vs target triplesJake Goulding-28/+28
`rustc` allows passing in predefined target triples as well as JSON target specification files. This change allows bootstrap to have the first inkling about those differences. This allows building a cross-compiler for an out-of-tree architecture (even though that compiler won't work for other reasons). Even if no one ever uses this functionality, I think the newtype around the `Interned<String>` improves the readability of the code.
2020-07-01Tests for number of times rustdoc is built with x.py test and doc.Eric Huss-0/+79
2020-02-03bootstrap: fix clippy warningsMatthias Krüger-1/+0
2019-12-22Format the worldMark Rousskov-298/+81
2019-12-11Fix a test in the bootstrap test suiteAlex Crichton-0/+4
2019-08-23bootstrap: Merge the libtest build step with libstdAlex Crichton-89/+64
Since its inception rustbuild has always worked in three stages: one for libstd, one for libtest, and one for rustc. These three stages were architected around crates.io dependencies, where rustc wants to depend on crates.io crates but said crates don't explicitly depend on libstd, requiring a sysroot assembly step in the middle. This same logic was applied for libtest where libtest wants to depend on crates.io crates (`getopts`) but `getopts` didn't say that it depended on std, so it needed `std` built ahead of time. Lots of time has passed since the inception of rustbuild, however, and we've since gotten to the point where even `std` itself is depending on crates.io crates (albeit with some wonky configuration). This commit applies the same logic to the two dependencies that the `test` crate pulls in from crates.io, `getopts` and `unicode-width`. Over the many years since rustbuild's inception `unicode-width` was the only dependency picked up by the `test` crate, so the extra configuration necessary to get crates building in this crate graph is unlikely to be too much of a burden on developers. After this patch it means that there are now only two build phasese of rustbuild, one for libstd and one for rustc. The libtest/libproc_macro build phase is all lumped into one now with `std`. This was originally motivated by rust-lang/cargo#7216 where Cargo was having to deal with synthesizing dependency edges but this commit makes them explicit in this repository.
2019-07-27Remove run-pass test suitesVadim Petrochenkov-4/+1
2019-06-24bootstrap: pass '--pass' on to compiletest.Mazdak Farrokhzad-0/+2
2019-06-16Separate bootstrap modulechansuke-0/+656