about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-09-15 15:06:59 +0000
committerbors <bors@rust-lang.org>2020-09-15 15:06:59 +0000
commit27a45d0aabbc19b635c858033d6e87f86c663570 (patch)
tree4468f8a225920178debd04c88b140448e027cb2b /src
parent4c1966f97e192d6282be935baa163fb58f9b8b27 (diff)
parentf001a0c8dd074ae46276ce84c3de6a6072e77015 (diff)
downloadrust-27a45d0aabbc19b635c858033d6e87f86c663570.tar.gz
rust-27a45d0aabbc19b635c858033d6e87f86c663570.zip
Auto merge of #76708 - Mark-Simulacrum:lld-macos, r=alexcrichton
Always try to promote shared LLVM to the sysroot

Even when LLVM is not generally participating in a shared link with rustc, we
will likely still link to the shared dylib from rust-lld, so we still need to
promote it.

This reverts part of #76349; my expectation that the link-shared rule was sufficient was likely wrong.

Hopefully fixes #76698.

r? `@alexcrichton`
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/native.rs4
-rwxr-xr-xsrc/ci/run.sh7
2 files changed, 11 insertions, 0 deletions
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index 6cd850bc0bf..3829d47da33 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -129,6 +129,10 @@ impl Step for Llvm {
                 Err(m) => m,
             };
 
+        if builder.config.llvm_link_shared && target.contains("windows") {
+            panic!("shared linking to LLVM is not currently supported on Windows");
+        }
+
         builder.info(&format!("Building LLVM for {}", target));
         t!(stamp.remove());
         let _time = util::timeit(&builder);
diff --git a/src/ci/run.sh b/src/ci/run.sh
index 5231aa2e766..c8faf1ec831 100755
--- a/src/ci/run.sh
+++ b/src/ci/run.sh
@@ -75,6 +75,13 @@ if [ "$DEPLOY$DEPLOY_ALT" = "1" ]; then
   RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set rust.remap-debuginfo"
   RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --debuginfo-level-std=1"
 
+  # If we're distributing binaries, we want a shared LLVM link. We're already
+  # going to link LLVM to the LLVM tools dynamically, so we need to ship a
+  # libLLVM library anyway.
+  if !isWindows; then
+    RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set llvm.link-shared=true"
+  fi
+
   if [ "$NO_LLVM_ASSERTIONS" = "1" ]; then
     RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --disable-llvm-assertions"
   elif [ "$DEPLOY_ALT" != "" ]; then