Author: jdevlieghere Date: Mon Nov 12 08:59:50 2018 New Revision: 346675 URL: http://llvm.org/viewvc/llvm-project?rev=346675&view=rev Log: Revert "Make clang-based tools find libc++ on MacOS"
This breaks the LLDB bots. Removed: cfe/trunk/test/Tooling/Inputs/mock-libcxx/include/c++/v1/mock_vector cfe/trunk/test/Tooling/clang-check-mac-libcxx-abspath.cpp cfe/trunk/test/Tooling/clang-check-mac-libcxx-relpath.cpp Modified: cfe/trunk/include/clang/Lex/HeaderSearchOptions.h cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp cfe/trunk/lib/Frontend/InitHeaderSearch.cpp cfe/trunk/lib/Tooling/Tooling.cpp Modified: cfe/trunk/include/clang/Lex/HeaderSearchOptions.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/HeaderSearchOptions.h?rev=346675&r1=346674&r2=346675&view=diff ============================================================================== --- cfe/trunk/include/clang/Lex/HeaderSearchOptions.h (original) +++ cfe/trunk/include/clang/Lex/HeaderSearchOptions.h Mon Nov 12 08:59:50 2018 @@ -108,13 +108,6 @@ public: /// etc.). std::string ResourceDir; - /// Compiler install dir as detected by the Driver. - /// This is typically the directory that contains the clang executable, i.e. - /// the 'bin/' subdir of a clang distribution. - /// Only used to add include dirs for libc++ on Darwin. Please avoid relying - /// on this field for other purposes. - std::string InstallDir; - /// The directory used for the module cache. std::string ModuleCachePath; Modified: cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp?rev=346675&r1=346674&r2=346675&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp (original) +++ cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp Mon Nov 12 08:59:50 2018 @@ -11,18 +11,17 @@ // //===----------------------------------------------------------------------===// +#include "clang/Frontend/Utils.h" #include "clang/Basic/DiagnosticOptions.h" -#include "clang/Driver/Action.h" #include "clang/Driver/Compilation.h" #include "clang/Driver/Driver.h" +#include "clang/Driver/Action.h" #include "clang/Driver/Options.h" #include "clang/Driver/Tool.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendDiagnostic.h" -#include "clang/Frontend/Utils.h" #include "llvm/Option/ArgList.h" #include "llvm/Support/Host.h" -#include "llvm/Support/Path.h" using namespace clang; using namespace llvm::opt; @@ -103,8 +102,5 @@ std::unique_ptr<CompilerInvocation> clan CCArgs.size(), *Diags)) return nullptr; - // Patch up the install dir, so we find the same standard library as the - // original compiler on MacOS. - CI->getHeaderSearchOpts().InstallDir = TheDriver.getInstalledDir(); return CI; } Modified: cfe/trunk/lib/Frontend/InitHeaderSearch.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitHeaderSearch.cpp?rev=346675&r1=346674&r2=346675&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/InitHeaderSearch.cpp (original) +++ cfe/trunk/lib/Frontend/InitHeaderSearch.cpp Mon Nov 12 08:59:50 2018 @@ -476,9 +476,14 @@ void InitHeaderSearch::AddDefaultInclude if (triple.isOSDarwin()) { // On Darwin, libc++ may be installed alongside the compiler in // include/c++/v1. - if (!HSOpts.InstallDir.empty()) { - // Get from foo/bin to foo. - SmallString<128> P(llvm::sys::path::parent_path(HSOpts.InstallDir)); + if (!HSOpts.ResourceDir.empty()) { + // Remove version from foo/lib/clang/version + StringRef NoVer = llvm::sys::path::parent_path(HSOpts.ResourceDir); + // Remove clang from foo/lib/clang + StringRef Lib = llvm::sys::path::parent_path(NoVer); + // Remove lib from foo/lib + SmallString<128> P = llvm::sys::path::parent_path(Lib); + // Get foo/include/c++/v1 llvm::sys::path::append(P, "include", "c++", "v1"); AddUnmappedPath(P, CXXSystem, false); Modified: cfe/trunk/lib/Tooling/Tooling.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/Tooling.cpp?rev=346675&r1=346674&r2=346675&view=diff ============================================================================== --- cfe/trunk/lib/Tooling/Tooling.cpp (original) +++ cfe/trunk/lib/Tooling/Tooling.cpp Mon Nov 12 08:59:50 2018 @@ -327,9 +327,6 @@ bool ToolInvocation::run() { Invocation->getPreprocessorOpts().addRemappedFile(It.getKey(), Input.release()); } - // Patch up the install dir, so we find the same standard library as the - // original compiler on MacOS. - Invocation->getHeaderSearchOpts().InstallDir = Driver->getInstalledDir(); return runInvocation(BinaryName, Compilation.get(), std::move(Invocation), std::move(PCHContainerOps)); } Removed: cfe/trunk/test/Tooling/Inputs/mock-libcxx/include/c++/v1/mock_vector URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Tooling/Inputs/mock-libcxx/include/c%2B%2B/v1/mock_vector?rev=346674&view=auto ============================================================================== --- cfe/trunk/test/Tooling/Inputs/mock-libcxx/include/c++/v1/mock_vector (original) +++ cfe/trunk/test/Tooling/Inputs/mock-libcxx/include/c++/v1/mock_vector (removed) @@ -1 +0,0 @@ -class vector {}; Removed: cfe/trunk/test/Tooling/clang-check-mac-libcxx-abspath.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Tooling/clang-check-mac-libcxx-abspath.cpp?rev=346674&view=auto ============================================================================== --- cfe/trunk/test/Tooling/clang-check-mac-libcxx-abspath.cpp (original) +++ cfe/trunk/test/Tooling/clang-check-mac-libcxx-abspath.cpp (removed) @@ -1,17 +0,0 @@ -// Clang on MacOS can find libc++ living beside the installed compiler. -// This test makes sure our libTooling-based tools emulate this properly. -// -// RUN: rm -rf %t -// RUN: mkdir %t -// -// Install the mock libc++ (simulates the libc++ directory structure). -// RUN: cp -r %S/Inputs/mock-libcxx %t/ -// -// Pretend clang is installed beside the mock library that we provided. -// RUN: echo '[{"directory":"%t","command":"%t/mock-libcxx/bin/clang++ -stdlib=libc++ -target x86_64-apple-darwin -c test.cpp","file":"test.cpp"}]' | sed -e 's/\\/\//g' > %t/compile_commands.json -// RUN: cp "%s" "%t/test.cpp" -// clang-check will produce an error code if the mock library is not found. -// RUN: clang-check -p "%t" "%t/test.cpp" - -#include <mock_vector> -vector v; Removed: cfe/trunk/test/Tooling/clang-check-mac-libcxx-relpath.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Tooling/clang-check-mac-libcxx-relpath.cpp?rev=346674&view=auto ============================================================================== --- cfe/trunk/test/Tooling/clang-check-mac-libcxx-relpath.cpp (original) +++ cfe/trunk/test/Tooling/clang-check-mac-libcxx-relpath.cpp (removed) @@ -1,17 +0,0 @@ -// Clang on MacOS can find libc++ living beside the installed compiler. -// This test makes sure our libTooling-based tools emulate this properly. -// -// RUN: rm -rf %t -// RUN: mkdir %t -// -// Install the mock libc++ (simulates the libc++ directory structure). -// RUN: cp -r %S/Inputs/mock-libcxx %t/ -// -// Pretend clang is installed beside the mock library that we provided. -// RUN: echo '[{"directory":"%t","command":"mock-libcxx/bin/clang++ -stdlib=libc++ -target x86_64-apple-darwin -c test.cpp","file":"test.cpp"}]' | sed -e 's/\\/\//g' > %t/compile_commands.json -// RUN: cp "%s" "%t/test.cpp" -// clang-check will produce an error code if the mock library is not found. -// RUN: clang-check -p "%t" "%t/test.cpp" - -#include <mock_vector> -vector v; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits