forked from OSchip/llvm-project
[Solaris] Use the GCC Installation detector to add the C++ include paths.
Patch by Xan López! llvm-svn: 247144
This commit is contained in:
parent
d7b073e0aa
commit
d511726ce9
clang
|
@ -2962,6 +2962,31 @@ Tool *Solaris::buildAssembler() const {
|
|||
|
||||
Tool *Solaris::buildLinker() const { return new tools::solaris::Linker(*this); }
|
||||
|
||||
void Solaris::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
|
||||
ArgStringList &CC1Args) const {
|
||||
if (DriverArgs.hasArg(options::OPT_nostdlibinc) ||
|
||||
DriverArgs.hasArg(options::OPT_nostdincxx))
|
||||
return;
|
||||
|
||||
// Include the support directory for things like xlocale and fudged system
|
||||
// headers.
|
||||
addSystemInclude(DriverArgs, CC1Args, "/usr/include/c++/v1/support/solaris");
|
||||
|
||||
if (GCCInstallation.isValid()) {
|
||||
GCCVersion Version = GCCInstallation.getVersion();
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getDriver().SysRoot + "/usr/gcc/" +
|
||||
Version.MajorStr + "." +
|
||||
Version.MinorStr +
|
||||
"/include/c++/" + Version.Text);
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getDriver().SysRoot + "/usr/gcc/" + Version.MajorStr +
|
||||
"." + Version.MinorStr + "/include/c++/" +
|
||||
Version.Text + "/" +
|
||||
GCCInstallation.getTriple().str());
|
||||
}
|
||||
}
|
||||
|
||||
/// Distribution (very bare-bones at the moment).
|
||||
|
||||
enum Distro {
|
||||
|
|
|
@ -527,6 +527,10 @@ public:
|
|||
|
||||
bool IsIntegratedAssemblerDefault() const override { return true; }
|
||||
|
||||
void AddClangCXXStdlibIncludeArgs(
|
||||
const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
|
||||
protected:
|
||||
Tool *buildAssembler() const override;
|
||||
Tool *buildLinker() const override;
|
||||
|
|
|
@ -404,10 +404,6 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp
|
|||
AddGnuCPlusPlusIncludePaths("/usr/gnu/include/c++/4.4.3",
|
||||
"", "", "", triple);
|
||||
break;
|
||||
case llvm::Triple::Solaris:
|
||||
AddGnuCPlusPlusIncludePaths("/usr/gcc/4.5/include/c++/4.5.2/",
|
||||
"i386-pc-solaris2.11", "", "", triple);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -453,11 +449,6 @@ void InitHeaderSearch::AddDefaultIncludePaths(const LangOptions &Lang,
|
|||
AddUnmappedPath(P, CXXSystem, false);
|
||||
}
|
||||
}
|
||||
// On Solaris, include the support directory for things like xlocale and
|
||||
// fudged system headers.
|
||||
if (triple.getOS() == llvm::Triple::Solaris)
|
||||
AddPath("/usr/include/c++/v1/support/solaris", CXXSystem, false);
|
||||
|
||||
AddPath("/usr/include/c++/v1", CXXSystem, false);
|
||||
} else {
|
||||
AddDefaultCPlusPlusIncludePaths(triple, HSOpts);
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
// Test that the C++ headers are found.
|
||||
//
|
||||
// RUN: %clang -no-canonical-prefixes %s -### 2>&1 \
|
||||
// RUN: --target=sparc-sun-solaris2.11 \
|
||||
// RUN: --gcc-toolchain="" \
|
||||
// RUN: --sysroot=%S/Inputs/sparc-sun-solaris2.11 \
|
||||
// RUN: | FileCheck %s
|
||||
// CHECK: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
|
||||
// CHECK: "-internal-isystem" "{{.*}}/usr/include/c++/v1/support/solaris"
|
||||
// CHECK: "-internal-isystem" "{{.*}}/usr/gcc/4.8/include/c++/4.8.2"
|
||||
// CHECK: "-internal-isystem" "{{.*}}/usr/gcc/4.8/include/c++/4.8.2/sparc-sun-solaris2.11"
|
Loading…
Reference in New Issue