summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Linux.cpp
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2018-05-02 19:38:37 +0000
committerDan Albert <danalbert@google.com>2018-05-02 19:38:37 +0000
commit4d64306a92a93a8e4f20c0c83e164c223b26b848 (patch)
treec8d70d9e32bc543d7c219da9547477c9e839c797 /clang/lib/Driver/ToolChains/Linux.cpp
parentf6f114936a55226ef6ed306d86867e328785d39c (diff)
downloadbcm5719-llvm-4d64306a92a93a8e4f20c0c83e164c223b26b848.tar.gz
bcm5719-llvm-4d64306a92a93a8e4f20c0c83e164c223b26b848.zip
[Driver] Infer Android sysroot location.
Summary: Android toolchains include their headers and libraries in a self-contained directory within the toolchain. Reviewers: srhines Reviewed By: srhines Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D45291 llvm-svn: 331390
Diffstat (limited to 'clang/lib/Driver/ToolChains/Linux.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Linux.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index 5dca5ff15dc..8fb595e67e0 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -429,6 +429,15 @@ std::string Linux::computeSysRoot() const {
if (!getDriver().SysRoot.empty())
return getDriver().SysRoot;
+ if (getTriple().isAndroid()) {
+ // Android toolchains typically include a sysroot at ../sysroot relative to
+ // the clang binary.
+ const StringRef ClangDir = getDriver().getInstalledDir();
+ std::string AndroidSysRootPath = (ClangDir + "/../sysroot").str();
+ if (getVFS().exists(AndroidSysRootPath))
+ return AndroidSysRootPath;
+ }
+
if (!GCCInstallation.isValid() || !tools::isMipsArch(getTriple().getArch()))
return std::string();
OpenPOWER on IntegriCloud