Move two Darwin-specific hacks into #ifdef __APPLE__. These were stat'ing

nonexistent Darwin-specific files on every module build.

llvm-svn: 182331
This commit is contained in:
Richard Smith 2013-05-20 23:17:08 +00:00
parent 68ae91cf83
commit fcf713ac24
2 changed files with 6 additions and 1 deletions

View File

@ -1690,6 +1690,7 @@ std::string CompilerInvocation::getModuleHash() const {
hsOpts.UseStandardCXXIncludes,
hsOpts.UseLibcxx);
#ifdef __APPLE__
// Darwin-specific hack: if we have a sysroot, use the contents and
// modification time of
// $sysroot/System/Library/CoreServices/SystemVersion.plist
@ -1710,6 +1711,7 @@ std::string CompilerInvocation::getModuleHash() const {
code = hash_combine(code, statBuf.st_mtime);
}
}
#endif
return llvm::APInt(64, code).toString(36, /*Signed=*/false);
}

View File

@ -1279,11 +1279,13 @@ void ASTWriter::WriteInputFiles(SourceManager &SourceMgr,
SortedFiles.push_front(Entry);
}
FileManager &FileMgr = SourceMgr.getFileManager();
#ifdef __APPLE__
// If we have an isysroot for a Darwin SDK, include its SDKSettings.plist in
// the set of (non-system) input files. This is simple heuristic for
// detecting whether the system headers may have changed, because it is too
// expensive to stat() all of the system headers.
FileManager &FileMgr = SourceMgr.getFileManager();
if (!HSOpts.Sysroot.empty() && !Chain) {
llvm::SmallString<128> SDKSettingsFileName(HSOpts.Sysroot);
llvm::sys::path::append(SDKSettingsFileName, "SDKSettings.plist");
@ -1292,6 +1294,7 @@ void ASTWriter::WriteInputFiles(SourceManager &SourceMgr,
SortedFiles.push_front(Entry);
}
}
#endif
unsigned UserFilesNum = 0;
// Write out all of the input files.