Commit graph

4073 commits

Author SHA1 Message Date
Pietro Albini
afe29e48bc
split steps for generating the standalone docs and the shared assets
Before this commit, the step to generate the standalone docs (which
included the index page and other HTML files at the root of the
documentation) was bundled with the code copying files needed by
multiple pieces of documentation. This means it wasn't possible to avoid
generating the standalone docs.

This commit splits the step into two, allowing the standalone docs
generation to be excluded while still building the rest of the docs.
2022-10-05 14:32:06 +02:00
Michael Howell
40ce4af232
Rollup merge of #102686 - cuviper:rls-tool_std, r=jyn514
Don't build the compiler before building rls

The rls stub is a simple stable tool, which doesn't need compiler libs.
(Similar to #97511)
2022-10-04 20:45:14 -07:00
Josh Stone
3042b788eb Don't build the compiler before building rls
The rls stub is a simple stable tool, which doesn't need compiler libs.
2022-10-04 19:41:21 -07:00
Chris Wailes
bf7f1ca316 Update CI to use Android NDK r25b
This commit updates the CI definitions to use the most recent Android
LTS NDK release: r25b.  Changes since the last NDK used by Rust negate
the need to generate "standalone toolchains" and newer NDKs can be used
in-place.

See https://developer.android.com/ndk/guides/other_build_systems#overview
2022-10-04 12:14:14 -07:00
Matthias Krüger
b9ff789506
Rollup merge of #102241 - jyn514:manifest-json-docs, r=Mark-Simulacrum
Package `rust-docs-json` into nightly components (take 3)

`dist` creates a `rust-docs-json.tar.xz` tarfile. But build-manifest expected it to be named `rust-docs-json-preview.tar.xz`. Change build-manifest to allow the name without the `-preview` suffix.

I haven't actually tested this :( build-manifest is a pain to run locally.
2022-10-04 18:26:38 +02:00
Ralf Jung
9cc11e262f test Miri changes in PR CI; we no longer need xargo 2022-10-04 17:31:49 +02:00
yukang
60b39ba9a5 use ci-rustc-sysroot for sysroot when download_rustc 2022-10-04 11:25:42 +08:00
dawnofmidnight
5c908c642b re-add git-commit-hash file to tarballs
rust-lang/rust#100557 removed the `git-commit-hash` file and replaced it
with `git-commit-info`. However, build-manifest relies on the
`git-commit-hash` file being present, so this adds it back.
2022-10-02 23:58:40 -04:00
Anirudh
cddc6434d0 Remove trailing whitespaces 2022-10-03 05:14:55 +05:30
Anirudh
e4549d5526 Improve readability of bootstrap's README by adding commas and minor changes
(cherry picked from commit e5e4b85feba6463310d0fc0c27e8ff38891efac3)
2022-10-03 04:49:36 +05:30
bors
de692f1fae Auto merge of #100557 - dawnofmidnight:tarball-commit-info, r=Mark-Simulacrum
fix: use git-commit-info for version information

Fixes #33286.
Fixes #86587.

This PR changes the current `git-commit-hash` file that `./x.py` dist puts in the `rustc-{version}-src.tar.{x,g}z` to contain the hash, the short hash, and the commit date from which the tarball was created, assuming git was available when it was. It uses this for reading the version so that rustc has all the appropriate metadata.

# Testing

Testing this is kind of a pain. I did it with something like
```sh
./x.py dist # ensure that `ignore-git` is `false` in config.toml
cp ./build/dist/rustc-1.65.0-dev-src.tar.gz ../rustc-1.65.0-dev-src.tar.gz
cd .. && tar -xzf rustc-1.65.0-dev-src && cd rustc-1.65.0-dev-src
./x.py build
```

Then, the output of  `rustc -vV` with the stage1 compiler should have the `commit-hash` and `commit-date` fields filled, rather than be `unknown`. To be completely sure, you can use `rustc --sysroot` with the stdlib that the original `./x.py dist` made, which will require that the metadata matches.
2022-10-02 20:55:17 +00:00
Joshua Nelson
67220d6970 Make the config.src handling for downloadable bootstrap a little more conservative
In particular, this supports build directories within an unrelated git repository.

As a side effect, it will fall back to the old logic when the source directory is being built from a tarball within an unrelated git repository.
However, that second case is unsupported and untested; we reserve the right to break it in the future.
2022-10-02 08:33:54 -05:00
bors
ab37a83ae2 Auto merge of #102558 - matthiaskrgr:rollup-0odec1c, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #102195 (Improve the COPYRIGHT file)
 - #102313 (Update docs so that deprecated method points to relevant method)
 - #102353 (Allow passing rustix_use_libc cfg using RUSTFLAGS)
 - #102405 (Remove a FIXME whose code got moved away in #62883.)
 - #102525 (rustdoc: remove orphaned link on array bracket)
 - #102557 (fix issue with x.py setup running into explicit panic)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-02 01:29:36 +00:00
Matthias Krüger
c6d4421e96
Rollup merge of #102557 - Joshument:master, r=jyn514
fix issue with x.py setup running into explicit panic

Fixes problem with [Issue #102555](https://github.com/rust-lang/rust/issues/102555) causing `x.py` setup to fail. Simply requires `rustfmt` be downloaded a little later.
2022-10-02 03:16:40 +02:00
Matthias Krüger
20559c41e8
Rollup merge of #102353 - bjorn3:allow_rustix_use_libc, r=Mark-Simulacrum
Allow passing rustix_use_libc cfg using RUSTFLAGS

Before this would error with

```
error: unexpected `rustix_use_libc` as condition name
  |
  = note: `-D unexpected-cfgs` implied by `-D warnings`
  = help: was set with `--cfg` but isn't in the `--check-cfg` expected names
```

I'm setting rustix_use_libc when testing bootstrapping rustc with cg_clif as I'm disabling inline asm here.
2022-10-02 03:16:38 +02:00
Joshument
8bba0de693 fix issue with x.py setup running into explicit panic 2022-10-01 19:32:37 -04:00
bors
b34cff1736 Auto merge of #102193 - ferrocene:pa-remote-test-server-improvements, r=Mark-Simulacrum
Change argument handling in `remote-test-server` and add new flags

This PR updates `remote-test-server` to add two new flags:

* `--sequential` disables parallel test execution, accepting one connection at the time instead. We need this for Ferrocene as one of our emulators occasionally deadlocks when running multiple tests in parallel.
* `--bind <ip:port>` allows customizing the IP and port `remote-test-server` binds to, rather than using the default value.

While I was changing the flags, and [after chatting on what to do on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/remote-test-server.20flags),  I took this opportunity to cleanup argument handling in `remote-test-server`, which is a breaking change:

* The `verbose` argument has been renamed to the `--verbose` flag.
* The `remote` argument has been removed in favor of the `--bind 0.0.0.0:12345` flag. The only thing the argument did was to change the bound IP to 0.0.0.0, which can easily be replicated with `--bind` and also is not secure as our "remote" default.

I'm also open to keep the old arguments with deprecation warnings.

r? `@Mark-Simulacrum`
2022-10-01 22:39:59 +00:00
dawnofmidnight
fdb39551dd fix: use git-commit-info for version information
This PR adds support for fetching version information from the
`git-commit-info` file when building the compiler from a source tarball.
2022-10-01 17:46:18 -04:00
Joshua Nelson
513fc80bbd Package rust-docs-json into nightly components (take 3)
`dist` creates a `rust-docs-json.tar.xz` tarfile. But build-manifest expected it to be named
`rust-docs-json-preview.tar.xz`. Change build-manifest to allow the name without the `-preview` suffix.

This also adds `rust-docs-json` to the `rust` component. I'm not quite sure why it exists,
but rustup uses it to determine which components are available.
2022-10-01 15:38:16 -05:00
bors
c5b105dc9a Auto merge of #101969 - reez12g:issue-101306, r=reez12g
Make fmt downloaded on every invocation of bootstrap

Fixes https://github.com/rust-lang/rust/issues/101306
2022-10-01 01:03:35 +00:00
Rento Ezoe
9f201d6820
Add a comment to downloading fmt statement
Co-authored-by: Joshua Nelson <github@jyn.dev>
2022-10-01 08:06:24 +09:00
bors
bf40408165 Auto merge of #101833 - jyn514:cross-compile-compiler-builtins, r=Mark-Simulacrum
Make the `c` feature for `compiler-builtins` an explicit opt-in

Its build script doesn't support cross-compilation. I tried fixing it, but the cc crate itself doesn't appear to support cross-compiling to windows either unless you use the -gnu toolchain:
```
  error occurred: Failed to find tool. Is `lib.exe` installed?
```

Fixes https://github.com/rust-lang/rust/issues/101172.
2022-09-29 02:28:50 +00:00
Joshua Nelson
3acb505ee5 Make the c feature for compiler-builtins opt-in instead of inferred
The build script for `compiler_builtins` doesn't support cross-compilation. I tried fixing it, but the cc crate itself
doesn't appear to support cross-compiling to windows either unless you use the -gnu toolchain:
```
  error occurred: Failed to find tool. Is `lib.exe` installed?
```

Rather than trying to fix it or special-case the platforms without bugs,
make it opt-in instead of automatic.
2022-09-28 03:21:36 -05:00
bjorn3
d04ea0ff19
Allow passing rustix_use_libc cfg using RUSTFLAGS
Before this would error with

```
error: unexpected `rustix_use_libc` as condition name
  |
  = note: `-D unexpected-cfgs` implied by `-D warnings`
  = help: was set with `--cfg` but isn't in the `--check-cfg` expected names
```

I'm setting rustix_use_libc when testing bootstrapping rustc with cg_clif as I'm disabling inline asm here.
2022-09-27 11:16:09 +02:00
Pietro Albini
79ad2d5995
fix check_cfg 2022-09-26 10:14:48 +02:00
reez12g
ab05c48dbc Make fmt downloaded on every invocation of bootstrap 2022-09-26 16:22:26 +09:00
fee1-dead
503b073d3f
Rollup merge of #102267 - jyn514:smaller-build-script, r=Mark-Simulacrum
Don't set RUSTC in the bootstrap build script

We no longer use this for anything since https://github.com/rust-lang/rust/pull/98483/files#diff-7eddc76f1be9eca2599a9ae58c65ffe247fbdff9b02ef687439894cab9afe749L781. Remove it, so that we spuriously rebuild bootstrap fewer times on Windows (where PATH changes often).

Helps with https://github.com/rust-lang/rust/issues/92369. cc https://github.com/rust-lang/rust/pull/102266

r? ``@Mark-Simulacrum``
2022-09-26 13:09:43 +08:00
fee1-dead
0cee03dfff
Rollup merge of #102178 - RalfJung:bootstrap-backtrace, r=Mark-Simulacrum
bootstrap: the backtrace feature is stable, no need to allow it any more
2022-09-26 13:09:42 +08:00
Joshua Nelson
41ac87dd38 Don't set RUSTC in the bootstrap build script
We no longer use this for anything since https://github.com/rust-lang/rust/pull/98483/files#diff-7eddc76f1be9eca2599a9ae58c65ffe247fbdff9b02ef687439894cab9afe749L781.
Remove it, so that we spuriously rebuild bootstrap fewer times on Windows (where PATH changes often).
2022-09-25 09:42:01 -05:00
Mark Rousskov
439597bc1b Support overriding initial rustc and cargo paths
This restores functionality broken by #98483. Unfortunately, it doesn't
add a test to verify this works, but in this case we notice pretty
quickly as perf uses this functionality and so reports breakage
immediately after merging.
2022-09-25 10:23:33 -04:00
bors
3f83906b30 Auto merge of #98483 - dvtkrlbs:bootstrap-dist, r=jyn514
Distribute bootstrap in CI

This pre-compiles bootstrap from source and adds it to the existing `rust-dev` component. There are two main goals here:
1. Make it faster to build rust from source, both the first time and incrementally
2. Make it easier to add non-python entrypoints, since they can call out to bootstrap directly rather than having to figure out the right flags to pre-compile it. This second part is still in a bit of flux, see the tracking issue below for more information.

There are also several changes to make bootstrap able to run on a machine other than the one it was built (particularly around `config.src` and `config.out` detection). I (`@jyn514)` am slightly concerned these will regress unless tested - maybe we should add an automated test that runs bootstrap in a chroot or something? Unclear whether the effort is worth the test coverage.

Helps with https://github.com/rust-lang/rust/issues/94829.
2022-09-24 20:00:51 +00:00
Josh Triplett
39484ac3b0 Move style guide to rust-lang/rust
Per [RFC 3309](https://rust-lang.github.io/rfcs/3309-style-team.html).
2022-09-24 19:49:58 +01:00
Joshua Nelson
2ef3d172c4 Copy bootstrap.exe on Windows, not bootstrap 2022-09-24 13:32:19 -05:00
Matthias Krüger
6900638c53
Rollup merge of #102226 - RalfJung:miri-sysroot-build, r=oli-obk
bootstrap/miri: switch to non-deprecated env var for setting the sysroot folder

r? `@oli-obk`
2022-09-24 14:29:56 +02:00
Ralf Jung
5f77ce0296 bootstrap/miri: switch to non-deprecated env var for setting the sysroot folder 2022-09-24 08:53:40 +02:00
Matthias Krüger
0cd345c247
Rollup merge of #102176 - ojeda:add-llvm-dis-to-ci-llvm, r=Mark-Simulacrum
Add `llvm-dis` to the set of tools in `ci-llvm`

The LLVM disassembler is needed for the test introduced in https://github.com/rust-lang/rust/pull/97550.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2022-09-24 07:38:56 +02:00
Matthias Krüger
00dfc32cad
Rollup merge of #102175 - oli-obk:miri_subtree_cleanup, r=jyn514
Also require other subtrees to always build successfully

r? ``@jyn514``
2022-09-24 07:38:56 +02:00
Pietro Albini
20638eba80
add changelog lines for the remote-test-server changes 2022-09-23 15:43:01 +02:00
Ralf Jung
c8d346e527 bootstrap: the backtrace feature is stable, no need to allow it any more 2022-09-23 11:07:16 +02:00
Miguel Ojeda
cb8a9c496f Add llvm-dis to the set of tools in ci-llvm
The LLVM disassembler is needed for the test introduced in
https://github.com/rust-lang/rust/pull/97550.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2022-09-23 10:19:59 +02:00
Oli Scherer
7ed999b616 Also require other subtrees to always build successfully 2022-09-23 08:03:10 +00:00
Matthias Krüger
adde928305
Rollup merge of #102042 - LukeMathWalker:add-rust-json-docs-to-rustup, r=Mark-Simulacrum
Distribute rust-docs-json via rustup.

I am not 100% sure on how to treat `rust-json-docs` in `target_host_combination`. I went along with a similar strategy to the one used for `rust-docs`, but looking for guidance there.
2022-09-23 04:29:17 +02:00
Luca Palmieri
e572d513bd Distribute rust-json-docs via rustup. 2022-09-22 12:22:49 +01:00
bors
c10f7d7395 Auto merge of #102028 - oli-obk:miri_subtree, r=oli-obk
Make miri a subtree instead of a submodule

r? `@RalfJung`

fixes #101867
fixes https://github.com/rust-lang/rust/issues/100134
2022-09-22 09:45:04 +00:00
Oli Scherer
2ce88a5894 Allow miri docs to keep failing for now 2022-09-22 07:17:26 +00:00
Ralf Jung
3f3167fb59 miri is not in toolstate any more 2022-09-21 15:35:53 +00:00
Oli Scherer
7e23244ef1 HACK: Treat miri as if it were a submodule 2022-09-21 15:35:53 +00:00
Oli Scherer
6cfa7ef2ba Remove miri from the submodule list and require it for CI to pass 2022-09-21 15:35:53 +00:00
Dylan DPC
5377c31122
Rollup merge of #89891 - ojeda:modular-alloc, r=Mark-Simulacrum
`alloc`: add unstable cfg features `no_rc` and `no_sync`

In Rust for Linux we are using these to make `alloc` a bit more modular.

See https://github.com/rust-lang/rust/pull/86048 and https://github.com/rust-lang/rust/pull/84266 for similar requests.

Of course, the particular names are not important.
2022-09-21 19:01:06 +05:30
Tuna
790d9d4dd0
Update src/bootstrap/config.rs
Co-authored-by: Joshua Nelson <github@jyn.dev>
2022-09-20 06:39:05 +03:00