about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-04-13 07:34:11 +0000
committerbors <bors@rust-lang.org>2020-04-13 07:34:11 +0000
commitd28a46444eacf066ea0e7fdf6eda066e315aaa4a (patch)
tree57d6ae5f460bb51e354813f95b0778b9b3ad9f03
parenta00bd29e01c4042143d01681e45723a2052412b0 (diff)
parent7c5a4cdd669c9816df938a878147fe5b4645e951 (diff)
downloadrust-d28a46444eacf066ea0e7fdf6eda066e315aaa4a.tar.gz
rust-d28a46444eacf066ea0e7fdf6eda066e315aaa4a.zip
Auto merge of #70882 - tmiasko:llvm-version-suffix, r=Mark-Simulacrum
Make LLVM version suffix independent of rustc version on dev channel

Remove rustc version from LLVM version suffix on dev channel,
avoiding the need for full rebuilds when switching between
branches with different LLVM submodule & rustc version.

Note: To avoid full rebuild, on subsequent LLVM submodule update, copy the
current value of `LLVM_VERSION_SUFFIX` from `build/*/llvm/build/CMakeCache.txt`,
to `version-suffix` in `config.toml`.
-rw-r--r--config.toml.example5
-rw-r--r--src/bootstrap/native.rs10
2 files changed, 10 insertions, 5 deletions
diff --git a/config.toml.example b/config.toml.example
index d4a77bb2960..9121d1e1799 100644
--- a/config.toml.example
+++ b/config.toml.example
@@ -84,8 +84,9 @@
 #link-shared = false
 
 # When building llvm, this configures what is being appended to the version.
-# If absent, we let the version as-is.
-#version-suffix = "-rust"
+# The default is "-rust-$version-$channel", except for dev channel where rustc
+# version number is omitted. To use LLVM version as is, provide an empty string.
+#version-suffix = "-rust-dev"
 
 # On MSVC you can compile LLVM with clang-cl, but the test suite doesn't pass
 # with clang-cl, so this is special in that it only compiles LLVM with clang-cl
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index d4d66abd520..1e380a20629 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -235,10 +235,14 @@ impl Step for Llvm {
             if !suffix.is_empty() {
                 cfg.define("LLVM_VERSION_SUFFIX", suffix);
             }
+        } else if builder.config.channel == "dev" {
+            // Changes to a version suffix require a complete rebuild of the LLVM.
+            // To avoid rebuilds during a time of version bump, don't include rustc
+            // release number on the dev channel.
+            cfg.define("LLVM_VERSION_SUFFIX", "-rust-dev");
         } else {
-            let default_suffix =
-                format!("-rust-{}-{}", channel::CFG_RELEASE_NUM, builder.config.channel);
-            cfg.define("LLVM_VERSION_SUFFIX", default_suffix);
+            let suffix = format!("-rust-{}-{}", channel::CFG_RELEASE_NUM, builder.config.channel);
+            cfg.define("LLVM_VERSION_SUFFIX", suffix);
         }
 
         if let Some(ref linker) = builder.config.llvm_use_linker {