Commit Graph

4629 Commits

Author SHA1 Message Date
bors
de96f3d873 Auto merge of #110478 - jyn514:stage1-fulldeps, r=albertlarsan68
Support `x test --stage 1 ui-fulldeps`

`@Nilstrieb` had an excellent idea the other day: the same way that rustdoc is able to load `rustc_driver` from the sysroot, ui-fulldeps tests should also be able to load it from the sysroot. That allows us to run fulldeps tests with stage1, without having to fully rebuild the compiler twice. It does unfortunately have the downside that we're building the tests with the *bootstrap* compiler, not the in-tree sources, but since most of the fulldeps tests are for the *API* of the compiler, that seems ok.

I think it's possible to extend this to `run-make-fulldeps`, but I've run out of energy for tonight.

- Move `plugin` tests into a subdirectory.

  Plugins are loaded at runtime with `dlopen` and so require the ABI of the running compile to match the ABI of the compiler linked with `rustc_driver`. As a result they can't be supported in stage 1 and have to use `// ignore-stage1`.

- Remove `ignore-stage1` from most non-plugin tests

- Ignore diagnostic tests in stage 1. Even though this requires a stage 2 build to load rustc_driver, it's primarily testing the error message that the *running* compiler emits when the diagnostic struct is malformed.

- Pass `-Zforce-unstable-if-unmarked` in stage1, not just stage2. That allows running `hash-stable-is-unstable` in stage1, since it now suggests adding `rustc_private` to enable loading the crates.

- Add libLLVM.so to the stage0 target sysroot, to allow fulldeps tests that act as custom drivers to load it at runtime.

- Pass `--sysroot stage0-sysroot` in compiletest so that we use the correct version of std.

- Move a few lint tests from ui-fulldeps to ui

  These had an `aux-build:lint-group-plugin-test.rs` that they never actually loaded with `feature(plugin)` nor tested. I removed the unused aux-build and they pass fine with stage 1.

Fixes https://github.com/rust-lang/rust/issues/75905.
2023-04-18 11:43:26 +00:00
Albert Larsan
ce5d897eb6 Fix bootstrap locking
Fix the regression introduced in 108607
2023-04-18 07:00:51 +00:00
Matthias Krüger
1e3a38438a Rollup merge of #110442 - ferrocene:pa-build-metrics-dry-run, r=ozkanonur
Avoid including dry run steps in the build metrics

Including steps executed during the dry run will result in a duplication of all the steps in the build metrics, which just adds noise.
2023-04-18 06:44:46 +02:00
Matthias Krüger
06d403d670 Rollup merge of #109981 - duckymirror:issue-107094, r=albertlarsan68
Set commit information environment variables when building tools

This fixes #107094.
~I'm trying to add a regression test for this issue.~
**Update**: I've added a test and a new test header `needs-git-hash` which makes sure it doesn't run when commit hashes are ignored (`bootstrap`'s `ignore-git` option).
2023-04-18 06:44:45 +02:00
jyn
d6af60266e Support x test --stage 1 ui-fulldeps
Nils had an excellent idea the other day: the same way that rustdoc is
able to load `rustc_driver` from the sysroot, ui-fulldeps tests should
also be able to load it from the sysroot. That allows us to run fulldeps
tests with stage1, without having to fully rebuild the compiler twice.
It does unfortunately have the downside that we're running the tests on
the *bootstrap* compiler, not the in-tree sources, but since most of the
fulldeps tests are for the *API* of the compiler, that seems ok.

I think it's possible to extend this to `run-make-fulldeps`, but I've
run out of energy for tonight.

- Move `plugin` tests into a subdirectory.

  Plugins are loaded at runtime with `dlopen` and so require the ABI of
  the running compile to match the ABI of the compiler linked with
  `rustc_driver`. As a result they can't be supported in stage 1 and have
  to use `// ignore-stage1`.

- Remove `ignore-stage1` from most non-plugin tests

- Ignore diagnostic tests in stage 1. Even though this requires a stage
  2 build to load rustc_driver, it's primarily testing the error message
  that the *running* compiler emits when the diagnostic struct is malformed.

- Pass `-Zforce-unstable-if-unmarked` in stage1, not just stage2. That
  allows running `hash-stable-is-unstable` in stage1, since it now
  suggests adding `rustc_private` to enable loading the crates.

- Add libLLVM.so to the stage0 target sysroot, to allow fulldeps tests
  that act as custom drivers to load it at runtime.

- Pass `--sysroot stage0-sysroot` in compiletest so that we use the
  correct version of std.
2023-04-17 22:40:31 -05:00
bors
e279f902f3 Auto merge of #110403 - klensy:bolt-deprecate, r=albertlarsan68,Kobzol
bolt: remove deprecated option value for split-functions

Noticed warning at https://github.com/rust-lang-ci/rust/actions/runs/4711883459/jobs/8356538964#step:26:40828, option value was removed at 96f6ec5090.

bolt only running on latest supported llvm (yes?), so it's safe to apply this patch.
cc `@Kobzol`
2023-04-18 01:00:55 +00:00
Josh Soref
70ce74e1e2 Spelling src/bootstrap
* although
* correct
* granular
* libunwind
* repository
* section

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-17 12:04:06 -04:00
Pietro Albini
4cd0e00655 avoid including dry run steps in the build metrics
Including steps executed during the dry run will result in a duplication
of all the steps in the build metrics, which just adds noise.
2023-04-17 09:42:45 +02:00
Nilstrieb
46a25581aa Extract variable 2023-04-16 21:36:05 +02:00
Nilstrieb
fa4639195c bootstrap.py: Use loop for _download_component_helper 2023-04-16 21:34:55 +02:00
Nilstrieb
488da69ce9 bootstrap.py: Create cache before download
This make `_download_component_helper` "pure".
2023-04-16 21:31:33 +02:00
Weihang Lo
103ed0e5c8 bootstrap: switch from stream_cargo to try_run_quiet
It is unnecessary to stream cargo JSON output.
2023-04-16 19:32:20 +01:00
Weihang Lo
befa5c98c9 chore: remove rustc-workspace-hack
Co-authored-by: Scott Schafer <schaferjscott@gmail.com>
Co-authored-by: Eric Huss <eric@huss.org>
2023-04-16 19:32:20 +01:00
Weihang Lo
1cfaa3431e chore: remove Cargo features in rustc-workspace-hack 2023-04-16 19:32:20 +01:00
Weihang Lo
82950f6895 bootstrap: treat src/tools/cargo as a workspace member
We remove `src/tools/cargo` from rust-lang/rust root workspace, but
some underlying mechanism still needs it to be a member. for example,
`./x.py doc`. This little hack make cargo's metadata available by
invoking an extra `cargo metadata` for cargo the package itself.

Co-authored-by: Scott Schafer <schaferjscott@gmail.com>
Co-authored-by: Eric Huss <eric@huss.org>
2023-04-16 19:32:20 +01:00
Weihang Lo
f795a150fe chore: allow cargo to have its own workspace
This also

* bumps cargo to the latest in rust-lang/cargo.
* adds 0BSD to allowed list of licenses

Co-authored-by: Scott Schafer <schaferjscott@gmail.com>
Co-authored-by: Eric Huss <eric@huss.org>
2023-04-16 19:32:12 +01:00
klensy
e4a9d137d0 bolt: remove deprecated option value 2023-04-16 14:13:14 +03:00
Erik Hofmayer
bfa87984d2 Fix error due to renaming of ignore_git 2023-04-16 12:50:33 +02:00
Erik Hofmayer
d535af3625 Add needs-git-hash header to compiletest
This header can be used for tests which check the output of `--version --verbose` commands.
2023-04-16 12:50:32 +02:00
Erik Hofmayer
28d27fd164 Set git info env variables when building tools
This should fix issue #107094.
2023-04-16 12:09:00 +02:00
Yuki Okushi
be2e8078d7 Rollup merge of #110356 - jyn514:rust-installer-tests, r=ozkanonur
Fix `x test rust-installer` when `cargo` is set to a relative path

Previously, this would give an error because the shell script had a different working directory:

```
test: basic_install
$ sh /home/jyn/src/rust/src/tools/rust-installer/gen-installer.sh --image-dir=/home/jyn/src/rust/src/tools/rust-installer/test/image1 --work-dir=/home/jyn/src/rust/build/x86_64-unknown-linux-gnu/test/rust-installer/workdir --output-dir=/home/jyn/src/rust/build/x86_64-unknown-linux-gnu/test/rust-installer/outdir
/home/jyn/src/rust/src/tools/rust-installer/gen-installer.sh: 15: ../rust3/build/host/stage2-tools-bin/cargo: not found

TEST FAILED!
```
2023-04-16 06:55:22 +09:00
bors
fd57c6b407 Auto merge of #110227 - klensy:bs-win, r=Mark-Simulacrum
bootstrap: drop some windows features

They became unused after https://github.com/rust-lang/rust/pull/109960
2023-04-15 15:11:41 +00:00
jyn
b1feb45f59 Fix x test rust-installer when cargo is set to a relative path
Previously, this would give an error because the shell script had a
different working directory:

```
test: basic_install
$ sh /home/jyn/src/rust/src/tools/rust-installer/gen-installer.sh --image-dir=/home/jyn/src/rust/src/tools/rust-installer/test/image1 --work-dir=/home/jyn/src/rust/build/x86_64-unknown-linux-gnu/test/rust-installer/workdir --output-dir=/home/jyn/src/rust/build/x86_64-unknown-linux-gnu/test/rust-installer/outdir
/home/jyn/src/rust/src/tools/rust-installer/gen-installer.sh: 15: ../rust3/build/host/stage2-tools-bin/cargo: not found

TEST FAILED!
```
2023-04-15 08:19:00 -05:00
bors
84dd17b56a Auto merge of #110331 - matthiaskrgr:rollup-9vldvow, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #108687 (Reformulate `point_at_expr_source_of_inferred_type` to be more accurate)
 - #109272 (Add Command environment variable inheritance docs)
 - #109947 (Add links from `core::cmp` derives to their traits)
 - #110110 (Use `Display` in top-level example for `PanicInfo`)
 - #110154 (Fix typos in library)
 - #110244 (Remove some unneeded imports / qualified paths)
 - #110328 ([rustdoc] Add explanations for auto-disambiguation when an intra doc link is resolved to a proc-macro and a trait at the same time)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-04-14 19:38:08 +00:00
Matthias Krüger
d5c7237400 Rollup merge of #110244 - kadiwa4:unnecessary_imports, r=JohnTitor
Remove some unneeded imports / qualified paths

Continuation of #105537.
2023-04-14 21:11:13 +02:00
bors
276fa29480 Auto merge of #110263 - jyn514:ui-fulldeps-llvm, r=albertlarsan68
Add `libLLVM.so` to the target libdir when download-rustc is enabled

Previously, we would only add it to the host libdir, which meant it couldn't be loaded by `ui-fulldeps` tests that used rustc_private.

Fixes https://github.com/rust-lang/rust/issues/110225, fixes https://github.com/rust-lang/rust/issues/110226.
2023-04-14 17:23:11 +00:00
bors
660c966ff9 Auto merge of #110324 - JohnTitor:rollup-jq31pd1, r=JohnTitor
Rollup of 7 pull requests

Successful merges:

 - #103682 (Stabilize rustdoc `--test-run-directory`)
 - #106249 (Create "suggested tests" tool in `rustbuild`)
 - #110047 (Add link to `collections` docs to `extend` trait)
 - #110269 (Add `tidy-alphabetical` to features in `core`)
 - #110292 (Add `tidy-alphabetical` to features in `alloc` & `std`)
 - #110305 (rustdoc-search: use ES6 `Map` and `Set` where they make sense)
 - #110315 (Add a stable MIR way to get the main function)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-04-14 15:06:51 +00:00
Yuki Okushi
78793869d7 Rollup merge of #106249 - Ezrashaw:suggest-test-tool, r=jyn514,albertlarsan68
Create "suggested tests" tool in `rustbuild`

Not the claimed person in #97339 but:
I've done a very rough implementation of this feature in-tree. I'm very new to `rustc` development (outside of docs) so some help would be greatly appreciated. The UI of this new subcommand obviously will change and I need some mentoring with the `--run` flag.

r? ```@jyn514```
2023-04-14 23:00:33 +09:00
bors
b0884a3528 Auto merge of #110177 - RalfJung:miri-tests, r=oli-obk
fix running Miri tests

This partially reverts https://github.com/rust-lang/rust/pull/108659 to fix https://github.com/rust-lang/rust/issues/110102: the Miri test runner does not support any flags, they are interpreted as filters instead which leads to no tests being run.

I have not checked any of the other test runners for whether they are having any trouble with these flags.

Cc `@pietroalbini` `@Mark-Simulacrum` `@jyn514`
2023-04-14 12:52:27 +00:00
Matthias Krüger
e86de74c27 Rollup merge of #110265 - KittyBorgX:master, r=ozkanonur
Automatically update the LLVM submodule for musl target (and other places)

Fixes #109987
2023-04-13 21:58:38 +02:00
Krishna Ramasimha
1e2f0d2469 automatically update the LLVM submodule 2023-04-13 10:31:29 +05:30
jyn
7d64c7cd02 Add libLLVM.so to the target libdir when download-rustc is enabled
Previously, we would only add it to the host libdir, which meant it
couldn't be loaded by `ui-fulldeps` tests that used rustc_private.
2023-04-12 21:17:08 -05:00
Matthias Krüger
b01f0d3928 Rollup merge of #110235 - GuillaumeGomez:fix-extend-css, r=notriddle
Fix `--extend-css` option

Fixes #110002.

The file was generated in the wrong folder so I moved it into `static.files` as it made more sense to have there instead of changing the path in the templates.

I also added a GUI test to ensure that this option won't break unexpectedly again.
2023-04-12 22:04:35 +02:00
Matthias Krüger
c47937d32c Rollup merge of #110122 - jyn514:check-stage1-llvm, r=ozkanonur
Fix x check --stage 1 when download-ci-llvm=false

Bootstrap tries to avoid building LLVM unless it needs to; in particular we only build it for `x build`, not `x check`. Unfortunately, the check forgot about existence of stages - it would break if you used `x check --stage 1`:
```
  = note: /usr/bin/ld: cannot find -lPolly: No such file or directory
          /usr/bin/ld: cannot find -lPollyISL: No such file or directory
```
Fix it to work for stage 1.

I recommend reading this commit-by-commit; the first one makes a bunch of whitespace changes but otherwise doesn't change the logic.
2023-04-12 22:04:34 +02:00
Guillaume Gomez
6bc6ea7a3e Add/update tests for --extend-css option 2023-04-12 20:07:10 +02:00
KaDiWa
ad2b34d0e3 remove some unneeded imports 2023-04-12 19:27:18 +02:00
klensy
5badbefd70 drop some windows features 2023-04-12 14:52:11 +03:00
Michael Goulet
e6975455d9 Rollup merge of #110155 - DaniPopes:rest-typos, r=jyn514
Fix typos in librustdoc, tools and config files

I used [`typos`](https://github.com/crate-ci/typos) to fix all typos, minus the ones present in #110153 and in #110154.

Refs #110150
2023-04-11 20:28:49 -07:00
Michael Goulet
2f5440c38a Rollup merge of #110113 - jyn514:download-rustc-cross, r=albertlarsan68
Fix `x test ui --target foo` when download-rustc is enabled

Previously, we would never build the target std, only the host std:

```
; x t tests/ui/attributes --target wasm32-unknown-unknown
Building bootstrap
    Finished dev [unoptimized] target(s) in 0.02s
Building stage0 library artifacts (x86_64-unknown-linux-gnu)
    Finished release [optimized] target(s) in 0.08s
Building tool compiletest (stage0)
    Finished release [optimized] target(s) in 0.09s
Check compiletest suite=ui mode=ui (x86_64-unknown-linux-gnu -> wasm32-unknown-unknown)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { depth: 0, inner: Io { path: Some("/home/jyn/src/rust2/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/wasm32-unknown-unknown/lib"), err: Os { code: 2, kind: NotFound, message: "No such file or directory" } } }', src/tools/compiletest/src/main.rs:842:31
```

Helps with https://github.com/rust-lang/rust/issues/81930.
2023-04-11 20:28:48 -07:00
Michael Goulet
e6e46bae6f Rollup merge of #110018 - jfgoog:host-and-target-linker, r=wesleywiser
Pass host linker to compiletest.

Tests marked `// force-host` were using the default linker, even if a custom linker was configured in config.toml.

This change adds a new flag, --host-linker, to compiletest, and renames --linker to --target-linker.
2023-04-11 20:28:47 -07:00
Michael Goulet
4a24aab220 Rollup merge of #96971 - zhaixiaojuan:master, r=wesleywiser
Initial support for loongarch64-unknown-linux-gnu

Hi, We hope to add a new port in rust for LoongArch.

LoongArch intro
LoongArch is a RISC style ISA which is independently designed by Loongson
Technology in China. It is divided into two versions, the 32-bit version (LA32)
and the 64-bit version (LA64). LA64 applications have application-level
backward binary compatibility with LA32 applications. LoongArch is composed of
a basic part (Loongson Base) and an expanded part. The expansion part includes
Loongson Binary Translation (LBT), Loongson VirtualiZation (LVZ), Loongson SIMD
EXtension (LSX) and Loongson Advanced SIMD EXtension(LASX).

Currently the LA464 processor core supports LoongArch ISA and the Loongson
3A5000 processor integrates 4 64-bit LA464 cores. LA464 is a four-issue 64-bit
high-performance processor core. It can be used as a single core for high-end
embedded and desktop applications, or as a basic processor core to form an
on-chip multi-core system for server and high-performance machine applications.

Documentations:
ISA:
https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html
ABI:
https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html
More docs can be found at:
https://loongson.github.io/LoongArch-Documentation/README-EN.html

Since last year, we have locally adapted two versions of rust, rust1.41 and rust1.57, and completed the test locally.
I'm not sure if I'm submitting all the patches at once, so I split up the patches and here's one of the commits
2023-04-11 20:28:45 -07:00
Ezra Shaw
a159dcda62 fix: disable x suggest when using build-metrics 2023-04-12 14:01:59 +12:00
Ralf Jung
873ab04d89 fix running Miri tests 2023-04-11 13:40:29 +02:00
Joshua Nelson
ca3daa0fb6 Fix x check --stage 1 when download-ci-llvm=false 2023-04-10 22:30:07 -05:00
Joshua Nelson
47ff60dc09 Fix x test ui --target foo when download-rustc is enabled
Previously, we would never build the target std, only the host std.
2023-04-10 22:18:51 -05:00
DaniPopes
f470c29936 Fix remaining typos 2023-04-10 21:02:49 +02:00
Dylan DPC
6f2fd3e6a2 Rollup merge of #110121 - jyn514:check-stage1, r=ozkanonur
Fix `x check --stage 1` when download-rustc is enabled

Helps with https://github.com/rust-lang/rust/issues/81930
2023-04-10 14:13:15 +05:30
Mads Ravn
69b12ff570 Merge remote-tracking branch 'upstream/master' 2023-04-10 09:11:45 +02:00
bors
749b487be4 Auto merge of #109880 - ehuss:fix-macos-installer-rust-docs, r=Mark-Simulacrum
Fix macOS and Windows installers when rust-docs is not available.

This fixes the macOS `.pkg` and Windows `.msi` installers to work when rust-docs is not available. If the rust-docs component is not built, then the installer would fail. This adds the rust-docs component to the filtering mechanism so that the rust-docs line of the distribution definition aren't included.

I tested installing and uninstalling both with and without the rust-docs component available.

This happens on the aarch64-apple-darwin distribution provided by rust-lang since we currently disable the rust-docs component due to long build times. An alternate solution would be to just enable the rust-docs component on aarch64-apple-darwin since there are faster build systems.

Fixes #109877
2023-04-10 04:36:38 +00:00
Mads Ravn
9aa3f053d7 './configure' now checks if 'config.toml' exists before writing to that destination 2023-04-09 22:50:42 +02:00