Commit graph

596 commits

Author SHA1 Message Date
Jubilee
dff07259d0
Rollup merge of #113373 - jyn514:download-rustc-fixes, r=albertlarsan68
various download-rustc fixes

separated out from https://github.com/rust-lang/rust/pull/112143 because it keeps getting stuck in limbo.

best reviewed commit-by-commit
2023-07-11 21:00:27 -07:00
jyn
934e7e6c26 Move ci_rustc_dir to Config and use it consistently 2023-07-11 22:30:28 -05:00
jyn
6c7017fa0a Fix submodule handling when the current branch is named after a tag
If:
1. The current branch has the same name as git tag, and
2. The current branch is set to track a remote other than `origin`, and
3. We try to update a submodule

then we'll get the following error:
```
; x c
Updating submodule src/doc/reference
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
fatal: 'personal' does not appear to be a git repository
fatal: Could not read from remote repository.
```

The problem is that 1. causes `git symbolic-ref --short HEAD` to try and disambiguate the branch
from the tag using `heads/branch-name`, which breaks a previous workaround for a bug in `git
submodule update` that uses the wrong remote.

Adapt the workaround to strip `heads/` from the output.
2023-07-05 10:56:41 -05:00
hi-rustin
e6e2825bb0 Use RustOptimize to set optimize
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-01 16:03:42 +08:00
jyn
bd36f636cb Switch some more Steps to builder.msg
In particular, this hides compiletest suites under a dropdown - some builders are configured with `verbose-tests`, which makes the suites take up many thousands of lines.

before:
```
Documenting stage1 cargo (x86_64-unknown-linux-gnu)
Check compiletest suite=rustdoc-js mode=js-doc-test (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
```

after:
```
::group::Documenting stage1 cargo (x86_64-unknown-linux-gnu)
::group::Testing stage1 compiletest suite=rustdoc-js mode=js-doc-test (x86_64-unknown-linux-gnu)
```
2023-06-25 09:40:30 -05:00
Guillaume Gomez
7b5577985d Make try_run return a Result<(), ()> instead of a boolean 2023-06-23 17:07:34 +02:00
Pietro Albini
9de3c29319
add support for blessing panic=abort mir-opt tests 2023-06-12 09:34:12 +02:00
Pietro Albini
c6707dc15a
return dummy cc and friends during dry runs
Some targets are added to these hashmaps at runtime, and are not present
during dry runs. To avoid errors, this commit changes all the related
functions to always return empty strings/paths during dry runs.
2023-06-12 09:34:06 +02:00
Pietro Albini
68d458bb40
allow mutating the c compilers detected by bootstrap
This will be needed to create synthetic targets in future commits.
2023-06-12 09:33:33 +02:00
bors
7b28a6b08a Auto merge of #111495 - Kobzol:dist-tests, r=Mark-Simulacrum
Run tests on PGO/LTO/BOLT optimized dist artifacts

This PR adds baisc tests for the optimized dist builds on x64 Linux and Windows. A subset of the test suite is run, so it's not perfect, but it's better than the status quo (which is basically no testing at all, apart from the perf bot on Linux).

r? `@ghost`
2023-06-07 00:14:06 +00:00
Jakub Beránek
c91a3a4d0c
Test the PGO/BOLT/LTO optimized x64 Linux compiler on CI 2023-06-05 21:54:52 +02:00
jyn
af4e6c1937 Don't double-print status messages in GHA
Before:

```
Building stage0 tool jsondocck (x86_64-unknown-linux-gnu)
  Building stage0 tool jsondocck (x86_64-unknown-linux-gnu)
   Downloading crates ...
```

After:

```
Building stage0 tool jsondocck (x86_64-unknown-linux-gnu)
   Downloading crates ...
```
2023-06-04 22:12:29 -05:00
jyn
38c0ba7d0d Fix the progress message for x doc rustc
This makes it more clear that we're using stage 0 *to document* rustc, not that we're documenting
stage0 rustc itself.

It also fixes a bug in `msg_sysroot_tool` that would print `Docing`, and removes the `Debug` impl
for `Kind` to make sure it doesn't happen again.

Before:
```
Documenting stage0 compiler {rustc-main} (aarch64-apple-darwin)
```

After:
```
Documenting compiler {rustc-main} (stage0 -> stage1, aarch64-apple-darwin)
```
2023-05-31 16:15:55 -05:00
Matthias Krüger
183a31be85
Rollup merge of #112084 - ozkanonur:improvements, r=clubby789
enhancements on  build_helper utilization and rustdoc-gui-test

This change provides codebase improvements, resolves `FIXME` in `rustdoc-gui-test` and makes `rustdoc-gui` test able to find local `node_modules` directory outside of the source root.
2023-05-31 07:07:01 +02:00
ozkanonur
2803c66006 create build_helper/src/util mod
Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-05-30 10:53:46 +03:00
jyn
cb4b7f6319 Extend msg and description to work with any subcommand
Previously `description` only supported `Testing` and `Benchmarking`,
and `msg` gave weird results for `doc` (it would say `Docing`).
2023-05-29 13:26:44 -05:00
Mark Rousskov
0809338a13 Revert "Rollup merge of #111538 - chenyukang:yukang-fix-110067-version-issue, r=jyn514"
This reverts commit 9267843e72, reversing
changes made to e52fbff5e8.

This breaks our ability to bump the src/version where we're bootstrapping with an older compiler
than usual (according to version number). It's not clear whether the intended use case has a clean
solution given this constraint, so reverting for now - we can reland with a fix of some kind implemented.
2023-05-27 14:47:08 -04:00
jyn
b084c525d3 Generate docs for bootstrap itself
This verifies the intra-doc links are correct, and hopefully makes
things easier for new contributors.
2023-05-25 21:43:13 -05:00
liushuyu
50e38e928e Read beta version from the version file ...
... if building from a source tarball
2023-05-20 17:43:18 -06:00
yukang
46489040e6 fix 2023-05-14 12:44:16 +08:00
clubby789
32e27cc607 Migrate bootstrap to Clap-based arguments 2023-05-06 22:15:49 +01:00
jyn
78a709348d Fix x test --no-deps
- Use `cargo metadata` to determine whether a crate has a library
  package or not
- Collect metadata for all workspaces, not just the root workspace and
  cargo
- Don't pass `--lib` for crates without a library
- Use `run_cargo_test` for rust-installer
- Don't build documentation in `lint-docs` if `--no-doc` is passed
2023-04-29 11:51:57 -05:00
Pietro Albini
a7bb8c7851 handle cfg(bootstrap) 2023-04-28 08:47:55 -07:00
Oli Scherer
95e8b6a196 Group entire build steps in the gha logs 2023-04-22 22:20:12 +00: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
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
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
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
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
Ezra Shaw
1e95cddc74
feat: implement basic suggest-tests tool 2023-04-09 19:59:14 +12:00
Gimbles
c80a69440c s/ignore_git/omit_git_hash 2023-04-08 11:08:01 +05:30
zhaixiaojuan
ca8cad7896 Add loongarch64 to exception list 2023-04-04 17:05:08 +08:00
Jynn Nelson
28b7e6abff Replace any existing build/host symlink
This has two advantages:
1. If `build.build` changes between runs, the symlink is no longer
   silently wrong.
2. If the entire build directory is moved, the symlink is no longer
   broken because it points to the wrong absolute path.
2023-04-02 07:57:05 -05:00
bors
f346fb0bc6 Auto merge of #108792 - Amanieu:ohos, r=petrochenkov
Add OpenHarmony targets

- `aarch64-unknown-linux-ohos`
- `armv7-unknown-linux-ohos`

Compiler team MCP: https://github.com/rust-lang/compiler-team/issues/568
2023-03-29 07:16:16 +00:00
Amanieu d'Antras
e3968be331 Add OpenHarmony targets
- `aarch64-unknown-linux-ohos`
- `armv7-unknown-linux-ohos`
2023-03-28 16:01:13 +01:00
nils
857b631616
Rollup merge of #91793 - devnexen:anc_data_fbsd, r=ChrisDenton
socket ancillary data implementation for FreeBSD (from 13 and above).

introducing new build config as well.
2023-03-28 12:51:10 +02:00
David CARLIER
ed5c0f66ac socket ancillary data implementation for FreeBSD (from 13 and above).
introducing new build config as well.
2023-03-27 16:48:41 +01:00
Robin Hafid
291ddb85fd Rename 'src/bootstrap/native.rs' to llvm.rs
Renamed 'native.rs' to 'llvm.rs', also moved `TestHelpers` to `test.rs`.Replaced all the `native.rs` ocurrences at `src/bootstrap` files to `llvm.rs`
2023-03-24 08:58:53 -05:00
Dylan DPC
7a57d8883e
Rollup merge of #109295 - ozkanonur:issue-109286, r=ozkanonur
refactor `fn bootstrap::builder::Builder::compiler_for` logic

- check compiler stage before forcing for stage2.
- check if download_rustc is not set before forcing for stage1.

resolves #109286
2023-03-23 00:00:33 +05:30
bors
66676820eb Auto merge of #108659 - ferrocene:pa-test-metrics, r=Mark-Simulacrum
Include executed tests in the build metrics (and use a custom test display impl)

The main goal of this PR is to include all tests executed in CI inside the build metrics JSON files. I need this for Ferrocene, and `@Mark-Simulacrum` expressed desire to have this as well to ensure all tests are executed at least once somewhere in CI.

Unfortunately implementing this required rewriting inside of bootstrap all of the code to render the test output to console. libtest supports outputting JSON instead of raw text, which we can indeed use to populate the build metrics. Doing that suppresses the console output though, and compared to rustc and Cargo the console output is not included as a JSON field.

Because of that, this PR had to reimplement both the "pretty" format (one test per line, with `rust.verbose-tests = true`), and the "terse" format (the wall of dots, with `rust.verbose-tests = false`). The current implementation should have the exact same output as libtest, except for the benchmark output. libtest's benchmark output is broken in the "terse" format, so since that's our default I slightly improved how it's rendered.

Also, to bring parity with libtest I had to introduce support for coloring output from bootstrap, using the same dependencies `annotate-snippets` uses. It's now possible to use `builder.color_for_stdout(Color::Red, "text")` and `builder.color_for_stderr(Color::Green, "text")` across all of bootstrap, automatically respecting the `--color` flag and whether the stream is a terminal or not.

I recommend reviewing the PR commit-by-commit.
r? `@Mark-Simulacrum`
2023-03-21 14:33:14 +00:00
Andy Russell
bb7c373fdf
migrate compiler, bootstrap, and compiletest to windows-rs 2023-03-20 13:19:35 -04:00
ozkanonur
2ec7f6c8d5 refactor fn bootstrap::builder::Builder::compiler_for
- check compiler stage before forcing for stage2.
- check if download_rustc is not set before forcing for stage1.

Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-03-18 18:54:52 +03:00
Mu001999
a4692f46c4 Create dir for build_triple 2023-03-14 11:22:45 +08:00
bors
60445fda58 Auto merge of #108534 - Mark-Simulacrum:compression, r=pietroalbini
Import rust-installer & adjust compression settings

This brings in rust-lang/rust-installer#123, which enables a larger compression window (8 -> 64MB) amongst other changes to the xz compression settings. The net effect should be smaller compressed tarballs which will decrease bandwidth usage for
static.rust-lang.org, download times, and decompression time.

This comes at the cost of higher baseline requirements for running rustup to use these files, which we believe should be largely acceptable (running rustc is likely to use at least this much memory) but if we get specific reports we may explore options to decrease impact (e.g., using the gzip tarballs automatically in rustup).

To simplify iteration on compression settings this also imports the rust-lang/rust-installer submodule, it is now hosted fully inside rust-lang/rust. Once we land this I'll file a followup to add a note to that repo and we can subsequently archive it.

--

CI times for dist-x86_64-linux builds:

* threads=6, master - 2h 50m
* threads=1, new - 3h 40m
* threads=6, new - 2h 50m
2023-03-08 09:52:12 +00:00
morine0122
740d476bbf Add force to use the stage 2 compiler in compiler_for when config.download_rustc is set 2023-03-08 01:52:28 +09:00
Mark Rousskov
ddc2d1e806 Add bootstrap support for rust-installer 2023-03-07 08:30:08 -05:00
Pietro Albini
c015d0d2fa
switch to termcolor 2023-03-07 10:48:26 +01:00
Pietro Albini
f816d3a754
add a splash of color 2023-03-02 16:33:53 +01:00
Pietro Albini
d2f38065f3
render compiletest output with render_tests 2023-03-02 16:20:34 +01:00