Commit graph

4109 commits

Author SHA1 Message Date
Matthias Krüger
d6298d3dc8
Rollup merge of #104076 - ozkanonur:fix-ci-rustc-sysroot, r=jyn514
fix sysroot issue which appears for ci downloaded rustc

Currently when compiler is downloaded rather than compiled, sysroot is being `ci-rustc-sysroot` because of 7eef946fc0/src/bootstrap/compile.rs (L1125-L1131) this.

And rustdoc is overriding the downloaded one at the end of the process.

With the condition I add, we simply check if the current compiler stage is target build stage, if so use the proper sysroot instead of `ci-rustc-sysroot`.

Resolves #103206
2022-11-19 15:35:20 +01:00
Matthias Krüger
4451e2881f
Rollup merge of #103969 - ferrocene:pa-download-rustc-ui-tests, r=jyn514
Partial support for running UI tests with `download-rustc`

Right now trying to run UI tests with `download-rustc` results in a bunch of test failures, requiring someone who wants to only work on tests to also build the full compiler. This PR **partially** addresses the problem by solving a lot of the errors (but not all).

* This installs the `rust-src` component on CI toolchains, since the test output depends on whether the standard library source code is installed; We can't just symlink the current source because the `rustc-dev` component already includes the compiler sources, but not the library sources, and mixing things is worse IMO.
* This ensures the `$SRC_DIR` normalization done by compiletest correctly handles the source code added above.
* This unconditionally sets `remap-prefix` to the prefix used in the downloaded toolchain, to ensure compiletest normalizes it.
2022-11-19 15:35:19 +01:00
Pietro Albini
00ec6797a3
fmt 2022-11-17 09:56:59 +01:00
Pietro Albini
6d8160261f
set correct default value for cc and cxx on android 2022-11-17 09:37:39 +01:00
Pietro Albini
470423c3d2
normalize download-rustc's prefix when running compiletests 2022-11-16 10:07:42 +01:00
Pietro Albini
80d535966c
normalize source paths from sysroot in compiletest 2022-11-16 10:01:07 +01:00
bors
96ddd32c4b Auto merge of #104387 - Manishearth:rollup-9e551p5, r=Manishearth
Rollup of 9 pull requests

Successful merges:

 - #103709 (ci: Upgrade dist-x86_64-netbsd to NetBSD 9.0)
 - #103744 (Upgrade cc for working is_flag_supported on cross-compiles)
 - #104105 (llvm: dwo only emitted when object code emitted)
 - #104158 (Return .efi extension for EFI executable)
 - #104181 (Add a few known-bug tests)
 - #104266 (Regression test for coercion of mut-ref to dyn-star)
 - #104300 (Document `Path::parent` behavior around relative paths)
 - #104304 (Enable profiler in dist-s390x-linux)
 - #104362 (Add `delay_span_bug` to `AttrWrapper::take_for_recovery`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-14 06:30:18 +00:00
Joshua Nelson
fb471de5a9 Make all download functions need only Config, not Builder
This also adds a new `mod download` instead of scattering the download code
across `config.rs` and `native.rs`.
2022-11-13 21:56:52 -05:00
Manish Goregaokar
7c67cb2300
Rollup merge of #104158 - Ayush1325:executable, r=Mark-Simulacrum
Return .efi extension for EFI executable

Originally part of https://github.com/rust-lang/rust/pull/100316

Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
2022-11-13 21:49:25 -05:00
bors
7b513af6c4 Auto merge of #103894 - mati865:gnullvm-libunwind-changes, r=thomcc
Change the way libunwind is linked for *-windows-gnullvm targets

I have no idea why previous way works for `x86_64-fortanix-unknown-sgx` (assuming it actually works...) but not for `gnullvm`. It fails when linking libtest during Rust build (unless somebody adds `RUSTFLAGS='-Clinkarg=-lunwind'`).
Also fixes exception handling on AArch64.
2022-11-13 21:12:48 +00:00
ozkanonur
654a4e81a5 check if current stage is target build stage r=ozkanonur
Signed-off-by: ozkanonur <work@onurozkan.dev>
2022-11-13 01:10:22 +03:00
Joshua Nelson
24378885c8 Print "Checking/Building ..." message even when --dry-run is passed
This makes it a lot easier to understand what commands will be run without
having to parse the `-vv` output, which isn't meant to be user facing.
2022-11-12 15:38:01 -06:00
Joshua Nelson
34972c512b Distinguish --dry-run from the automatic dry run check 2022-11-12 15:37:58 -06:00
Dylan DPC
378112034e
Rollup merge of #104245 - kubycsolutions:master, r=jyn514
Reduce default configuration's dependency upon static libstdcpp library (#103606)

Fixes #103606

Remove default dependency on static libstdcpp except during dist llvm builds (where we want static libraries so `libLLVM.so` is self-contained).
2022-11-11 20:51:42 +05:30
kubycsolutions
b8edf0213e Avoid runtime dependency on static libstdc++
Usually, we do want to use the static C++ library when building rustc_llvm, but do not want to have that dependency at compiler runtime. Change the defaults to Make It So.
2022-11-10 19:37:09 -05:00
Michael Goulet
7124590dcc
Rollup merge of #104046 - RalfJung:run-miri-run, r=oli-obk
bootstrap: add support for running Miri on a file

This enables:
```
./x.py run src/tools/miri --stage 0 --args src/tools/miri/tests/pass/hello.rs
```
That can be super helpful for debugging.

Also avoid sharing the Miri sysroot dir with a system-wide (rustup-managed) installation of Miri.

Fixes https://github.com/rust-lang/rust/issues/76666
2022-11-09 21:53:35 -08:00
Manish Goregaokar
83e73e013d
Rollup merge of #103778 - mati865:update-deps, r=Mark-Simulacrum
Update several crates for improved support of the new targets

This helps with `*-windows-gnullvm` targets by reducing amount of patching.
2022-11-08 21:03:54 -05:00
Guillaume Gomez
3abf329040
Rollup merge of #104027 - ted-tanner:issue-103697-fix, r=jyn514
Place config.toml in current working directory if config not found

Fixes an issue where bootsrapping a Rust build would place `config.toml` in `{src_root}` rather than the current working directory

#103697
2022-11-08 20:40:49 +01:00
Ayush Singh
758868cb09
Return .efi extension for EFI executable
Originally part of https://github.com/rust-lang/rust/pull/100316

Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
2022-11-08 23:01:15 +05:30
Tanner Davies
66e8a29640 Only set config.config to None when using default path 2022-11-07 15:27:42 -07:00
bors
d69c33ad4c Auto merge of #103569 - RalfJung:miri-test-macos, r=Mark-Simulacrum
fix and (re-)enable Miri cross-target checks on macOS and Windows

Fixes https://github.com/rust-lang/rust/issues/103519
r? `@Mark-Simulacrum`
2022-11-07 17:04:06 +00:00
Ralf Jung
397e5bb8c8 add FIXME to replace this env var in the future 2022-11-07 09:14:49 +01:00
Ralf Jung
a9edee7d1a bootstrap: put Miri sysroot into local build dir 2022-11-06 10:15:34 +01:00
Ralf Jung
c199a39884 bootstrap: add support for running Miri on a file 2022-11-06 09:52:31 +01:00
Matthias Krüger
131ef95808
Rollup merge of #103851 - viandoxdev:103816_bootstrap_fix_json_doc, r=jyn514
Fix json flag in bootstrap doc

Fix the `--json` flag not working with x.py (Closes #103816)

While this works I'm not sure about the `should_run` of `JsonStd`, had to change it because ab5a2bc731/src/bootstrap/builder.rs (L334) would match with JsonStd and remove the paths that Std matched. So I did [this](ffd4078264/src/bootstrap/doc.rs (L526-L534)) but that looks more like a hack/workaround than anything. I'm guessing there's something to do with the default condition thing but idk how it works
2022-11-06 08:35:26 +01:00
Tanner Davies
13d4c61b5f Place config.toml in current working directory if config not found 2022-11-05 15:07:10 -06:00
viandoxdev
900af414a3
fix out dir being wrong in json 2022-11-05 18:30:01 +01:00
Matthias Krüger
305cb7133f
Rollup merge of #103920 - ferrocene:pa-maybe-open-in-browser, r=jyn514
Move browser opening logic in `Builder`

This allows `open()` to be called from other places in bootstrap (I need this for Ferrocene, as we keep our custom steps in `src/bootstrap/ferrocene`), and it simplifies the callers by moving the `was_invoked_explicitly` check into the function.
2022-11-05 18:06:06 +01:00
Mateusz Mikuła
d5899efbda Update several crates for improved support of the new targets
This helps with `*-windows-gnullvm` targets
2022-11-05 12:19:55 +01:00
Matthias Krüger
68c8d6d1c1
Rollup merge of #103878 - Mark-Simulacrum:fix-stable-ci-download, r=jyn514
Fix artifact version/channel detection for stable

On stable, our artifacts are uploaded with the raw version number (e.g., 1.65.0), not the channel. This adjusts our detection logic to use the version number from src/version when we detect the stable channel.

This is really only important for stable channel re-builds, I think, but those do happen from time to time. I'm backporting a similar commit in https://github.com/rust-lang/rust/pull/103859 to make that PR pass CI.
2022-11-05 00:02:04 +01:00
Pietro Albini
5e4618ff14
address review comment 2022-11-03 16:42:28 +01:00
Mark Rousskov
29490098c2 Fix artifact version/channel detection for stable
On stable, our artifacts are uploaded with the raw version number (e.g.,
1.65.0), not the channel. This adjusts our detection logic to use the
version number from src/version when we detect the stable channel.
2022-11-03 08:18:25 -04:00
Pietro Albini
6bc36d18ce
move browser opening logic in Builder
This allows open() to be called from other places in bootstrap (I need
this for Ferrocene), and it simplifies the callers by moving the
"was_invoked_explicitly" check into the function.
2022-11-03 11:42:51 +01:00
Jakob Degen
0bd4f76944 Ban dashes in miropt test file names 2022-11-02 15:54:46 -07:00
viandoxdev
1bc2bfa44c
prevent open with json 2022-11-02 11:28:31 +01:00
viandoxdev
972d075aa6
merge JsonStd and Std steps 2022-11-02 11:23:42 +01:00
Manish Goregaokar
e2a6d283be
Rollup merge of #103781 - JakobDegen:mir-opt-tidy, r=jyn514
Detect unused files in `src/test/mir-opt` and error on them in tidy.

Closes #97564 .

Determining which files are generated by a given mir opt test is somewhat difficult. Because of this, we extract the logic for doing it out into a common crate that both compiletest and tidy can depend on. This avoids making compiletest a dependency of tidy which would negatively impact compile times for tidy.

Testing for this is that it catches 5 files that violated this lint (and removes them).
2022-11-01 20:00:39 -04:00
viandoxdev
ffd4078264
fix json running all the time 2022-11-01 22:18:19 +01:00
viandoxdev
6e1361f358
Fixes #103816 make --json work 2022-11-01 21:50:28 +01:00
Mateusz Mikuła
68c5939722 Change the way libunwind is linked for *-windows-gnullvm targets 2022-11-01 12:22:30 +01:00
Jakob Degen
17395b45b1 Detect unused files in src/test/mir-opt and error on them in tidy. 2022-10-31 21:45:41 -07:00
Yuki Okushi
669e3cde1c
Rollup merge of #103805 - Mark-Simulacrum:forward-port, r=jyn514
Enable RUSTC_BOOTSTRAP for a few steps

This forward-ports this commit so we don't need to keep applying it when branching beta (as done in 1.64, 1.65, and 1.66 beta bumps).
2022-11-01 12:03:44 +09:00
bors
024207ab43 Auto merge of #102950 - oli-obk:check_miri, r=RalfJung
Enable `x.py check` for miri

Now that the miri subtree is working properly, let's add it to x.py check.

cc `@rust-lang/miri`
2022-10-31 23:03:39 +00:00
Mark Rousskov
b123a660dd Enable RUSTC_BOOTSTRAP for a few steps 2022-10-31 11:06:49 -04:00
Dylan DPC
3affb05737
Rollup merge of #103732 - Mark-Simulacrum:revert-compiler-builtins, r=jyn514
Revert "Make the `c` feature for `compiler-builtins` opt-in instead of inferred"

This reverts commit 3acb505ee5 (PR #101833).

The changes in this commit caused several bugs/incompatibilities (https://github.com/rust-lang/rust/pull/101833#issuecomment-1270191721, https://github.com/rust-lang/rust/issues/102560). For now we're reverting this commit and will re-land it alongside fixes for those bugs.

Re-opens #101172
cc #102560
cc #102579
2022-10-31 14:52:56 +05:30
Michael Howell
f404246ce2
Rollup merge of #102101 - BelovDV:new-check-lld-version, r=petrochenkov
check lld version to choose correct option to disable multi-threading in tests

Testing compiler with 'use-lld = true' may be incorrect with old lld.
Flag, disabling multi-threading, should consider lld version.

r? ``@petrochenkov``
2022-10-30 19:31:38 -07:00
Ralf Jung
c905fd285a skip bootstrap target sanity checks when testing Miri 2022-10-30 10:28:46 +01:00
Mark Rousskov
5984b1d86f Revert "Make the c feature for compiler-builtins opt-in instead of inferred"
This reverts commit 3acb505ee5
(PR #101833).

The changes in this commit caused several bugs or at least
incompatibilies. For now we're reverting this commit and will re-land it
alongside fixes for those bugs.
2022-10-29 10:49:05 -04:00
Guillaume Gomez
73e7c3a429
Rollup merge of #102634 - andrewpollack:refactor-test-rustcflags, r=Mark-Simulacrum
compiletest: Refactor test rustcflags

Refactoring `host-rustcflags` and `target-rustcflags` from `Option<String>` to `Vec<String>`

Ref: #102438

r? `@Mark-Simulacrum`
2022-10-29 14:18:01 +02:00
Dylan DPC
b03fa1a3fe
Rollup merge of #102706 - ferrocene:pa-ignore-doc-index, r=jyn514
Support excluding the generation of the standalone docs

For Ferrocene we need to exclude the generation of the standalone docs (which include the index page, which we want to replace with our own), but with the way bootstrap is currently implemented that proved not possible. This PR aims to support that.

The first problem is that the `doc::Standalone` step did two things: it generated the "standalone" documentation (which includes the index page and all the pages at the root of the documentation tree), but it also generated some files like `rust.css` and `version_info.html` that other step like `doc::TheBook` required. This meant generating the book required generating the index page, which made disabling the index page generation problematic.

The approach I took to fix the first problem is to split the step into `doc::Standalone` and `doc::SharedAssets`, with `doc::TheBook` now depending on `doc::SharedAssets`.

The second problem is that disabling the `doc::Standalone` proved to be tricky due to its path, `src/doc`. The path is accurate, as the source files for that step are `src/doc/*.md`. The problem is, bootstrap treats `--exclude` as a *suffix*, and so it also excluded the Cargo book whose source lives at `src/tools/cargo/src/doc`.

The approach I took to fix the second problem is to add the `standalone` path in addition to `src/doc`, so that you can pass `--exclude standalone`. I'm not fully happy with the solution, and the other idea I had was to just move the standalone docs source code to `src/doc/standalone`. I feel that second approach is cleaner, but also requires more changes and might require more consensus.

This PR is best reviewed commit-by-commit.

r? `@jyn514`
2022-10-26 17:32:54 +05:30