r284617 - [Myriad] Find libc++ headers next to clang binary
Douglas Katzman via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 19 10:30:40 PDT 2016
Author: dougk
Date: Wed Oct 19 12:30:40 2016
New Revision: 284617
URL: http://llvm.org/viewvc/llvm-project?rev=284617&view=rev
Log:
[Myriad] Find libc++ headers next to clang binary
Modified:
cfe/trunk/lib/Driver/ToolChains.cpp
cfe/trunk/test/Driver/myriad-toolchain.c
Modified: cfe/trunk/lib/Driver/ToolChains.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=284617&r1=284616&r2=284617&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains.cpp Wed Oct 19 12:30:40 2016
@@ -5130,15 +5130,19 @@ void MyriadToolChain::AddClangCXXStdlibI
DriverArgs.hasArg(options::OPT_nostdincxx))
return;
- // Only libstdc++, for now.
- StringRef LibDir = GCCInstallation.getParentLibPath();
- const GCCVersion &Version = GCCInstallation.getVersion();
- StringRef TripleStr = GCCInstallation.getTriple().str();
- const Multilib &Multilib = GCCInstallation.getMultilib();
-
- addLibStdCXXIncludePaths(
- LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,
- "", TripleStr, "", "", Multilib.includeSuffix(), DriverArgs, CC1Args);
+ if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) {
+ std::string Path(getDriver().getInstalledDir());
+ Path += "/../include/c++/v1";
+ addSystemInclude(DriverArgs, CC1Args, Path);
+ } else {
+ StringRef LibDir = GCCInstallation.getParentLibPath();
+ const GCCVersion &Version = GCCInstallation.getVersion();
+ StringRef TripleStr = GCCInstallation.getTriple().str();
+ const Multilib &Multilib = GCCInstallation.getMultilib();
+ addLibStdCXXIncludePaths(
+ LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,
+ "", TripleStr, "", "", Multilib.includeSuffix(), DriverArgs, CC1Args);
+ }
}
// MyriadToolChain handles several triples:
Modified: cfe/trunk/test/Driver/myriad-toolchain.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/myriad-toolchain.c?rev=284617&r1=284616&r2=284617&view=diff
==============================================================================
--- cfe/trunk/test/Driver/myriad-toolchain.c (original)
+++ cfe/trunk/test/Driver/myriad-toolchain.c Wed Oct 19 12:30:40 2016
@@ -69,8 +69,11 @@
// RUN: | FileCheck %s -check-prefix=PREPROCESS
// PREPROCESS: "-E" "-DMYRIAD2" "-I" "foo"
-// RUN: %clang -target sparc-myriad -### --driver-mode=g++ %s 2>&1 | FileCheck %s --check-prefix=STDLIBCXX
-// STDLIBCXX: "-lstdc++" "-lc" "-lgcc"
+// RUN: %clang -target sparc-myriad -### --driver-mode=g++ %s 2>&1 | FileCheck %s --check-prefix=LIBSTDCXX
+// LIBSTDCXX: "-lstdc++" "-lc" "-lgcc"
+
+// RUN: %clang -stdlib=libc++ -### -target sparcel-myriad -S -x c++ %s 2>&1 | FileCheck %s -check-prefix=LIBCXX
+// LIBCXX: "-internal-isystem" "{{.*}}/../include/c++/v1"
// RUN: %clang -target sparc-myriad -### -nostdlib %s 2>&1 | FileCheck %s --check-prefix=NOSTDLIB
// NOSTDLIB-NOT: crtbegin.o
More information about the cfe-commits
mailing list