From 35cfac1e2b69c8bfe531c60e64ec9999cbd011ed Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Tue, 27 Jun 2023 14:28:44 +0200 Subject: [PATCH] [PATCH] Fix build on Solaris where fd-lock cannot be used. --- src/bootstrap/bin/main.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/bootstrap/bin/main.rs b/src/bootstrap/bin/main.rs index 7ce4599c424..30dfa81c6f7 100644 --- a/src/bootstrap/bin/main.rs +++ b/src/bootstrap/bin/main.rs @@ -5,9 +5,11 @@ //! parent directory, and otherwise documentation can be found throughout the `build` //! directory in each respective module. -use std::fs::OpenOptions; +#[cfg(all(any(unix, windows), not(target_os = "solaris")))] use std::io::Write; -use std::{env, fs, process}; +#[cfg(all(any(unix, windows), not(target_os = "solaris")))] +use std::process; +use std::{env, fs}; #[cfg(all(any(unix, windows), not(target_os = "solaris")))] use bootstrap::t; @@ -32,7 +34,7 @@ fn main() { }; build_lock = - fd_lock::RwLock::new(t!(OpenOptions::new().write(true).create(true).open(&path))); + fd_lock::RwLock::new(t!(fs::OpenOptions::new().write(true).create(true).open(&path))); _build_lock_guard = match build_lock.try_write() { Ok(mut lock) => { t!(lock.write(&process::id().to_string().as_ref())); @@ -85,7 +87,7 @@ fn main() { // HACK: Since the commit script uses hard links, we can't actually tell if it was installed by x.py setup or not. // We could see if it's identical to src/etc/pre-push.sh, but pre-push may have been modified in the meantime. // Instead, look for this comment, which is almost certainly not in any custom hook. - if std::fs::read_to_string(pre_commit).map_or(false, |contents| { + if fs::read_to_string(pre_commit).map_or(false, |contents| { contents.contains("https://github.com/rust-lang/rust/issues/77620#issuecomment-705144570") }) { println!(