r180766 - Add support for -stdlib=libc++ in the NetBSD toolchain.
Rafael EspĂndola
rafael.espindola at gmail.com
Mon Apr 29 18:41:11 PDT 2013
please add a test.
On 29 April 2013 21:21, Joerg Sonnenberger <joerg at bec.de> 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
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list