diff options
| author | bjorn3 <bjorn3@users.noreply.github.com> | 2017-06-18 16:00:10 +0200 |
|---|---|---|
| committer | bjorn3 <bjorn3@users.noreply.github.com> | 2017-08-11 10:38:29 +0200 |
| commit | e152a1620b9fb91a70c629059df482872c687522 (patch) | |
| tree | ea3cc059cf22d3f55a3d123d9f8c41344dd92745 /src/bootstrap | |
| parent | 73c3f55a3e6c370527dd620d116f27accd22d934 (diff) | |
| download | rust-e152a1620b9fb91a70c629059df482872c687522.tar.gz rust-e152a1620b9fb91a70c629059df482872c687522.zip | |
Build support for no llvm
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/config.rs | 4 | ||||
| -rw-r--r-- | src/bootstrap/config.toml.example | 4 | ||||
| -rw-r--r-- | src/bootstrap/lib.rs | 3 | ||||
| -rw-r--r-- | src/bootstrap/native.rs | 6 |
4 files changed, 17 insertions, 0 deletions
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 5d898cb716d..ec57bb069e0 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -53,6 +53,7 @@ pub struct Config { pub profiler: bool, // llvm codegen options + pub llvm_enabled: bool, pub llvm_assertions: bool, pub llvm_optimize: bool, pub llvm_release_debuginfo: bool, @@ -192,6 +193,7 @@ struct Install { #[derive(Deserialize, Default)] #[serde(deny_unknown_fields, rename_all = "kebab-case")] struct Llvm { + enabled: Option<bool>, ccache: Option<StringOrBool>, ninja: Option<bool>, assertions: Option<bool>, @@ -265,6 +267,7 @@ struct TomlTarget { impl Config { pub fn parse(build: &str, file: Option<PathBuf>) -> Config { let mut config = Config::default(); + config.llvm_enabled = true; config.llvm_optimize = true; config.use_jemalloc = true; config.backtrace = true; @@ -345,6 +348,7 @@ impl Config { Some(StringOrBool::Bool(false)) | None => {} } set(&mut config.ninja, llvm.ninja); + set(&mut config.llvm_enabled, llvm.enabled); set(&mut config.llvm_assertions, llvm.assertions); set(&mut config.llvm_optimize, llvm.optimize); set(&mut config.llvm_release_debuginfo, llvm.release_debuginfo); diff --git a/src/bootstrap/config.toml.example b/src/bootstrap/config.toml.example index 9314135050f..19678dc7793 100644 --- a/src/bootstrap/config.toml.example +++ b/src/bootstrap/config.toml.example @@ -14,6 +14,10 @@ # ============================================================================= [llvm] +# Indicates whether rustc will support compilation with LLVM +# note: rustc does not compile without LLVM at the moment +#enabled = true + # Indicates whether the LLVM build is a Release or Debug build #optimize = true diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 5b5ef3f07f9..a8485d1d152 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -429,6 +429,9 @@ impl Build { if self.config.use_jemalloc { features.push_str(" jemalloc"); } + if self.config.llvm_enabled { + features.push_str(" llvm"); + } features } diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs index ee0eca5d482..59efbd5c4d2 100644 --- a/src/bootstrap/native.rs +++ b/src/bootstrap/native.rs @@ -56,6 +56,12 @@ impl Step for Llvm { fn run(self, builder: &Builder) { let build = builder.build; let target = self.target; + + // If we're not compiling for LLVM bail out here. + if !build.config.llvm_enabled { + return; + } + // If we're using a custom LLVM bail out here, but we can only use a // custom LLVM for the build triple. if let Some(config) = build.config.target_config.get(&target) { |
