about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2017-07-31 15:34:05 -0700
committerJosh Stone <jistone@redhat.com>2017-07-31 15:34:05 -0700
commit1636a2cf41d79630ecc94f9a8b6d9e8bb501b048 (patch)
tree9d675d0a2a3c1af0e51336c2d6bad9c3aef363ff /src/bootstrap
parent2a6828e7f1ed3163a2797f0a111570ef130f7b6b (diff)
downloadrust-1636a2cf41d79630ecc94f9a8b6d9e8bb501b048.tar.gz
rust-1636a2cf41d79630ecc94f9a8b6d9e8bb501b048.zip
Link LLVM tools dynamically
Set `LLVM_LINK_LLVM_DYLIB=ON` -- "If enabled, tools will be linked with
the libLLVM shared library."  Rust doesn't ship any of the LLVM tools,
and only needs a few at all for some test cases, so statically linking
the tools is just a waste of space.  I've also had memory issues on
slower machines with LLVM debuginfo enabled, when several tools start
linking in parallel consuming several GBs each.

With the default configuration, `build/x86_64-unknown-linux-gnu/llvm`
was 1.5GB before, now down to 731MB.  The difference is more drastic
with `--enable-llvm-release-debuginfo`, from 28GB to "only" 13GB.

This does not change the linking behavior of `rustc_llvm`.
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/native.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index cfd20b02aaf..595f90be1dd 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -125,6 +125,7 @@ impl Step for Llvm {
            .define("WITH_POLLY", "OFF")
            .define("LLVM_ENABLE_TERMINFO", "OFF")
            .define("LLVM_ENABLE_LIBEDIT", "OFF")
+           .define("LLVM_LINK_LLVM_DYLIB", "ON")
            .define("LLVM_PARALLEL_COMPILE_JOBS", build.jobs().to_string())
            .define("LLVM_TARGET_ARCH", target.split('-').next().unwrap())
            .define("LLVM_DEFAULT_TARGET_TRIPLE", target);