blob: 2d1f8ed08c0bd5f41738cc8602b44f936ec1c424 [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 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000037// RUN: --target=x86_64-unknown-linux \
Renato Golinc4b49242014-02-13 10:01:16 +000038// RUN: --sysroot=%S/Inputs/basic_linux_tree \
39// RUN: --rtlib=compiler-rt \
40// RUN: | FileCheck --check-prefix=CHECK-LD-RT %s
41// CHECK-LD-RT-NOT: warning:
42// CHECK-LD-RT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
43// CHECK-LD-RT: "--eh-frame-hdr"
44// CHECK-LD-RT: "-m" "elf_x86_64"
45// CHECK-LD-RT: "-dynamic-linker"
46// CHECK-LD-RT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
47// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
48// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
49// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
50// CHECK-LD-RT: "-L[[SYSROOT]]/lib"
51// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib"
52// CHECK-LD-RT: libclang_rt.x86_64.a" "-lgcc_s"
53// CHECK-LD-RT: "-lc"
54// CHECK-LD-RT: libclang_rt.x86_64.a" "-lgcc_s"
55//
56// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
57// RUN: --target=x86_64-unknown-linux \
58// RUN: --sysroot=%S/Inputs/basic_linux_tree \
59// RUN: --rtlib=libgcc \
60// RUN: | FileCheck --check-prefix=CHECK-LD-GCC %s
61// CHECK-LD-GCC-NOT: warning:
62// CHECK-LD-GCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
63// CHECK-LD-GCC: "--eh-frame-hdr"
64// CHECK-LD-GCC: "-m" "elf_x86_64"
65// CHECK-LD-GCC: "-dynamic-linker"
66// CHECK-LD-GCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
67// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
68// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
69// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
70// CHECK-LD-GCC: "-L[[SYSROOT]]/lib"
71// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib"
72// CHECK-LD-GCC "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
73// CHECK-LD-GCC: "-lc"
74// CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
75//
76// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
77// RUN: --target=x86_64-unknown-linux \
Chandler Carruth4588e342013-03-04 01:27:49 +000078// RUN: -static-libgcc \
79// RUN: --sysroot=%S/Inputs/basic_linux_tree \
80// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +000081// CHECK-LD-64-STATIC-LIBGCC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +000082// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
83// CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr"
84// CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64"
85// CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker"
Rafael Espindola49ddb862013-06-24 22:07:15 +000086// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth4588e342013-03-04 01:27:49 +000087// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
88// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
89// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
90// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib"
91// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib"
92// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
93// CHECK-LD-64-STATIC-LIBGCC: "-lc"
94// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
95//
96// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000097// RUN: --target=x86_64-unknown-linux \
Chandler Carruth4588e342013-03-04 01:27:49 +000098// RUN: -static \
99// RUN: --sysroot=%S/Inputs/basic_linux_tree \
100// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000101// CHECK-LD-64-STATIC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +0000102// CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
103// CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr"
104// CHECK-LD-64-STATIC: "-m" "elf_x86_64"
105// CHECK-LD-64-STATIC-NOT: "-dynamic-linker"
106// CHECK-LD-64-STATIC: "-static"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000107// CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o"
Chandler Carruth4588e342013-03-04 01:27:49 +0000108// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
109// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
110// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
111// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib"
112// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib"
113// CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000114//
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000115// Check that flags can be combined. The -static dominates.
116// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000117// RUN: --target=x86_64-unknown-linux \
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000118// RUN: -static-libgcc -static \
119// RUN: --sysroot=%S/Inputs/basic_linux_tree \
120// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
121//
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000122// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000123// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000124// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
125// RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s
126// CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000127// CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000128// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000129// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32"
130// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32"
131// CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
132// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000133// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
134// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
135// CHECK-32-TO-32: "-L[[SYSROOT]]/lib"
136// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib"
137//
138// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000139// RUN: --target=i386-unknown-linux -m64 \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000140// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
141// RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s
142// CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000143// CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000144// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64"
145// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64"
146// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64"
147// CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
148// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
149// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
150// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
151// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
152// CHECK-32-TO-64: "-L[[SYSROOT]]/lib"
153// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000154//
155// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000156// RUN: --target=x86_64-unknown-linux -m64 \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000157// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
158// RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s
159// CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000160// CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000161// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000162// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
163// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
164// CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64"
165// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000166// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
167// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
168// CHECK-64-TO-64: "-L[[SYSROOT]]/lib"
169// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib"
170//
171// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000172// RUN: --target=x86_64-unknown-linux -m32 \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000173// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
174// RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s
175// CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000176// CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000177// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
178// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
179// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
180// CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32"
181// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
182// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
183// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
184// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
185// CHECK-64-TO-32: "-L[[SYSROOT]]/lib"
186// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000187//
188// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000189// RUN: --target=x86_64-unknown-linux -m32 \
190// RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \
Chandler Carruth69a125b2012-04-06 16:32:06 +0000191// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
192// RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s
193// CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000194// 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 +0000195// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
196// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32"
197// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32"
198// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
199// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib"
200// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib"
201//
202// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000203// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000204// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000205// RUN: --sysroot=%S/Inputs/basic_linux_tree \
206// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s
207// CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000208// 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 +0000209// 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 +0000210//
211// Check that with 64-bit builds, we don't actually use the install directory
212// as its version of GCC is lower than our sysrooted version.
213// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000214// RUN: --target=x86_64-unknown-linux -m64 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000215// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000216// RUN: --sysroot=%S/Inputs/basic_linux_tree \
217// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s
218// CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000219// CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000220// CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000221//
222// Check that we support unusual patch version formats, including missing that
223// component.
224// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000225// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000226// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000227// RUN: --sysroot=%S/Inputs/basic_linux_tree \
228// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s
229// CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000230// CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o"
Chandler Carruthe276b362011-10-05 06:38:03 +0000231// CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000232// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000233// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000234// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000235// RUN: --sysroot=%S/Inputs/basic_linux_tree \
236// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s
237// CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000238// 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 +0000239// CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000240// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000241// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000242// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000243// RUN: --sysroot=%S/Inputs/basic_linux_tree \
244// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s
245// CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000246// 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 +0000247// 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 +0000248// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000249// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000250// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \
251// RUN: --sysroot=%S/Inputs/basic_linux_tree \
252// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s
253// CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000254// 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 +0000255// CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000256//
Chandler Carruth902efc62014-01-21 22:49:05 +0000257// Test a simulated installation of libc++ on Linux, both through sysroot and
258// the installation path of Clang.
259// RUN: %clangxx -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
260// RUN: -target x86_64-unknown-linux-gnu \
261// RUN: -stdlib=libc++ \
262// RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
263// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
264// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s
265// CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
266// CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
267// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
268// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
269// CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]"
270// RUN: %clang -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
271// RUN: -target x86_64-unknown-linux-gnu \
272// RUN: -stdlib=libc++ \
273// RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
274// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
275// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s
276// CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
277// CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
278// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
279// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
280// CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]"
281// CHECK-BASIC-LIBCXX-INSTALL: "-L[[SYSROOT]]/usr/bin/../lib"
282//
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000283// Test a very broken version of multiarch that shipped in Ubuntu 11.04.
284// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000285// RUN: --target=i386-unknown-linux \
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000286// RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
287// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
288// CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000289// CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000290// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
291// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu"
292// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
293// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
294// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib"
295// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib"
Hal Finkel6b89a102011-12-08 20:36:19 +0000296//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000297// Check multi arch support on Ubuntu 12.04 LTS.
298// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000299// RUN: --target=arm-unknown-linux-gnueabihf \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000300// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
301// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s
302// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000303// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o"
304// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o"
305// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000306// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3"
307// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf"
308// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf"
309// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf"
310// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000311// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o"
312// 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 +0000313//
Chandler Carruthda797042013-10-29 10:27:30 +0000314// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf.
315// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
316// RUN: --target=arm-linux-gnueabihf \
317// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
318// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s
319// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
320// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3"
321// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o"
322// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o"
323// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o"
324// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8"
325// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib"
326// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib"
327// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib"
328// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib"
329// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o"
330// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o"
331//
332// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi.
333// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
334// RUN: --target=arm-linux-gnueabi \
335// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
336// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s
337// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
338// CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3"
339// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o"
340// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o"
341// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o"
342// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7"
343// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib"
344// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib"
345// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib"
346// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib"
347// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o"
348// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o"
349//
Rafael Espindola50ba9832013-04-14 10:14:21 +0000350// Check fedora 18 on arm.
351// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000352// RUN: --target=armv7-unknown-linux-gnueabihf \
Rafael Espindola50ba9832013-04-14 10:14:21 +0000353// RUN: --sysroot=%S/Inputs/fedora_18_tree \
354// RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
355// CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthda797042013-10-29 10:27:30 +0000356// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
357// 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 +0000358// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
Rafael Espindola50ba9832013-04-14 10:14:21 +0000359// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
Chandler Carruthda797042013-10-29 10:27:30 +0000360// 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 +0000361// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
Chandler Carruthda797042013-10-29 10:27:30 +0000362// 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 +0000363//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000364// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000365// RUN: --target=arm-unknown-linux-gnueabi \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000366// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
367// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
368// CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000369// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o"
370// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o"
371// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000372// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
373// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
374// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
375// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
376// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000377// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o"
378// 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 +0000379//
Hal Finkel6b89a102011-12-08 20:36:19 +0000380// Test the setup that shipped in SUSE 10.3 on ppc64.
381// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000382// RUN: --target=powerpc64-suse-linux \
Hal Finkel6b89a102011-12-08 20:36:19 +0000383// RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
384// RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
385// CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000386// CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o"
Hal Finkel6b89a102011-12-08 20:36:19 +0000387// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
388// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
389// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
390// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000391//
Jiangning Liueabbf922012-07-30 11:05:56 +0000392// Check dynamic-linker for different archs
393// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000394// RUN: --target=arm-linux-gnueabi \
Jiangning Liueabbf922012-07-30 11:05:56 +0000395// RUN: | FileCheck --check-prefix=CHECK-ARM %s
396// CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
397// CHECK-ARM: "-m" "armelf_linux_eabi"
398// CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
399//
400// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000401// RUN: --target=arm-linux-gnueabihf \
Jiangning Liueabbf922012-07-30 11:05:56 +0000402// RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s
403// CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
404// CHECK-ARM-HF: "-m" "armelf_linux_eabi"
405// CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
406//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000407// Check that we do not pass --hash-style=gnu and --hash-style=both to linker
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000408// and provide correct path to the dynamic linker and emulation mode when build
409// for MIPS platforms.
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000410// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000411// RUN: --target=mips-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000412// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
413// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000414// CHECK-MIPS: "-m" "elf32btsmip"
415// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000416// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
417// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000418// RUN: --target=mipsel-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000419// RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s
420// CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000421// CHECK-MIPSEL: "-m" "elf32ltsmip"
422// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000423// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
424// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000425// RUN: --target=mips64-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000426// RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
427// CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000428// CHECK-MIPS64: "-m" "elf64btsmip"
429// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000430// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
431// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000432// RUN: --target=mips64el-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000433// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
434// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000435// CHECK-MIPS64EL: "-m" "elf64ltsmip"
436// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000437// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000438// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000439// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000440// RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
441// CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
442// CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
443// CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
444// CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
445// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000446// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000447// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
448// CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
449// CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
450// CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
451// CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000452//
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000453// RUN: %clang %s -### -o %t.o 2>&1 \
454// RUN: --target=sparc-linux-gnu \
455// RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s
456// CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}"
457// CHECK-SPARCV8: "-m" "elf32_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000458// CHECK-SPARCV8: "-dynamic-linker" "/lib/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000459//
460// RUN: %clang %s -### -o %t.o 2>&1 \
461// RUN: --target=sparcv9-linux-gnu \
462// RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s
463// CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}"
464// CHECK-SPARCV9: "-m" "elf64_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000465// CHECK-SPARCV9: "-dynamic-linker" "/lib64/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000466//
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000467// Thoroughly exercise the Debian multiarch environment.
468// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000469// RUN: --target=i686-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000470// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
471// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
472// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000473// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000474// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
475// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
476// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
477// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
478// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
479// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
480// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000481// RUN: --target=x86_64-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000482// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
483// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
484// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000485// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000486// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
487// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
488// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
489// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
490// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
491// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
492// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000493// RUN: --target=powerpc-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000494// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
495// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
496// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000497// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000498// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
499// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
500// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
501// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
502// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
503// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
504// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000505// RUN: --target=powerpc64-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000506// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
507// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
508// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000509// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000510// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
511// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
512// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
513// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
514// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
515// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000516// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000517// RUN: --target=mips-linux-gnu \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000518// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
519// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
520// CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000521// CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000522// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
523// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
524// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
525// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
526// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
527// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
528// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000529// RUN: --target=mipsel-linux-gnu \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000530// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
531// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
532// CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000533// CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000534// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
535// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
536// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
537// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
538// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
539// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000540// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000541// RUN: --target=mips64-linux-gnu \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000542// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
543// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
544// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000545// CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000546// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
547// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
548// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
549// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
550// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
551// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000552// RUN: --target=mips64el-linux-gnu \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000553// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
554// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
555// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000556// CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000557// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
558// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
559// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
560// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
561// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000562// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000563// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000564// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
565// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
566// CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000567// CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000568// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
569// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
570// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
571// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
572// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
573// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000574// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000575// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
576// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
577// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000578// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000579// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
580// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
581// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
582// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
583// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000584//
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000585// Test linker invocation on Android.
586// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000587// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000588// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000589// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000590// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000591// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000592// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000593// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000594// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000595// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000596// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
597// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000598// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000599// RUN: --target=mips64el-linux-android \
600// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
601// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
602// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000603// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000604// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
605// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000606// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
607// RUN: --target=x86_64-linux-android \
608// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
609// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000610// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000611// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000612// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
613// CHECK-ANDROID-NOT: "gcc_s"
614// CHECK-ANDROID: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000615// CHECK-ANDROID: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000616// CHECK-ANDROID-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000617// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000618// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000619// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000620// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000621// RUN: -shared \
622// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000623// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000624// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000625// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000626// RUN: -shared \
627// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000628// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000629// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000630// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
631// RUN: -shared \
632// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000633// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000634// RUN: --target=mips64el-linux-android \
635// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
636// RUN: -shared \
637// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
638// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000639// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000640// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
641// RUN: -shared \
642// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000643// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
644// RUN: --target=x86_64-linux-android \
645// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
646// RUN: -shared \
647// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000648// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola7df35012012-11-02 20:41:30 +0000649// CHECK-ANDROID-SO: "-Bsymbolic"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000650// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000651// CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
652// CHECK-ANDROID-SO-NOT: "gcc_s"
653// CHECK-ANDROID-SO: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000654// CHECK-ANDROID-SO: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000655// CHECK-ANDROID-SO-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000656// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000657// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000658// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000659// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000660// RUN: -static \
661// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000662// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000663// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000664// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000665// RUN: -static \
666// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000667// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000668// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000669// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
670// RUN: -static \
671// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000672// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000673// RUN: --target=mips64el-linux-android \
674// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
675// RUN: -static \
676// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
677// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000678// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000679// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
680// RUN: -static \
681// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000682// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
683// RUN: --target=x86-linux-android \
684// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
685// RUN: -static \
686// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000687// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000688// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000689// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
690// CHECK-ANDROID-STATIC-NOT: "gcc_s"
691// CHECK-ANDROID-STATIC: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000692// CHECK-ANDROID-STATIC-NOT: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000693// CHECK-ANDROID-STATIC-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000694// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000695// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000696// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000697// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
698// RUN: -pie \
699// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
700// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000701// RUN: --target=arm-linux-android \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000702// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
703// RUN: -pie \
704// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000705// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000706// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000707// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
708// RUN: -pie \
709// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000710// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000711// RUN: --target=mips64el-linux-android \
712// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
713// RUN: -pie \
714// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
715// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000716// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000717// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
718// RUN: -pie \
719// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000720// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
721// RUN: --target=x86_64-linux-android \
722// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
723// RUN: -pie \
724// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000725// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000726// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000727// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
728// CHECK-ANDROID-PIE-NOT: "gcc_s"
729// CHECK-ANDROID-PIE: "-lgcc"
730// CHECK-ANDROID-PIE-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000731// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000732// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
733// RUN: --target=arm-linux-androideabi \
734// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
735// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
736// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
737// RUN: --target=arm-linux-android \
738// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
739// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
740// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
741// RUN: --target=mipsel-linux-android \
742// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
743// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
744// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000745// RUN: --target=mips64el-linux-android \
746// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
747// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
748// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000749// RUN: --target=i686-linux-android \
750// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
751// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
752// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
753// RUN: --target=x86_64-linux-android \
754// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
755// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
756// CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker"
757// CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64"
Simon Atanasyand4413882012-09-14 11:27:24 +0000758//
759// Check linker invocation on Debian 6 MIPS 32/64-bit.
760// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000761// RUN: --target=mipsel-linux-gnu \
Simon Atanasyand4413882012-09-14 11:27:24 +0000762// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
763// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
764// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000765// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o"
766// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o"
767// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +0000768// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
769// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
770// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
771// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
772// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
773// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
774// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
775//
776// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000777// RUN: --target=mips64el-linux-gnu \
Simon Atanasyand4413882012-09-14 11:27:24 +0000778// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
779// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
780// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000781// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o"
782// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o"
783// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +0000784// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
785// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
786// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
787// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
788// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
789// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
790// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Hal Finkelf3587912012-09-18 22:25:07 +0000791//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000792// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000793// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000794// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
795// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
796// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000797// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o"
798// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o"
799// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000800// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
801// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
802// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
803// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
804// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
805// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
806// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
807//
Hal Finkelf3587912012-09-18 22:25:07 +0000808// Test linker invocation for Freescale SDK (OpenEmbedded).
809// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000810// RUN: --target=powerpc-fsl-linux \
Hal Finkelf3587912012-09-18 22:25:07 +0000811// RUN: --sysroot=%S/Inputs/freescale_ppc_tree \
812// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s
813// CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
814// CHECK-FSL-PPC: "-m" "elf32ppclinux"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000815// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o"
816// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +0000817// CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
818// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000819// RUN: --target=powerpc64-fsl-linux \
Hal Finkelf3587912012-09-18 22:25:07 +0000820// RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \
821// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
822// CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
823// CHECK-FSL-PPC64: "-m" "elf64ppc"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000824// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o"
825// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +0000826// CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
Benjamin Kramer058666a2012-10-04 19:42:20 +0000827//
828// Check that crtfastmath.o is linked with -ffast-math.
Chandler Carruth274b6f02013-06-20 09:42:40 +0000829// RUN: %clang --target=x86_64-unknown-linux -### %s \
Benjamin Kramer058666a2012-10-04 19:42:20 +0000830// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
831// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +0000832// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +0000833// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
834// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +0000835// RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\
Benjamin Kramer058666a2012-10-04 19:42:20 +0000836// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
837// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +0000838// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +0000839// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
840// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
841// We don't have crtfastmath.o in the i386 tree, use it to check that file
842// detection works.
Chandler Carruth274b6f02013-06-20 09:42:40 +0000843// RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +0000844// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
845// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Rafael Espindola49ddb862013-06-24 22:07:15 +0000846// CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o
Benjamin Kramer058666a2012-10-04 19:42:20 +0000847// CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
Eric Christopherac021742013-06-07 23:25:01 +0000848
849// Check that we link in gcrt1.o when compiling with -pg
Chandler Carruth274b6f02013-06-20 09:42:40 +0000850// RUN: %clang -pg --target=x86_64-unknown-linux -### %s \
Eric Christopherac021742013-06-07 23:25:01 +0000851// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
852// RUN: | FileCheck --check-prefix=CHECK-PG %s
853// CHECK-PG: gcrt1.o