Rollup merge of #83350 - jyn514:llvm-version, r=Mark-Simulacrum

Download a more recent LLVM version if `src/version` is modified

When bumping the bootstrap version, the name of the generated LLVM
shared object file is changed, even though it's the same contents as
before. If bootstrap tries to use an older version, it will get linking
errors:

```
Building rustdoc for stage1 (x86_64-unknown-linux-gnu)
   Compiling rustdoc-tool v0.0.0 (/home/joshua/rustc/src/tools/rustdoc)
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" ... lots of args ...
  = note: /usr/bin/ld: cannot find -lLLVM-12-rust-1.53.0-nightly
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: could not compile `rustdoc-tool`
```

Helps with https://github.com/rust-lang/rust/issues/81930.
This commit is contained in:
Dylan DPC 2021-03-22 02:20:33 +01:00 committed by GitHub
commit 790c2ad46a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -463,6 +463,8 @@ class RustBuild(object):
"--", "--",
"{}/src/llvm-project".format(top_level), "{}/src/llvm-project".format(top_level),
"{}/src/bootstrap/download-ci-llvm-stamp".format(top_level), "{}/src/bootstrap/download-ci-llvm-stamp".format(top_level),
# the LLVM shared object file is named `LLVM-12-rust-{version}-nightly`
"{}/src/version".format(top_level)
]).decode(sys.getdefaultencoding()).strip() ]).decode(sys.getdefaultencoding()).strip()
llvm_assertions = self.get_toml('assertions', 'llvm') == 'true' llvm_assertions = self.get_toml('assertions', 'llvm') == 'true'
llvm_root = self.llvm_root() llvm_root = self.llvm_root()