phosek created this revision. phosek added a reviewer: mcgrathr. Herald added a subscriber: cfe-commits.
When sysroot isn't explicitly set, try to use the default location which is <driver path>/../<triple> Repository: rC Clang https://reviews.llvm.org/D42019 Files: lib/Driver/ToolChains/Fuchsia.cpp Index: lib/Driver/ToolChains/Fuchsia.cpp =================================================================== --- lib/Driver/ToolChains/Fuchsia.cpp +++ lib/Driver/ToolChains/Fuchsia.cpp @@ -146,6 +146,12 @@ return P.str(); } +static std::string getSysRoot(const Driver &D, llvm::Triple Triple) { + SmallString<128> P(llvm::sys::path::parent_path(D.Dir)); + llvm::sys::path::append(P, normalizeTriple(Triple)); + return P.str(); +} + Fuchsia::Fuchsia(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) : ToolChain(D, Triple, Args) { @@ -157,11 +163,10 @@ llvm::sys::path::append(P, "lib"); getFilePaths().push_back(P.str()); - if (!D.SysRoot.empty()) { - SmallString<128> P(D.SysRoot); - llvm::sys::path::append(P, "lib"); - getFilePaths().push_back(P.str()); - } + SmallString<128> S(!D.SysRoot.empty() ? D.SysRoot + : getSysRoot(D, getTriple())); + llvm::sys::path::append(S, "lib"); + getFilePaths().push_back(S.str()); } std::string Fuchsia::ComputeEffectiveClangTriple(const ArgList &Args, @@ -236,11 +241,10 @@ return; } - if (!D.SysRoot.empty()) { - SmallString<128> P(D.SysRoot); - llvm::sys::path::append(P, "include"); - addExternCSystemInclude(DriverArgs, CC1Args, P.str()); - } + SmallString<128> S(!D.SysRoot.empty() ? D.SysRoot + : getSysRoot(D, getTriple())); + llvm::sys::path::append(S, "include"); + addExternCSystemInclude(DriverArgs, CC1Args, S.str()); } void Fuchsia::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
Index: lib/Driver/ToolChains/Fuchsia.cpp =================================================================== --- lib/Driver/ToolChains/Fuchsia.cpp +++ lib/Driver/ToolChains/Fuchsia.cpp @@ -146,6 +146,12 @@ return P.str(); } +static std::string getSysRoot(const Driver &D, llvm::Triple Triple) { + SmallString<128> P(llvm::sys::path::parent_path(D.Dir)); + llvm::sys::path::append(P, normalizeTriple(Triple)); + return P.str(); +} + Fuchsia::Fuchsia(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) : ToolChain(D, Triple, Args) { @@ -157,11 +163,10 @@ llvm::sys::path::append(P, "lib"); getFilePaths().push_back(P.str()); - if (!D.SysRoot.empty()) { - SmallString<128> P(D.SysRoot); - llvm::sys::path::append(P, "lib"); - getFilePaths().push_back(P.str()); - } + SmallString<128> S(!D.SysRoot.empty() ? D.SysRoot + : getSysRoot(D, getTriple())); + llvm::sys::path::append(S, "lib"); + getFilePaths().push_back(S.str()); } std::string Fuchsia::ComputeEffectiveClangTriple(const ArgList &Args, @@ -236,11 +241,10 @@ return; } - if (!D.SysRoot.empty()) { - SmallString<128> P(D.SysRoot); - llvm::sys::path::append(P, "include"); - addExternCSystemInclude(DriverArgs, CC1Args, P.str()); - } + SmallString<128> S(!D.SysRoot.empty() ? D.SysRoot + : getSysRoot(D, getTriple())); + llvm::sys::path::append(S, "include"); + addExternCSystemInclude(DriverArgs, CC1Args, S.str()); } void Fuchsia::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits