From 3d6877496866472e1e9af9495d6989ee7ae866ef Mon Sep 17 00:00:00 2001 From: Mark Simulacrum Date: Thu, 28 Jun 2018 10:06:42 -0600 Subject: [PATCH] Notice non-toplevel dll dependencies in rustbuild Previously Cargo would hardlink all the dependencies into the "root" as foo.dll and the `toplevel` array would get populated with these, but that's no longer the case. Instead, cargo will only do this for the final artifacts/final libraries. Rustbuild is updated to continue looping through the artifacts mentioned instead of early-returning. This should fix the bug. @alexcrichton found the cause of this and suggested this fix. --- src/bootstrap/compile.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index 11d9154ba69..642f22b11ad 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs @@ -1049,7 +1049,7 @@ pub fn run_cargo(builder: &Builder, cargo: &mut Command, stamp: &Path, is_check: !filename.ends_with(".lib") && !is_dylib(&filename) && !(is_check && filename.ends_with(".rmeta")) { - return; + continue; } let filename = Path::new(&*filename); @@ -1057,14 +1057,14 @@ pub fn run_cargo(builder: &Builder, cargo: &mut Command, stamp: &Path, is_check: // If this was an output file in the "host dir" we don't actually // worry about it, it's not relevant for us. if filename.starts_with(&host_root_dir) { - return; + continue; } // If this was output in the `deps` dir then this is a precise file // name (hash included) so we start tracking it. if filename.starts_with(&target_deps_dir) { deps.push(filename.to_path_buf()); - return; + continue; } // Otherwise this was a "top level artifact" which right now doesn't