diff options
| author | Joshua Nelson <github@jyn.dev> | 2023-04-09 14:27:45 -0500 |
|---|---|---|
| committer | Joshua Nelson <github@jyn.dev> | 2023-04-09 14:28:06 -0500 |
| commit | 2b43f25e428ca1065206f424d7b953e2cc606c2e (patch) | |
| tree | 7aa82db4aa114060e23abe581a801fc82d85021f | |
| parent | f2d9a3d0771504f1ae776226a5799dcb4408a91a (diff) | |
| download | rust-2b43f25e428ca1065206f424d7b953e2cc606c2e.tar.gz | |
Fix `x check --stage 1` when download-rustc is enabled
| -rw-r--r-- | src/bootstrap/check.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs index cd19667139a..f9387a0fc80 100644 --- a/src/bootstrap/check.rs +++ b/src/bootstrap/check.rs @@ -271,9 +271,17 @@ impl Step for Rustc { false, ); - let libdir = builder.sysroot_libdir(compiler, target); - let hostdir = builder.sysroot_libdir(compiler, compiler.host); - add_to_sysroot(&builder, &libdir, &hostdir, &librustc_stamp(builder, compiler, target)); + // HACK: This avoids putting the newly built artifacts in the sysroot if we're using + // `download-rustc`, to avoid "multiple candidates for `rmeta`" errors. Technically, that's + // not quite right: people can set `download-rustc = true` to download even if there are + // changes to the compiler, and in that case ideally we would put the *new* artifacts in the + // sysroot, in case there are API changes that should be used by tools. In practice, + // though, that should be very uncommon, and people can still disable download-rustc. + if !builder.download_rustc() { + let libdir = builder.sysroot_libdir(compiler, target); + let hostdir = builder.sysroot_libdir(compiler, compiler.host); + add_to_sysroot(&builder, &libdir, &hostdir, &librustc_stamp(builder, compiler, target)); + } } } |
