blob: 1ce923b61ac36d34a901e8bea7df006c3c022869 [file] [log] [blame]
Chandler Carruth2a649c72011-10-03 06:41:08 +00001// General tests that ld invocations on Linux targets sane. Note that we use
2// sysroot to make these tests independent of the host system.
Chandler Carruth94bcd382011-10-01 00:37:39 +00003//
Chandler Carruth2a649c72011-10-03 06:41:08 +00004// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00005// RUN: --target=i386-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00006// RUN: --gcc-toolchain="" \
Chandler Carruth2a649c72011-10-03 06:41:08 +00007// RUN: --sysroot=%S/Inputs/basic_linux_tree \
Chandler Carruth94bcd382011-10-01 00:37:39 +00008// RUN: | FileCheck --check-prefix=CHECK-LD-32 %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +00009// CHECK-LD-32-NOT: warning:
Chandler Carruth2a649c72011-10-03 06:41:08 +000010// CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +000011// CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000012// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
Chandler Carruth2c5e91e2011-10-03 08:09:02 +000013// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000014// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
15// CHECK-LD-32: "-L[[SYSROOT]]/lib"
16// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruth94bcd382011-10-01 00:37:39 +000017//
Chandler Carruth2a649c72011-10-03 06:41:08 +000018// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000019// RUN: --target=x86_64-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +000020// RUN: --gcc-toolchain="" \
Chandler Carruth2a649c72011-10-03 06:41:08 +000021// RUN: --sysroot=%S/Inputs/basic_linux_tree \
Chandler Carruth94bcd382011-10-01 00:37:39 +000022// RUN: | FileCheck --check-prefix=CHECK-LD-64 %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +000023// CHECK-LD-64-NOT: warning:
Chandler Carruth2a649c72011-10-03 06:41:08 +000024// CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruth4588e342013-03-04 01:27:49 +000025// CHECK-LD-64: "--eh-frame-hdr"
26// CHECK-LD-64: "-m" "elf_x86_64"
27// CHECK-LD-64: "-dynamic-linker"
Rafael Espindola49ddb862013-06-24 22:07:15 +000028// CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000029// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruth2c5e91e2011-10-03 08:09:02 +000030// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000031// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
32// CHECK-LD-64: "-L[[SYSROOT]]/lib"
33// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruth4588e342013-03-04 01:27:49 +000034// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
35// CHECK-LD-64: "-lc"
36// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
37//
38// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis1db95732014-07-10 15:27:19 +000039// RUN: --target=x86_64-unknown-linux-gnux32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +000040// RUN: --gcc-toolchain="" \
Zinovy Nis1db95732014-07-10 15:27:19 +000041// RUN: --sysroot=%S/Inputs/basic_linux_tree \
42// RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s
43// CHECK-LD-X32-NOT: warning:
44// CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
45// CHECK-LD-X32: "--eh-frame-hdr"
46// CHECK-LD-X32: "-m" "elf32_x86_64"
47// CHECK-LD-X32: "-dynamic-linker"
48// CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
49// CHECK-LD-X32: "-lc"
50// CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
51//
52// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000053// RUN: --target=x86_64-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +000054// RUN: --gcc-toolchain="" \
Renato Golinc4b49242014-02-13 10:01:16 +000055// RUN: --sysroot=%S/Inputs/basic_linux_tree \
56// RUN: --rtlib=compiler-rt \
57// RUN: | FileCheck --check-prefix=CHECK-LD-RT %s
58// CHECK-LD-RT-NOT: warning:
59// CHECK-LD-RT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
60// CHECK-LD-RT: "--eh-frame-hdr"
61// CHECK-LD-RT: "-m" "elf_x86_64"
62// CHECK-LD-RT: "-dynamic-linker"
63// CHECK-LD-RT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
64// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
65// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
66// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
67// CHECK-LD-RT: "-L[[SYSROOT]]/lib"
68// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000069// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
Renato Golinc4b49242014-02-13 10:01:16 +000070// CHECK-LD-RT: "-lc"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000071// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
Renato Golinc4b49242014-02-13 10:01:16 +000072//
73// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
74// RUN: --target=x86_64-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +000075// RUN: --gcc-toolchain="" \
Renato Golinc4b49242014-02-13 10:01:16 +000076// RUN: --sysroot=%S/Inputs/basic_linux_tree \
77// RUN: --rtlib=libgcc \
78// RUN: | FileCheck --check-prefix=CHECK-LD-GCC %s
79// CHECK-LD-GCC-NOT: warning:
80// CHECK-LD-GCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
81// CHECK-LD-GCC: "--eh-frame-hdr"
82// CHECK-LD-GCC: "-m" "elf_x86_64"
83// CHECK-LD-GCC: "-dynamic-linker"
84// CHECK-LD-GCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
85// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
86// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
87// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
88// CHECK-LD-GCC: "-L[[SYSROOT]]/lib"
89// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib"
90// CHECK-LD-GCC "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
91// CHECK-LD-GCC: "-lc"
92// CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
93//
94// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
95// RUN: --target=x86_64-unknown-linux \
Chandler Carruth4588e342013-03-04 01:27:49 +000096// RUN: -static-libgcc \
Samuel Antao4ae1f672015-01-05 17:07:42 +000097// RUN: --gcc-toolchain="" \
Chandler Carruth4588e342013-03-04 01:27:49 +000098// RUN: --sysroot=%S/Inputs/basic_linux_tree \
99// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000100// CHECK-LD-64-STATIC-LIBGCC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +0000101// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
102// CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr"
103// CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64"
104// CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000105// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth4588e342013-03-04 01:27:49 +0000106// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
107// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
108// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
109// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib"
110// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib"
111// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
112// CHECK-LD-64-STATIC-LIBGCC: "-lc"
113// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
114//
115// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000116// RUN: --target=x86_64-unknown-linux \
Chandler Carruth4588e342013-03-04 01:27:49 +0000117// RUN: -static \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000118// RUN: --gcc-toolchain="" \
Chandler Carruth4588e342013-03-04 01:27:49 +0000119// RUN: --sysroot=%S/Inputs/basic_linux_tree \
120// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000121// CHECK-LD-64-STATIC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +0000122// CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
123// CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr"
124// CHECK-LD-64-STATIC: "-m" "elf_x86_64"
125// CHECK-LD-64-STATIC-NOT: "-dynamic-linker"
126// CHECK-LD-64-STATIC: "-static"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000127// CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o"
Chandler Carruth4588e342013-03-04 01:27:49 +0000128// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
129// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
130// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
131// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib"
132// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib"
133// CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000134//
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000135// Check that flags can be combined. The -static dominates.
136// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000137// RUN: --target=x86_64-unknown-linux \
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000138// RUN: -static-libgcc -static \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000139// RUN: --gcc-toolchain="" \
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000140// RUN: --sysroot=%S/Inputs/basic_linux_tree \
141// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
142//
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000143// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000144// RUN: --target=i386-unknown-linux -m32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000145// RUN: --gcc-toolchain="" \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000146// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
147// RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s
148// CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000149// CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000150// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000151// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32"
152// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32"
153// CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
154// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000155// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
156// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
157// CHECK-32-TO-32: "-L[[SYSROOT]]/lib"
158// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib"
159//
160// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000161// RUN: --target=i386-unknown-linux -m64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000162// RUN: --gcc-toolchain="" \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000163// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
164// RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s
165// CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000166// CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000167// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64"
168// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64"
169// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64"
170// CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
171// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
172// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
173// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
174// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
175// CHECK-32-TO-64: "-L[[SYSROOT]]/lib"
176// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000177//
178// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000179// RUN: --target=x86_64-unknown-linux -m64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000180// RUN: --gcc-toolchain="" \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000181// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
182// RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s
183// CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000184// CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000185// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000186// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
187// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
188// CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64"
189// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000190// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
191// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
192// CHECK-64-TO-64: "-L[[SYSROOT]]/lib"
193// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib"
194//
195// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000196// RUN: --target=x86_64-unknown-linux -m32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000197// RUN: --gcc-toolchain="" \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000198// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
199// RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s
200// CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000201// CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000202// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
203// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
204// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
205// CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32"
206// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
207// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
208// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
209// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
210// CHECK-64-TO-32: "-L[[SYSROOT]]/lib"
211// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000212//
213// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis1db95732014-07-10 15:27:19 +0000214// RUN: --target=x86_64-unknown-linux-gnux32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000215// RUN: --gcc-toolchain="" \
Zinovy Nis1db95732014-07-10 15:27:19 +0000216// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
217// RUN: | FileCheck --check-prefix=CHECK-X32 %s
218// CHECK-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
219// CHECK-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
220// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
221// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
222// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
223// CHECK-X32: "-L[[SYSROOT]]/lib/../libx32"
224// CHECK-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
225// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
226// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
227// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
228// CHECK-X32: "-L[[SYSROOT]]/lib"
229// CHECK-X32: "-L[[SYSROOT]]/usr/lib"
230//
231// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis3d163872014-07-11 14:28:45 +0000232// RUN: --target=x86_64-unknown-linux -mx32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000233// RUN: --gcc-toolchain="" \
Zinovy Nis3d163872014-07-11 14:28:45 +0000234// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
235// RUN: | FileCheck --check-prefix=CHECK-64-TO-X32 %s
236// CHECK-64-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
237// CHECK-64-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
238// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
239// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
240// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
241// CHECK-64-TO-X32: "-L[[SYSROOT]]/lib/../libx32"
242// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
243// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
244// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
245// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
246// CHECK-64-TO-X32: "-L[[SYSROOT]]/lib"
247// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib"
248//
249// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
250// RUN: --target=i386-unknown-linux -mx32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000251// RUN: --gcc-toolchain="" \
Zinovy Nis3d163872014-07-11 14:28:45 +0000252// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
253// RUN: | FileCheck --check-prefix=CHECK-32-TO-X32 %s
254// CHECK-32-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
255// CHECK-32-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
256// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
257// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
258// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
259// CHECK-32-TO-X32: "-L[[SYSROOT]]/lib/../libx32"
260// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
261// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
262// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
263// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
264// CHECK-32-TO-X32: "-L[[SYSROOT]]/lib"
265// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib"
266//
267// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Pavel Chupin4a294682014-08-18 15:38:38 +0000268// RUN: --target=x86_64-unknown-linux-gnux32 -m64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000269// RUN: --gcc-toolchain="" \
Pavel Chupin4a294682014-08-18 15:38:38 +0000270// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
271// RUN: | FileCheck --check-prefix=CHECK-X32-TO-64 %s
272// CHECK-X32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
273// CHECK-X32-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
274// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
275// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
276// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
277// CHECK-X32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
278// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
279// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
280// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
281// CHECK-X32-TO-64: "-L[[SYSROOT]]/lib"
282// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib"
283//
284// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
285// RUN: --target=x86_64-unknown-linux-gnux32 -m32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000286// RUN: --gcc-toolchain="" \
Pavel Chupin4a294682014-08-18 15:38:38 +0000287// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
288// RUN: | FileCheck --check-prefix=CHECK-X32-TO-32 %s
289// CHECK-X32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
290// CHECK-X32-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
291// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
292// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
293// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
294// CHECK-X32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
295// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
296// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
297// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
298// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
299// CHECK-X32-TO-32: "-L[[SYSROOT]]/lib"
300// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib"
301//
302// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000303// RUN: --target=x86_64-unknown-linux -m32 \
304// RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \
Chandler Carruth69a125b2012-04-06 16:32:06 +0000305// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
306// RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s
307// CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000308// CHECK-64-TO-32-SYSROOT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
Chandler Carruth69a125b2012-04-06 16:32:06 +0000309// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
310// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32"
311// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32"
312// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
313// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib"
314// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib"
315//
316// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000317// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000318// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000319// RUN: --gcc-toolchain="" \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000320// RUN: --sysroot=%S/Inputs/basic_linux_tree \
321// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s
322// CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000323// CHECK-INSTALL-DIR-32: "{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0{{/|\\\\}}crtbegin.o"
Chandler Carruthe276b362011-10-05 06:38:03 +0000324// CHECK-INSTALL-DIR-32: "-L{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000325//
326// Check that with 64-bit builds, we don't actually use the install directory
327// as its version of GCC is lower than our sysrooted version.
328// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000329// RUN: --target=x86_64-unknown-linux -m64 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000330// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000331// RUN: --gcc-toolchain="" \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000332// RUN: --sysroot=%S/Inputs/basic_linux_tree \
333// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s
334// CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000335// CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000336// CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000337//
338// Check that we support unusual patch version formats, including missing that
339// component.
340// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000341// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000342// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000343// RUN: --gcc-toolchain="" \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000344// RUN: --sysroot=%S/Inputs/basic_linux_tree \
345// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s
346// CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000347// CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o"
Chandler Carruthe276b362011-10-05 06:38:03 +0000348// CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000349// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000350// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000351// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000352// RUN: --gcc-toolchain="" \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000353// RUN: --sysroot=%S/Inputs/basic_linux_tree \
354// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s
355// CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000356// CHECK-GCC-VERSION2: "{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x{{/|\\\\}}crtbegin.o"
Chandler Carruthe276b362011-10-05 06:38:03 +0000357// CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000358// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000359// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000360// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000361// RUN: --gcc-toolchain="" \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000362// RUN: --sysroot=%S/Inputs/basic_linux_tree \
363// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s
364// CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000365// CHECK-GCC-VERSION3: "{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5{{/|\\\\}}crtbegin.o"
Chandler Carruthe276b362011-10-05 06:38:03 +0000366// CHECK-GCC-VERSION3: "-L{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5"
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000367// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000368// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000369// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000370// RUN: --gcc-toolchain="" \
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000371// RUN: --sysroot=%S/Inputs/basic_linux_tree \
372// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s
373// CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000374// CHECK-GCC-VERSION4: "{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99{{/|\\\\}}crtbegin.o"
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000375// CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000376//
Chandler Carruth902efc62014-01-21 22:49:05 +0000377// Test a simulated installation of libc++ on Linux, both through sysroot and
378// the installation path of Clang.
379// RUN: %clangxx -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
380// RUN: -target x86_64-unknown-linux-gnu \
381// RUN: -stdlib=libc++ \
382// RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000383// RUN: --gcc-toolchain="" \
Chandler Carruth902efc62014-01-21 22:49:05 +0000384// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
385// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s
386// CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
387// CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
388// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
389// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
390// CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]"
391// RUN: %clang -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
392// RUN: -target x86_64-unknown-linux-gnu \
393// RUN: -stdlib=libc++ \
394// RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000395// RUN: --gcc-toolchain="" \
Chandler Carruth902efc62014-01-21 22:49:05 +0000396// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
397// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s
398// CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
399// CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
400// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
401// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
402// CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]"
403// CHECK-BASIC-LIBCXX-INSTALL: "-L[[SYSROOT]]/usr/bin/../lib"
404//
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000405// Test a very broken version of multiarch that shipped in Ubuntu 11.04.
406// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000407// RUN: --target=i386-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000408// RUN: --gcc-toolchain="" \
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000409// RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
410// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
411// CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000412// CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000413// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
414// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu"
415// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
416// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
417// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib"
418// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib"
Hal Finkel6b89a102011-12-08 20:36:19 +0000419//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000420// Check multi arch support on Ubuntu 12.04 LTS.
421// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000422// RUN: --target=arm-unknown-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000423// RUN: --gcc-toolchain="" \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000424// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
425// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s
426// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000427// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o"
428// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o"
429// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000430// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3"
431// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf"
432// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf"
433// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf"
434// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000435// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o"
436// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crtn.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000437//
Chandler Carruthda797042013-10-29 10:27:30 +0000438// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf.
439// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
440// RUN: --target=arm-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000441// RUN: --gcc-toolchain="" \
Chandler Carruthda797042013-10-29 10:27:30 +0000442// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
443// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s
444// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
445// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3"
446// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o"
447// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o"
448// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o"
449// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8"
450// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib"
451// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib"
452// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib"
453// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib"
454// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o"
455// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o"
456//
457// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi.
458// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
459// RUN: --target=arm-linux-gnueabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000460// RUN: --gcc-toolchain="" \
Chandler Carruthda797042013-10-29 10:27:30 +0000461// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
462// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s
463// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
464// CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3"
465// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o"
466// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o"
467// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o"
468// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7"
469// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib"
470// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib"
471// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib"
472// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib"
473// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o"
474// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o"
475//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000476// Check Ubuntu 14.04 on powerpc64le.
477// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
478// RUN: --target=powerpc64le-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000479// RUN: --gcc-toolchain="" \
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000480// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
481// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s
482// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
483// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crt1.o"
484// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crti.o"
485// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o"
486// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8"
487// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu"
488// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu"
489// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu"
490// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../.."
491// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o"
492// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crtn.o"
493//
Zinovy Nis1db95732014-07-10 15:27:19 +0000494// Check Ubuntu 14.04 on x32.
495// "/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o" "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32/crtn.o"
496// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
497// RUN: --target=x86_64-unknown-linux-gnux32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000498// RUN: --gcc-toolchain="" \
Zinovy Nis1db95732014-07-10 15:27:19 +0000499// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
500// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-X32 %s
501// CHECK-UBUNTU-14-04-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
502// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crt1.o"
503// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crti.o"
504// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtbegin.o"
505// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/x32"
506// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32"
507// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/lib/../libx32"
508// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
509// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu/../../libx32"
510// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8"
511// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.."
512// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtend.o"
513// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crtn.o"
514//
Rafael Espindola50ba9832013-04-14 10:14:21 +0000515// Check fedora 18 on arm.
516// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000517// RUN: --target=armv7-unknown-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000518// RUN: --gcc-toolchain="" \
Rafael Espindola50ba9832013-04-14 10:14:21 +0000519// RUN: --sysroot=%S/Inputs/fedora_18_tree \
520// RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
521// CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthda797042013-10-29 10:27:30 +0000522// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
523// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crti.o"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000524// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
Rafael Espindola50ba9832013-04-14 10:14:21 +0000525// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
Chandler Carruthda797042013-10-29 10:27:30 +0000526// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000527// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
Chandler Carruthda797042013-10-29 10:27:30 +0000528// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o"
Rafael Espindola50ba9832013-04-14 10:14:21 +0000529//
Tilmann Schellere914bc82014-05-06 16:58:14 +0000530// Check Fedora 21 on AArch64.
531// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
532// RUN: --target=arm64-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000533// RUN: --gcc-toolchain="" \
Tilmann Schellere914bc82014-05-06 16:58:14 +0000534// RUN: --sysroot=%S/Inputs/fedora_21_tree \
535// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
536// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
537// RUN: --target=aarch64-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000538// RUN: --gcc-toolchain="" \
Tilmann Schellere914bc82014-05-06 16:58:14 +0000539// RUN: --sysroot=%S/Inputs/fedora_21_tree \
540// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
541// CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
542// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o"
543// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o"
544// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o"
545// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0"
546// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64"
547// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o"
548// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o"
549//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000550// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000551// RUN: --target=arm-unknown-linux-gnueabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000552// RUN: --gcc-toolchain="" \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000553// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
554// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
555// CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000556// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o"
557// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o"
558// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000559// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
560// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
561// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
562// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
563// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000564// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o"
565// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crtn.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000566//
Hal Finkel6b89a102011-12-08 20:36:19 +0000567// Test the setup that shipped in SUSE 10.3 on ppc64.
568// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000569// RUN: --target=powerpc64-suse-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000570// RUN: --gcc-toolchain="" \
Hal Finkel6b89a102011-12-08 20:36:19 +0000571// RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
572// RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
573// CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000574// CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o"
Hal Finkel6b89a102011-12-08 20:36:19 +0000575// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
576// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
577// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
578// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000579//
Jiangning Liueabbf922012-07-30 11:05:56 +0000580// Check dynamic-linker for different archs
581// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000582// RUN: --target=arm-linux-gnueabi \
Jiangning Liueabbf922012-07-30 11:05:56 +0000583// RUN: | FileCheck --check-prefix=CHECK-ARM %s
584// CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
585// CHECK-ARM: "-m" "armelf_linux_eabi"
586// CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
587//
588// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000589// RUN: --target=arm-linux-gnueabihf \
Jiangning Liueabbf922012-07-30 11:05:56 +0000590// RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s
591// CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
592// CHECK-ARM-HF: "-m" "armelf_linux_eabi"
593// CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
594//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000595// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand8afad612014-07-28 13:17:52 +0000596// RUN: --target=powerpc64-linux-gnu \
597// RUN: | FileCheck --check-prefix=CHECK-PPC64 %s
598// CHECK-PPC64: "{{.*}}ld{{(.exe)?}}"
599// CHECK-PPC64: "-m" "elf64ppc"
600// CHECK-PPC64: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
601//
602// RUN: %clang %s -### -o %t.o 2>&1 \
603// RUN: --target=powerpc64-linux-gnu -mabi=elfv1 \
604// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s
605// CHECK-PPC64-ELFv1: "{{.*}}ld{{(.exe)?}}"
606// CHECK-PPC64-ELFv1: "-m" "elf64ppc"
607// CHECK-PPC64-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
608//
609// RUN: %clang %s -### -o %t.o 2>&1 \
610// RUN: --target=powerpc64-linux-gnu -mabi=elfv2 \
611// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv2 %s
612// CHECK-PPC64-ELFv2: "{{.*}}ld{{(.exe)?}}"
613// CHECK-PPC64-ELFv2: "-m" "elf64ppc"
614// CHECK-PPC64-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
615//
616// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000617// RUN: --target=powerpc64le-linux-gnu \
618// RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s
619// CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}"
620// CHECK-PPC64LE: "-m" "elf64lppc"
621// CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
622//
Ulrich Weigand8afad612014-07-28 13:17:52 +0000623// RUN: %clang %s -### -o %t.o 2>&1 \
624// RUN: --target=powerpc64le-linux-gnu -mabi=elfv1 \
625// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv1 %s
626// CHECK-PPC64LE-ELFv1: "{{.*}}ld{{(.exe)?}}"
627// CHECK-PPC64LE-ELFv1: "-m" "elf64lppc"
628// CHECK-PPC64LE-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
629//
630// RUN: %clang %s -### -o %t.o 2>&1 \
631// RUN: --target=powerpc64le-linux-gnu -mabi=elfv2 \
632// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv2 %s
633// CHECK-PPC64LE-ELFv2: "{{.*}}ld{{(.exe)?}}"
634// CHECK-PPC64LE-ELFv2: "-m" "elf64lppc"
635// CHECK-PPC64LE-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
636//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000637// Check that we do not pass --hash-style=gnu and --hash-style=both to linker
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000638// and provide correct path to the dynamic linker and emulation mode when build
639// for MIPS platforms.
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000640// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000641// RUN: --target=mips-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000642// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
643// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000644// CHECK-MIPS: "-m" "elf32btsmip"
645// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000646// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000647//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000648// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000649// RUN: --target=mipsel-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000650// RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s
651// CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000652// CHECK-MIPSEL: "-m" "elf32ltsmip"
653// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000654// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000655//
656// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mnan=2008 \
657// RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s
658// CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}"
659// CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip"
660// CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
661// CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}"
662//
663// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \
664// RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s
665// CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}"
666// CHECK-MIPS32R6EL: "-m" "elf32ltsmip"
667// CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
668// CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}"
669//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000670// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000671// RUN: --target=mips64-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000672// RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
673// CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000674// CHECK-MIPS64: "-m" "elf64btsmip"
675// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000676// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000677//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000678// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000679// RUN: --target=mips64el-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000680// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
681// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000682// CHECK-MIPS64EL: "-m" "elf64ltsmip"
683// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000684// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000685//
686// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mnan=2008 \
687// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s
688// CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}"
689// CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip"
690// CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
691// CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}"
692//
693// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \
694// RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s
695// CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}"
696// CHECK-MIPS64R6EL: "-m" "elf64ltsmip"
697// CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
698// CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}"
699//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000700// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000701// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000702// RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
703// CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
704// CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
705// CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
706// CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000707//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000708// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000709// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000710// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
711// CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
712// CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
713// CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
714// CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000715//
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000716// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mabi=n32 \
717// RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s
718// CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}"
719// CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32"
720// CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib32/ld-linux-mipsn8.so.1"
721// CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}"
722//
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000723// RUN: %clang %s -### -o %t.o 2>&1 \
724// RUN: --target=sparc-linux-gnu \
725// RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s
726// CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}"
727// CHECK-SPARCV8: "-m" "elf32_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000728// CHECK-SPARCV8: "-dynamic-linker" "/lib/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000729//
730// RUN: %clang %s -### -o %t.o 2>&1 \
731// RUN: --target=sparcv9-linux-gnu \
732// RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s
733// CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}"
734// CHECK-SPARCV9: "-m" "elf64_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000735// CHECK-SPARCV9: "-dynamic-linker" "/lib64/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000736//
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000737// Thoroughly exercise the Debian multiarch environment.
738// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000739// RUN: --target=i686-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000740// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000741// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
742// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
743// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000744// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000745// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
746// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
747// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
748// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
749// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
750// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
751// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000752// RUN: --target=x86_64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000753// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000754// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
755// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
756// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000757// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000758// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
759// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
760// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
761// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
762// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
763// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
764// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000765// RUN: --target=powerpc-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000766// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000767// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
768// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
769// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000770// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000771// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
772// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
773// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
774// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
775// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
776// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
777// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000778// RUN: --target=powerpc64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000779// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000780// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
781// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
782// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000783// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000784// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
785// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
786// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
787// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
788// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
789// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000790// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000791// RUN: --target=mips-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000792// RUN: --gcc-toolchain="" \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000793// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
794// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
795// CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000796// CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000797// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
798// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
799// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
800// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
801// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
802// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
803// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000804// RUN: --target=mipsel-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000805// RUN: --gcc-toolchain="" \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000806// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
807// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
808// CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000809// CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000810// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
811// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
812// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
813// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
814// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
815// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000816// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000817// RUN: --target=mips64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000818// RUN: --gcc-toolchain="" \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000819// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
820// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
821// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000822// CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000823// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
824// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
825// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
826// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
827// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
828// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000829// RUN: --target=mips64el-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000830// RUN: --gcc-toolchain="" \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000831// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
832// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
833// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000834// CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000835// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
836// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
837// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
838// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
839// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000840// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000841// RUN: --target=mips64-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000842// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000843// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
844// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
845// CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000846// CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000847// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
848// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
849// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
850// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
851// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
852// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000853// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000854// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000855// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
856// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
857// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000858// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000859// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
860// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
861// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
862// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
863// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000864//
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000865// Test linker invocation on Android.
866// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000867// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000868// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000869// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000870// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000871// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000872// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000873// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000874// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000875// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000876// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000877// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000878// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +0000879// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
880// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
881// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000882// RUN: --target=arm64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000883// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000884// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
885// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
886// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000887// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000888// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000889// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
890// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000891// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000892// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000893// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000894// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
895// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
896// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000897// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000898// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +0000899// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
900// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000901// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
902// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000903// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000904// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
905// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000906// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000907// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000908// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
909// CHECK-ANDROID-NOT: "gcc_s"
910// CHECK-ANDROID: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000911// CHECK-ANDROID: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000912// CHECK-ANDROID-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000913// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000914// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000915// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000916// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000917// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000918// RUN: -shared \
919// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000920// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000921// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000922// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000923// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000924// RUN: -shared \
925// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000926// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000927// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000928// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +0000929// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
930// RUN: -shared \
931// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
932// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000933// RUN: --target=arm64-linux-android \
934// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
935// RUN: -shared \
936// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
937// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000938// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000939// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000940// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
941// RUN: -shared \
942// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000943// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000944// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000945// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000946// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
947// RUN: -shared \
948// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
949// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000950// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000951// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +0000952// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
953// RUN: -shared \
954// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000955// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
956// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000957// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000958// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
959// RUN: -shared \
960// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000961// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Evgeniy Stepanova3331172014-07-16 08:46:35 +0000962// CHECK-ANDROID-SO-NOT: "-Bsymbolic"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000963// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000964// CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
965// CHECK-ANDROID-SO-NOT: "gcc_s"
966// CHECK-ANDROID-SO: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000967// CHECK-ANDROID-SO: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000968// CHECK-ANDROID-SO-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000969// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000970// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000971// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000972// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000973// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000974// RUN: -static \
975// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000976// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000977// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000978// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000979// RUN: -static \
980// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000981// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000982// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000983// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +0000984// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
985// RUN: -static \
986// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
987// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000988// RUN: --target=arm64-linux-android \
989// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
990// RUN: -static \
991// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
992// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000993// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000994// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000995// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
996// RUN: -static \
997// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000998// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000999// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001000// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001001// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1002// RUN: -static \
1003// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
1004// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +00001005// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001006// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001007// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1008// RUN: -static \
1009// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001010// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Rafael Espindolad76eb442014-08-15 16:55:25 +00001011// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001012// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001013// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1014// RUN: -static \
1015// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001016// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001017// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001018// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
1019// CHECK-ANDROID-STATIC-NOT: "gcc_s"
1020// CHECK-ANDROID-STATIC: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +00001021// CHECK-ANDROID-STATIC-NOT: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001022// CHECK-ANDROID-STATIC-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001023// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001024// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001025// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001026// RUN: --gcc-toolchain="" \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001027// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1028// RUN: -pie \
1029// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1030// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001031// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001032// RUN: --gcc-toolchain="" \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001033// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1034// RUN: -pie \
1035// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001036// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +00001037// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001038// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001039// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1040// RUN: -pie \
1041// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1042// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001043// RUN: --target=arm64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001044// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001045// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1046// RUN: -pie \
1047// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1048// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001049// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001050// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001051// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1052// RUN: -pie \
1053// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Rafael Espindola7df35012012-11-02 20:41:30 +00001054// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001055// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001056// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001057// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1058// RUN: -pie \
1059// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1060// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +00001061// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001062// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001063// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1064// RUN: -pie \
1065// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001066// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1067// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001068// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001069// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1070// RUN: -pie \
1071// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001072// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001073// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001074// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
1075// CHECK-ANDROID-PIE-NOT: "gcc_s"
1076// CHECK-ANDROID-PIE: "-lgcc"
1077// CHECK-ANDROID-PIE-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001078// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001079// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1080// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001081// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001082// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1083// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1084// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1085// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001086// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001087// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1088// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1089// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1090// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001091// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001092// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1093// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1094// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +00001095// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001096// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001097// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1098// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1099// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001100// RUN: --target=arm64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001101// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001102// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1103// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1104// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001105// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001106// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001107// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1108// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1109// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001110// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001111// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001112// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1113// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1114// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1115// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001116// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001117// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1118// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1119// CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker"
1120// CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64"
Simon Atanasyand4413882012-09-14 11:27:24 +00001121//
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001122// Test that -pthread does not add -lpthread on Android.
1123// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1124// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001125// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001126// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1127// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1128// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1129// RUN: --target=arm-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001130// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001131// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1132// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1133// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1134// RUN: --target=aarch64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001135// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001136// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1137// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1138// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1139// RUN: --target=arm64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001140// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001141// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1142// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1143// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1144// RUN: --target=mipsel-linux-android -pthread \
1145// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1146// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1147// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1148// RUN: --target=mips64el-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001149// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001150// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1151// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1152// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1153// RUN: --target=i686-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001154// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001155// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1156// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1157// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1158// RUN: --target=x86_64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001159// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001160// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1161// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1162// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1163// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001164// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001165// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1166// RUN: -shared \
1167// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1168// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1169// RUN: --target=arm-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001170// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001171// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1172// RUN: -shared \
1173// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1174// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1175// RUN: --target=aarch64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001176// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001177// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1178// RUN: -shared \
1179// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1180// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1181// RUN: --target=arm64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001182// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001183// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1184// RUN: -shared \
1185// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1186// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1187// RUN: --target=mipsel-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001188// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001189// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1190// RUN: -shared \
1191// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1192// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1193// RUN: --target=mips64el-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001194// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001195// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1196// RUN: -shared \
1197// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1198// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1199// RUN: --target=i686-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001200// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001201// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1202// RUN: -shared \
1203// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1204// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1205// RUN: --target=x86_64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001206// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001207// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1208// RUN: -shared \
1209// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1210// CHECK-ANDROID-PTHREAD-NOT: -lpthread
1211//
Evgeniy Stepanovdad92062014-06-05 11:41:39 +00001212// RUN: %clang -no-canonical-prefixes %t.o -### -o %t 2>&1 \
1213// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001214// RUN: --gcc-toolchain="" \
Evgeniy Stepanovdad92062014-06-05 11:41:39 +00001215// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1216// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s
1217// CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread'
1218//
Simon Atanasyand4413882012-09-14 11:27:24 +00001219// Check linker invocation on Debian 6 MIPS 32/64-bit.
1220// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001221// RUN: --target=mipsel-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001222// RUN: --gcc-toolchain="" \
Simon Atanasyand4413882012-09-14 11:27:24 +00001223// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1224// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
1225// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001226// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o"
1227// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o"
1228// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001229// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
1230// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
1231// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
1232// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
1233// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1234// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
1235// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
1236//
1237// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001238// RUN: --target=mips64el-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001239// RUN: --gcc-toolchain="" \
Simon Atanasyand4413882012-09-14 11:27:24 +00001240// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1241// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
1242// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001243// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o"
1244// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o"
1245// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001246// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
1247// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
1248// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
1249// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
1250// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1251// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
1252// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Hal Finkelf3587912012-09-18 22:25:07 +00001253//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001254// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001255// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001256// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001257// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1258// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
1259// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001260// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o"
1261// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o"
1262// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001263// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
1264// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
1265// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
1266// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
1267// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1268// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
1269// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
1270//
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001271// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1272// RUN: --target=mips64-linux-gnuabi64 -mabi=n64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001273// RUN: --gcc-toolchain="" \
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001274// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1275// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s
1276// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1277// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crt1.o"
1278// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crti.o"
1279// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1280// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1281// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64"
1282// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64"
1283// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64"
1284// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1285// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../.."
1286// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib"
1287// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib"
1288// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1289// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crtn.o"
1290//
1291// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1292// RUN: --target=mips64el-linux-gnuabi64 -mabi=n64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001293// RUN: --gcc-toolchain="" \
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001294// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1295// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s
1296// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1297// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crt1.o"
1298// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crti.o"
1299// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1300// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1301// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64"
1302// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64"
1303// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64"
1304// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1305// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../.."
1306// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib"
1307// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib"
1308// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1309// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crtn.o"
1310//
Hal Finkelf3587912012-09-18 22:25:07 +00001311// Test linker invocation for Freescale SDK (OpenEmbedded).
1312// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001313// RUN: --target=powerpc-fsl-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001314// RUN: --gcc-toolchain="" \
Hal Finkelf3587912012-09-18 22:25:07 +00001315// RUN: --sysroot=%S/Inputs/freescale_ppc_tree \
1316// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s
1317// CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1318// CHECK-FSL-PPC: "-m" "elf32ppclinux"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001319// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o"
1320// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001321// CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
1322// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001323// RUN: --target=powerpc64-fsl-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001324// RUN: --gcc-toolchain="" \
Hal Finkelf3587912012-09-18 22:25:07 +00001325// RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \
1326// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
1327// CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1328// CHECK-FSL-PPC64: "-m" "elf64ppc"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001329// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o"
1330// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001331// CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
Benjamin Kramer058666a2012-10-04 19:42:20 +00001332//
Benjamin Kramerab88f622014-03-25 18:02:07 +00001333// Check that crtfastmath.o is linked with -ffast-math and with -Ofast.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001334// RUN: %clang --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001335// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001336// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1337// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001338// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001339// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001340// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1341// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001342// RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001343// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001344// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1345// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001346// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001347// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001348// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1349// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1350// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -O3\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001351// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001352// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1353// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
1354// RUN: %clang --target=x86_64-unknown-linux -### %s -O3 -Ofast\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001355// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001356// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1357// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001358// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001359// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001360// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1361// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001362// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-fast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001363// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001364// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1365// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1366// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-unsafe-math-optimizations \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001367// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001368// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1369// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1370// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-fast-math -Ofast \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001371// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001372// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1373// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1374// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-unsafe-math-optimizations -Ofast \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001375// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001376// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1377// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramer058666a2012-10-04 19:42:20 +00001378// We don't have crtfastmath.o in the i386 tree, use it to check that file
1379// detection works.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001380// RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001381// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001382// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1383// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Rafael Espindola49ddb862013-06-24 22:07:15 +00001384// CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o
Benjamin Kramer058666a2012-10-04 19:42:20 +00001385// CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
Eric Christopherac021742013-06-07 23:25:01 +00001386
1387// Check that we link in gcrt1.o when compiling with -pg
Chandler Carruth274b6f02013-06-20 09:42:40 +00001388// RUN: %clang -pg --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001389// RUN: --gcc-toolchain="" \
Eric Christopherac021742013-06-07 23:25:01 +00001390// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1391// RUN: | FileCheck --check-prefix=CHECK-PG %s
1392// CHECK-PG: gcrt1.o
Reid Kleckner69071442014-06-26 01:08:54 +00001393
1394// GCC forwards -u to the linker.
1395// RUN: %clang -u asdf --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001396// RUN: --gcc-toolchain="" \
Reid Kleckner69071442014-06-26 01:08:54 +00001397// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1398// RUN: | FileCheck --check-prefix=CHECK-u %s
1399// CHECK-u: "-u" "asdf"