rust/src
bors b0889cb4ed Auto merge of #116276 - lqd:lld-sysroot, r=onur-ozkan
bootstrap: copy self-contained linking components to `stage0-sysroot`

I hit this issue while trying to bootstrap using a rustc where `rust-lld` is used by default: this was the cause of the failure to profile rustc-perf's bootstrap benchmark in https://github.com/rust-lang/rust/pull/113382.

`stage0-sysroot` currently only has libs and self-contained objects, not the other self-contained linking components yet. Most notably, it does not contain the linker and wrappers that we build, and that rustup distributes.

If you try to bootstrap using the bootstrap compiler's `rust-lld`, it will fail to link std at stage0 because `rust-lld` and the `gcc-ld` wrappers, will not be found in `stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/bin`.

This PR copies the `bin` directory next to the `lib` directory when `rust.lld` is enabled in the config (though maybe it could be done unconditionally, the fact that we need it to link does not necessarily mean that we'd want to build and provide it at stage1).

cc `@Kobzol` who also encountered this issue while using lld during bootstrap.
2023-10-02 09:41:42 +00:00
..
bootstrap Auto merge of #116276 - lqd:lld-sysroot, r=onur-ozkan 2023-10-02 09:41:42 +00:00
ci Auto merge of #115554 - Kobzol:single-cgu, r=Mark-Simulacrum 2023-10-01 12:49:29 +00:00
doc Auto merge of #115898 - onur-ozkan:config-change-tracking, r=Mark-Simulacrum 2023-10-02 07:41:52 +00:00
etc Auto merge of #104385 - BlackHoleFox:apple-minimum-bumps, r=petrochenkov 2023-09-24 02:35:05 +00:00
librustdoc Auto merge of #116195 - fmease:rustdoc-investigate-perf-regression, r=GuillaumeGomez 2023-09-30 09:18:06 +00:00
llvm-project@d404cba4e3 Update LLVM submodule 2023-09-28 13:41:02 +02:00
rustdoc-json-types
tools Auto merge of #115898 - onur-ozkan:config-change-tracking, r=Mark-Simulacrum 2023-10-02 07:41:52 +00:00
README.md
stage0.json
version Bump to 1.75.0 2023-09-30 19:09:22 -04:00

This directory contains some source code for the Rust project, including:

  • The bootstrapping build system
  • Various submodules for tools, like cargo, tidy, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.