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