Commit the changes to make libc++ the default on FreeBSD >= 10, rather than
just the test... llvm-svn: 194333
This commit is contained in:
parent
a1f49c7f37
commit
867ccd865e
|
@ -1935,6 +1935,43 @@ FreeBSD::FreeBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Arg
|
|||
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
|
||||
}
|
||||
|
||||
ToolChain::CXXStdlibType
|
||||
FreeBSD::GetCXXStdlibType(const ArgList &Args) const {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) {
|
||||
StringRef Value = A->getValue();
|
||||
if (Value == "libstdc++")
|
||||
return ToolChain::CST_Libstdcxx;
|
||||
if (Value == "libc++")
|
||||
return ToolChain::CST_Libcxx;
|
||||
|
||||
getDriver().Diag(diag::err_drv_invalid_stdlib_name)
|
||||
<< A->getAsString(Args);
|
||||
}
|
||||
if (getTriple().getOSMajorVersion() >= 10)
|
||||
return ToolChain::CST_Libcxx;
|
||||
return ToolChain::CST_Libstdcxx;
|
||||
}
|
||||
|
||||
void FreeBSD::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:
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getDriver().SysRoot + "/usr/include/c++/v1");
|
||||
break;
|
||||
case ToolChain::CST_Libstdcxx:
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getDriver().SysRoot + "/usr/include/c++/4.2");
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getDriver().SysRoot + "/usr/include/c++/4.2/backward");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Tool *FreeBSD::buildAssembler() const {
|
||||
return new tools::freebsd::Assemble(*this);
|
||||
}
|
||||
|
|
|
@ -518,6 +518,12 @@ public:
|
|||
virtual bool IsMathErrnoDefault() const { return false; }
|
||||
virtual bool IsObjCNonFragileABIDefault() const { return true; }
|
||||
|
||||
virtual CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const;
|
||||
virtual void
|
||||
AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const;
|
||||
|
||||
|
||||
virtual bool UseSjLjExceptions() const;
|
||||
protected:
|
||||
virtual Tool *buildAssembler() const;
|
||||
|
|
Loading…
Reference in New Issue