[Driver] Use the per-API level Android library directories.
authorDan Albert <danalbert@google.com>
Tue, 17 Apr 2018 20:42:07 +0000 (20:42 +0000)
committerDan Albert <danalbert@google.com>
Tue, 17 Apr 2018 20:42:07 +0000 (20:42 +0000)
Summary:
Android sysroots contain libraries for each OS version, as well as a
handful of unversioned libraries in the typical multiarch directory.

Reviewers: srhines, eugenis, george.burgess.iv

Reviewed By: eugenis

Subscribers: javed.absar, cfe-commits

Differential Revision: https://reviews.llvm.org/D45290

llvm-svn: 330213

99 files changed:
clang/lib/Driver/ToolChains/Linux.cpp
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_dynamic.o [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr6/crtbegin_dynamic.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_so.o [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr6/crtbegin_so.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/crtbegin_static.o [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr6/crtbegin_static.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/crtend_android.o [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr6/crtend_android.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/crtend_so.o [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr6/crtend_so.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/libc.so [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr2/crtend_so.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/libdl.so [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr2/crtend_android.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/libm.so [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr2/crtbegin_static.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/21/libstdc++.so [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr2/crtbegin_so.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/libc.a [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/libr2/crtbegin_dynamic.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/libdl.a [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtend_so.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/libm.a [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtend_android.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/aarch64-linux-android/libstdc++.a [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtbegin_static.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtbegin_dynamic.o [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtbegin_dynamic.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtbegin_so.o [moved from clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtbegin_so.o with 100% similarity]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_dynamic.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libc.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libdl.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libm.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libstdc++.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_dynamic.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_dynamic.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libc.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libdl.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libm.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libstdc++.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_dynamic.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_dynamic.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_dynamic.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_dynamic.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_static.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtend_android.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtend_so.o [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libc.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libdl.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libm.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libstdc++.so [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libc.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libdl.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libm.a [new file with mode: 0644]
clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libstdc++.a [new file with mode: 0644]
clang/test/Driver/android-ndk-standalone.cpp

index 5473be2..e584fcd 100644 (file)
@@ -22,6 +22,7 @@
 #include "llvm/Option/ArgList.h"
 #include "llvm/ProfileData/InstrProf.h"
 #include "llvm/Support/Path.h"
+#include "llvm/Support/ScopedPrinter.h"
 #include <system_error>
 
 using namespace clang::driver;
@@ -350,6 +351,21 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
 
   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
+
+  if (IsAndroid) {
+    // Android sysroots contain a library directory for each supported OS
+    // version as well as some unversioned libraries in the usual multiarch
+    // directory.
+    unsigned Major;
+    unsigned Minor;
+    unsigned Micro;
+    Triple.getEnvironmentVersion(Major, Minor, Micro);
+    addPathIfExists(D,
+                    SysRoot + "/usr/lib/" + MultiarchTriple + "/" +
+                        llvm::to_string(Major),
+                    Paths);
+  }
+
   addPathIfExists(D, SysRoot + "/usr/lib/" + MultiarchTriple, Paths);
   addPathIfExists(D, SysRoot + "/usr/lib/../" + OSLibDir, Paths);
   if (IsRISCV) {
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/14/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_dynamic.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_dynamic.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/21/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libc.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libc.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libdl.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libdl.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libm.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libm.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libstdc++.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/arm-linux-androideabi/libstdc++.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_dynamic.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_dynamic.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/14/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_dynamic.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_dynamic.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/21/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libc.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libc.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libdl.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libdl.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libm.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libm.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libstdc++.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/i686-linux-android/libstdc++.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_dynamic.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_dynamic.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mips64el-linux-android/21/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_dynamic.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_dynamic.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/14/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_dynamic.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_dynamic.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/mipsel-linux-android/21/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_dynamic.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_dynamic.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_static.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtbegin_static.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtend_android.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtend_android.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtend_so.o b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/crtend_so.o
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libc.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libc.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libdl.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libdl.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libm.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libm.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libstdc++.so b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/21/libstdc++.so
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libc.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libc.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libdl.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libdl.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libm.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libm.a
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libstdc++.a b/clang/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/x86_64-linux-android/libstdc++.a
new file mode 100644 (file)
index 0000000..e69de29
index 7c2c814..fb5ce25 100644 (file)
@@ -2,7 +2,7 @@
 // toolchain.
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // RUN:   | FileCheck  %s
 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
+// CHECK: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21"
+// CHECK: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi"
 // CHECK: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/arm-linux-androideabi/lib"
 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
-// CHECK: "-L{{.*}}/sysroot/usr/lib"
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target armv7a-none-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi14 \
+// RUN:     -B%S/Inputs/basic_android_ndk_tree \
+// RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
+// RUN:   | FileCheck --check-prefix=CHECK-14 %s
+// CHECK-14: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/14"
+// CHECK-14: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi"
+//
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+// RUN:     -target armv7a-none-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7 %s
 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
+// CHECK-ARMV7: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21"
+// CHECK-ARMV7: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi"
 // CHECK-ARMV7: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
-// CHECK-ARMV7: "-L{{.*}}/sysroot/usr/lib"
 //
 // Other flags that can trigger armv7 mode.
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -march=armv7 \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7 %s
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -march=armv7a \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7 %s
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -march=armv7-a \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 //
 // ARM thumb mode.
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -mthumb \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7"
 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7/thumb"
 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
+// CHECK-THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21"
+// CHECK-THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi"
 // CHECK-THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7"
 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7/thumb"
 //
 // ARM V7 thumb mode.
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -march=armv7-a -mthumb \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
+// CHECK-ARMV7THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21"
+// CHECK-ARMV7THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi"
 // CHECK-ARMV7THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
-// CHECK-ARMV7THUMB: "-L{{.*}}/sysroot/usr/lib"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target arm-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -march=armv7-a -mthumb \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target armv7a-none-linux-androideabi -stdlib=libstdc++ \
+// RUN:     -target armv7a-none-linux-androideabi21 -stdlib=libstdc++ \
 // RUN:     -mthumb \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7THUMB %s
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target aarch64-linux-android -stdlib=libstdc++ \
+// RUN:     -target aarch64-linux-android21 -stdlib=libstdc++ \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // RUN:   | FileCheck --check-prefix=CHECK-AARCH64 %s
 // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
 // CHECK-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
 // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9"
+// CHECK-AARCH64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android/21"
+// CHECK-AARCH64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android"
 // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/lib"
-// CHECK-AARCH64: "-L{{.*}}/sysroot/usr/lib"
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target arm64-linux-android -stdlib=libstdc++ \
+// RUN:     -target arm64-linux-android21 -stdlib=libstdc++ \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM64 %s
 // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
 // CHECK-ARM64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
 // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9"
+// CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android/21"
+// CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android"
 // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/lib"
-// CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib"
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target mipsel-linux-android \
+// RUN:     -target mipsel-linux-android21 \
 // RUN:     -mips32 -stdlib=libstdc++ \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
 // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
 // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9"
+// CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib/mipsel-linux-android/21"
+// CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib/mipsel-linux-android"
 // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/../../../../mipsel-linux-android/lib"
-// CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib"
-//
-// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target mipsel-linux-android \
-// RUN:     -march=mips32 -mips32r2 -stdlib=libstdc++ \
-// RUN:     -B%S/Inputs/basic_android_ndk_tree \
-// RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
-// RUN:   | FileCheck --check-prefix=CHECK-MIPSR2 %s
-// CHECK-MIPSR2: {{.*}}clang{{.*}}" "-cc1"
-// CHECK-MIPSR2: "-internal-isystem" "{{.*}}/include/c++/4.9"
-// CHECK-MIPSR2: "-internal-isystem" "{{.*}}/include/c++/4.9/mipsel-linux-android/mips-r2"
-// CHECK-MIPSR2: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
-// CHECK-MIPSR2: "-internal-externc-isystem" "{{.*}}/sysroot/include"
-// CHECK-MIPSR2: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
-// CHECK-MIPSR2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
-// CHECK-MIPSR2: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/mips-r2"
-// CHECK-MIPSR2: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/../../../../mipsel-linux-android/lib/../libr2"
-// CHECK-MIPSR2: "-L{{.*}}/sysroot/usr/lib/../libr2"
-//
-// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target mipsel-linux-android \
-// RUN:     -mips32r6 -stdlib=libstdc++ \
-// RUN:     -B%S/Inputs/basic_android_ndk_tree \
-// RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
-// RUN:   | FileCheck --check-prefix=CHECK-MIPSR6 %s
-// CHECK-MIPSR6: {{.*}}clang{{.*}}" "-cc1"
-// CHECK-MIPSR6: "-internal-isystem" "{{.*}}/include/c++/4.9"
-// CHECK-MIPSR6: "-internal-isystem" "{{.*}}/include/c++/4.9/mipsel-linux-android/mips-r6"
-// CHECK-MIPSR6: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
-// CHECK-MIPSR6: "-internal-externc-isystem" "{{.*}}/sysroot/include"
-// CHECK-MIPSR6: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
-// CHECK-MIPSR6: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
-// CHECK-MIPSR6: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/mips-r6"
-// CHECK-MIPSR6: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/../../../../mipsel-linux-android/lib/../libr6"
-// CHECK-MIPSR6: "-L{{.*}}/sysroot/usr/lib/../libr6"
-//
-// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target mips64el-linux-android \
-// RUN:     -march=mips32 -mips32r2 -stdlib=libstdc++ \
-// RUN:     -B%S/Inputs/basic_android_ndk_tree \
-// RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
-// RUN:   | FileCheck --check-prefix=CHECK-MIPS64-R2 %s
-// CHECK-MIPS64-R2: {{.*}}clang{{.*}}" "-cc1"
-// CHECK-MIPS64-R2: "-internal-isystem" "{{.*}}/include/c++/4.9"
-// CHECK-MIPS64-R2: "-internal-isystem" "{{.*}}/include/mips64el-linux-android/c++/4.9/mips-r2"
-// CHECK-MIPS64-R2: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
-// CHECK-MIPS64-R2: "-internal-externc-isystem" "{{.*}}/sysroot/include"
-// CHECK-MIPS64-R2: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
-// CHECK-MIPS64-R2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
-// CHECK-MIPS64-R2: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/32/mips-r2"
-// CHECK-MIPS64-R2: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/../../../../mips64el-linux-android/lib/../libr2"
-// CHECK-MIPS64-R2: "-L{{.*}}/sysroot/usr/lib/../libr2"
-//
-// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target mips64el-linux-android \
-// RUN:     -march=mips32 -mips32r6 -stdlib=libstdc++ \
-// RUN:     -B%S/Inputs/basic_android_ndk_tree \
-// RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
-// RUN:   | FileCheck --check-prefix=CHECK-MIPS64-R6 %s
-// CHECK-MIPS64-R6: {{.*}}clang{{.*}}" "-cc1"
-// CHECK-MIPS64-R6: "-internal-isystem" "{{.*}}/include/c++/4.9"
-// CHECK-MIPS64-R6: "-internal-isystem" "{{.*}}/include/mips64el-linux-android/c++/4.9/mips-r6"
-// CHECK-MIPS64-R6: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
-// CHECK-MIPS64-R6: "-internal-externc-isystem" "{{.*}}/sysroot/include"
-// CHECK-MIPS64-R6: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
-// CHECK-MIPS64-R6: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
-// CHECK-MIPS64-R6: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/32/mips-r6"
-// CHECK-MIPS64-R6: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/../../../../mips64el-linux-android/lib/../libr6"
-// CHECK-MIPS64-R6: "-L{{.*}}/sysroot/usr/lib/../libr6"
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target i686-linux-android \
+// RUN:     -target i686-linux-android21 \
 // RUN:     -stdlib=libstdc++ \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // CHECK-I686: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
 // CHECK-I686: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
 // CHECK-I686: "-L{{.*}}/lib/gcc/i686-linux-android/4.9"
+// CHECK-I686: "-L{{.*}}/sysroot/usr/lib/i686-linux-android/21"
+// CHECK-I686: "-L{{.*}}/sysroot/usr/lib/i686-linux-android"
 // CHECK-I686: "-L{{.*}}/lib/gcc/i686-linux-android/4.9/../../../../i686-linux-android/lib"
-// CHECK-I686: "-L{{.*}}/sysroot/usr/lib"
 //
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN:     -target x86_64-linux-android \
+// RUN:     -target x86_64-linux-android21 \
 // RUN:     -stdlib=libstdc++ \
 // RUN:     -B%S/Inputs/basic_android_ndk_tree \
 // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
 // CHECK-X86_64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
 // CHECK-X86_64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
 // CHECK-X86_64: "-L{{.*}}/lib/gcc/x86_64-linux-android/4.9"
+// CHECK-X86_64: "-L{{.*}}/sysroot/usr/lib/x86_64-linux-android/21"
+// CHECK-X86_64: "-L{{.*}}/sysroot/usr/lib/x86_64-linux-android"
 // CHECK-X86_64: "-L{{.*}}/lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/lib"
-// CHECK-X86_64: "-L{{.*}}/sysroot/usr/lib"