1 // General tests that the header search paths detected by the driver and passed 2 // to CC1 are sane. 3 // 4 // Test a simulated installation of libc++ on Linux, both through sysroot and 5 // the installation path of Clang. 6 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 7 // RUN: -target x86_64-unknown-linux-gnu \ 8 // RUN: -stdlib=libc++ \ 9 // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ 10 // RUN: -resource-dir=%S/Inputs/resource_dir \ 11 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 12 // RUN: --gcc-toolchain="" \ 13 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s 14 // CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 15 // CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" 16 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/x86_64-unknown-linux-gnu/c++/v1" 17 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" 18 // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 19 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 20 // RUN: -target x86_64-unknown-linux-gnu \ 21 // RUN: -stdlib=libc++ \ 22 // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \ 23 // RUN: -resource-dir=%S/Inputs/resource_dir \ 24 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 25 // RUN: --gcc-toolchain="" \ 26 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s 27 // CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 28 // CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]" 29 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/x86_64-unknown-linux-gnu/c++/v1" 30 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1" 31 // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 32 // 33 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 34 // RUN: -target x86_64-unknown-linux-gnu \ 35 // RUN: -stdlib=libc++ \ 36 // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ 37 // RUN: -resource-dir=%S/Inputs/resource_dir \ 38 // RUN: --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \ 39 // RUN: --gcc-toolchain="" \ 40 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-SYSROOT %s 41 // CHECK-BASIC-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 42 // CHECK-BASIC-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" 43 // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/x86_64-unknown-linux-gnu/c++/v2" 44 // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2" 45 // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 46 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 47 // RUN: -target x86_64-unknown-linux-gnu \ 48 // RUN: -stdlib=libc++ \ 49 // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxxv2_tree/usr/bin \ 50 // RUN: -resource-dir=%S/Inputs/resource_dir \ 51 // RUN: --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \ 52 // RUN: --gcc-toolchain="" \ 53 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-INSTALL %s 54 // CHECK-BASIC-LIBCXXV2-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 55 // CHECK-BASIC-LIBCXXV2-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]" 56 // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/x86_64-unknown-linux-gnu/c++/v2" 57 // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v2" 58 // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 59 // 60 // Test Linux with both libc++ and libstdc++ installed. 61 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 62 // RUN: -target x86_64-unknown-linux-gnu \ 63 // RUN: -stdlib=libc++ \ 64 // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ 65 // RUN: -resource-dir=%S/Inputs/resource_dir \ 66 // RUN: --sysroot=%S/Inputs/basic_linux_libstdcxx_libcxxv2_tree \ 67 // RUN: --gcc-toolchain="" \ 68 // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT %s 69 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 70 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" 71 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/x86_64-unknown-linux-gnu/c++/v2" 72 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2" 73 // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 74 75 // Test Gentoo's weirdness both before and after they changed it in their GCC 76 // 4.6.4 release. 77 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 78 // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ 79 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.2_tree \ 80 // RUN: --gcc-toolchain="" \ 81 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-6-2 %s 82 // CHECK-GENTOO-4-6-2: "{{.*}}clang{{.*}}" "-cc1" 83 // CHECK-GENTOO-4-6-2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 84 // CHECK-GENTOO-4-6-2: "-isysroot" "[[SYSROOT:[^"]+]]" 85 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4" 86 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/x86_64-pc-linux-gnu" 87 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/backward" 88 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 89 // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 90 // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/include" 91 // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 92 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 93 // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ 94 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.4_tree \ 95 // RUN: --gcc-toolchain="" \ 96 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-6-4 %s 97 // CHECK-GENTOO-4-6-4: "{{.*}}clang{{.*}}" "-cc1" 98 // CHECK-GENTOO-4-6-4: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 99 // CHECK-GENTOO-4-6-4: "-isysroot" "[[SYSROOT:[^"]+]]" 100 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6" 101 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6/x86_64-pc-linux-gnu" 102 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6/backward" 103 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 104 // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 105 // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/include" 106 // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 107 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 108 // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ 109 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.3_tree \ 110 // RUN: --gcc-toolchain="" \ 111 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s 112 // CHECK-GENTOO-4-9-3: "{{.*}}clang{{.*}}" "-cc1" 113 // CHECK-GENTOO-4-9-3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 114 // CHECK-GENTOO-4-9-3: "-isysroot" "[[SYSROOT:[^"]+]]" 115 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3" 116 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu" 117 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward" 118 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 119 // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 120 // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/include" 121 // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 122 // 123 // Test support for Gentoo's gcc-config -- clang should prefer the older 124 // (4.9.3) version over the newer (5.4.0) due to preference specified 125 // in /etc/env.d/gcc/x86_64-pc-linux-gnu. 126 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 127 // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ 128 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ 129 // RUN: --gcc-toolchain="" \ 130 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s 131 // 132 // Test that gcc-config support does not break multilib. 133 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 134 // RUN: -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \ 135 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ 136 // RUN: --gcc-toolchain="" \ 137 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-X32 %s 138 // CHECK-GENTOO-4-9-3-X32: "{{.*}}clang{{.*}}" "-cc1" 139 // CHECK-GENTOO-4-9-3-X32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 140 // CHECK-GENTOO-4-9-3-X32: "-isysroot" "[[SYSROOT:[^"]+]]" 141 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3" 142 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu/x32" 143 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward" 144 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 145 // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 146 // CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/include" 147 // CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 148 // 149 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 150 // RUN: -target i386-unknown-linux-gnu -stdlib=libstdc++ \ 151 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ 152 // RUN: --gcc-toolchain="" \ 153 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-32 %s 154 // CHECK-GENTOO-4-9-3-32: "{{.*}}clang{{.*}}" "-cc1" 155 // CHECK-GENTOO-4-9-3-32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 156 // CHECK-GENTOO-4-9-3-32: "-isysroot" "[[SYSROOT:[^"]+]]" 157 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3" 158 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu/32" 159 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward" 160 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 161 // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 162 // CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/include" 163 // CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 164 // 165 // Test support for parsing Gentoo's gcc-config -- clang should parse the 166 // /etc/env.d/gcc/config-x86_64-pc-linux-gnu file to find CURRENT gcc used. 167 // Then should pick the multilibs from version 4.9.x specified in 168 // /etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3. 169 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 170 // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ 171 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \ 172 // RUN: --gcc-toolchain="" \ 173 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-X %s 174 // 175 // CHECK-GENTOO-4-9-X: "{{.*}}clang{{.*}}" "-cc1" 176 // CHECK-GENTOO-4-9-X: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 177 // CHECK-GENTOO-4-9-X: "-isysroot" "[[SYSROOT:[^"]+]]" 178 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3" 179 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/x86_64-pc-linux-gnu" 180 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/backward" 181 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 182 // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 183 // CHECK-GENTOO-4-9-X: "-internal-externc-isystem" "[[SYSROOT]]/include" 184 // CHECK-GENTOO-4-9-X: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 185 // 186 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 187 // RUN: -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \ 188 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \ 189 // RUN: --gcc-toolchain="" \ 190 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-X-X32 %s 191 // CHECK-GENTOO-4-9-X-X32: "{{.*}}clang{{.*}}" "-cc1" 192 // CHECK-GENTOO-4-9-X-X32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 193 // CHECK-GENTOO-4-9-X-X32: "-isysroot" "[[SYSROOT:[^"]+]]" 194 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3" 195 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/x86_64-pc-linux-gnu/x32" 196 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/backward" 197 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 198 // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 199 // CHECK-GENTOO-4-9-X-X32: "-internal-externc-isystem" "[[SYSROOT]]/include" 200 // CHECK-GENTOO-4-9-X-X32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 201 // 202 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 203 // RUN: -target i386-unknown-linux-gnu -stdlib=libstdc++ \ 204 // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \ 205 // RUN: --gcc-toolchain="" \ 206 // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-X-32 %s 207 // CHECK-GENTOO-4-9-X-32: "{{.*}}clang{{.*}}" "-cc1" 208 // CHECK-GENTOO-4-9-X-32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 209 // CHECK-GENTOO-4-9-X-32: "-isysroot" "[[SYSROOT:[^"]+]]" 210 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3" 211 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/x86_64-pc-linux-gnu/32" 212 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3/backward" 213 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 214 // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 215 // CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/include" 216 // CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 217 // 218 // Check header search on Debian 6 / MIPS64 219 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 220 // RUN: -target mips64-unknown-linux-gnuabi64 -stdlib=libstdc++ \ 221 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 222 // RUN: --gcc-toolchain="" \ 223 // RUN: | FileCheck --check-prefix=CHECK-MIPS64-GNUABI %s 224 // CHECK-MIPS64-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 225 // CHECK-MIPS64-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 226 // CHECK-MIPS64-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]" 227 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9" 228 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64-linux-gnuabi64" 229 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward" 230 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 231 // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 232 // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64-linux-gnuabi64" 233 // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include" 234 // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 235 // 236 // Check header search on Debian 6 / MIPS64 237 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 238 // RUN: -target mips64el-unknown-linux-gnuabi64 -stdlib=libstdc++ \ 239 // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 240 // RUN: --gcc-toolchain="" \ 241 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-GNUABI %s 242 // CHECK-MIPS64EL-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 243 // CHECK-MIPS64EL-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" 244 // CHECK-MIPS64EL-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]" 245 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9" 246 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64el-linux-gnuabi64" 247 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward" 248 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" 249 // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 250 // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64el-linux-gnuabi64" 251 // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include" 252 // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" 253 254 255 // Check header search on OpenEmbedded ARM. 256 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 257 // RUN: -target arm-oe-linux-gnueabi -stdlib=libstdc++ \ 258 // RUN: --sysroot=%S/Inputs/openembedded_arm_linux_tree \ 259 // RUN: --gcc-toolchain="" \ 260 // RUN: | FileCheck --check-prefix=CHECK-OE-ARM %s 261 262 // CHECK-OE-ARM: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 263 // CHECK-OE-ARM: "-isysroot" "[[SYSROOT:[^"]+]]" 264 // CHECK-OE-ARM: "-internal-isystem" "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../include/c++/6.3.0" 265 // CHECK-OE-ARM: "-internal-isystem" "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../include/c++/6.3.0/backward" 266 267 // Check header search on OpenEmbedded AArch64. 268 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 269 // RUN: -target aarch64-oe-linux -stdlib=libstdc++ \ 270 // RUN: --sysroot=%S/Inputs/openembedded_aarch64_linux_tree \ 271 // RUN: --gcc-toolchain="" \ 272 // RUN: | FileCheck --check-prefix=CHECK-OE-AARCH64 %s 273 274 // CHECK-OE-AARCH64: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 275 // CHECK-OE-AARCH64: "-isysroot" "[[SYSROOT:[^"]+]]" 276 // CHECK-OE-AARCH64: "-internal-isystem" "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../include/c++/6.3.0" 277 // CHECK-OE-AARCH64: "-internal-isystem" "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../include/c++/6.3.0/backward" 278 279 // Check header search with Cray's gcc package. 280 // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ 281 // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ 282 // RUN: --sysroot=%S/Inputs/cray_suse_gcc_tree \ 283 // RUN: --gcc-toolchain="%S/Inputs/cray_suse_gcc_tree/opt/gcc/8.2.0/snos" \ 284 // RUN: | FileCheck --check-prefix=CHECK-CRAY-X86 %s 285 286 // CHECK-CRAY-X86: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 287 // CHECK-CRAY-X86: "-isysroot" "[[SYSROOT:[^"]+]]" 288 // CHECK-CRAY-X86: "-internal-isystem" "[[SYSROOT]]/opt/gcc/8.2.0/snos/lib/gcc/x86_64-suse-linux/8.2.0/../../../../include/g++" 289 // CHECK-CRAY-X86: "-internal-isystem" "[[SYSROOT]]/opt/gcc/8.2.0/snos/lib/gcc/x86_64-suse-linux/8.2.0/../../../../include/g++/backward" 290