please add a test.
On 29 April 2013 21:21, Joerg Sonnenberger <[email protected]> wrote: > Author: joerg > Date: Mon Apr 29 20:21:43 2013 > New Revision: 180766 > > URL: http://llvm.org/viewvc/llvm-project?rev=180766&view=rev > Log: > Add support for -stdlib=libc++ in the NetBSD toolchain. > > Modified: > cfe/trunk/lib/Driver/ToolChains.cpp > cfe/trunk/lib/Driver/ToolChains.h > cfe/trunk/lib/Frontend/InitHeaderSearch.cpp > > Modified: cfe/trunk/lib/Driver/ToolChains.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=180766&r1=180765&r2=180766&view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains.cpp Mon Apr 29 20:21:43 2013 > @@ -1861,6 +1861,42 @@ Tool *NetBSD::buildLinker() const { > return new tools::netbsd::Link(*this); > } > > +ToolChain::CXXStdlibType > +NetBSD::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); > + } > + > + return ToolChain::CST_Libstdcxx; > +} > + > +void NetBSD::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++/"); > + break; > + case ToolChain::CST_Libstdcxx: > + addSystemInclude(DriverArgs, CC1Args, > + getDriver().SysRoot + "/usr/include/g++"); > + addSystemInclude(DriverArgs, CC1Args, > + getDriver().SysRoot + "/usr/include/g++/backward"); > + break; > + } > +} > + > /// Minix - Minix tool chain which can call as(1) and ld(1) directly. > > Minix::Minix(const Driver &D, const llvm::Triple& Triple, const ArgList > &Args) > > Modified: cfe/trunk/lib/Driver/ToolChains.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.h?rev=180766&r1=180765&r2=180766&view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains.h (original) > +++ cfe/trunk/lib/Driver/ToolChains.h Mon Apr 29 20:21:43 2013 > @@ -474,6 +474,11 @@ public: > virtual bool IsMathErrnoDefault() const { return false; } > virtual bool IsObjCNonFragileABIDefault() const { return true; } > > + virtual CXXStdlibType GetCXXStdlibType(const ArgList &Args) const; > + > + virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, > + ArgStringList &CC1Args) const; > + > protected: > virtual Tool *buildAssembler() const; > virtual Tool *buildLinker() const; > > Modified: cfe/trunk/lib/Frontend/InitHeaderSearch.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitHeaderSearch.cpp?rev=180766&r1=180765&r2=180766&view=diff > ============================================================================== > --- cfe/trunk/lib/Frontend/InitHeaderSearch.cpp (original) > +++ cfe/trunk/lib/Frontend/InitHeaderSearch.cpp Mon Apr 29 20:21:43 2013 > @@ -421,9 +421,6 @@ AddDefaultCPlusPlusIncludePaths(const ll > // FreeBSD 7.3 > AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2", "", "", "", triple); > break; > - case llvm::Triple::NetBSD: > - AddGnuCPlusPlusIncludePaths("/usr/include/g++", "", "", "", triple); > - break; > case llvm::Triple::OpenBSD: { > std::string t = triple.getTriple(); > if (t.substr(0, 6) == "x86_64") > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
