1 | // Check that ld gets arch_multiple. |
2 | |
3 | // RUN: %clang -target i386-apple-darwin9 -arch i386 -arch x86_64 %s -### -o foo 2> %t.log |
4 | // RUN: grep '".*ld.*" .*"-arch_multiple" "-final_output" "foo"' %t.log |
5 | |
6 | // Make sure we run dsymutil on source input files. |
7 | // RUN: %clang -target i386-apple-darwin9 -### -g %s -o BAR 2> %t.log |
8 | // RUN: grep '".*dsymutil" "-o" "BAR.dSYM" "BAR"' %t.log |
9 | // RUN: %clang -target i386-apple-darwin9 -### -g -filelist FOO %s -o BAR 2> %t.log |
10 | // RUN: grep '".*dsymutil" "-o" "BAR.dSYM" "BAR"' %t.log |
11 | |
12 | // Check linker changes that came with new linkedit format. |
13 | // RUN: touch %t.o |
14 | // RUN: %clang -target i386-apple-darwin9 -### -arch armv6 -miphoneos-version-min=3.0 %t.o 2> %t.log |
15 | // RUN: %clang -target i386-apple-darwin9 -### -arch armv6 -miphoneos-version-min=3.0 -dynamiclib %t.o 2>> %t.log |
16 | // RUN: %clang -target i386-apple-darwin9 -### -arch armv6 -miphoneos-version-min=3.0 -bundle %t.o 2>> %t.log |
17 | // RUN: FileCheck -check-prefix=LINK_IPHONE_3_0 %s < %t.log |
18 | |
19 | // LINK_IPHONE_3_0: {{ld(.exe)?"}} |
20 | // LINK_IPHONE_3_0: -iphoneos_version_min |
21 | // LINK_IPHONE_3_0: 3.0.0 |
22 | // LINK_IPHONE_3_0-NOT: -lcrt1.3.1.o |
23 | // LINK_IPHONE_3_0: -lcrt1.o |
24 | // LINK_IPHONE_3_0: -lSystem |
25 | // LINK_IPHONE_3_0: {{ld(.exe)?"}} |
26 | // LINK_IPHONE_3_0: -dylib |
27 | // LINK_IPHONE_3_0: -ldylib1.o |
28 | // LINK_IPHONE_3_0: -lSystem |
29 | // LINK_IPHONE_3_0: {{ld(.exe)?"}} |
30 | // LINK_IPHONE_3_0: -lbundle1.o |
31 | // LINK_IPHONE_3_0: -lSystem |
32 | |
33 | // RUN: %clang -target i386-apple-darwin9 -### -arch armv7 -miphoneos-version-min=3.1 %t.o 2> %t.log |
34 | // RUN: %clang -target i386-apple-darwin9 -### -arch armv7 -miphoneos-version-min=3.1 -dynamiclib %t.o 2>> %t.log |
35 | // RUN: %clang -target i386-apple-darwin9 -### -arch armv7 -miphoneos-version-min=3.1 -bundle %t.o 2>> %t.log |
36 | // RUN: FileCheck -check-prefix=LINK_IPHONE_3_1 %s < %t.log |
37 | |
38 | // LINK_IPHONE_3_1: {{ld(.exe)?"}} |
39 | // LINK_IPHONE_3_1: -iphoneos_version_min |
40 | // LINK_IPHONE_3_1: 3.1.0 |
41 | // LINK_IPHONE_3_1-NOT: -lcrt1.o |
42 | // LINK_IPHONE_3_1: -lcrt1.3.1.o |
43 | // LINK_IPHONE_3_1: -lSystem |
44 | // LINK_IPHONE_3_1: {{ld(.exe)?"}} |
45 | // LINK_IPHONE_3_1: -dylib |
46 | // LINK_IPHONE_3_1-NOT: -ldylib1.o |
47 | // LINK_IPHONE_3_1: -lSystem |
48 | // LINK_IPHONE_3_1: {{ld(.exe)?"}} |
49 | // LINK_IPHONE_3_1-NOT: -lbundle1.o |
50 | // LINK_IPHONE_3_1: -lSystem |
51 | |
52 | // RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 %t.o 2> %t.log |
53 | // RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 -dynamiclib %t.o 2>> %t.log |
54 | // RUN: %clang -target i386-apple-darwin9 -### -arch i386 -mios-simulator-version-min=3.0 -bundle %t.o 2>> %t.log |
55 | // RUN: FileCheck -check-prefix=LINK_IOSSIM_3_0 %s < %t.log |
56 | |
57 | // LINK_IOSSIM_3_0: {{ld(.exe)?"}} |
58 | // LINK_IOSSIM_3_0: -ios_simulator_version_min |
59 | // LINK_IOSSIM_3_0: 3.0.0 |
60 | // LINK_IOSSIM_3_0-NOT: -lcrt1.o |
61 | // LINK_IOSSIM_3_0: -lSystem |
62 | // LINK_IOSSIM_3_0: {{ld(.exe)?"}} |
63 | // LINK_IOSSIM_3_0: -dylib |
64 | // LINK_IOSSIM_3_0-NOT: -ldylib1.o |
65 | // LINK_IOSSIM_3_0: -lSystem |
66 | // LINK_IOSSIM_3_0: {{ld(.exe)?"}} |
67 | // LINK_IOSSIM_3_0-NOT: -lbundle1.o |
68 | // LINK_IOSSIM_3_0: -lSystem |
69 | |
70 | // RUN: %clang -target i386-apple-darwin9 -### -fpie %t.o 2> %t.log |
71 | // RUN: FileCheck -check-prefix=LINK_EXPLICIT_PIE %s < %t.log |
72 | // |
73 | // LINK_EXPLICIT_PIE: {{ld(.exe)?"}} |
74 | // LINK_EXPLICIT_PIE: "-pie" |
75 | |
76 | // RUN: %clang -target i386-apple-darwin9 -### -fno-pie %t.o 2> %t.log |
77 | // RUN: FileCheck -check-prefix=LINK_EXPLICIT_NO_PIE %s < %t.log |
78 | // |
79 | // LINK_EXPLICIT_NO_PIE: {{ld(.exe)?"}} |
80 | // LINK_EXPLICIT_NO_PIE: "-no_pie" |
81 | |
82 | // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ |
83 | // RUN: -mlinker-version=100 2> %t.log |
84 | // RUN: FileCheck -check-prefix=LINK_NEWER_DEMANGLE %s < %t.log |
85 | // |
86 | // LINK_NEWER_DEMANGLE: {{ld(.exe)?"}} |
87 | // LINK_NEWER_DEMANGLE: "-demangle" |
88 | |
89 | // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ |
90 | // RUN: -mlinker-version=100 -Wl,--no-demangle 2> %t.log |
91 | // RUN: FileCheck -check-prefix=LINK_NEWER_NODEMANGLE %s < %t.log |
92 | // |
93 | // LINK_NEWER_NODEMANGLE: {{ld(.exe)?"}} |
94 | // LINK_NEWER_NODEMANGLE-NOT: "-demangle" |
95 | // LINK_NEWER_NODEMANGLE: "-lSystem" |
96 | |
97 | // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ |
98 | // RUN: -mlinker-version=95 2> %t.log |
99 | // RUN: FileCheck -check-prefix=LINK_OLDER_NODEMANGLE %s < %t.log |
100 | // |
101 | // LINK_OLDER_NODEMANGLE: {{ld(.exe)?"}} |
102 | // LINK_OLDER_NODEMANGLE-NOT: "-demangle" |
103 | // LINK_OLDER_NODEMANGLE: "-lSystem" |
104 | |
105 | // RUN: %clang -target x86_64-apple-darwin10 -### %s \ |
106 | // RUN: -mlinker-version=117 -flto 2> %t.log |
107 | // RUN: cat %t.log |
108 | // RUN: FileCheck -check-prefix=LINK_OBJECT_LTO_PATH %s < %t.log |
109 | // |
110 | // LINK_OBJECT_LTO_PATH: {{ld(.exe)?"}} |
111 | // LINK_OBJECT_LTO_PATH: "-object_path_lto" |
112 | |
113 | // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ |
114 | // RUN: -force_load a -force_load b 2> %t.log |
115 | // RUN: cat %t.log |
116 | // RUN: FileCheck -check-prefix=FORCE_LOAD %s < %t.log |
117 | // |
118 | // FORCE_LOAD: {{ld(.exe)?"}} |
119 | // FORCE_LOAD: "-force_load" "a" "-force_load" "b" |
120 | |
121 | // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ |
122 | // RUN: -lazy_framework Framework 2> %t.log |
123 | // |
124 | // RUN: FileCheck -check-prefix=LINK_LAZY_FRAMEWORK %s < %t.log |
125 | // LINK_LAZY_FRAMEWORK: {{ld(.exe)?"}} |
126 | // LINK_LAZY_FRAMEWORK: "-lazy_framework" "Framework" |
127 | |
128 | // RUN: %clang -target x86_64-apple-darwin10 -### %t.o \ |
129 | // RUN: -lazy_library Library 2> %t.log |
130 | // |
131 | // RUN: FileCheck -check-prefix=LINK_LAZY_LIBRARY %s < %t.log |
132 | // LINK_LAZY_LIBRARY: {{ld(.exe)?"}} |
133 | // LINK_LAZY_LIBRARY: "-lazy_library" "Library" |
134 | |
135 | // RUN: %clang -target x86_64-apple-darwin10 -### %t.o 2> %t.log |
136 | // RUN: %clang -target x86_64-apple-macosx10.7 -### %t.o 2>> %t.log |
137 | // RUN: FileCheck -check-prefix=LINK_VERSION_MIN %s < %t.log |
138 | // LINK_VERSION_MIN: {{ld(.exe)?"}} |
139 | // LINK_VERSION_MIN: "-macosx_version_min" "10.6.0" |
140 | // LINK_VERSION_MIN: {{ld(.exe)?"}} |
141 | // LINK_VERSION_MIN: "-macosx_version_min" "10.7.0" |
142 | |
143 | // RUN: %clang -target x86_64-apple-darwin12 -### %t.o 2> %t.log |
144 | // RUN: FileCheck -check-prefix=LINK_NO_CRT1 %s < %t.log |
145 | // LINK_NO_CRT1-NOT: crt |
146 | |
147 | // RUN: %clang -target armv7-apple-ios6.0 -miphoneos-version-min=6.0 -### %t.o 2> %t.log |
148 | // RUN: FileCheck -check-prefix=LINK_NO_IOS_CRT1 %s < %t.log |
149 | // LINK_NO_IOS_CRT1-NOT: crt |
150 | |
151 | // RUN: %clang -target arm64-apple-ios5.0 -miphoneos-version-min=5.0 -### %t.o 2> %t.log |
152 | // RUN: FileCheck -check-prefix=LINK_NO_IOS_ARM64_CRT1 %s < %t.log |
153 | // LINK_NO_IOS_ARM64_CRT1-NOT: crt |
154 | |
155 | // RUN: %clang -target x86_64-apple-ios6.0 -miphoneos-version-min=6.0 -fprofile-instr-generate -resource-dir=%S/Inputs/resource_dir -### %t.o 2> %t.log |
156 | // RUN: FileCheck -check-prefix=LINK_IOSSIM_PROFILE %s < %t.log |
157 | // LINK_IOSSIM_PROFILE: {{ld(.exe)?"}} |
158 | // LINK_IOSSIM_PROFILE: libclang_rt.profile_iossim.a |
159 | // LINK_IOSSIM_PROFILE: libclang_rt.ios.a |
160 | |
161 | // RUN: %clang -target arm64-apple-tvos8.3 -mtvos-version-min=8.3 -resource-dir=%S/Inputs/resource_dir -### %t.o 2> %t.log |
162 | // RUN: FileCheck -check-prefix=LINK_TVOS_ARM64 %s < %t.log |
163 | // LINK_TVOS_ARM64: {{ld(.exe)?"}} |
164 | // LINK_TVOS_ARM64: -tvos_version_min |
165 | // LINK_TVOS_ARM64-NOT: crt |
166 | // LINK_TVOS_ARM64-NOT: lgcc_s.1 |
167 | // LINK_TVOS_ARM64: libclang_rt.tvos.a |
168 | |
169 | // RUN: %clang -target arm64-apple-tvos8.3 -mtvos-version-min=8.3 -fprofile-instr-generate -resource-dir=%S/Inputs/resource_dir -### %t.o 2> %t.log |
170 | // RUN: FileCheck -check-prefix=LINK_TVOS_PROFILE %s < %t.log |
171 | // LINK_TVOS_PROFILE: {{ld(.exe)?"}} |
172 | // LINK_TVOS_PROFILE: libclang_rt.profile_tvos.a |
173 | // LINK_TVOS_PROFILE: libclang_rt.tvos.a |
174 | |
175 | // RUN: %clang -target arm64-apple-tvos8.3 -mtvos-version-min=8.3 -resource-dir=%S/Inputs/resource_dir -### %t.o -lcc_kext 2> %t.log |
176 | // RUN: FileCheck -check-prefix=LINK_TVOS_KEXT %s < %t.log |
177 | // LINK_TVOS_KEXT: {{ld(.exe)?"}} |
178 | // LINK_TVOS_KEXT: libclang_rt.cc_kext_tvos.a |
179 | // LINK_TVOS_KEXT: libclang_rt.tvos.a |
180 | |
181 | // RUN: %clang -target armv7k-apple-watchos2.0 -mwatchos-version-min=2.0 -resource-dir=%S/Inputs/resource_dir -### %t.o 2> %t.log |
182 | // RUN: FileCheck -check-prefix=LINK_WATCHOS_ARM %s < %t.log |
183 | // LINK_WATCHOS_ARM: {{ld(.exe)?"}} |
184 | // LINK_WATCHOS_ARM: -watchos_version_min |
185 | // LINK_WATCHOS_ARM-NOT: crt |
186 | // LINK_WATCHOS_ARM-NOT: lgcc_s.1 |
187 | // LINK_WATCHOS_ARM: libclang_rt.watchos.a |
188 | |
189 | // RUN: %clang -target armv7k-apple-watchos2.0 -mwatchos-version-min=2.0 -resource-dir=%S/Inputs/resource_dir -fprofile-instr-generate -### %t.o 2> %t.log |
190 | // RUN: FileCheck -check-prefix=LINK_WATCHOS_PROFILE %s < %t.log |
191 | // LINK_WATCHOS_PROFILE: {{ld(.exe)?"}} |
192 | // LINK_WATCHOS_PROFILE: libclang_rt.profile_watchos.a |
193 | // LINK_WATCHOS_PROFILE: libclang_rt.watchos.a |
194 | |
195 | // RUN: %clang -target armv7k-apple-watchos2.0 -mwatchos-version-min=2.0 -resource-dir=%S/Inputs/resource_dir -### %t.o -lcc_kext 2> %t.log |
196 | // RUN: FileCheck -check-prefix=LINK_WATCHOS_KEXT %s < %t.log |
197 | // LINK_WATCHOS_KEXT: {{ld(.exe)?"}} |
198 | // LINK_WATCHOS_KEXT: libclang_rt.cc_kext_watchos.a |
199 | // LINK_WATCHOS_KEXT: libclang_rt.watchos.a |
200 | |
201 | // RUN: %clang -target i386-apple-darwin12 -pg -### %t.o 2> %t.log |
202 | // RUN: FileCheck -check-prefix=LINK_PG %s < %t.log |
203 | // LINK_PG: -lgcrt1.o |
204 | // LINK_PG: -no_new_main |
205 | |
206 | // RUN: %clang -target i386-apple-darwin13 -pg -### %t.o 2> %t.log |
207 | // RUN: FileCheck -check-prefix=LINK_PG_NO_SUPPORT_OSX %s < %t.log |
208 | // LINK_PG_NO_SUPPORT_OSX: error: the clang compiler does not support -pg option on versions of OS X |
209 | |
210 | // RUN: %clang -target x86_64-apple-ios5.0 -pg -### %t.o 2> %t.log |
211 | // RUN: FileCheck -check-prefix=LINK_PG_NO_SUPPORT %s < %t.log |
212 | // LINK_PG_NO_SUPPORT: error: the clang compiler does not support -pg option on Darwin |
213 | |
214 | // Check that clang links with libgcc_s.1 for iOS 4 and earlier, but not arm64. |
215 | // RUN: %clang -target armv7-apple-ios4.0 -miphoneos-version-min=4.0 -### %t.o 2> %t.log |
216 | // RUN: FileCheck -check-prefix=LINK_IOS_LIBGCC_S %s < %t.log |
217 | // LINK_IOS_LIBGCC_S: lgcc_s.1 |
218 | |
219 | // RUN: %clang -target arm64-apple-ios4.0 -miphoneos-version-min=4.0 -### %t.o 2> %t.log |
220 | // RUN: FileCheck -check-prefix=LINK_NO_IOS_ARM64_LIBGCC_S %s < %t.log |
221 | // LINK_NO_IOS_ARM64_LIBGCC_S-NOT: lgcc_s.1 |
222 | |
223 | // RUN: %clang -target x86_64-apple-darwin12 -rdynamic -### %t.o \ |
224 | // RUN: -mlinker-version=100 2> %t.log |
225 | // RUN: FileCheck -check-prefix=LINK_NO_EXPORT_DYNAMIC %s < %t.log |
226 | // LINK_NO_EXPORT_DYNAMIC: {{ld(.exe)?"}} |
227 | // LINK_NO_EXPORT_DYNAMIC-NOT: "-export_dynamic" |
228 | |
229 | // RUN: %clang -target x86_64-apple-darwin12 -rdynamic -### %t.o \ |
230 | // RUN: -mlinker-version=137 2> %t.log |
231 | // RUN: FileCheck -check-prefix=LINK_EXPORT_DYNAMIC %s < %t.log |
232 | // LINK_EXPORT_DYNAMIC: {{ld(.exe)?"}} |
233 | // LINK_EXPORT_DYNAMIC: "-export_dynamic" |
234 | |
235 | // RUN: %clang -target x86_64h-apple-darwin -### %t.o 2> %t.log |
236 | // RUN: FileCheck -check-prefix=LINK_X86_64H_ARCH %s < %t.log |
237 | // |
238 | // LINK_X86_64H_ARCH: {{ld(.exe)?"}} |
239 | // LINK_X86_64H_ARCH: "x86_64h" |
240 | |
241 | // RUN: %clang -target x86_64-apple-darwin -arch x86_64 -arch x86_64h -### %t.o 2> %t.log |
242 | // RUN: FileCheck -check-prefix=LINK_X86_64H_MULTIARCH %s < %t.log |
243 | // |
244 | // LINK_X86_64H_MULTIARCH: {{ld(.exe)?"}} |
245 | // LINK_X86_64H_MULTIARCH: "x86_64" |
246 | // |
247 | // LINK_X86_64H_MULTIARCH: {{ld(.exe)?"}} |
248 | // LINK_X86_64H_MULTIARCH: "x86_64h" |
249 | |
250 | // Check for the linker options to specify the iOS version when the |
251 | // IPHONEOS_DEPLOYMENT_TARGET variable is used instead of the command-line |
252 | // deployment target options. |
253 | // RUN: env IPHONEOS_DEPLOYMENT_TARGET=7.0 \ |
254 | // RUN: %clang -target arm64-apple-darwin -### %t.o 2> %t.log |
255 | // RUN: FileCheck -check-prefix=LINK_IPHONEOS_VERSION_MIN %s < %t.log |
256 | // RUN: env IPHONEOS_DEPLOYMENT_TARGET=7.0 \ |
257 | // RUN: %clang -target i386-apple-darwin -### %t.o 2> %t.log |
258 | // RUN: FileCheck -check-prefix=LINK_IOS_SIMULATOR_VERSION_MIN %s < %t.log |
259 | // LINK_IPHONEOS_VERSION_MIN: -iphoneos_version_min |
260 | // LINK_IOS_SIMULATOR_VERSION_MIN: -ios_simulator_version_min |
261 | |
262 | // Ditto for tvOS.... |
263 | // RUN: env TVOS_DEPLOYMENT_TARGET=7.0 \ |
264 | // RUN: %clang -target armv7-apple-darwin -### %t.o 2> %t.log |
265 | // RUN: FileCheck -check-prefix=LINK_TVOS_VERSION_MIN %s < %t.log |
266 | // RUN: env TVOS_DEPLOYMENT_TARGET=7.0 \ |
267 | // RUN: %clang -target x86_64-apple-darwin -### %t.o 2> %t.log |
268 | // RUN: FileCheck -check-prefix=LINK_TVOS_SIMULATOR_VERSION_MIN %s < %t.log |
269 | // LINK_TVOS_VERSION_MIN: -tvos_version_min |
270 | // LINK_TVOS_SIMULATOR_VERSION_MIN: -tvos_simulator_version_min |
271 | |
272 | // ...and for watchOS. |
273 | // RUN: env WATCHOS_DEPLOYMENT_TARGET=2.0 \ |
274 | // RUN: %clang -target armv7k-apple-darwin -### %t.o 2> %t.log |
275 | // RUN: FileCheck -check-prefix=LINK_WATCHOS_VERSION_MIN %s < %t.log |
276 | // RUN: env WATCHOS_DEPLOYMENT_TARGET=2.0 \ |
277 | // RUN: %clang -target i386-apple-darwin -### %t.o 2> %t.log |
278 | // RUN: FileCheck -check-prefix=LINK_WATCHOS_SIMULATOR_VERSION_MIN %s < %t.log |
279 | // LINK_WATCHOS_VERSION_MIN: -watchos_version_min |
280 | // LINK_WATCHOS_SIMULATOR_VERSION_MIN: -watchos_simulator_version_min |
281 | |
282 | // Check -iframework gets forward to ld as -F |
283 | // RUN: %clang -target x86_64-apple-darwin %s -iframework Bar -framework Foo -### 2>&1 | \ |
284 | // RUN: FileCheck --check-prefix=LINK-IFRAMEWORK %s |
285 | // LINK-IFRAMEWORK: {{ld(.exe)?"}} |
286 | // LINK-IFRAMEWORK: "-FBar" |
287 | |
288 | // Check ld64 accepts up to 5 digits with no extra characters |
289 | // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ |
290 | // RUN: -mlinker-version=133.3 2> %t.log |
291 | // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ |
292 | // RUN: -mlinker-version=133.3.0 2>> %t.log |
293 | // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ |
294 | // RUN: -mlinker-version=133.3.0.1 2>> %t.log |
295 | // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ |
296 | // RUN: -mlinker-version=133.3.0.1.2 2>> %t.log |
297 | // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ |
298 | // RUN: -mlinker-version=133.3.0.1.2.6 2>> %t.log |
299 | // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ |
300 | // RUN: -mlinker-version=133.3.0.1.a 2>> %t.log |
301 | // RUN: %clang -target x86_64-apple-darwin12 %s -### -o %t \ |
302 | // RUN: -mlinker-version=133.3.0.1a 2>> %t.log |
303 | // RUN: FileCheck -check-prefix=LINK_VERSION_DIGITS %s < %t.log |
304 | // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3' |
305 | // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3.0' |
306 | // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3.0.1' |
307 | // LINK_VERSION_DIGITS-NOT: invalid version number in '-mlinker-version=133.3.0.1.2' |
308 | // LINK_VERSION_DIGITS: invalid version number in '-mlinker-version=133.3.0.1.2.6' |
309 | // LINK_VERSION_DIGITS: invalid version number in '-mlinker-version=133.3.0.1.a' |
310 | // LINK_VERSION_DIGITS: invalid version number in '-mlinker-version=133.3.0.1a' |
311 | |
312 | // Check that we're passing -lto-pass-remarks-output for LTO |
313 | // RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record -### -o foo/bar.out 2> %t.log |
314 | // RUN: FileCheck -check-prefix=PASS_REMARKS_OUTPUT %s < %t.log |
315 | // PASS_REMARKS_OUTPUT: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.yaml" |
316 | // PASS_REMARKS_OUTPUT-NOT: -lto-pass-remarks-with-hotness |
317 | |
318 | // RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record -### 2> %t.log |
319 | // RUN: FileCheck -check-prefix=PASS_REMARKS_OUTPUT_NO_O %s < %t.log |
320 | // PASS_REMARKS_OUTPUT_NO_O: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "a.out.opt.yaml" |
321 | |
322 | // RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record -fprofile-instr-use=blah -### -o foo/bar.out 2> %t.log |
323 | // RUN: FileCheck -check-prefix=PASS_REMARKS_WITH_HOTNESS %s < %t.log |
324 | // PASS_REMARKS_WITH_HOTNESS: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.yaml" "-mllvm" "-lto-pass-remarks-with-hotness" |
325 | |
326 | // RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record -fprofile-instr-use=blah -fdiagnostics-hotness-threshold=100 -### -o foo/bar.out 2> %t.log |
327 | // RUN: FileCheck -check-prefix=PASS_REMARKS_WITH_HOTNESS_THRESHOLD %s < %t.log |
328 | // PASS_REMARKS_WITH_HOTNESS_THRESHOLD: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.yaml" "-mllvm" "-lto-pass-remarks-with-hotness" "-mllvm" "-lto-pass-remarks-hotness-threshold=100" |
329 | |
330 | // RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record -foptimization-record-passes=inline -### -o foo/bar.out 2> %t.log |
331 | // RUN: FileCheck -check-prefix=PASS_REMARKS_WITH_PASSES %s < %t.log |
332 | // PASS_REMARKS_WITH_PASSES: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.yaml" "-mllvm" "-lto-pass-remarks-filter=inline" |
333 | |
334 | // RUN: %clang -target x86_64-apple-ios6.0 -miphoneos-version-min=6.0 -fprofile-instr-generate -### %t.o 2> %t.log |
335 | // RUN: FileCheck -check-prefix=LINK_PROFILE_FIRST %s < %t.log |
336 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate -### %t.o 2> %t.log |
337 | // RUN: FileCheck -check-prefix=LINK_PROFILE_FIRST %s < %t.log |
338 | // RUN: %clang -target i386-apple-darwin9 -fprofile-instr-generate -### %t.o 2> %t.log |
339 | // RUN: FileCheck -check-prefix=LINK_PROFILE_FIRST %s < %t.log |
340 | // RUN: %clang -target arm64-apple-ios5.0 -miphoneos-version-min=5.0 -fprofile-instr-generate -### %t.o 2> %t.log |
341 | // RUN: FileCheck -check-prefix=LINK_PROFILE_FIRST %s < %t.log |
342 | // LINK_PROFILE_FIRST: {{ld(.exe)?"}} "{{[^"]+}}libclang_rt.profile_{{[a-z]+}}.a" |
343 | |
344 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate -exported_symbols_list /dev/null -### %t.o 2> %t.log |
345 | // RUN: FileCheck -check-prefix=PROFILE_EXPORT %s < %t.log |
346 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate -Wl,-exported_symbols_list,/dev/null -### %t.o 2> %t.log |
347 | // RUN: FileCheck -check-prefix=PROFILE_EXPORT %s < %t.log |
348 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate -Wl,-exported_symbol,foo -### %t.o 2> %t.log |
349 | // RUN: FileCheck -check-prefix=PROFILE_EXPORT %s < %t.log |
350 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate -Xlinker -exported_symbol -Xlinker foo -### %t.o 2> %t.log |
351 | // RUN: FileCheck -check-prefix=PROFILE_EXPORT %s < %t.log |
352 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate -Xlinker -exported_symbols_list -Xlinker /dev/null -### %t.o 2> %t.log |
353 | // RUN: FileCheck -check-prefix=PROFILE_EXPORT %s < %t.log |
354 | // PROFILE_EXPORT: "-exported_symbol" "___llvm_profile_filename" "-exported_symbol" "___llvm_profile_raw_version" "-exported_symbol" "_lprofCurFilename" |
355 | // |
356 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate --coverage -### %t.o 2> %t.log |
357 | // RUN: FileCheck -check-prefix=NO_PROFILE_EXPORT %s < %t.log |
358 | // NO_PROFILE_EXPORT-NOT: "-exported_symbol" |
359 | // |
360 | // RUN: %clang -target x86_64-apple-darwin12 --coverage -exported_symbols_list /dev/null -### %t.o 2> %t.log |
361 | // RUN: FileCheck -check-prefix=GCOV_EXPORT %s < %t.log |
362 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-arcs -Wl,-exported_symbols_list,/dev/null -### %t.o 2> %t.log |
363 | // RUN: FileCheck -check-prefix=GCOV_EXPORT %s < %t.log |
364 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-arcs -Wl,-exported_symbol,foo -### %t.o 2> %t.log |
365 | // RUN: FileCheck -check-prefix=GCOV_EXPORT %s < %t.log |
366 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-arcs -Xlinker -exported_symbol -Xlinker foo -### %t.o 2> %t.log |
367 | // RUN: FileCheck -check-prefix=GCOV_EXPORT %s < %t.log |
368 | // RUN: %clang -target x86_64-apple-darwin12 -fprofile-arcs -Xlinker -exported_symbols_list -Xlinker /dev/null -### %t.o 2> %t.log |
369 | // RUN: FileCheck -check-prefix=GCOV_EXPORT %s < %t.log |
370 | // GCOV_EXPORT: "-exported_symbol" "___gcov_flush" |
371 | // |
372 | // Check that we can pass the outliner down to the linker. |
373 | // RUN: env IPHONEOS_DEPLOYMENT_TARGET=7.0 \ |
374 | // RUN: %clang -target arm64-apple-darwin -moutline -### %t.o 2> %t.log |
375 | // RUN: FileCheck -check-prefix=MOUTLINE %s < %t.log |
376 | // MOUTLINE: {{ld(.exe)?"}} |
377 | // MOUTLINE-SAME: "-mllvm" "-enable-machine-outliner" "-mllvm" "-enable-linkonceodr-outlining" |
378 | // RUN: env IPHONEOS_DEPLOYMENT_TARGET=7.0 \ |
379 | // RUN: %clang -target arm64-apple-darwin -mno-outline -### %t.o 2> %t.log |
380 | // RUN: FileCheck -check-prefix=MNO_OUTLINE %s < %t.log |
381 | // MNO_OUTLINE: {{ld(.exe)?"}} |
382 | // MNO_OUTLINE-SAME: "-mllvm" "-enable-machine-outliner=never" |
383 | |