Revert "[Driver] Support libc++ in MSVC"

This reverts commit 9625d61eb6 since
libc++ currently has issues with disabled exceptions which breaks
the runtimes build.
This commit is contained in:
Petr Hosek 2021-06-11 00:43:52 -07:00
parent 0d5af7a4ca
commit 22f194909a
8 changed files with 4 additions and 45 deletions

View File

@ -3641,12 +3641,12 @@ def noprofilelib : Flag<["-"], "noprofilelib">;
def noseglinkedit : Flag<["-"], "noseglinkedit">;
def nostartfiles : Flag<["-"], "nostartfiles">, Group<Link_Group>;
def nostdinc : Flag<["-"], "nostdinc">, Flags<[CoreOption]>;
def nostdlibinc : Flag<["-"], "nostdlibinc">, Flags<[CoreOption]>;
def nostdincxx : Flag<["-"], "nostdinc++">, Flags<[CC1Option, CoreOption]>,
def nostdlibinc : Flag<["-"], "nostdlibinc">;
def nostdincxx : Flag<["-"], "nostdinc++">, Flags<[CC1Option]>,
HelpText<"Disable standard #include directories for the C++ standard library">,
MarshallingInfoNegativeFlag<HeaderSearchOpts<"UseStandardCXXIncludes">>;
def nostdlib : Flag<["-"], "nostdlib">, Group<Link_Group>;
def nostdlibxx : Flag<["-"], "nostdlib++">, Group<Link_Group>;
def nostdlibxx : Flag<["-"], "nostdlib++">;
def object : Flag<["-"], "object">;
def o : JoinedOrSeparate<["-"], "o">, Flags<[NoXarchOption, RenderAsInput,
CC1Option, CC1AsOption, FC1Option, FlangOption]>,

View File

@ -435,11 +435,6 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (!C.getDriver().IsCLMode() && Args.hasArg(options::OPT_L))
for (const auto &LibPath : Args.getAllArgValues(options::OPT_L))
CmdArgs.push_back(Args.MakeArgString("-libpath:" + LibPath));
// Add library directories for standard library shipped with the toolchain.
for (const auto &LibPath : TC.getFilePaths()) {
if (TC.getVFS().exists(LibPath))
CmdArgs.push_back(Args.MakeArgString("-libpath:" + LibPath));
}
CmdArgs.push_back("-nologo");
@ -1328,36 +1323,7 @@ void MSVCToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
void MSVCToolChain::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
if (DriverArgs.hasArg(options::OPT_nostdlibinc) ||
DriverArgs.hasArg(options::OPT_nostdincxx))
return;
switch (GetCXXStdlibType(DriverArgs)) {
case ToolChain::CST_Libcxx: {
SmallString<128> P(getDriver().Dir);
llvm::sys::path::append(P, "..", "include");
std::string Version = detectLibcxxVersion(P);
if (Version.empty())
return;
// First add the per-target include path if it exists.
SmallString<128> TargetDir(P);
llvm::sys::path::append(TargetDir, getTripleString(), "c++", Version);
if (getVFS().exists(TargetDir))
addSystemInclude(DriverArgs, CC1Args, TargetDir);
// Second add the generic one.
SmallString<128> Dir(P);
llvm::sys::path::append(Dir, "c++", Version);
addSystemInclude(DriverArgs, CC1Args, Dir);
break;
}
default:
// TODO: Shall we report an error for other C++ standard libraries?
break;
}
// FIXME: There should probably be logic here to find libc++ on Windows.
}
VersionTuple MSVCToolChain::computeMSVCVersion(const Driver *D,

View File

@ -1,7 +0,0 @@
// RUN: %clangxx -### %s 2>&1 -stdlib=libc++ -fuse-ld=lld \
// RUN: --target=x86_64-pc-windows-msvc \
// RUN: -ccc-install-dir %S/Inputs/msvc_libcxx_tree/usr/bin \
// RUN: | FileCheck %s -check-prefix MSVC-LIBCXX
// MSVC-LIBCXX: "-internal-isystem" "{{.*[/\\]}}include{{/|\\\\}}x86_64-pc-windows-msvc{{/|\\\\}}c++{{/|\\\\}}v1"
// MSVC-LIBCXX: "-internal-isystem" "{{.*[/\\]}}include{{/|\\\\}}c++{{/|\\\\}}v1"
// MSVC-LIBCXX: "-libpath:{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}x86_64-pc-windows-msvc"