about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-08-03 13:12:01 +0200
committerGitHub <noreply@github.com>2019-08-03 13:12:01 +0200
commit6a38ef7abd75d28dd61bd939423468d64789b076 (patch)
treef7d1374b7c6bfb08a5918d76632bcf97bbef2c17 /src
parent15b5aacab65156f06d9f622f75808842dc90e005 (diff)
parent2921de63bb2287f6971f3fe54cae96035c8e1ec6 (diff)
downloadrust-6a38ef7abd75d28dd61bd939423468d64789b076.tar.gz
rust-6a38ef7abd75d28dd61bd939423468d64789b076.zip
Rollup merge of #63218 - lenary:riscv-non-experimental, r=alexcrichton
rustbuild: RISC-V is no longer an experimental LLVM target

This moves RISC-V from the experimental LLVM targets to the
regular LLVM targets. RISC-V was made non-experimental in
https://reviews.llvm.org/rL366399

I have also sorted the list of LLVM targets, and changed the code
around setting llvm_exp_targets (and its default) to match the code
setting llvm_targets (and its default), ensuring future changes to
the defaults, as LLVM targets become stable, affect as few places as
possible.

Given WebAssembly is in `LLVM_ALL_TARGETS` and is therefore built by default (and has been since October 2018), I'm not sure why rust still has it in `experimental-targets`. I'm happy to update this PR to move it into the main list of LLVM targets.

r? @alexcrichton
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/config.rs5
-rw-r--r--src/bootstrap/native.rs8
2 files changed, 8 insertions, 5 deletions
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
index 20d7548df5c..5a5f4ac7252 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
@@ -75,7 +75,7 @@ pub struct Config {
     pub llvm_link_shared: bool,
     pub llvm_clang_cl: Option<String>,
     pub llvm_targets: Option<String>,
-    pub llvm_experimental_targets: String,
+    pub llvm_experimental_targets: Option<String>,
     pub llvm_link_jobs: Option<u32>,
     pub llvm_version_suffix: Option<String>,
     pub llvm_use_linker: Option<String>,
@@ -524,8 +524,7 @@ impl Config {
             set(&mut config.llvm_static_stdcpp, llvm.static_libstdcpp);
             set(&mut config.llvm_link_shared, llvm.link_shared);
             config.llvm_targets = llvm.targets.clone();
-            config.llvm_experimental_targets = llvm.experimental_targets.clone()
-                .unwrap_or_else(|| "WebAssembly;RISCV".to_string());
+            config.llvm_experimental_targets = llvm.experimental_targets.clone();
             config.llvm_link_jobs = llvm.link_jobs;
             config.llvm_version_suffix = llvm.version_suffix.clone();
             config.llvm_clang_cl = llvm.clang_cl.clone();
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index bf824775ccb..f02def3e1b0 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -125,14 +125,18 @@ impl Step for Llvm {
         } else {
             match builder.config.llvm_targets {
                 Some(ref s) => s,
-                None => "X86;ARM;AArch64;Mips;PowerPC;SystemZ;MSP430;Sparc;NVPTX;Hexagon",
+                None => "AArch64;ARM;Hexagon;MSP430;Mips;NVPTX;PowerPC;RISCV;\
+                         Sparc;SystemZ;WebAssembly;X86",
             }
         };
 
         let llvm_exp_targets = if self.emscripten {
             ""
         } else {
-            &builder.config.llvm_experimental_targets[..]
+            match builder.config.llvm_experimental_targets {
+                Some(ref s) => s,
+                None => "",
+            }
         };
 
         let assertions = if builder.config.llvm_assertions {"ON"} else {"OFF"};