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/c++/v1" |
17 | // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
18 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
19 | // RUN: -target x86_64-unknown-linux-gnu \ |
20 | // RUN: -stdlib=libc++ \ |
21 | // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \ |
22 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
23 | // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ |
24 | // RUN: --gcc-toolchain="" \ |
25 | // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s |
26 | // CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
27 | // CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]" |
28 | // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1" |
29 | // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
30 | // |
31 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
32 | // RUN: -target x86_64-unknown-linux-gnu \ |
33 | // RUN: -stdlib=libc++ \ |
34 | // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ |
35 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
36 | // RUN: --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \ |
37 | // RUN: --gcc-toolchain="" \ |
38 | // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-SYSROOT %s |
39 | // CHECK-BASIC-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
40 | // CHECK-BASIC-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" |
41 | // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2" |
42 | // CHECK-BASIC-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
43 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
44 | // RUN: -target x86_64-unknown-linux-gnu \ |
45 | // RUN: -stdlib=libc++ \ |
46 | // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxxv2_tree/usr/bin \ |
47 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
48 | // RUN: --sysroot=%S/Inputs/basic_linux_libcxxv2_tree \ |
49 | // RUN: --gcc-toolchain="" \ |
50 | // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXXV2-INSTALL %s |
51 | // CHECK-BASIC-LIBCXXV2-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
52 | // CHECK-BASIC-LIBCXXV2-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]" |
53 | // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v2" |
54 | // CHECK-BASIC-LIBCXXV2-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
55 | // |
56 | // Test Linux with both libc++ and libstdc++ installed. |
57 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
58 | // RUN: -target x86_64-unknown-linux-gnu \ |
59 | // RUN: -stdlib=libc++ \ |
60 | // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ |
61 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
62 | // RUN: --sysroot=%S/Inputs/basic_linux_libstdcxx_libcxxv2_tree \ |
63 | // RUN: --gcc-toolchain="" \ |
64 | // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT %s |
65 | // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
66 | // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" |
67 | // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v2" |
68 | // CHECK-BASIC-LIBSTDCXX-LIBCXXV2-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
69 | // |
70 | // Test a very broken version of multiarch that shipped in Ubuntu 11.04. |
71 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
72 | // RUN: -target i386-unknown-linux -stdlib=libstdc++ \ |
73 | // RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \ |
74 | // RUN: --gcc-toolchain="" \ |
75 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s |
76 | // CHECK-UBUNTU-11-04: "{{.*}}clang{{.*}}" "-cc1" |
77 | // CHECK-UBUNTU-11-04: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
78 | // CHECK-UBUNTU-11-04: "-isysroot" "[[SYSROOT:[^"]+]]" |
79 | // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../../include/c++/4.5" |
80 | // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../../include/c++/4.5/i686-linux-gnu" |
81 | // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../../include/c++/4.5/backward" |
82 | // CHECK-UBUNTU-11-04: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
83 | // CHECK-UBUNTU-11-04: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
84 | // CHECK-UBUNTU-11-04: "-internal-externc-isystem" "[[SYSROOT]]/include" |
85 | // CHECK-UBUNTU-11-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
86 | // |
87 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
88 | // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
89 | // RUN: --sysroot=%S/Inputs/ubuntu_13.04_multiarch_tree \ |
90 | // RUN: --gcc-toolchain="" \ |
91 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-13-04 %s |
92 | // CHECK-UBUNTU-13-04: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
93 | // CHECK-UBUNTU-13-04: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
94 | // CHECK-UBUNTU-13-04: "-isysroot" "[[SYSROOT:[^"]+]]" |
95 | // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7" |
96 | // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/x86_64-linux-gnu/c++/4.7" |
97 | // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward" |
98 | // CHECK-UBUNTU-13-04: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
99 | // CHECK-UBUNTU-13-04: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
100 | // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/x86_64-linux-gnu" |
101 | // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/include" |
102 | // CHECK-UBUNTU-13-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
103 | // |
104 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
105 | // RUN: -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \ |
106 | // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ |
107 | // RUN: --gcc-toolchain="" \ |
108 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04 %s |
109 | // CHECK-UBUNTU-14-04: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
110 | // CHECK-UBUNTU-14-04: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
111 | // CHECK-UBUNTU-14-04: "-isysroot" "[[SYSROOT:[^"]+]]" |
112 | // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8" |
113 | // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8/x32" |
114 | // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward" |
115 | // CHECK-UBUNTU-14-04: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
116 | // CHECK-UBUNTU-14-04: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
117 | // CHECK-UBUNTU-14-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/x86_64-linux-gnu" |
118 | // CHECK-UBUNTU-14-04: "-internal-externc-isystem" "[[SYSROOT]]/include" |
119 | // CHECK-UBUNTU-14-04: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
120 | /// |
121 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
122 | // RUN: -target arm-linux-gnueabihf -stdlib=libstdc++ \ |
123 | // RUN: --sysroot=%S/Inputs/ubuntu_13.04_multiarch_tree \ |
124 | // RUN: --gcc-toolchain="" \ |
125 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-13-04-CROSS %s |
126 | // CHECK-UBUNTU-13-04-CROSS: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
127 | // CHECK-UBUNTU-13-04-CROSS: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
128 | // CHECK-UBUNTU-13-04-CROSS: "-isysroot" "[[SYSROOT:[^"]+]]" |
129 | // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/c++/4.7" |
130 | // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/arm-linux-gnueabihf/c++/4.7" |
131 | // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/../../../../include/c++/4.7/backward" |
132 | // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
133 | // CHECK-UBUNTU-13-04-CROSS: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
134 | // CHECK-UBUNTU-13-04-CROSS: "-internal-externc-isystem" "[[SYSROOT]]/include" |
135 | // CHECK-UBUNTU-13-04-CROSS: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
136 | // |
137 | // Test Ubuntu/Debian's new version of multiarch, with -m32. |
138 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
139 | // RUN: -target x86_64-unknown-linux-gnu -m32 -stdlib=libstdc++ \ |
140 | // RUN: --sysroot=%S/Inputs/ubuntu_13.04_multiarch_tree \ |
141 | // RUN: --gcc-toolchain="" \ |
142 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-13-04-M32 %s |
143 | // CHECK-UBUNTU-13-04-M32: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
144 | // CHECK-UBUNTU-13-04-M32: "-triple" "i386-unknown-linux-gnu" |
145 | // CHECK-UBUNTU-13-04-M32: "-isysroot" "[[SYSROOT:[^"]+]]" |
146 | // CHECK-UBUNTU-13-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7" |
147 | // CHECK-UBUNTU-13-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/x86_64-linux-gnu/c++/4.7/32" |
148 | // CHECK-UBUNTU-13-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward" |
149 | // |
150 | // Test Ubuntu/Debian's Ubuntu 14.04 config variant, with -m32 |
151 | // and an empty 4.9 directory. |
152 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
153 | // RUN: -target x86_64-unknown-linux-gnu -m32 -stdlib=libstdc++ \ |
154 | // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ |
155 | // RUN: --gcc-toolchain="" \ |
156 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-M32 %s |
157 | // CHECK-UBUNTU-14-04-M32: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
158 | // CHECK-UBUNTU-14-04-M32: "-triple" "i386-unknown-linux-gnu" |
159 | // CHECK-UBUNTU-14-04-M32: "-isysroot" "[[SYSROOT:[^"]+]]" |
160 | // CHECK-UBUNTU-14-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8" |
161 | // CHECK-UBUNTU-14-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8/32" |
162 | // CHECK-UBUNTU-14-04-M32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward" |
163 | // |
164 | // Test Ubuntu/Debian's Ubuntu 14.04 with -m32 and an i686 cross compiler |
165 | // installed rather than relying on multilib. Also happens to look like an |
166 | // actual i686 Ubuntu system. |
167 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
168 | // RUN: -target x86_64-unknown-linux-gnu -m32 -stdlib=libstdc++ \ |
169 | // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree2 \ |
170 | // RUN: --gcc-toolchain="" \ |
171 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-I686 %s |
172 | // CHECK-UBUNTU-14-04-I686: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
173 | // CHECK-UBUNTU-14-04-I686: "-triple" "i386-unknown-linux-gnu" |
174 | // CHECK-UBUNTU-14-04-I686: "-isysroot" "[[SYSROOT:[^"]+]]" |
175 | // CHECK-UBUNTU-14-04-I686: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8" |
176 | // CHECK-UBUNTU-14-04-I686: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/i386-linux-gnu/c++/4.8" |
177 | // CHECK-UBUNTU-14-04-I686: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/backward" |
178 | // |
179 | // Test Ubuntu/Debian's Ubuntu 14.04 for powerpc64le |
180 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
181 | // RUN: -target powerpc64le-unknown-linux-gnu -m32 -stdlib=libstdc++ \ |
182 | // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ |
183 | // RUN: --gcc-toolchain="" \ |
184 | // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s |
185 | // CHECK-UBUNTU-14-04-PPC64LE: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
186 | // CHECK-UBUNTU-14-04-PPC64LE: "-triple" "powerpc64le-unknown-linux-gnu" |
187 | // CHECK-UBUNTU-14-04-PPC64LE: "-isysroot" "[[SYSROOT:[^"]+]]" |
188 | // CHECK-UBUNTU-14-04-PPC64LE: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/c++/4.8" |
189 | // CHECK-UBUNTU-14-04-PPC64LE: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/powerpc64le-linux-gnu/c++/4.8" |
190 | // CHECK-UBUNTU-14-04-PPC64LE: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../../include/c++/4.8/backward" |
191 | // CHECK-UBUNTU-14-04-PPC64LE: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/powerpc64le-linux-gnu" |
192 | // CHECK-UBUNTU-14-04-PPC64LE: "-internal-externc-isystem" "[[SYSROOT]]/include" |
193 | // CHECK-UBUNTU-14-04-PPC64LE: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
194 | // |
195 | // Thoroughly exercise the Debian multiarch environment. |
196 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
197 | // RUN: -target i686-linux-gnu -stdlib=libstdc++ \ |
198 | // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ |
199 | // RUN: --gcc-toolchain="" \ |
200 | // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s |
201 | // CHECK-DEBIAN-X86: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
202 | // CHECK-DEBIAN-X86: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
203 | // CHECK-DEBIAN-X86: "-isysroot" "[[SYSROOT:[^"]+]]" |
204 | // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../../include/c++/4.5" |
205 | // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../../include/c++/4.5/i686-linux-gnu" |
206 | // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../../include/c++/4.5/backward" |
207 | // CHECK-DEBIAN-X86: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
208 | // CHECK-DEBIAN-X86: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
209 | // CHECK-DEBIAN-X86: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/i386-linux-gnu" |
210 | // CHECK-DEBIAN-X86: "-internal-externc-isystem" "[[SYSROOT]]/include" |
211 | // CHECK-DEBIAN-X86: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
212 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
213 | // RUN: -target x86_64-linux-gnu -stdlib=libstdc++ \ |
214 | // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ |
215 | // RUN: --gcc-toolchain="" \ |
216 | // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s |
217 | // CHECK-DEBIAN-X86-64: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
218 | // CHECK-DEBIAN-X86-64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
219 | // CHECK-DEBIAN-X86-64: "-isysroot" "[[SYSROOT:[^"]+]]" |
220 | // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../../include/c++/4.5" |
221 | // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../../include/c++/4.5/x86_64-linux-gnu" |
222 | // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../../include/c++/4.5/backward" |
223 | // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
224 | // CHECK-DEBIAN-X86-64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
225 | // CHECK-DEBIAN-X86-64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/x86_64-linux-gnu" |
226 | // CHECK-DEBIAN-X86-64: "-internal-externc-isystem" "[[SYSROOT]]/include" |
227 | // CHECK-DEBIAN-X86-64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
228 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
229 | // RUN: -target powerpc-linux-gnu -stdlib=libstdc++ \ |
230 | // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ |
231 | // RUN: --gcc-toolchain="" \ |
232 | // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s |
233 | // CHECK-DEBIAN-PPC: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
234 | // CHECK-DEBIAN-PPC: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
235 | // CHECK-DEBIAN-PPC: "-isysroot" "[[SYSROOT:[^"]+]]" |
236 | // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../../include/c++/4.5" |
237 | // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../../include/c++/4.5/powerpc-linux-gnu" |
238 | // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../../include/c++/4.5/backward" |
239 | // CHECK-DEBIAN-PPC: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
240 | // CHECK-DEBIAN-PPC: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
241 | // CHECK-DEBIAN-PPC: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/powerpc-linux-gnu" |
242 | // CHECK-DEBIAN-PPC: "-internal-externc-isystem" "[[SYSROOT]]/include" |
243 | // CHECK-DEBIAN-PPC: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
244 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
245 | // RUN: -target powerpc64-linux-gnu -stdlib=libstdc++ \ |
246 | // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ |
247 | // RUN: --gcc-toolchain="" \ |
248 | // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s |
249 | // CHECK-DEBIAN-PPC64: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
250 | // CHECK-DEBIAN-PPC64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
251 | // CHECK-DEBIAN-PPC64: "-isysroot" "[[SYSROOT:[^"]+]]" |
252 | // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../../include/c++/4.5" |
253 | // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../../include/c++/4.5/powerpc64-linux-gnu" |
254 | // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../../include/c++/4.5/backward" |
255 | // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
256 | // CHECK-DEBIAN-PPC64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
257 | // CHECK-DEBIAN-PPC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/powerpc64-linux-gnu" |
258 | // CHECK-DEBIAN-PPC64: "-internal-externc-isystem" "[[SYSROOT]]/include" |
259 | // CHECK-DEBIAN-PPC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
260 | // |
261 | // Test Gentoo's weirdness both before and after they changed it in their GCC |
262 | // 4.6.4 release. |
263 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
264 | // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
265 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.2_tree \ |
266 | // RUN: --gcc-toolchain="" \ |
267 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-6-2 %s |
268 | // CHECK-GENTOO-4-6-2: "{{.*}}clang{{.*}}" "-cc1" |
269 | // CHECK-GENTOO-4-6-2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
270 | // CHECK-GENTOO-4-6-2: "-isysroot" "[[SYSROOT:[^"]+]]" |
271 | // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4" |
272 | // 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" |
273 | // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/backward" |
274 | // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
275 | // CHECK-GENTOO-4-6-2: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
276 | // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/include" |
277 | // CHECK-GENTOO-4-6-2: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
278 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
279 | // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
280 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.6.4_tree \ |
281 | // RUN: --gcc-toolchain="" \ |
282 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-6-4 %s |
283 | // CHECK-GENTOO-4-6-4: "{{.*}}clang{{.*}}" "-cc1" |
284 | // CHECK-GENTOO-4-6-4: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
285 | // CHECK-GENTOO-4-6-4: "-isysroot" "[[SYSROOT:[^"]+]]" |
286 | // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6" |
287 | // 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" |
288 | // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6/backward" |
289 | // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
290 | // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
291 | // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/include" |
292 | // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
293 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
294 | // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
295 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.3_tree \ |
296 | // RUN: --gcc-toolchain="" \ |
297 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s |
298 | // CHECK-GENTOO-4-9-3: "{{.*}}clang{{.*}}" "-cc1" |
299 | // CHECK-GENTOO-4-9-3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
300 | // CHECK-GENTOO-4-9-3: "-isysroot" "[[SYSROOT:[^"]+]]" |
301 | // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3" |
302 | // 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" |
303 | // 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" |
304 | // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
305 | // CHECK-GENTOO-4-9-3: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
306 | // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/include" |
307 | // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
308 | // |
309 | // Test support for Gentoo's gcc-config -- clang should prefer the older |
310 | // (4.9.3) version over the newer (5.4.0) due to preference specified |
311 | // in /etc/env.d/gcc/x86_64-pc-linux-gnu. |
312 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
313 | // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
314 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
315 | // RUN: --gcc-toolchain="" \ |
316 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s |
317 | // |
318 | // Test that gcc-config support does not break multilib. |
319 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
320 | // RUN: -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \ |
321 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
322 | // RUN: --gcc-toolchain="" \ |
323 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-X32 %s |
324 | // CHECK-GENTOO-4-9-3-X32: "{{.*}}clang{{.*}}" "-cc1" |
325 | // CHECK-GENTOO-4-9-3-X32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
326 | // CHECK-GENTOO-4-9-3-X32: "-isysroot" "[[SYSROOT:[^"]+]]" |
327 | // 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" |
328 | // 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" |
329 | // 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" |
330 | // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
331 | // CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
332 | // CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/include" |
333 | // CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
334 | // |
335 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
336 | // RUN: -target i386-unknown-linux-gnu -stdlib=libstdc++ \ |
337 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
338 | // RUN: --gcc-toolchain="" \ |
339 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-32 %s |
340 | // CHECK-GENTOO-4-9-3-32: "{{.*}}clang{{.*}}" "-cc1" |
341 | // CHECK-GENTOO-4-9-3-32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
342 | // CHECK-GENTOO-4-9-3-32: "-isysroot" "[[SYSROOT:[^"]+]]" |
343 | // 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" |
344 | // 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" |
345 | // 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" |
346 | // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
347 | // CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
348 | // CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/include" |
349 | // CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
350 | // |
351 | // Test support for parsing Gentoo's gcc-config -- clang should parse the |
352 | // /etc/env.d/gcc/config-x86_64-pc-linux-gnu file to find CURRENT gcc used. |
353 | // Then should pick the multilibs from version 4.9.x specified in |
354 | // /etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3. |
355 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
356 | // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
357 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \ |
358 | // RUN: --gcc-toolchain="" \ |
359 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-X %s |
360 | // |
361 | // CHECK-GENTOO-4-9-X: "{{.*}}clang{{.*}}" "-cc1" |
362 | // CHECK-GENTOO-4-9-X: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
363 | // CHECK-GENTOO-4-9-X: "-isysroot" "[[SYSROOT:[^"]+]]" |
364 | // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4.9.3" |
365 | // 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" |
366 | // 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" |
367 | // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
368 | // CHECK-GENTOO-4-9-X: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
369 | // CHECK-GENTOO-4-9-X: "-internal-externc-isystem" "[[SYSROOT]]/include" |
370 | // CHECK-GENTOO-4-9-X: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
371 | // |
372 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
373 | // RUN: -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \ |
374 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \ |
375 | // RUN: --gcc-toolchain="" \ |
376 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-X-X32 %s |
377 | // CHECK-GENTOO-4-9-X-X32: "{{.*}}clang{{.*}}" "-cc1" |
378 | // CHECK-GENTOO-4-9-X-X32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
379 | // CHECK-GENTOO-4-9-X-X32: "-isysroot" "[[SYSROOT:[^"]+]]" |
380 | // 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" |
381 | // 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" |
382 | // 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" |
383 | // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
384 | // CHECK-GENTOO-4-9-X-X32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
385 | // CHECK-GENTOO-4-9-X-X32: "-internal-externc-isystem" "[[SYSROOT]]/include" |
386 | // CHECK-GENTOO-4-9-X-X32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
387 | // |
388 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
389 | // RUN: -target i386-unknown-linux-gnu -stdlib=libstdc++ \ |
390 | // RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.x_tree \ |
391 | // RUN: --gcc-toolchain="" \ |
392 | // RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-X-32 %s |
393 | // CHECK-GENTOO-4-9-X-32: "{{.*}}clang{{.*}}" "-cc1" |
394 | // CHECK-GENTOO-4-9-X-32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
395 | // CHECK-GENTOO-4-9-X-32: "-isysroot" "[[SYSROOT:[^"]+]]" |
396 | // 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" |
397 | // 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" |
398 | // 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" |
399 | // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
400 | // CHECK-GENTOO-4-9-X-32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
401 | // CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/include" |
402 | // CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
403 | // |
404 | // Check header search on Debian 6 / MIPS64 |
405 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
406 | // RUN: -target mips64-unknown-linux-gnuabi64 -stdlib=libstdc++ \ |
407 | // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ |
408 | // RUN: --gcc-toolchain="" \ |
409 | // RUN: | FileCheck --check-prefix=CHECK-MIPS64-GNUABI %s |
410 | // CHECK-MIPS64-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
411 | // CHECK-MIPS64-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
412 | // CHECK-MIPS64-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]" |
413 | // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9" |
414 | // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64-linux-gnuabi64" |
415 | // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward" |
416 | // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
417 | // CHECK-MIPS64-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
418 | // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64-linux-gnuabi64" |
419 | // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include" |
420 | // CHECK-MIPS64-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
421 | // |
422 | // Check header search on Debian 6 / MIPS64 |
423 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
424 | // RUN: -target mips64el-unknown-linux-gnuabi64 -stdlib=libstdc++ \ |
425 | // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ |
426 | // RUN: --gcc-toolchain="" \ |
427 | // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-GNUABI %s |
428 | // CHECK-MIPS64EL-GNUABI: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
429 | // CHECK-MIPS64EL-GNUABI: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
430 | // CHECK-MIPS64EL-GNUABI: "-isysroot" "[[SYSROOT:[^"]+]]" |
431 | // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9" |
432 | // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/mips64el-linux-gnuabi64" |
433 | // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../../include/c++/4.9/backward" |
434 | // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
435 | // CHECK-MIPS64EL-GNUABI: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
436 | // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/mips64el-linux-gnuabi64" |
437 | // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/include" |
438 | // CHECK-MIPS64EL-GNUABI: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
439 | |
440 | // Check header search on Debian 8 / Sparc |
441 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
442 | // RUN: -target sparc-unknown-linux-gnu -stdlib=libstdc++ \ |
443 | // RUN: --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \ |
444 | // RUN: --gcc-toolchain="" \ |
445 | // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32 %s |
446 | // CHECK-DEBIAN-SPARC32: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
447 | // CHECK-DEBIAN-SPARC32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
448 | // CHECK-DEBIAN-SPARC32: "-isysroot" "[[SYSROOT:[^"]+]]" |
449 | // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9" |
450 | // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/sparc-linux-gnu/c++/4.9" |
451 | // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9/backward" |
452 | // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
453 | // CHECK-DEBIAN-SPARC32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
454 | // CHECK-DEBIAN-SPARC32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/sparc-linux-gnu" |
455 | // CHECK-DEBIAN-SPARC32: "-internal-externc-isystem" "[[SYSROOT]]/include" |
456 | // CHECK-DEBIAN-SPARC32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
457 | |
458 | // Check header search on Debian 8 / Sparc, with the oldstyle multilib packages |
459 | // RUN: %clang -no-canonical-prefixes -m64 %s -### -fsyntax-only 2>&1 \ |
460 | // RUN: -target sparc-unknown-linux-gnu -stdlib=libstdc++ \ |
461 | // RUN: --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \ |
462 | // RUN: --gcc-toolchain="" \ |
463 | // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32-LIB64 %s |
464 | // CHECK-DEBIAN-SPARC32-LIB64: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
465 | // CHECK-DEBIAN-SPARC32-LIB64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
466 | // CHECK-DEBIAN-SPARC32-LIB64: "-isysroot" "[[SYSROOT:[^"]+]]" |
467 | // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9" |
468 | // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/sparc-linux-gnu/c++/4.9/64" |
469 | // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../include/c++/4.9/backward" |
470 | // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
471 | // CHECK-DEBIAN-SPARC32-LIB64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
472 | /* TODO: GCC 4.9 includes the following dir in its search path, which |
473 | seems questionable. Clang doesn't. Not sure if clang should be |
474 | doing that too. */ |
475 | // CHECK-DEBIAN-SPARC32-LIB64-todo: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/sparc-linux-gnu" |
476 | // CHECK-DEBIAN-SPARC32-LIB64: "-internal-externc-isystem" "[[SYSROOT]]/include" |
477 | // CHECK-DEBIAN-SPARC32-LIB64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
478 | |
479 | // Check header search on Debian 8 / Sparc64 |
480 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
481 | // RUN: -target sparc64-unknown-linux-gnu -stdlib=libstdc++ \ |
482 | // RUN: --sysroot=%S/Inputs/debian_8_sparc64_tree \ |
483 | // RUN: --gcc-toolchain="" \ |
484 | // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC64 %s |
485 | // CHECK-DEBIAN-SPARC64: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
486 | // CHECK-DEBIAN-SPARC64: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
487 | // CHECK-DEBIAN-SPARC64: "-isysroot" "[[SYSROOT:[^"]+]]" |
488 | // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../../include/c++/4.9" |
489 | // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../../include/sparc64-linux-gnu/c++/4.9" |
490 | // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../../include/c++/4.9/backward" |
491 | // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
492 | // CHECK-DEBIAN-SPARC64: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
493 | // CHECK-DEBIAN-SPARC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/sparc64-linux-gnu" |
494 | // CHECK-DEBIAN-SPARC64: "-internal-externc-isystem" "[[SYSROOT]]/include" |
495 | // CHECK-DEBIAN-SPARC64: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
496 | |
497 | // Check header search on OpenEmbedded ARM. |
498 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
499 | // RUN: -target arm-oe-linux-gnueabi -stdlib=libstdc++ \ |
500 | // RUN: --sysroot=%S/Inputs/openembedded_arm_linux_tree \ |
501 | // RUN: --gcc-toolchain="" \ |
502 | // RUN: | FileCheck --check-prefix=CHECK-OE-ARM %s |
503 | |
504 | // CHECK-OE-ARM: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
505 | // CHECK-OE-ARM: "-isysroot" "[[SYSROOT:[^"]+]]" |
506 | // CHECK-OE-ARM: "-internal-isystem" "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../include/c++/6.3.0" |
507 | // CHECK-OE-ARM: "-internal-isystem" "[[SYSROOT]]/usr/lib/arm-oe-linux-gnueabi/6.3.0/../../../include/c++/6.3.0/backward" |
508 | |
509 | // Check header search on OpenEmbedded AArch64. |
510 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
511 | // RUN: -target aarch64-oe-linux -stdlib=libstdc++ \ |
512 | // RUN: --sysroot=%S/Inputs/openembedded_aarch64_linux_tree \ |
513 | // RUN: --gcc-toolchain="" \ |
514 | // RUN: | FileCheck --check-prefix=CHECK-OE-AARCH64 %s |
515 | |
516 | // CHECK-OE-AARCH64: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
517 | // CHECK-OE-AARCH64: "-isysroot" "[[SYSROOT:[^"]+]]" |
518 | // CHECK-OE-AARCH64: "-internal-isystem" "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../include/c++/6.3.0" |
519 | // CHECK-OE-AARCH64: "-internal-isystem" "[[SYSROOT]]/usr/lib64/aarch64-oe-linux/6.3.0/../../../include/c++/6.3.0/backward" |
520 | |
521 | // Check header search with Cray's gcc package. |
522 | // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
523 | // RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
524 | // RUN: --sysroot=%S/Inputs/cray_suse_gcc_tree \ |
525 | // RUN: --gcc-toolchain="%S/Inputs/cray_suse_gcc_tree/opt/gcc/8.2.0/snos" \ |
526 | // RUN: | FileCheck --check-prefix=CHECK-CRAY-X86 %s |
527 | |
528 | // CHECK-CRAY-X86: "{{[^"]*}}clang{{[^"]*}}" "-cc1" |
529 | // CHECK-CRAY-X86: "-isysroot" "[[SYSROOT:[^"]+]]" |
530 | // CHECK-CRAY-X86: "-internal-isystem" "[[SYSROOT]]/opt/gcc/8.2.0/snos/lib/gcc/x86_64-suse-linux/8.2.0/../../../../include/g++" |
531 | // CHECK-CRAY-X86: "-internal-isystem" "[[SYSROOT]]/opt/gcc/8.2.0/snos/lib/gcc/x86_64-suse-linux/8.2.0/../../../../include/g++/backward" |
532 | |