Commit Graph

3201 Commits

Author SHA1 Message Date
Jack Huey f66b6c2e6c Rollup merge of #85297 - infinity0:master, r=Mark-Simulacrum
bootstrap: build cargo only if requested in tools

In Debian we'd like to build rustfmt and clippy alongside rustc, but we're still excluding cargo from the rustc build and doing that separately. This patch makes that possible.
2021-05-18 22:36:08 -04:00
Joshua Nelson 28c9c04325 Don't require cmake on Windows when LLVM isn't being built
Previously, setting `download-ci-llvm = true` when cmake wasn't
installed would give the following error:

```
failed to execute command: "cmake" "--help"
error: The system cannot find the file specified. (os error 2)
```
2021-05-17 22:08:20 -04:00
bors 50f2bf6a57 Auto merge of #85335 - GuillaumeGomez:rollup-0tvc14g, r=GuillaumeGomez
Rollup of 4 pull requests

Successful merges:

 - #84751 (str::is_char_boundary - slight optimization)
 - #85185 (Generate not more docs than necessary)
 - #85324 (Warn about unused `pub` fields in non-`pub` structs)
 - #85329 (fix version_str comment)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-05-15 17:37:18 +00:00
Guillaume Gomez f851f97e87 Rollup merge of #85185 - GuillaumeGomez:generate-not-more-docs-than-necessary, r=Mark-Simulacrum
Generate not more docs than necessary

This is something that `@Nemo157` was talking about: they wanted that when using `x.py doc std`, it only generated `std` (and the crates "before" it).

r? `@Mark-Simulacrum`
2021-05-15 17:56:48 +02:00
Guillaume Gomez b9b67b7d5b Don't generate more docs than necessary 2021-05-15 17:21:12 +02:00
Joshua Nelson b3494378aa Don't copy tool dependencies to the sysroot
This fixes the following error:

```
error: found crates (`serde_derive` and `serde_derive`) with colliding StableCrateId values.
   --> /home/joshua/.local/lib/cargo/registry/src/github.com-1ecc6299db9ec823/cargo_metadata-0.8.2/src/lib.rs:162:1
    |
162 | extern crate serde_derive;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
```

This is a bug in resolve (https://github.com/rust-lang/rust/issues/56935)
but it will be difficult to fix in the near future. This works around it
in the meantime by not copying serde_derive and other dependencies to
the sysroot when they're built for other tools. This rebuilds the
dependencies slightly more often than necessary, but avoids the crate
conflicts.

This can be reverted once #56935 is fixed.
2021-05-14 21:54:06 -05:00
Joshua Nelson 956e0bae58 Update bootstrap for in-tree rustfmt
- Add rustfmt to `x.py check`
- Update Cargo.lock
- Remove rustfmt from the toolstate list
- Make rustfmt an in-tree tool
- Give an error on `x.py test rustfmt` if rustfmt fails to build or if tests fail
- Don't call `save_toolstate` when testing rustfmt
2021-05-14 21:53:54 -05:00
Ximin Luo 15aad5fcdb bootstrap: build cargo only if requested in tools 2021-05-14 19:22:41 +01:00
bors 91f2e2d218 Auto merge of #85190 - mati865:update-cc, r=Mark-Simulacrum
Update cc crate

To pull in this fix: https://github.com/alexcrichton/cc-rs/commit/801a87bf2f31ad1ad8bd7e8fa4f5a52b0e2b4c00
2021-05-14 04:12:40 +00:00
Mateusz Mikuła b04fd78d66 update cc crate
To pull in this fix: https://github.com/alexcrichton/cc-rs/commit/801a87bf2f31ad1ad8bd7e8fa4f5a52b0e2b4c00
2021-05-12 00:55:03 +02:00
Yuki Okushi 8f3c2cce36 Rollup merge of #85191 - GuillaumeGomez:improve-rustdoc-gui-tester, r=Mark-Simulacrum
Improve rustdoc gui tester

I cherry-picked the commit from https://github.com/rust-lang/rust/pull/84834 (and modified it a bit). I also used this opportunity to update it to last version (forgot to update GUI test in https://github.com/rust-lang/rust/pull/85074, really can't wait to make https://github.com/rust-lang/rust/pull/84586 finally work).

cc `@Mark-Simulacrum` for the changes in bootstrap.

r? `@jsha`
2021-05-12 07:18:05 +09:00
Guillaume Gomez 6b9499085b Make rustdoc-gui test suite able to run with different sub directories 2021-05-11 21:14:40 +02:00
Guillaume Gomez d5a24b0a33 Move rustdoc-gui rust libraries into their own folder and prepare the field for more libraries 2021-05-11 20:56:16 +02:00
Camelid 9b89d01bbb Enable --show-type-layout for the rustdoc API docs 2021-05-11 09:55:32 -07:00
Camelid 9615d6dd48 Enable --show-type-layout for the rustc API docs 2021-05-11 09:55:31 -07:00
Yuki Okushi d501042cc3 Rollup merge of #85051 - jyn514:check-miri, r=Mark-Simulacrum
Allow checking miri and RLS with `x.py check src/tools/{miri,rls}`

Helps with https://github.com/rust-lang/rust/issues/80639.

`@Xanewok` would you find this useful for RLS too?
2021-05-11 09:28:07 +09:00
Yuki Okushi 7e827e936b Rollup merge of #84783 - jyn514:fmt-one, r=Mark-Simulacrum
Allow formatting specific subdirectories

Fixes https://github.com/rust-lang/rust/issues/71094.
2021-05-11 09:28:04 +09:00
Yuki Okushi 5fc898782c Rollup merge of #84777 - jyn514:rustdoc-parallel, r=Mark-Simulacrum
Apply `--cfg parallel_compiler` when documenting

This also reverts commit 9823c2cc70 working around the bug.

Fixes https://github.com/rust-lang/rust/issues/82301.
2021-05-11 09:28:03 +09:00
Aaron Hill 020d83d9f5 Enable -W semicolon_in_expressions_from_macros in bootstrap
Now that stdarch has been updated, we can do this without breaking the
build.
2021-05-08 18:15:14 -04:00
Joshua Nelson e4b57e1884 Allow checking miri and RLS with x.py check src/tools/{miri,rls} 2021-05-07 17:15:20 -04:00
Guillaume Gomez 919bfd86d9 Don't stop running rustdoc-gui tests at first failure 2021-05-07 16:51:00 +02:00
Yuki Okushi 87faf2e64f Rollup merge of #84990 - GuillaumeGomez:sort-rustdoc-gui-tests, r=Mark-Simulacrum
Sort rustdoc-gui tests

The rustdoc-gui tests were randomly run. Not really a big issue but I prefer the tests to be sorted.
2021-05-07 15:20:30 +09:00
Yuki Okushi 1224e1341a Rollup merge of #84781 - jyn514:check-bootstrap, r=Mark-Simulacrum
Don't check bootstrap artifacts by default

Bootstrap has to build successfully or this won't run, so all it checks
are the tests, which are uncommon to change.

Fixes https://github.com/rust-lang/rust/issues/76624.
2021-05-07 15:20:22 +09:00
Yuki Okushi 2d496f46bf Rollup merge of #84779 - jyn514:cargotest-args, r=Mark-Simulacrum
Add support for --test-args to cargotest

This allows running a single test without having to wait for all tests
to complete.

Closes https://github.com/rust-lang/rust/issues/77260.
2021-05-07 15:20:21 +09:00
Dylan DPC dd3747b4ad Rollup merge of #84500 - tmandry:compiletest-run-flag, r=Mark-Simulacrum
Add --run flag to compiletest

This controls whether run-* tests actually get run.

r? ```@Mark-Simulacrum```
2021-05-07 00:38:35 +02:00
Guillaume Gomez cdbfea5c6c Sort rustdoc-gui tests 2021-05-06 16:51:04 +02:00
Ralf Jung b2bb6876e0 Rollup merge of #84865 - petrochenkov:llthread, r=Mark-Simulacrum
rustbuild: Pass a `threads` flag that works to windows-gnu lld

MinGW driver for COFF LLD doesn't currently translate GNU-style `--threads=N` to native `/threads:N`, so we have to pass the option in its native form to avoid an error.

Also pass the `threads` flag to lld-link (windows-msvc lld) as well.
2021-05-05 17:52:25 +02:00
bors 7a0f1781d0 Auto merge of #83213 - rylev:update-lints-to-errors, r=nikomatsakis
Update BARE_TRAIT_OBJECT and ELLIPSIS_INCLUSIVE_RANGE_PATTERNS to errors in Rust 2021

This addresses https://github.com/rust-lang/rust/pull/81244 by updating two lints to errors in the Rust 2021 edition.

r? `@estebank`
2021-05-04 08:09:23 +00:00
Vadim Petrochenkov f9eda61569 rustbuild: Pass a threads flag that works to windows-gnu lld
MinGW driver for COFF LLD doesn't currently translate GNU-style `--threads=N` to native `/threads:N`, so we have to pass the option in its native form to avoid an error.

Also pass the `threads` flag to lld-link as well
2021-05-03 16:50:43 +03:00
bors 6d4e3c1ed6 Auto merge of #84750 - jyn514:nix-cargo, r=Mark-Simulacrum
Don't download cargo twice when download-rustc is set

Previously, this caused a bug on NixOS:

1. bootstrap.py would download and patch stage0/cargo
2. bootstrap.py would download nightly cargo, but extract it to
   stage0/cargo instead of ci-rustc/cargo. It would still try (and fail) to patch ci-rustc/cargo.
3. bootstrap.py would fail to build rustbuild because stage0/cargo
   wasn't patched.

The "proper" fix is to extract nightly cargo to ci-rustc instead, but it
doesn't seem to be necessary at all, so this just skips downloading it
instead.

Fixes https://github.com/rust-lang/rust/issues/84702
2021-05-02 07:09:38 +00:00
bors 7e717e99be Auto merge of #84471 - jyn514:linkcheck-llvm, r=Mark-Simulacrum
Allow running `x.py test --stage 2 src/tools/linkchecker` with `download-rustc = true`

Previously, the LD_LIBRARY_PATH for the linkchecker looked like
`build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib`, because the linkchecker depends on the master copy of the standard library. This is true, but doesn't include the library path for the compiler libraries:

```
/home/joshua/src/rust/rust/build/x86_64-unknown-linux-gnu/stage1-tools-bin/error_index_generator: error while loading shared libraries: libLLVM-12-rust-1.53.0-nightly.so: cannot open shared object file: No such file or directory
```

That file is in
`build/x86_64-unknown-linux-gnu/stage1/lib/libLLVM-12-rust-1.53.0-nightly.so`,
which wasn't included in the dynamic path. This adds `build/x86_64-unknown-linux-gnu/stage1/lib` to the dynamic path for the linkchecker.
2021-05-01 23:16:12 +00:00
Joshua Nelson dadcb0550d Allow formatting specific subdirectories 2021-05-01 01:57:15 -04:00
Joshua Nelson 3b4b1eab90 Don't check bootstrap artifacts by default
Bootstrap has to build successfully or this won't run, so all it checks
are the tests, which are uncommon to change.
2021-05-01 01:38:45 -04:00
Joshua Nelson d95a6cf911 Add support for --test-args to cargotest
This allows running a single test without having to wait for all tests
to complete.
2021-05-01 01:13:53 -04:00
Joshua Nelson 1da4445109 Apply --cfg parallel_compiler when documenting
This also reverts commit 9823c2cc70
working around the bug.
2021-05-01 00:25:11 -04:00
Joshua Nelson 69f3ead6b0 Don't download cargo twice when download-rustc is set
Previously, this caused a bug on NixOS:

1. bootstrap.py would download and patch stage0/cargo
2. bootstrap.py would download nightly cargo, but extract it to
   stage0/cargo instead of ci-rustc/cargo.
3. bootstrap.py would fail to build rustbuild because stage0/cargo
   wasn't patched.

The "proper" fix is to extract nightly cargo to ci-rustc instead, but it
doesn't seem to be necessary at all, so this just skips downloading it
instead.
2021-04-30 14:19:26 +00:00
Tyler Mandry 1e46b18fec Fix help for profile flags 2021-04-30 04:12:37 +00:00
Tyler Mandry 0b2e908691 Add support for --run for non-ui tests 2021-04-30 04:10:15 +00:00
Tyler Mandry 09783815b2 Add run flag to bootstrap test 2021-04-30 04:10:14 +00:00
bors 10a51c0ac0 Auto merge of #84189 - jyn514:clippy-dev, r=Mark-Simulacrum
Implement `x.py test src/tools/clippy --bless`

- Add clippy_dev to the rust workspace

  Before, it would give an error that it wasn't either included or
  excluded from the workspace:

  ```
  error: current package believes it's in a workspace when it's not:
  current:   /home/joshua/rustc/src/tools/clippy/clippy_dev/Cargo.toml
  workspace: /home/joshua/rustc/Cargo.toml

  this may be fixable by adding `src/tools/clippy/clippy_dev` to the `workspace.members` array of the manifest located at: /home/joshua/rustc/Cargo.toml
  Alternatively, to keep it out of the workspace, add the package to the `workspace.exclude` array, or add an empty `[workspace]` table to the package's manifest.
  ```

- Change clippy's copy of compiletest not to special-case
  rust-lang/rust. Using OUT_DIR confused `clippy_dev` and it couldn't find
  the test outputs. This is one of the reasons why `cargo dev bless` used
  to silently do nothing (the others were that `CARGO_TARGET_DIR` and
  `PROFILE` weren't set appropriately).

- Run clippy_dev on test failure

I tested this by removing a couple lines from a stderr file, and they
were correctly replaced.

- Fix clippy_dev warnings
2021-04-29 12:03:43 +00:00
Jack Huey e6dce233a3 Rollup merge of #84585 - jyn514:check-rustdoc, r=Mark-Simulacrum
Add `x.py check src/librustdoc` as an alias for `x.py check src/tools/rustdoc`

I keep making this typo, it would be nice for it to be supported.
2021-04-28 22:59:27 -04:00
Jack Huey 87b2aced4a Rollup merge of #84555 - jyn514:ice-backtrace, r=Mark-Simulacrum
Set `backtrace-on-ice` by default for compiler and codegen profiles

If there's an ICE while bootstrapping, it's most likely because of a change to the compiler.
2021-04-28 22:59:26 -04:00
Jack Huey 43afe764de Rollup merge of #84484 - jyn514:check-tools, r=Mark-Simulacrum
Don't rebuild rustdoc and clippy after checking bootstrap

This works by unconditionally passing -Z unstable-options to the
compiler. This has no affect in practice since bootstrap doesn't use
`deny(rustc::internal)`.

Fixes https://github.com/rust-lang/rust/issues/82461.

r? ```@Mark-Simulacrum```
2021-04-28 22:59:22 -04:00
Joshua Nelson b28754ab7d Add x.py check src/librustdoc as an alias for x.py check src/tools/rustdoc 2021-04-28 17:05:47 -04:00
Joshua Nelson 1c8e122177 Switch rustc::internal from deny to warn
These should still obey deny-warnings.
2021-04-27 13:00:36 -04:00
Joshua Nelson 8c25e27f16 Implement x.py test src/tools/clippy --bless
- Add clippy_dev to the rust workspace

  Before, it would give an error that it wasn't either included or
  excluded from the workspace:

  ```
  error: current package believes it's in a workspace when it's not:
  current:   /home/joshua/rustc/src/tools/clippy/clippy_dev/Cargo.toml
  workspace: /home/joshua/rustc/Cargo.toml

  this may be fixable by adding `src/tools/clippy/clippy_dev` to the `workspace.members` array of the manifest located at: /home/joshua/rustc/Cargo.toml
  Alternatively, to keep it out of the workspace, add the package to the `workspace.exclude` array, or add an empty `[workspace]` table to the package's manifest.
  ```

- Change clippy's copy of compiletest not to special-case
  rust-lang/rust. Using OUT_DIR confused `clippy_dev` and it couldn't find
  the test outputs. This is one of the reasons why `cargo dev bless` used
  to silently do nothing (the others were that `CARGO_TARGET_DIR` and
  `PROFILE` weren't set appropriately).

- Run clippy_dev on test failure

I tested this by removing a couple lines from a stderr file, and they
were correctly replaced.

- Fix clippy_dev warnings
2021-04-27 16:57:29 +00:00
Ryan Levick 4e25ae4807 Pass unstable options to error index rustdoc invocation 2021-04-26 12:14:10 +02:00
Joshua Nelson 9e722f7e32 Set backtrace-on-ice by default for compiler and codegen profiles
If there's an ICE while bootstrapping, it's most likely because of a change to the compiler.
2021-04-25 12:09:08 -04:00
Yuki Okushi 5321f9559b Rollup merge of #84250 - jclulow:illumos-bash-bootstrap, r=Mark-Simulacrum
bootstrap: use bash on illumos to run install scripts

The default illumos shell ("sh" in the default PATH) is ksh93, rather
than bash, and does not support constructs like "local" that came from
bash.  The bootstrap function for invoking "install.sh" scripts should
use "bash" explicitly there to avoid issues.
2021-04-24 12:17:02 +09:00
Joshua Nelson 264442c140 Don't rebuild rustdoc after checking bootstrap
This works by unconditionally passing -Z unstable-options to the
compiler. This has no affect in practice since bootstrap doesn't use
`deny(rustc::internal)`.
2021-04-23 12:05:12 -04:00