From b1d0edf16f143592eb417fd18dc91f1760f4ef89 Mon Sep 17 00:00:00 2001 From: Ben Langmuir Date: Mon, 9 Feb 2015 19:23:08 +0000 Subject: [PATCH] Add the hostname to the module hash to avoid sharing between hosts Sharing between hosts will cause problems for the LockFileManager, which can timeout waiting for a process that has already died. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@228592 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/CompilerInvocation.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index f8d71acd32..eef0535265 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -2021,6 +2021,16 @@ std::string CompilerInvocation::getModuleHash() const { } } +#if LLVM_ON_UNIX + // The LockFileManager cannot tell when processes from another host are + // running, so mangle the hostname in to the module hash to separate them. + char hostname[256]; + hostname[255] = 0; + hostname[0] = 0; + gethostname(hostname, 255); + code = hash_combine(code, StringRef(hostname)); +#endif + return llvm::APInt(64, code).toString(36, /*Signed=*/false); } -- 2.40.0