From 7c10f25fc00e48c1a2bc0b0f83183119e2540fed Mon Sep 17 00:00:00 2001 From: Bruno Cardoso Lopes Date: Wed, 12 Apr 2017 04:49:00 +0000 Subject: [PATCH] [Modules] Remove darwin specific code to check for SystemVersion.plist This isn't need anymore and modules options -fbuild-session-file and -fmodules-validate-once-per-build-session already provide a sane mechanism to validate the system headers. rdar://problem/19767523 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@300027 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/CompilerInvocation.cpp | 23 --------------------- test/Modules/system_version.m | 31 ----------------------------- 2 files changed, 54 deletions(-) delete mode 100644 test/Modules/system_version.m diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index 271d1ca4f6..b9c24ab6c0 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -2660,29 +2660,6 @@ std::string CompilerInvocation::getModuleHash() const { code = ext->hashExtension(code); } - // Darwin-specific hack: if we have a sysroot, use the contents and - // modification time of - // $sysroot/System/Library/CoreServices/SystemVersion.plist - // as part of the module hash. - if (!hsOpts.Sysroot.empty()) { - SmallString<128> systemVersionFile; - systemVersionFile += hsOpts.Sysroot; - llvm::sys::path::append(systemVersionFile, "System"); - llvm::sys::path::append(systemVersionFile, "Library"); - llvm::sys::path::append(systemVersionFile, "CoreServices"); - llvm::sys::path::append(systemVersionFile, "SystemVersion.plist"); - - llvm::ErrorOr> buffer = - llvm::MemoryBuffer::getFile(systemVersionFile); - if (buffer) { - code = hash_combine(code, buffer.get()->getBuffer()); - - struct stat statBuf; - if (stat(systemVersionFile.c_str(), &statBuf) == 0) - code = hash_combine(code, statBuf.st_mtime); - } - } - return llvm::APInt(64, code).toString(36, /*Signed=*/false); } diff --git a/test/Modules/system_version.m b/test/Modules/system_version.m deleted file mode 100644 index b1bc360927..0000000000 --- a/test/Modules/system_version.m +++ /dev/null @@ -1,31 +0,0 @@ -// Test checking that we're hashing a system version file in the -// module hash. - -// First, build a system root. -// RUN: rm -rf %t -// RUN: mkdir -p %t/usr/include -// RUN: cp %S/Inputs/Modified/A.h %t/usr/include -// RUN: cp %S/Inputs/Modified/B.h %t/usr/include -// RUN: cp %S/Inputs/Modified/module.map %t/usr/include - -// Run once with no system version file. We should end up with one module. -// RUN: %clang_cc1 -fmodules-cache-path=%t/cache -fmodules -fimplicit-module-maps -isysroot %t -I %t/usr/include %s -verify -// RUN: ls -R %t | grep -c "ModA.*pcm" | grep 1 - -// Add a system version file and run again. We should now have two -// module variants. -// RUN: mkdir -p %t/System/Library/CoreServices -// RUN: echo "hello" > %t/System/Library/CoreServices/SystemVersion.plist -// RUN: %clang_cc1 -fmodules-cache-path=%t/cache -fmodules -fimplicit-module-maps -isysroot %t -I %t/usr/include %s -verify -// RUN: ls -R %t | grep -c "ModA.*pcm" | grep 2 - -// Change the system version file and run again. We should now have three -// module variants. -// RUN: mkdir -p %t/System/Library/CoreServices -// RUN: echo "modules" > %t/System/Library/CoreServices/SystemVersion.plist -// RUN: %clang_cc1 -fmodules-cache-path=%t/cache -fmodules -fimplicit-module-maps -isysroot %t -I %t/usr/include %s -verify -// RUN: ls -R %t | grep -c "ModA.*pcm" | grep 3 - -// expected-no-diagnostics -@import ModA; - -- 2.50.1