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

Reply via email to