From c237f167efeb9b9cf0460df4036229675d70c90e Mon Sep 17 00:00:00 2001 From: Tobias Kortkamp Date: Fri, 24 May 2019 05:58:28 +0000 Subject: [PATCH] lang/rust-nightly: Fix check-plist same as lang/rust 1.35.0 Avoid staging the local copy of LLVM into ${STAGEDIR}${WRKDIR} during install. --- .../files/patch-src_bootstrap_native.rs | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 lang/rust-nightly/files/patch-src_bootstrap_native.rs diff --git a/lang/rust-nightly/files/patch-src_bootstrap_native.rs b/lang/rust-nightly/files/patch-src_bootstrap_native.rs new file mode 100644 index 000000000000..a8fb0c5b37c4 --- /dev/null +++ b/lang/rust-nightly/files/patch-src_bootstrap_native.rs @@ -0,0 +1,46 @@ +Avoid unnecessarily restarting the LLVM build and installing it +into STAGEDIR during the install phase. + +--- src/bootstrap/native.rs.orig 2019-05-22 05:39:52 UTC ++++ src/bootstrap/native.rs +@@ -92,17 +92,9 @@ impl Step for Llvm { + .join(exe("llvm-config", &*builder.config.build)); + let done_stamp = out_dir.join("llvm-finished-building"); + +- if let Some(llvm_commit) = llvm_info.sha() { + if done_stamp.exists() { +- let done_contents = t!(fs::read(&done_stamp)); +- +- // If LLVM was already built previously and the submodule's commit didn't change +- // from the previous build, then no action is required. +- if done_contents == llvm_commit.as_bytes() { +- return build_llvm_config +- } ++ return build_llvm_config + } +- } + + let _folder = builder.fold_output(|| "llvm"); + let descriptor = if emscripten { "Emscripten " } else { "" }; +@@ -218,6 +210,10 @@ impl Step for Llvm { + } + } + ++ if target == "powerpc64-unknown-freebsd" { ++ cfg.define("CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath=/usr/local/lib/%CC% -L/usr/local/lib/%CC%"); ++ } ++ + // http://llvm.org/docs/HowToCrossCompileLLVM.html + if target != builder.config.build && !emscripten { + builder.ensure(Llvm { +@@ -283,9 +279,7 @@ impl Step for Llvm { + + cfg.build(); + +- if let Some(llvm_commit) = llvm_info.sha() { +- t!(fs::write(&done_stamp, llvm_commit)); +- } ++ t!(fs::write(&done_stamp, "done building LLVM")); + + build_llvm_config + }