From f5dad49f112151bb0ee74570e971bd475cbec128 Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Sun, 3 May 2020 18:00:09 +0200
Subject: [PATCH 09/15] Link stage2 tools dynamically to libstd

Replaces an older patch by Samuel Holland. The RUSTC_NO_PREFER_DYNAMIC
env var was removed and replaced with the following logic in builder.rs.

The idea for this patch is to link stage2 tools dynamically as these will
be distributed (if built). Intermediate tools from previous stages will
be statically linked for convenience.
---
 src/bootstrap/builder.rs | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
index eb0199fd..0ec7cbd8 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
@@ -1236,6 +1236,8 @@ impl<'a> Builder<'a> {
         // linking all deps statically into the dylib.
         if let Mode::Std | Mode::Rustc | Mode::Codegen = mode {
             rustflags.arg("-Cprefer-dynamic");
+        } else if stage >= 2 {
+            rustflags.arg("-Cprefer-dynamic");
         }
 
         // When building incrementally we default to a lower ThinLTO import limit
-- 
2.26.2

