1 // Test header and library paths when Clang is used with Android standalone 2 // toolchain. 3 // 4 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 5 // RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ 6 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 7 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 8 // RUN: | FileCheck %s 9 // CHECK: {{.*}}clang{{.*}}" "-cc1" 10 // CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 11 // CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9" 12 // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" 13 // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" 14 // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" 15 // CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" 16 // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" 17 // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" 18 // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" 19 // CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 20 // CHECK: "-internal-isystem" "{{.*}}/sysroot/usr/local/include" 21 // CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include" 22 // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/arm-linux-androideabi" 23 // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/include" 24 // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 25 // CHECK: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 26 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb" 27 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a" 28 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb" 29 // CHECK: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9" 30 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb" 31 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a" 32 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb" 33 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb" 34 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a" 35 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb" 36 // CHECK: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21" 37 // CHECK: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi" 38 // CHECK: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/arm-linux-androideabi/lib" 39 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb" 40 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a" 41 // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb" 42 // 43 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 44 // RUN: -target arm-linux-androideabi14 \ 45 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 46 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 47 // RUN: | FileCheck --check-prefix=CHECK-14 %s 48 // CHECK-14: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/14" 49 // CHECK-14: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi" 50 // 51 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 52 // RUN: -target armv7a-none-linux-androideabi21 -stdlib=libstdc++ \ 53 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 54 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 55 // RUN: | FileCheck --check-prefix=CHECK-ARMV7 %s 56 // CHECK-ARMV7: {{.*}}clang{{.*}}" "-cc1" 57 // CHECK-ARMV7: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 58 // CHECK-ARMV7: "-internal-isystem" "{{.*}}/include/c++/4.9" 59 // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" 60 // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" 61 // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" 62 // CHECK-ARMV7: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" 63 // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" 64 // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" 65 // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" 66 // CHECK-ARMV7: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 67 // CHECK-ARMV7: "-internal-isystem" "{{.*}}/sysroot/usr/local/include" 68 // CHECK-ARMV7: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include" 69 // CHECK-ARMV7: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/arm-linux-androideabi" 70 // CHECK-ARMV7: "-internal-externc-isystem" "{{.*}}/sysroot/include" 71 // CHECK-ARMV7: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 72 // CHECK-ARMV7: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 73 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb" 74 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb" 75 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9" 76 // CHECK-ARMV7: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a" 77 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb" 78 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb" 79 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9" 80 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb" 81 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb" 82 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib" 83 // CHECK-ARMV7: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21" 84 // CHECK-ARMV7: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi" 85 // CHECK-ARMV7: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a" 86 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb" 87 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb" 88 // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib" 89 // 90 // Other flags that can trigger armv7 mode. 91 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 92 // RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ 93 // RUN: -march=armv7 \ 94 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 95 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 96 // RUN: | FileCheck --check-prefix=CHECK-ARMV7 %s 97 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 98 // RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ 99 // RUN: -march=armv7a \ 100 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 101 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 102 // RUN: | FileCheck --check-prefix=CHECK-ARMV7 %s 103 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 104 // RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ 105 // RUN: -march=armv7-a \ 106 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 107 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 108 // RUN: | FileCheck --check-prefix=CHECK-ARMV7 %s 109 // 110 // ARM thumb mode. 111 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 112 // RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ 113 // RUN: -mthumb \ 114 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 115 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 116 // RUN: | FileCheck --check-prefix=CHECK-THUMB %s 117 // CHECK-THUMB: {{.*}}clang{{.*}}" "-cc1" 118 // CHECK-THUMB: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 119 // CHECK-THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9" 120 // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7/thumb" 121 // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7" 122 // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" 123 // CHECK-THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" 124 // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7/thumb" 125 // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7" 126 // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" 127 // CHECK-THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 128 // CHECK-THUMB: "-internal-isystem" "{{.*}}/sysroot/usr/local/include" 129 // CHECK-THUMB: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include" 130 // CHECK-THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/arm-linux-androideabi" 131 // CHECK-THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/include" 132 // CHECK-THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 133 // CHECK-THUMB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 134 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb" 135 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a" 136 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9" 137 // CHECK-THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb" 138 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb" 139 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a" 140 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9" 141 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7" 142 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7/thumb" 143 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib" 144 // CHECK-THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21" 145 // CHECK-THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi" 146 // CHECK-THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb" 147 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7" 148 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7/thumb" 149 // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib" 150 // CHECK-THUMB: "-L{{.*}}/sysroot/usr/lib" 151 // 152 // ARM V7 thumb mode. 153 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 154 // RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ 155 // RUN: -march=armv7-a -mthumb \ 156 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 157 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 158 // RUN: | FileCheck --check-prefix=CHECK-ARMV7THUMB %s 159 // CHECK-ARMV7THUMB: {{.*}}clang{{.*}}" "-cc1" 160 // CHECK-ARMV7THUMB: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 161 // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9" 162 // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" 163 // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" 164 // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" 165 // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb" 166 // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a" 167 // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb" 168 // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi" 169 // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 170 // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/sysroot/usr/local/include" 171 // CHECK-ARMV7THUMB: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include" 172 // CHECK-ARMV7THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/arm-linux-androideabi" 173 // CHECK-ARMV7THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/include" 174 // CHECK-ARMV7THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 175 // CHECK-ARMV7THUMB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 176 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb" 177 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a" 178 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9" 179 // CHECK-ARMV7THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb" 180 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb" 181 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a" 182 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9" 183 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb" 184 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a" 185 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib" 186 // CHECK-ARMV7THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi/21" 187 // CHECK-ARMV7THUMB: "-L{{.*}}/sysroot/usr/lib/arm-linux-androideabi" 188 // CHECK-ARMV7THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb" 189 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb" 190 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a" 191 // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib" 192 193 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 194 // RUN: -target arm-linux-androideabi21 -stdlib=libstdc++ \ 195 // RUN: -march=armv7-a -mthumb \ 196 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 197 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 198 // RUN: -print-multi-lib \ 199 // RUN: | FileCheck --check-prefix=CHECK-ARM-MULTILIBS %s 200 201 // CHECK-ARM-MULTILIBS: thumb;@mthumb 202 // CHECK-ARM-MULTILIBS-NEXT: armv7-a;@march=armv7-a 203 // CHECK-ARM-MULTILIBS-NEXT: armv7-a/thumb;@march=armv7-a@mthumb 204 // CHECK-ARM-MULTILIBS-NEXT: .; 205 206 // 207 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 208 // RUN: -target armv7a-none-linux-androideabi21 -stdlib=libstdc++ \ 209 // RUN: -mthumb \ 210 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 211 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 212 // RUN: | FileCheck --check-prefix=CHECK-ARMV7THUMB %s 213 // 214 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 215 // RUN: -target aarch64-linux-android21 -stdlib=libstdc++ \ 216 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 217 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 218 // RUN: | FileCheck --check-prefix=CHECK-AARCH64 %s 219 // CHECK-AARCH64: {{.*}}clang{{.*}}" "-cc1" 220 // CHECK-AARCH64: "-internal-isystem" "{{.*}}/include/c++/4.9" 221 // CHECK-AARCH64: "-internal-isystem" "{{.*}}/include/c++/4.9/aarch64-linux-android" 222 // CHECK-AARCH64: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 223 // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/aarch64-linux-android" 224 // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/include" 225 // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 226 // CHECK-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 227 // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9" 228 // CHECK-AARCH64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android/21" 229 // CHECK-AARCH64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android" 230 // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/lib" 231 // 232 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 233 // RUN: -target arm64-linux-android21 -stdlib=libstdc++ \ 234 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 235 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 236 // RUN: | FileCheck --check-prefix=CHECK-ARM64 %s 237 // CHECK-ARM64: {{.*}}clang{{.*}}" "-cc1" 238 // CHECK-ARM64: "-internal-isystem" "{{.*}}/include/c++/4.9" 239 // CHECK-ARM64: "-internal-isystem" "{{.*}}/include/c++/4.9/aarch64-linux-android" 240 // CHECK-ARM64: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 241 // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/aarch64-linux-android" 242 // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/include" 243 // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 244 // CHECK-ARM64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 245 // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9" 246 // CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android/21" 247 // CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib/aarch64-linux-android" 248 // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/lib" 249 // 250 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 251 // RUN: -target mipsel-linux-android21 \ 252 // RUN: -mips32 -stdlib=libstdc++ \ 253 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 254 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 255 // RUN: | FileCheck --check-prefix=CHECK-MIPS %s 256 // CHECK-MIPS: {{.*}}clang{{.*}}" "-cc1" 257 // CHECK-MIPS: "-internal-isystem" "{{.*}}/include/c++/4.9" 258 // CHECK-MIPS: "-internal-isystem" "{{.*}}/include/c++/4.9/mipsel-linux-android" 259 // CHECK-MIPS: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 260 // CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/include" 261 // CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 262 // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 263 // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9" 264 // CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib/mipsel-linux-android/21" 265 // CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib/mipsel-linux-android" 266 // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/../../../../mipsel-linux-android/lib" 267 // 268 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 269 // RUN: -target i686-linux-android21 \ 270 // RUN: -stdlib=libstdc++ \ 271 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 272 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 273 // RUN: | FileCheck --check-prefix=CHECK-I686 %s 274 // CHECK-I686: {{.*}}clang{{.*}}" "-cc1" 275 // CHECK-I686: "-internal-isystem" "{{.*}}/include/c++/4.9" 276 // CHECK-I686: "-internal-isystem" "{{.*}}/include/c++/4.9/i686-linux-android" 277 // CHECK-I686: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 278 // CHECK-I686: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/i686-linux-android" 279 // CHECK-I686: "-internal-externc-isystem" "{{.*}}/sysroot/include" 280 // CHECK-I686: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 281 // CHECK-I686: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 282 // CHECK-I686: "-L{{.*}}/lib/gcc/i686-linux-android/4.9" 283 // CHECK-I686: "-L{{.*}}/sysroot/usr/lib/i686-linux-android/21" 284 // CHECK-I686: "-L{{.*}}/sysroot/usr/lib/i686-linux-android" 285 // CHECK-I686: "-L{{.*}}/lib/gcc/i686-linux-android/4.9/../../../../i686-linux-android/lib" 286 // 287 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 288 // RUN: -target x86_64-linux-android21 \ 289 // RUN: -stdlib=libstdc++ \ 290 // RUN: -B%S/Inputs/basic_android_ndk_tree \ 291 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \ 292 // RUN: | FileCheck --check-prefix=CHECK-X86_64 %s 293 // CHECK-X86_64: {{.*}}clang{{.*}}" "-cc1" 294 // CHECK-X86_64: "-internal-isystem" "{{.*}}/include/c++/4.9" 295 // CHECK-X86_64: "-internal-isystem" "{{.*}}/include/c++/4.9/x86_64-linux-android" 296 // CHECK-X86_64: "-internal-isystem" "{{.*}}/include/c++/4.9/backward" 297 // CHECK-X86_64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include/x86_64-linux-android" 298 // CHECK-X86_64: "-internal-externc-isystem" "{{.*}}/sysroot/include" 299 // CHECK-X86_64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include" 300 // CHECK-X86_64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 301 // CHECK-X86_64: "-L{{.*}}/lib/gcc/x86_64-linux-android/4.9" 302 // CHECK-X86_64: "-L{{.*}}/sysroot/usr/lib/x86_64-linux-android/21" 303 // CHECK-X86_64: "-L{{.*}}/sysroot/usr/lib/x86_64-linux-android" 304 // CHECK-X86_64: "-L{{.*}}/lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/lib" 305 306 // We need two sets of tests to verify that we both don't find non-Android 307 // toolchains installations and that we *do* find Android toolchains. We can't 308 // do both at the same time in this environment because we need to pass 309 // --sysroot to find the toolchains which would override searching in /usr. In a 310 // production environment --sysroot is not used and the toolchains are instead 311 // found relative to the clang binary, so both would be considered. 312 313 // RUN: %clang -v --target=i686-linux-android \ 314 // RUN: 2>&1 | FileCheck --check-prefix=CHECK-I686-GCC-NOSYS %s 315 // 316 // CHECK-I686-GCC-NOSYS-NOT: Found candidate GCC installation: /usr{{.*}} 317 // 318 // RUN: %clang -v --target=i686-linux-android \ 319 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree \ 320 // RUN: 2>&1 | FileCheck --check-prefix=CHECK-I686-GCC %s 321 // 322 // CHECK-I686-GCC-NOT: Found candidate GCC installation: /usr{{.*}} 323 // CHECK-I686-GCC: Found candidate GCC installation: {{.*}}i686-linux-android{{[/\\]}}4.9 324 // CHECK-I686-GCC-NEXT: Found candidate GCC installation: {{.*}}x86_64-linux-android{{[/\\]}}4.9 325 // CHECK-I686-GCC-NEXT: Selected GCC installation: {{.*}}i686-linux-android{{[/\\]}}4.9 326 327 // RUN: %clang -v --target=x86_64-linux-android \ 328 // RUN: 2>&1 | FileCheck --check-prefix=CHECK-X86_64-GCC-NOSYS %s 329 // 330 // CHECK-X86_64-GCC-NOSYS-NOT: Found candidate GCC installation: /usr{{.*}} 331 332 // RUN: %clang -v --target=x86_64-linux-android \ 333 // RUN: --sysroot=%S/Inputs/basic_android_ndk_tree \ 334 // RUN: 2>&1 | FileCheck --check-prefix=CHECK-X86_64-GCC %s 335 // 336 // CHECK-X86_64-GCC-NOT: Found candidate GCC installation: /usr{{.*}} 337 // CHECK-X86_64-GCC: Found candidate GCC installation: {{.*}}i686-linux-android{{[/\\]}}4.9 338 // CHECK-X86_64-GCC-NEXT: Found candidate GCC installation: {{.*}}x86_64-linux-android{{[/\\]}}4.9 339 // CHECK-X86_64-GCC-NEXT: Selected GCC installation: {{.*}}x86_64-linux-android{{[/\\]}}4.9 340