static const char *const AArch64AndroidTriples[] = {
"aarch64-linux-android"};
static const char *const ARMAndroidTriples[] = {"arm-linux-androideabi"};
- static const char *const MIPSELAndroidTriples[] = {"mipsel-linux-android"};
- static const char *const MIPS64ELAndroidTriples[] = {
- "mips64el-linux-android"};
static const char *const X86AndroidTriples[] = {"i686-linux-android"};
static const char *const X86_64AndroidTriples[] = {"x86_64-linux-android"};
LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
TripleAliases.append(begin(ARMAndroidTriples), end(ARMAndroidTriples));
break;
- case llvm::Triple::mipsel:
- LibDirs.append(begin(MIPSELLibDirs), end(MIPSELLibDirs));
- TripleAliases.append(begin(MIPSELAndroidTriples),
- end(MIPSELAndroidTriples));
- BiarchLibDirs.append(begin(MIPS64ELLibDirs), end(MIPS64ELLibDirs));
- BiarchTripleAliases.append(begin(MIPS64ELAndroidTriples),
- end(MIPS64ELAndroidTriples));
- break;
- case llvm::Triple::mips64el:
- LibDirs.append(begin(MIPS64ELLibDirs), end(MIPS64ELLibDirs));
- TripleAliases.append(begin(MIPS64ELAndroidTriples),
- end(MIPS64ELAndroidTriples));
- BiarchLibDirs.append(begin(MIPSELLibDirs), end(MIPSELLibDirs));
- BiarchTripleAliases.append(begin(MIPSELAndroidTriples),
- end(MIPSELAndroidTriples));
- break;
case llvm::Triple::x86_64:
LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
TripleAliases.append(begin(X86_64AndroidTriples),
case llvm::Triple::mips:
return IsMipsR6 ? "mipsisa32r6-linux-gnu" : "mips-linux-gnu";
case llvm::Triple::mipsel:
- if (IsAndroid)
- return "mipsel-linux-android";
return IsMipsR6 ? "mipsisa32r6el-linux-gnu" : "mipsel-linux-gnu";
case llvm::Triple::mips64: {
std::string MT = std::string(IsMipsR6 ? "mipsisa64r6" : "mips64") +
break;
}
case llvm::Triple::mips64el: {
- if (IsAndroid)
- return "mips64el-linux-android";
std::string MT = std::string(IsMipsR6 ? "mipsisa64r6el" : "mips64el") +
"-linux-" + (IsMipsN32Abi ? "gnuabin32" : "gnuabi64");
if (D.getVFS().exists(concat(SysRoot, "/lib", MT)))
// CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/lib"
//
// RUN: %clang -### %s 2>&1 \
-// RUN: --target=mipsel-linux-android21 \
-// RUN: -mips32 \
-// RUN: --gcc-toolchain=%S/Inputs/basic_android_ndk_tree \
-// RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
-// CHECK-MIPS: "-cc1"
-// CHECK-MIPS: "-internal-isystem" "{{.*}}/include/c++/v1"
-// CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/include"
-// 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"
-//
-// RUN: %clang -### %s 2>&1 \
// RUN: --target=i686-linux-android21 \
// RUN: --gcc-toolchain=%S/Inputs/basic_android_ndk_tree \
// RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
// RUN: %clang %s -### -o %t.o 2>&1 --target=arm-linux-android24 \
// RUN: | FileCheck --check-prefix=PIE %s
-// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-android \
-// RUN: | FileCheck --check-prefix=PIE %s
-// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-android24 \
-// RUN: | FileCheck --check-prefix=PIE %s
-
// RUN: %clang %s -### -o %t.o 2>&1 --target=i686-linux-android \
// RUN: | FileCheck --check-prefix=PIE %s
// RUN: %clang %s -### -o %t.o 2>&1 --target=i686-linux-android24 \
// RUN: %clang %s -### -o %t.o 2>&1 --target=arm64-linux-android24 \
// RUN: | FileCheck --check-prefix=PIE %s
-// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-android \
-// RUN: | FileCheck --check-prefix=PIE %s
-// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-android24 \
-// RUN: | FileCheck --check-prefix=PIE %s
-
// RUN: %clang %s -### -o %t.o 2>&1 --target=x86_64-linux-android \
// RUN: | FileCheck --check-prefix=PIE %s
// RUN: %clang %s -### -o %t.o 2>&1 --target=x86_64-linux-android24 \
// CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.8"
// CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.8/../../../../aarch64-linux-android/lib"
// CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib"
-//
-// RUN: %clang -### %s 2>&1 \
-// RUN: --target=mipsel-linux-android \
-// RUN: -mips32 -stdlib=libstdc++ \
-// RUN: --gcc-toolchain=%S/Inputs/basic_android_tree \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
-// CHECK-MIPS: "-cc1"
-// CHECK-MIPS: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3"
-// CHECK-MIPS: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3/mipsel-linux-android"
-// CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/include"
-// CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
-// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
-// CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3"
-// CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/../../../../mipsel-linux-android/lib"
-// CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib"
-//
-// RUN: %clang -### %s 2>&1 \
-// RUN: --target=mipsel-linux-android \
-// RUN: -march=mips32 -mips32r2 -stdlib=libstdc++ \
-// RUN: --gcc-toolchain=%S/Inputs/basic_android_tree \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-MIPSR2 %s
-// CHECK-MIPSR2: "-cc1"
-// CHECK-MIPSR2: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3"
-// CHECK-MIPSR2: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3/mipsel-linux-android"
-// 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.4.3/mips-r2"
-// CHECK-MIPSR2: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/../../../../mipsel-linux-android/lib"
-// CHECK-MIPSR2: "-L{{.*}}/sysroot/usr/lib"
-//
-// RUN: %clang -### %s 2>&1 \
-// RUN: --target=mipsel-linux-android \
-// RUN: -mips32 -march=mips32r2 -stdlib=libstdc++ \
-// RUN: --gcc-toolchain=%S/Inputs/basic_android_tree \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-MIPSR2-A %s
-// CHECK-MIPSR2-A: "-cc1"
-// CHECK-MIPSR2-A: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3"
-// CHECK-MIPSR2-A: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3/mipsel-linux-android"
-// CHECK-MIPSR2-A: "-internal-externc-isystem" "{{.*}}/sysroot/include"
-// CHECK-MIPSR2-A: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
-// CHECK-MIPSR2-A: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
-// CHECK-MIPSR2-A: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/mips-r2"
-// CHECK-MIPSR2-A: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/../../../../mipsel-linux-android/lib"
-// CHECK-MIPSR2-A: "-L{{.*}}/sysroot/usr/lib"
// MIPSR6EL: "-target-cpu" "mips32r6"
// MIPSR6EL: "-mfloat-abi" "hard"
-// RUN: %clang -target mipsel-linux-android -### -S %s 2>&1 | \
-// RUN: FileCheck -check-prefix=MIPSEL-ANDROID %s
-// MIPSEL-ANDROID: clang
-// MIPSEL-ANDROID: "-cc1"
-// MIPSEL-ANDROID: "-target-cpu" "mips32"
-// MIPSEL-ANDROID: "-target-feature" "+fpxx"
-// MIPSEL-ANDROID: "-target-feature" "+nooddspreg"
-// MIPSEL-ANDROID: "-mfloat-abi" "hard"
-
-// RUN: %clang -target mipsel-linux-android -### -S %s -mcpu=mips32r6 2>&1 | \
-// RUN: FileCheck -check-prefix=MIPSEL-ANDROID-R6 %s
-// MIPSEL-ANDROID-R6: clang
-// MIPSEL-ANDROID-R6: "-cc1"
-// MIPSEL-ANDROID-R6: "-target-cpu" "mips32r6"
-// MIPSEL-ANDROID-R6: "-target-feature" "+fp64"
-// MIPSEL-ANDROID-R6: "-target-feature" "+nooddspreg"
-// MIPSEL-ANDROID-R6: "-mfloat-abi" "hard"
-
// RUN: %clang -target mips64-linux-gnu -### -S %s 2>&1 | \
// RUN: FileCheck -check-prefix=MIPS64 %s
// MIPS64: clang
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
-// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
-// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \
// RUN: --gcc-toolchain="" \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: -shared \
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -shared \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
-// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -shared \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
-// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \
// RUN: --gcc-toolchain="" \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: -static \
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -static \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
-// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -static \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
-// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \
// RUN: --gcc-toolchain="" \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: -pie \
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mipsel-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -pie \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
-// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mips64el-linux-android -rtlib=platform --unwindlib=platform \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -pie \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
-// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=i686-linux-android -rtlib=platform --unwindlib=platform \
// RUN: --gcc-toolchain="" \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mipsel-linux-android \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
-// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=aarch64-linux-android \
// RUN: --gcc-toolchain="" \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mipsel-linux-android -pthread \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
-// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mips64el-linux-android -pthread \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
-// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=i686-linux-android -pthread \
// RUN: --gcc-toolchain="" \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: -shared \
// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mipsel-linux-android -pthread \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -shared \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
-// RUN: %clang -### %s -no-pie 2>&1 \
-// RUN: --target=mips64el-linux-android -pthread \
-// RUN: --gcc-toolchain="" \
-// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
-// RUN: -shared \
-// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
-// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=i686-linux-android -pthread \
// RUN: --gcc-toolchain="" \
// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
// RUN: %clang -c %s -target arm-linux-androideabi24 -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
//
-// RUN: %clang -c %s -target mipsel-linux-android24 -### 2>&1 \
-// RUN: | FileCheck %s --check-prefix=CHECK-PIE1
-//
// 64-bit Android targets are always PIE.
// RUN: %clang -c %s -target aarch64-linux-android -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-PIE2