blob: b3c1aebb48f658dded1d3757c324c7e4c73c8039 [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 \
Chandler Carruth2a649c72011-10-03 06:41:08 +00006// RUN: --sysroot=%S/Inputs/basic_linux_tree \
Chandler Carruth94bcd382011-10-01 00:37:39 +00007// RUN: | FileCheck --check-prefix=CHECK-LD-32 %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +00008// CHECK-LD-32-NOT: warning:
Chandler Carruth2a649c72011-10-03 06:41:08 +00009// CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +000010// CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000011// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
Chandler Carruth2c5e91e2011-10-03 08:09:02 +000012// 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 +000013// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
14// CHECK-LD-32: "-L[[SYSROOT]]/lib"
15// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruth94bcd382011-10-01 00:37:39 +000016//
Chandler Carruth2a649c72011-10-03 06:41:08 +000017// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000018// RUN: --target=x86_64-unknown-linux \
Chandler Carruth2a649c72011-10-03 06:41:08 +000019// RUN: --sysroot=%S/Inputs/basic_linux_tree \
Chandler Carruth94bcd382011-10-01 00:37:39 +000020// RUN: | FileCheck --check-prefix=CHECK-LD-64 %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +000021// CHECK-LD-64-NOT: warning:
Chandler Carruth2a649c72011-10-03 06:41:08 +000022// CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruth4588e342013-03-04 01:27:49 +000023// CHECK-LD-64: "--eh-frame-hdr"
24// CHECK-LD-64: "-m" "elf_x86_64"
25// CHECK-LD-64: "-dynamic-linker"
Rafael Espindola49ddb862013-06-24 22:07:15 +000026// CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000027// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruth2c5e91e2011-10-03 08:09:02 +000028// 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 +000029// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
30// CHECK-LD-64: "-L[[SYSROOT]]/lib"
31// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruth4588e342013-03-04 01:27:49 +000032// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
33// CHECK-LD-64: "-lc"
34// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
35//
36// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis1db95732014-07-10 15:27:19 +000037// RUN: --target=x86_64-unknown-linux-gnux32 \
38// RUN: --sysroot=%S/Inputs/basic_linux_tree \
39// RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s
40// CHECK-LD-X32-NOT: warning:
41// CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
42// CHECK-LD-X32: "--eh-frame-hdr"
43// CHECK-LD-X32: "-m" "elf32_x86_64"
44// CHECK-LD-X32: "-dynamic-linker"
45// CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
46// CHECK-LD-X32: "-lc"
47// CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
48//
49// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000050// RUN: --target=x86_64-unknown-linux \
Renato Golinc4b49242014-02-13 10:01:16 +000051// RUN: --sysroot=%S/Inputs/basic_linux_tree \
52// RUN: --rtlib=compiler-rt \
53// RUN: | FileCheck --check-prefix=CHECK-LD-RT %s
54// CHECK-LD-RT-NOT: warning:
55// CHECK-LD-RT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
56// CHECK-LD-RT: "--eh-frame-hdr"
57// CHECK-LD-RT: "-m" "elf_x86_64"
58// CHECK-LD-RT: "-dynamic-linker"
59// CHECK-LD-RT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
60// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
61// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
62// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
63// CHECK-LD-RT: "-L[[SYSROOT]]/lib"
64// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000065// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
Renato Golinc4b49242014-02-13 10:01:16 +000066// CHECK-LD-RT: "-lc"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000067// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
Renato Golinc4b49242014-02-13 10:01:16 +000068//
69// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
70// RUN: --target=x86_64-unknown-linux \
71// RUN: --sysroot=%S/Inputs/basic_linux_tree \
72// RUN: --rtlib=libgcc \
73// RUN: | FileCheck --check-prefix=CHECK-LD-GCC %s
74// CHECK-LD-GCC-NOT: warning:
75// CHECK-LD-GCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
76// CHECK-LD-GCC: "--eh-frame-hdr"
77// CHECK-LD-GCC: "-m" "elf_x86_64"
78// CHECK-LD-GCC: "-dynamic-linker"
79// CHECK-LD-GCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
80// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
81// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
82// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
83// CHECK-LD-GCC: "-L[[SYSROOT]]/lib"
84// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib"
85// CHECK-LD-GCC "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
86// CHECK-LD-GCC: "-lc"
87// CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
88//
89// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
90// RUN: --target=x86_64-unknown-linux \
Chandler Carruth4588e342013-03-04 01:27:49 +000091// RUN: -static-libgcc \
92// RUN: --sysroot=%S/Inputs/basic_linux_tree \
93// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +000094// CHECK-LD-64-STATIC-LIBGCC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +000095// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
96// CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr"
97// CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64"
98// CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker"
Rafael Espindola49ddb862013-06-24 22:07:15 +000099// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth4588e342013-03-04 01:27:49 +0000100// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
101// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
102// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
103// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib"
104// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib"
105// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
106// CHECK-LD-64-STATIC-LIBGCC: "-lc"
107// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
108//
109// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000110// RUN: --target=x86_64-unknown-linux \
Chandler Carruth4588e342013-03-04 01:27:49 +0000111// RUN: -static \
112// RUN: --sysroot=%S/Inputs/basic_linux_tree \
113// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000114// CHECK-LD-64-STATIC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +0000115// CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
116// CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr"
117// CHECK-LD-64-STATIC: "-m" "elf_x86_64"
118// CHECK-LD-64-STATIC-NOT: "-dynamic-linker"
119// CHECK-LD-64-STATIC: "-static"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000120// CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o"
Chandler Carruth4588e342013-03-04 01:27:49 +0000121// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
122// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
123// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
124// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib"
125// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib"
126// CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000127//
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000128// Check that flags can be combined. The -static dominates.
129// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000130// RUN: --target=x86_64-unknown-linux \
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000131// RUN: -static-libgcc -static \
132// RUN: --sysroot=%S/Inputs/basic_linux_tree \
133// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
134//
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000135// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000136// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000137// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
138// RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s
139// CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000140// CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000141// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000142// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32"
143// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32"
144// CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
145// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000146// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
147// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
148// CHECK-32-TO-32: "-L[[SYSROOT]]/lib"
149// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib"
150//
151// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000152// RUN: --target=i386-unknown-linux -m64 \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000153// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
154// RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s
155// CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000156// CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000157// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64"
158// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64"
159// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64"
160// CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
161// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
162// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
163// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
164// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
165// CHECK-32-TO-64: "-L[[SYSROOT]]/lib"
166// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000167//
168// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000169// RUN: --target=x86_64-unknown-linux -m64 \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000170// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
171// RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s
172// CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000173// CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000174// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000175// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
176// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
177// CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64"
178// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000179// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
180// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
181// CHECK-64-TO-64: "-L[[SYSROOT]]/lib"
182// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib"
183//
184// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000185// RUN: --target=x86_64-unknown-linux -m32 \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000186// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
187// RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s
188// CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000189// CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000190// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
191// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
192// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
193// CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32"
194// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
195// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
196// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
197// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
198// CHECK-64-TO-32: "-L[[SYSROOT]]/lib"
199// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000200//
201// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis1db95732014-07-10 15:27:19 +0000202// RUN: --target=x86_64-unknown-linux-gnux32 \
203// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
204// RUN: | FileCheck --check-prefix=CHECK-X32 %s
205// CHECK-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
206// CHECK-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
207// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
208// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
209// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
210// CHECK-X32: "-L[[SYSROOT]]/lib/../libx32"
211// CHECK-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
212// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
213// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
214// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
215// CHECK-X32: "-L[[SYSROOT]]/lib"
216// CHECK-X32: "-L[[SYSROOT]]/usr/lib"
217//
218// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis3d163872014-07-11 14:28:45 +0000219// RUN: --target=x86_64-unknown-linux -mx32 \
220// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
221// RUN: | FileCheck --check-prefix=CHECK-64-TO-X32 %s
222// CHECK-64-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
223// CHECK-64-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
224// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
225// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
226// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
227// CHECK-64-TO-X32: "-L[[SYSROOT]]/lib/../libx32"
228// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
229// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
230// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
231// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
232// CHECK-64-TO-X32: "-L[[SYSROOT]]/lib"
233// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib"
234//
235// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
236// RUN: --target=i386-unknown-linux -mx32 \
237// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
238// RUN: | FileCheck --check-prefix=CHECK-32-TO-X32 %s
239// CHECK-32-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
240// CHECK-32-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
241// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
242// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
243// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
244// CHECK-32-TO-X32: "-L[[SYSROOT]]/lib/../libx32"
245// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
246// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
247// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
248// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
249// CHECK-32-TO-X32: "-L[[SYSROOT]]/lib"
250// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib"
251//
252// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Pavel Chupin4a294682014-08-18 15:38:38 +0000253// RUN: --target=x86_64-unknown-linux-gnux32 -m64 \
254// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
255// RUN: | FileCheck --check-prefix=CHECK-X32-TO-64 %s
256// CHECK-X32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
257// CHECK-X32-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
258// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
259// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
260// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
261// CHECK-X32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
262// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
263// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
264// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
265// CHECK-X32-TO-64: "-L[[SYSROOT]]/lib"
266// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib"
267//
268// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
269// RUN: --target=x86_64-unknown-linux-gnux32 -m32 \
270// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
271// RUN: | FileCheck --check-prefix=CHECK-X32-TO-32 %s
272// CHECK-X32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
273// CHECK-X32-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
274// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
275// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
276// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
277// CHECK-X32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
278// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
279// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
280// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
281// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
282// CHECK-X32-TO-32: "-L[[SYSROOT]]/lib"
283// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib"
284//
285// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000286// RUN: --target=x86_64-unknown-linux -m32 \
287// RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \
Chandler Carruth69a125b2012-04-06 16:32:06 +0000288// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
289// RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s
290// CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000291// 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 +0000292// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
293// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32"
294// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32"
295// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
296// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib"
297// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib"
298//
299// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000300// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000301// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000302// RUN: --sysroot=%S/Inputs/basic_linux_tree \
303// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s
304// CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000305// 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 +0000306// 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 +0000307//
308// Check that with 64-bit builds, we don't actually use the install directory
309// as its version of GCC is lower than our sysrooted version.
310// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000311// RUN: --target=x86_64-unknown-linux -m64 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000312// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000313// RUN: --sysroot=%S/Inputs/basic_linux_tree \
314// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s
315// CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000316// CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000317// CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000318//
319// Check that we support unusual patch version formats, including missing that
320// component.
321// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000322// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000323// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000324// RUN: --sysroot=%S/Inputs/basic_linux_tree \
325// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s
326// CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000327// CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o"
Chandler Carruthe276b362011-10-05 06:38:03 +0000328// CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000329// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000330// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000331// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000332// RUN: --sysroot=%S/Inputs/basic_linux_tree \
333// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s
334// CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000335// 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 +0000336// CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000337// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000338// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000339// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000340// RUN: --sysroot=%S/Inputs/basic_linux_tree \
341// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s
342// CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000343// 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 +0000344// 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 +0000345// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000346// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000347// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \
348// RUN: --sysroot=%S/Inputs/basic_linux_tree \
349// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s
350// CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000351// 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 +0000352// CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000353//
Chandler Carruth902efc62014-01-21 22:49:05 +0000354// Test a simulated installation of libc++ on Linux, both through sysroot and
355// the installation path of Clang.
356// RUN: %clangxx -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
357// RUN: -target x86_64-unknown-linux-gnu \
358// RUN: -stdlib=libc++ \
359// RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
360// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
361// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s
362// CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
363// CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
364// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
365// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
366// CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]"
367// RUN: %clang -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
368// RUN: -target x86_64-unknown-linux-gnu \
369// RUN: -stdlib=libc++ \
370// RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
371// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
372// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s
373// CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
374// CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
375// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
376// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
377// CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]"
378// CHECK-BASIC-LIBCXX-INSTALL: "-L[[SYSROOT]]/usr/bin/../lib"
379//
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000380// Test a very broken version of multiarch that shipped in Ubuntu 11.04.
381// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000382// RUN: --target=i386-unknown-linux \
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000383// RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
384// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
385// CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000386// CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000387// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
388// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu"
389// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
390// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
391// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib"
392// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib"
Hal Finkel6b89a102011-12-08 20:36:19 +0000393//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000394// Check multi arch support on Ubuntu 12.04 LTS.
395// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000396// RUN: --target=arm-unknown-linux-gnueabihf \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000397// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
398// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s
399// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000400// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o"
401// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o"
402// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000403// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3"
404// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf"
405// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf"
406// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf"
407// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000408// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o"
409// 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 +0000410//
Chandler Carruthda797042013-10-29 10:27:30 +0000411// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf.
412// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
413// RUN: --target=arm-linux-gnueabihf \
414// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
415// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s
416// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
417// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3"
418// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o"
419// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o"
420// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o"
421// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8"
422// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib"
423// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib"
424// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib"
425// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib"
426// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o"
427// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o"
428//
429// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi.
430// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
431// RUN: --target=arm-linux-gnueabi \
432// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
433// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s
434// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
435// CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3"
436// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o"
437// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o"
438// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o"
439// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7"
440// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib"
441// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib"
442// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib"
443// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib"
444// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o"
445// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o"
446//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000447// Check Ubuntu 14.04 on powerpc64le.
448// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
449// RUN: --target=powerpc64le-unknown-linux-gnu \
450// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
451// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s
452// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
453// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crt1.o"
454// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crti.o"
455// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o"
456// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8"
457// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu"
458// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu"
459// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu"
460// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../.."
461// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o"
462// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crtn.o"
463//
Zinovy Nis1db95732014-07-10 15:27:19 +0000464// Check Ubuntu 14.04 on x32.
465// "/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o" "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32/crtn.o"
466// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
467// RUN: --target=x86_64-unknown-linux-gnux32 \
468// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
469// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-X32 %s
470// CHECK-UBUNTU-14-04-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
471// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crt1.o"
472// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crti.o"
473// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtbegin.o"
474// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/x32"
475// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32"
476// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/lib/../libx32"
477// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
478// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu/../../libx32"
479// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8"
480// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.."
481// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtend.o"
482// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crtn.o"
483//
Rafael Espindola50ba9832013-04-14 10:14:21 +0000484// Check fedora 18 on arm.
485// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000486// RUN: --target=armv7-unknown-linux-gnueabihf \
Rafael Espindola50ba9832013-04-14 10:14:21 +0000487// RUN: --sysroot=%S/Inputs/fedora_18_tree \
488// RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
489// CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthda797042013-10-29 10:27:30 +0000490// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
491// 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 +0000492// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
Rafael Espindola50ba9832013-04-14 10:14:21 +0000493// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
Chandler Carruthda797042013-10-29 10:27:30 +0000494// 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 +0000495// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
Chandler Carruthda797042013-10-29 10:27:30 +0000496// 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 +0000497//
Tilmann Schellere914bc82014-05-06 16:58:14 +0000498// Check Fedora 21 on AArch64.
499// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
500// RUN: --target=arm64-unknown-linux-gnu \
501// RUN: --sysroot=%S/Inputs/fedora_21_tree \
502// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
503// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
504// RUN: --target=aarch64-unknown-linux-gnu \
505// RUN: --sysroot=%S/Inputs/fedora_21_tree \
506// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
507// CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
508// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o"
509// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o"
510// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o"
511// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0"
512// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64"
513// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o"
514// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o"
515//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000516// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000517// RUN: --target=arm-unknown-linux-gnueabi \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000518// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
519// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
520// CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000521// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o"
522// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o"
523// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000524// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
525// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
526// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
527// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
528// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000529// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o"
530// 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 +0000531//
Hal Finkel6b89a102011-12-08 20:36:19 +0000532// Test the setup that shipped in SUSE 10.3 on ppc64.
533// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000534// RUN: --target=powerpc64-suse-linux \
Hal Finkel6b89a102011-12-08 20:36:19 +0000535// RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
536// RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
537// CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000538// CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o"
Hal Finkel6b89a102011-12-08 20:36:19 +0000539// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
540// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
541// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
542// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000543//
Jiangning Liueabbf922012-07-30 11:05:56 +0000544// Check dynamic-linker for different archs
545// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000546// RUN: --target=arm-linux-gnueabi \
Jiangning Liueabbf922012-07-30 11:05:56 +0000547// RUN: | FileCheck --check-prefix=CHECK-ARM %s
548// CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
549// CHECK-ARM: "-m" "armelf_linux_eabi"
550// CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
551//
552// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000553// RUN: --target=arm-linux-gnueabihf \
Jiangning Liueabbf922012-07-30 11:05:56 +0000554// RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s
555// CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
556// CHECK-ARM-HF: "-m" "armelf_linux_eabi"
557// CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
558//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000559// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand8afad612014-07-28 13:17:52 +0000560// RUN: --target=powerpc64-linux-gnu \
561// RUN: | FileCheck --check-prefix=CHECK-PPC64 %s
562// CHECK-PPC64: "{{.*}}ld{{(.exe)?}}"
563// CHECK-PPC64: "-m" "elf64ppc"
564// CHECK-PPC64: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
565//
566// RUN: %clang %s -### -o %t.o 2>&1 \
567// RUN: --target=powerpc64-linux-gnu -mabi=elfv1 \
568// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s
569// CHECK-PPC64-ELFv1: "{{.*}}ld{{(.exe)?}}"
570// CHECK-PPC64-ELFv1: "-m" "elf64ppc"
571// CHECK-PPC64-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
572//
573// RUN: %clang %s -### -o %t.o 2>&1 \
574// RUN: --target=powerpc64-linux-gnu -mabi=elfv2 \
575// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv2 %s
576// CHECK-PPC64-ELFv2: "{{.*}}ld{{(.exe)?}}"
577// CHECK-PPC64-ELFv2: "-m" "elf64ppc"
578// CHECK-PPC64-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
579//
580// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000581// RUN: --target=powerpc64le-linux-gnu \
582// RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s
583// CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}"
584// CHECK-PPC64LE: "-m" "elf64lppc"
585// CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
586//
Ulrich Weigand8afad612014-07-28 13:17:52 +0000587// RUN: %clang %s -### -o %t.o 2>&1 \
588// RUN: --target=powerpc64le-linux-gnu -mabi=elfv1 \
589// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv1 %s
590// CHECK-PPC64LE-ELFv1: "{{.*}}ld{{(.exe)?}}"
591// CHECK-PPC64LE-ELFv1: "-m" "elf64lppc"
592// CHECK-PPC64LE-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
593//
594// RUN: %clang %s -### -o %t.o 2>&1 \
595// RUN: --target=powerpc64le-linux-gnu -mabi=elfv2 \
596// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv2 %s
597// CHECK-PPC64LE-ELFv2: "{{.*}}ld{{(.exe)?}}"
598// CHECK-PPC64LE-ELFv2: "-m" "elf64lppc"
599// CHECK-PPC64LE-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
600//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000601// Check that we do not pass --hash-style=gnu and --hash-style=both to linker
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000602// and provide correct path to the dynamic linker and emulation mode when build
603// for MIPS platforms.
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000604// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000605// RUN: --target=mips-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000606// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
607// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000608// CHECK-MIPS: "-m" "elf32btsmip"
609// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000610// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000611//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000612// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000613// RUN: --target=mipsel-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000614// RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s
615// CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000616// CHECK-MIPSEL: "-m" "elf32ltsmip"
617// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000618// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000619//
620// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mnan=2008 \
621// RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s
622// CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}"
623// CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip"
624// CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
625// CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}"
626//
627// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \
628// RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s
629// CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}"
630// CHECK-MIPS32R6EL: "-m" "elf32ltsmip"
631// CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
632// CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}"
633//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000634// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000635// RUN: --target=mips64-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000636// RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
637// CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000638// CHECK-MIPS64: "-m" "elf64btsmip"
639// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000640// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000641//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000642// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000643// RUN: --target=mips64el-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000644// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
645// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000646// CHECK-MIPS64EL: "-m" "elf64ltsmip"
647// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000648// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000649//
650// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mnan=2008 \
651// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s
652// CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}"
653// CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip"
654// CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
655// CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}"
656//
657// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \
658// RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s
659// CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}"
660// CHECK-MIPS64R6EL: "-m" "elf64ltsmip"
661// CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
662// CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}"
663//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000664// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000665// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000666// RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
667// CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
668// CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
669// CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
670// CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000671//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000672// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000673// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000674// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
675// CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
676// CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
677// CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
678// CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000679//
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000680// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mabi=n32 \
681// RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s
682// CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}"
683// CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32"
684// CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib32/ld-linux-mipsn8.so.1"
685// CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}"
686//
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000687// RUN: %clang %s -### -o %t.o 2>&1 \
688// RUN: --target=sparc-linux-gnu \
689// RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s
690// CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}"
691// CHECK-SPARCV8: "-m" "elf32_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000692// CHECK-SPARCV8: "-dynamic-linker" "/lib/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000693//
694// RUN: %clang %s -### -o %t.o 2>&1 \
695// RUN: --target=sparcv9-linux-gnu \
696// RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s
697// CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}"
698// CHECK-SPARCV9: "-m" "elf64_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000699// CHECK-SPARCV9: "-dynamic-linker" "/lib64/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000700//
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000701// Thoroughly exercise the Debian multiarch environment.
702// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000703// RUN: --target=i686-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000704// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
705// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
706// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000707// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000708// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
709// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
710// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
711// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
712// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
713// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
714// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000715// RUN: --target=x86_64-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000716// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
717// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
718// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000719// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000720// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
721// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
722// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
723// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
724// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
725// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
726// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000727// RUN: --target=powerpc-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000728// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
729// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
730// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000731// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000732// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
733// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
734// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
735// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
736// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
737// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
738// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000739// RUN: --target=powerpc64-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000740// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
741// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
742// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000743// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000744// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
745// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
746// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
747// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
748// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
749// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000750// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000751// RUN: --target=mips-linux-gnu \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000752// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
753// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
754// CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000755// CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000756// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
757// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
758// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
759// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
760// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
761// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
762// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000763// RUN: --target=mipsel-linux-gnu \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000764// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
765// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
766// CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000767// CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000768// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
769// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
770// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
771// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
772// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
773// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000774// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000775// RUN: --target=mips64-linux-gnu \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000776// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
777// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
778// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000779// CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000780// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
781// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
782// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
783// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
784// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
785// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000786// RUN: --target=mips64el-linux-gnu \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000787// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
788// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
789// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000790// CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000791// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
792// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
793// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
794// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
795// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000796// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000797// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000798// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
799// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
800// CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000801// CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000802// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
803// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
804// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
805// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
806// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
807// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000808// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000809// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
810// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
811// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000812// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000813// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
814// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
815// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
816// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
817// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000818//
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000819// Test linker invocation on Android.
820// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000821// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000822// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000823// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000824// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000825// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000826// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000827// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000828// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000829// RUN: --target=aarch64-linux-android \
830// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
831// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
832// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000833// RUN: --target=arm64-linux-android \
834// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
835// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
836// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000837// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000838// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
839// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000840// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000841// RUN: --target=mips64el-linux-android \
842// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
843// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
844// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000845// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000846// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
847// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000848// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
849// RUN: --target=x86_64-linux-android \
850// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
851// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000852// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000853// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000854// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
855// CHECK-ANDROID-NOT: "gcc_s"
856// CHECK-ANDROID: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000857// CHECK-ANDROID: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000858// CHECK-ANDROID-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000859// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000860// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000861// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000862// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000863// RUN: -shared \
864// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000865// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000866// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000867// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000868// RUN: -shared \
869// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000870// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000871// RUN: --target=aarch64-linux-android \
872// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
873// RUN: -shared \
874// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
875// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000876// RUN: --target=arm64-linux-android \
877// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
878// RUN: -shared \
879// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
880// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000881// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000882// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
883// RUN: -shared \
884// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000885// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000886// RUN: --target=mips64el-linux-android \
887// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
888// RUN: -shared \
889// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
890// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000891// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000892// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
893// RUN: -shared \
894// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000895// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
896// RUN: --target=x86_64-linux-android \
897// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
898// RUN: -shared \
899// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000900// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Evgeniy Stepanova3331172014-07-16 08:46:35 +0000901// CHECK-ANDROID-SO-NOT: "-Bsymbolic"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000902// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000903// CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
904// CHECK-ANDROID-SO-NOT: "gcc_s"
905// CHECK-ANDROID-SO: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000906// CHECK-ANDROID-SO: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000907// CHECK-ANDROID-SO-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000908// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000909// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000910// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000911// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000912// RUN: -static \
913// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000914// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000915// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000916// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000917// RUN: -static \
918// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000919// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000920// RUN: --target=aarch64-linux-android \
921// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
922// RUN: -static \
923// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
924// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000925// RUN: --target=arm64-linux-android \
926// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
927// RUN: -static \
928// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
929// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000930// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000931// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
932// RUN: -static \
933// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000934// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000935// RUN: --target=mips64el-linux-android \
936// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
937// RUN: -static \
938// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
939// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000940// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000941// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
942// RUN: -static \
943// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000944// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Rafael Espindolad76eb442014-08-15 16:55:25 +0000945// RUN: --target=x86_64-linux-android \
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000946// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
947// RUN: -static \
948// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000949// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000950// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000951// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
952// CHECK-ANDROID-STATIC-NOT: "gcc_s"
953// CHECK-ANDROID-STATIC: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000954// CHECK-ANDROID-STATIC-NOT: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000955// CHECK-ANDROID-STATIC-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000956// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000957// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000958// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000959// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
960// RUN: -pie \
961// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
962// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000963// RUN: --target=arm-linux-android \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000964// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
965// RUN: -pie \
966// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000967// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000968// RUN: --target=aarch64-linux-android \
969// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
970// RUN: -pie \
971// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
972// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000973// RUN: --target=arm64-linux-android \
974// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
975// RUN: -pie \
976// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
977// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000978// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000979// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
980// RUN: -pie \
981// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000982// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000983// RUN: --target=mips64el-linux-android \
984// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
985// RUN: -pie \
986// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
987// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000988// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000989// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
990// RUN: -pie \
991// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000992// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
993// RUN: --target=x86_64-linux-android \
994// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
995// RUN: -pie \
996// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000997// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000998// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000999// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
1000// CHECK-ANDROID-PIE-NOT: "gcc_s"
1001// CHECK-ANDROID-PIE: "-lgcc"
1002// CHECK-ANDROID-PIE-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001003// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001004// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1005// RUN: --target=arm-linux-androideabi \
1006// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1007// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1008// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1009// RUN: --target=arm-linux-android \
1010// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1011// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1012// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1013// RUN: --target=mipsel-linux-android \
1014// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1015// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1016// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +00001017// RUN: --target=aarch64-linux-android \
1018// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1019// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1020// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001021// RUN: --target=arm64-linux-android \
1022// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1023// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1024// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001025// RUN: --target=mips64el-linux-android \
1026// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1027// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1028// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001029// RUN: --target=i686-linux-android \
1030// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1031// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1032// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1033// RUN: --target=x86_64-linux-android \
1034// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1035// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1036// CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker"
1037// CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64"
Simon Atanasyand4413882012-09-14 11:27:24 +00001038//
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001039// Test that -pthread does not add -lpthread on Android.
1040// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1041// RUN: --target=arm-linux-androideabi -pthread \
1042// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1043// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1044// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1045// RUN: --target=arm-linux-android -pthread \
1046// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1047// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1048// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1049// RUN: --target=aarch64-linux-android -pthread \
1050// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1051// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1052// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1053// RUN: --target=arm64-linux-android -pthread \
1054// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1055// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1056// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1057// RUN: --target=mipsel-linux-android -pthread \
1058// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1059// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1060// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1061// RUN: --target=mips64el-linux-android -pthread \
1062// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1063// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1064// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1065// RUN: --target=i686-linux-android -pthread \
1066// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1067// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1068// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1069// RUN: --target=x86_64-linux-android -pthread \
1070// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1071// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1072// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1073// RUN: --target=arm-linux-androideabi -pthread \
1074// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1075// RUN: -shared \
1076// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1077// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1078// RUN: --target=arm-linux-android -pthread \
1079// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1080// RUN: -shared \
1081// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1082// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1083// RUN: --target=aarch64-linux-android -pthread \
1084// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1085// RUN: -shared \
1086// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1087// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1088// RUN: --target=arm64-linux-android -pthread \
1089// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1090// RUN: -shared \
1091// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1092// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1093// RUN: --target=mipsel-linux-android -pthread \
1094// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1095// RUN: -shared \
1096// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1097// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1098// RUN: --target=mips64el-linux-android -pthread \
1099// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1100// RUN: -shared \
1101// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1102// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1103// RUN: --target=i686-linux-android -pthread \
1104// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1105// RUN: -shared \
1106// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1107// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1108// RUN: --target=x86_64-linux-android -pthread \
1109// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1110// RUN: -shared \
1111// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1112// CHECK-ANDROID-PTHREAD-NOT: -lpthread
1113//
Evgeniy Stepanovdad92062014-06-05 11:41:39 +00001114// RUN: %clang -no-canonical-prefixes %t.o -### -o %t 2>&1 \
1115// RUN: --target=arm-linux-androideabi -pthread \
1116// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1117// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s
1118// CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread'
1119//
Simon Atanasyand4413882012-09-14 11:27:24 +00001120// Check linker invocation on Debian 6 MIPS 32/64-bit.
1121// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001122// RUN: --target=mipsel-linux-gnu \
Simon Atanasyand4413882012-09-14 11:27:24 +00001123// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1124// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
1125// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001126// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o"
1127// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o"
1128// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001129// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
1130// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
1131// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
1132// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
1133// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1134// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
1135// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
1136//
1137// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001138// RUN: --target=mips64el-linux-gnu \
Simon Atanasyand4413882012-09-14 11:27:24 +00001139// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1140// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
1141// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001142// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o"
1143// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o"
1144// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001145// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
1146// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
1147// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
1148// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
1149// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1150// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
1151// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Hal Finkelf3587912012-09-18 22:25:07 +00001152//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001153// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001154// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001155// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1156// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
1157// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001158// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o"
1159// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o"
1160// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001161// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
1162// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
1163// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
1164// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
1165// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1166// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
1167// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
1168//
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001169// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1170// RUN: --target=mips64-linux-gnuabi64 -mabi=n64 \
1171// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1172// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s
1173// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1174// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crt1.o"
1175// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crti.o"
1176// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1177// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1178// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64"
1179// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64"
1180// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64"
1181// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1182// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../.."
1183// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib"
1184// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib"
1185// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1186// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crtn.o"
1187//
1188// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1189// RUN: --target=mips64el-linux-gnuabi64 -mabi=n64 \
1190// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1191// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s
1192// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1193// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crt1.o"
1194// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crti.o"
1195// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1196// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1197// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64"
1198// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64"
1199// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64"
1200// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1201// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../.."
1202// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib"
1203// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib"
1204// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1205// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crtn.o"
1206//
Hal Finkelf3587912012-09-18 22:25:07 +00001207// Test linker invocation for Freescale SDK (OpenEmbedded).
1208// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001209// RUN: --target=powerpc-fsl-linux \
Hal Finkelf3587912012-09-18 22:25:07 +00001210// RUN: --sysroot=%S/Inputs/freescale_ppc_tree \
1211// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s
1212// CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1213// CHECK-FSL-PPC: "-m" "elf32ppclinux"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001214// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o"
1215// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001216// CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
1217// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001218// RUN: --target=powerpc64-fsl-linux \
Hal Finkelf3587912012-09-18 22:25:07 +00001219// RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \
1220// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
1221// CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1222// CHECK-FSL-PPC64: "-m" "elf64ppc"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001223// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o"
1224// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001225// CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
Benjamin Kramer058666a2012-10-04 19:42:20 +00001226//
Benjamin Kramerab88f622014-03-25 18:02:07 +00001227// Check that crtfastmath.o is linked with -ffast-math and with -Ofast.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001228// RUN: %clang --target=x86_64-unknown-linux -### %s \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001229// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1230// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001231// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001232// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1233// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001234// RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\
Benjamin Kramer058666a2012-10-04 19:42:20 +00001235// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1236// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001237// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast\
1238// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1239// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1240// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -O3\
1241// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1242// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
1243// RUN: %clang --target=x86_64-unknown-linux -### %s -O3 -Ofast\
1244// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1245// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001246// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001247// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1248// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001249// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-fast-math \
1250// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1251// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1252// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-unsafe-math-optimizations \
1253// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1254// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1255// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-fast-math -Ofast \
1256// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1257// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1258// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-unsafe-math-optimizations -Ofast \
1259// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1260// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramer058666a2012-10-04 19:42:20 +00001261// We don't have crtfastmath.o in the i386 tree, use it to check that file
1262// detection works.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001263// RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001264// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1265// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Rafael Espindola49ddb862013-06-24 22:07:15 +00001266// CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o
Benjamin Kramer058666a2012-10-04 19:42:20 +00001267// CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
Eric Christopherac021742013-06-07 23:25:01 +00001268
1269// Check that we link in gcrt1.o when compiling with -pg
Chandler Carruth274b6f02013-06-20 09:42:40 +00001270// RUN: %clang -pg --target=x86_64-unknown-linux -### %s \
Eric Christopherac021742013-06-07 23:25:01 +00001271// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1272// RUN: | FileCheck --check-prefix=CHECK-PG %s
1273// CHECK-PG: gcrt1.o
Reid Kleckner69071442014-06-26 01:08:54 +00001274
1275// GCC forwards -u to the linker.
1276// RUN: %clang -u asdf --target=x86_64-unknown-linux -### %s \
1277// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1278// RUN: | FileCheck --check-prefix=CHECK-u %s
1279// CHECK-u: "-u" "asdf"