From df004df3a79b70b4af2b8c267457a5be76bb0d85 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Wed, 23 Sep 2020 19:03:52 -0400 Subject: [PATCH 1/2] Re-download LLVM on submodule updates only --- src/bootstrap/bootstrap.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index 1f0b55a78698d..5c9184f450687 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -424,8 +424,19 @@ def download_stage0(self): rustfmt_stamp.write(self.date + self.rustfmt_channel) if self.downloading_llvm(): - llvm_sha = subprocess.check_output(["git", "log", "--author=bors", - "--format=%H", "-n1"]).decode(sys.getdefaultencoding()).strip() + # We want the most recent LLVM submodule update to avoid downloading + # LLVM more often than necessary. + # + # This git command finds that commit SHA, looking for bors-authored + # merges that modified src/llvm-project. + # + # This works even in a repository that has not yet initialized + # submodules. + llvm_sha = subprocess.check_output([ + "git", "log", "--author=bors", "--format=%H", "-n1", + "-m", "--first-parent", + "--", "src/llvm-project" + ]).decode(sys.getdefaultencoding()).strip() llvm_assertions = self.get_toml('assertions', 'llvm') == 'true' if self.program_out_of_date(self.llvm_stamp(), llvm_sha + str(llvm_assertions)): self._download_ci_llvm(llvm_sha, llvm_assertions) From ef95430b9bb42fefa0a5e885525525bb52d9cb00 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Wed, 23 Sep 2020 19:05:11 -0400 Subject: [PATCH 2/2] Adjust support expectations for downloaded LLVMs --- config.toml.example | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.toml.example b/config.toml.example index fb62e1b4726bc..c5efb8ed5e51c 100644 --- a/config.toml.example +++ b/config.toml.example @@ -36,8 +36,8 @@ changelog-seen = 1 # toolchain or changing LLVM locally, you probably want to set this to true. # # It's currently false by default due to being newly added; please file bugs if -# enabling this did not work for you on Linux (macOS and Windows support is -# coming soon). +# enabling this did not work for you on x86_64-unknown-linux-gnu. +# Other target triples are currently not supported; see #77084. # # We also currently only support this when building LLVM for the build triple. # @@ -380,7 +380,7 @@ changelog-seen = 1 # Whether or not to leave debug! and trace! calls in the rust binary. # Overrides the `debug-assertions` option, if defined. -# +# # Defaults to rust.debug-assertions value #debug-logging = debug-assertions