blob: c476ec24f99058ea90cd45f54ea69b4585dc73f7 [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"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000052// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
Renato Golinc4b49242014-02-13 10:01:16 +000053// CHECK-LD-RT: "-lc"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000054// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
Renato Golinc4b49242014-02-13 10:01:16 +000055//
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//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000350// Check Ubuntu 14.04 on powerpc64le.
351// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
352// RUN: --target=powerpc64le-unknown-linux-gnu \
353// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
354// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s
355// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
356// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crt1.o"
357// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crti.o"
358// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o"
359// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8"
360// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu"
361// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu"
362// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu"
363// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../.."
364// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o"
365// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crtn.o"
366//
Rafael Espindola50ba9832013-04-14 10:14:21 +0000367// Check fedora 18 on arm.
368// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000369// RUN: --target=armv7-unknown-linux-gnueabihf \
Rafael Espindola50ba9832013-04-14 10:14:21 +0000370// RUN: --sysroot=%S/Inputs/fedora_18_tree \
371// RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
372// CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthda797042013-10-29 10:27:30 +0000373// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
374// 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 +0000375// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
Rafael Espindola50ba9832013-04-14 10:14:21 +0000376// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
Chandler Carruthda797042013-10-29 10:27:30 +0000377// 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 +0000378// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
Chandler Carruthda797042013-10-29 10:27:30 +0000379// 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 +0000380//
Tilmann Schellere914bc82014-05-06 16:58:14 +0000381// Check Fedora 21 on AArch64.
382// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
383// RUN: --target=arm64-unknown-linux-gnu \
384// RUN: --sysroot=%S/Inputs/fedora_21_tree \
385// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
386// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
387// RUN: --target=aarch64-unknown-linux-gnu \
388// RUN: --sysroot=%S/Inputs/fedora_21_tree \
389// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
390// CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
391// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o"
392// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o"
393// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o"
394// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0"
395// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64"
396// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o"
397// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o"
398//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000399// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000400// RUN: --target=arm-unknown-linux-gnueabi \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000401// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
402// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
403// CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000404// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o"
405// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o"
406// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000407// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
408// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
409// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
410// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
411// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000412// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o"
413// 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 +0000414//
Hal Finkel6b89a102011-12-08 20:36:19 +0000415// Test the setup that shipped in SUSE 10.3 on ppc64.
416// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000417// RUN: --target=powerpc64-suse-linux \
Hal Finkel6b89a102011-12-08 20:36:19 +0000418// RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
419// RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
420// CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000421// CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o"
Hal Finkel6b89a102011-12-08 20:36:19 +0000422// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
423// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
424// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
425// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000426//
Jiangning Liueabbf922012-07-30 11:05:56 +0000427// Check dynamic-linker for different archs
428// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000429// RUN: --target=arm-linux-gnueabi \
Jiangning Liueabbf922012-07-30 11:05:56 +0000430// RUN: | FileCheck --check-prefix=CHECK-ARM %s
431// CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
432// CHECK-ARM: "-m" "armelf_linux_eabi"
433// CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
434//
435// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000436// RUN: --target=arm-linux-gnueabihf \
Jiangning Liueabbf922012-07-30 11:05:56 +0000437// RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s
438// CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
439// CHECK-ARM-HF: "-m" "armelf_linux_eabi"
440// CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
441//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000442// RUN: %clang %s -### -o %t.o 2>&1 \
443// RUN: --target=powerpc64le-linux-gnu \
444// RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s
445// CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}"
446// CHECK-PPC64LE: "-m" "elf64lppc"
447// CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
448//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000449// Check that we do not pass --hash-style=gnu and --hash-style=both to linker
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000450// and provide correct path to the dynamic linker and emulation mode when build
451// for MIPS platforms.
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000452// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000453// RUN: --target=mips-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000454// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
455// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000456// CHECK-MIPS: "-m" "elf32btsmip"
457// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000458// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000459//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000460// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000461// RUN: --target=mipsel-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000462// RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s
463// CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000464// CHECK-MIPSEL: "-m" "elf32ltsmip"
465// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000466// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000467//
468// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mnan=2008 \
469// RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s
470// CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}"
471// CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip"
472// CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
473// CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}"
474//
475// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \
476// RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s
477// CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}"
478// CHECK-MIPS32R6EL: "-m" "elf32ltsmip"
479// CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
480// CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}"
481//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000482// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000483// RUN: --target=mips64-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000484// RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
485// CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000486// CHECK-MIPS64: "-m" "elf64btsmip"
487// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000488// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000489//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000490// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000491// RUN: --target=mips64el-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000492// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
493// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000494// CHECK-MIPS64EL: "-m" "elf64ltsmip"
495// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000496// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000497//
498// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mnan=2008 \
499// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s
500// CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}"
501// CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip"
502// CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
503// CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}"
504//
505// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \
506// RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s
507// CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}"
508// CHECK-MIPS64R6EL: "-m" "elf64ltsmip"
509// CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
510// CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}"
511//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000512// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000513// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000514// RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
515// CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
516// CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
517// CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
518// CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000519//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000520// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000521// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000522// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
523// CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
524// CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
525// CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
526// CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000527//
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000528// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mabi=n32 \
529// RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s
530// CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}"
531// CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32"
532// CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib32/ld-linux-mipsn8.so.1"
533// CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}"
534//
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000535// RUN: %clang %s -### -o %t.o 2>&1 \
536// RUN: --target=sparc-linux-gnu \
537// RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s
538// CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}"
539// CHECK-SPARCV8: "-m" "elf32_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000540// CHECK-SPARCV8: "-dynamic-linker" "/lib/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000541//
542// RUN: %clang %s -### -o %t.o 2>&1 \
543// RUN: --target=sparcv9-linux-gnu \
544// RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s
545// CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}"
546// CHECK-SPARCV9: "-m" "elf64_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000547// CHECK-SPARCV9: "-dynamic-linker" "/lib64/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000548//
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000549// Thoroughly exercise the Debian multiarch environment.
550// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000551// RUN: --target=i686-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000552// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
553// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
554// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000555// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000556// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
557// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
558// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
559// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
560// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
561// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
562// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000563// RUN: --target=x86_64-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000564// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
565// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
566// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000567// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000568// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
569// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
570// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
571// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
572// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
573// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
574// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000575// RUN: --target=powerpc-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000576// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
577// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
578// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000579// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000580// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
581// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
582// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
583// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
584// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
585// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
586// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000587// RUN: --target=powerpc64-linux-gnu \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000588// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
589// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
590// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000591// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000592// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
593// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
594// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
595// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
596// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
597// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000598// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000599// RUN: --target=mips-linux-gnu \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000600// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
601// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
602// CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000603// CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000604// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
605// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
606// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
607// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
608// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
609// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
610// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000611// RUN: --target=mipsel-linux-gnu \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000612// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
613// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
614// CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000615// CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000616// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
617// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
618// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
619// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
620// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
621// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000622// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000623// RUN: --target=mips64-linux-gnu \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000624// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
625// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
626// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000627// CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000628// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
629// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
630// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
631// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
632// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
633// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000634// RUN: --target=mips64el-linux-gnu \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000635// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
636// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
637// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000638// CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000639// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
640// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
641// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
642// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
643// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000644// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000645// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000646// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
647// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
648// CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000649// CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000650// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
651// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
652// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
653// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
654// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
655// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000656// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000657// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
658// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
659// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000660// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000661// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
662// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
663// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
664// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
665// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000666//
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000667// Test linker invocation on Android.
668// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000669// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000670// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000671// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000672// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000673// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000674// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000675// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000676// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000677// RUN: --target=aarch64-linux-android \
678// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
679// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
680// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000681// RUN: --target=arm64-linux-android \
682// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
683// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
684// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000685// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000686// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
687// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000688// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000689// RUN: --target=mips64el-linux-android \
690// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
691// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
692// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000693// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000694// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
695// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000696// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
697// RUN: --target=x86_64-linux-android \
698// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
699// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000700// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000701// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000702// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
703// CHECK-ANDROID-NOT: "gcc_s"
704// CHECK-ANDROID: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000705// CHECK-ANDROID: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000706// CHECK-ANDROID-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000707// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000708// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000709// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000710// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000711// RUN: -shared \
712// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000713// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000714// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000715// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000716// RUN: -shared \
717// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000718// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000719// RUN: --target=aarch64-linux-android \
720// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
721// RUN: -shared \
722// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
723// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000724// RUN: --target=arm64-linux-android \
725// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
726// RUN: -shared \
727// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
728// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000729// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000730// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
731// RUN: -shared \
732// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000733// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000734// RUN: --target=mips64el-linux-android \
735// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
736// RUN: -shared \
737// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
738// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000739// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000740// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
741// RUN: -shared \
742// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000743// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
744// RUN: --target=x86_64-linux-android \
745// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
746// RUN: -shared \
747// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000748// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola7df35012012-11-02 20:41:30 +0000749// CHECK-ANDROID-SO: "-Bsymbolic"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000750// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000751// CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
752// CHECK-ANDROID-SO-NOT: "gcc_s"
753// CHECK-ANDROID-SO: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000754// CHECK-ANDROID-SO: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000755// CHECK-ANDROID-SO-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000756// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000757// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000758// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000759// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000760// RUN: -static \
761// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000762// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000763// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000764// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000765// RUN: -static \
766// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000767// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000768// RUN: --target=aarch64-linux-android \
769// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
770// RUN: -static \
771// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
772// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000773// RUN: --target=arm64-linux-android \
774// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
775// RUN: -static \
776// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
777// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000778// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000779// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
780// RUN: -static \
781// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000782// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000783// RUN: --target=mips64el-linux-android \
784// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
785// RUN: -static \
786// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
787// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000788// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000789// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
790// RUN: -static \
791// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000792// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
793// RUN: --target=x86-linux-android \
794// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
795// RUN: -static \
796// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000797// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000798// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000799// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
800// CHECK-ANDROID-STATIC-NOT: "gcc_s"
801// CHECK-ANDROID-STATIC: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000802// CHECK-ANDROID-STATIC-NOT: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000803// CHECK-ANDROID-STATIC-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000804// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000805// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000806// RUN: --target=arm-linux-androideabi \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000807// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
808// RUN: -pie \
809// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
810// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000811// RUN: --target=arm-linux-android \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000812// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
813// RUN: -pie \
814// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000815// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000816// RUN: --target=aarch64-linux-android \
817// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
818// RUN: -pie \
819// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
820// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000821// RUN: --target=arm64-linux-android \
822// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
823// RUN: -pie \
824// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
825// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000826// RUN: --target=mipsel-linux-android \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000827// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
828// RUN: -pie \
829// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000830// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000831// RUN: --target=mips64el-linux-android \
832// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
833// RUN: -pie \
834// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
835// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000836// RUN: --target=i686-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000837// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
838// RUN: -pie \
839// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000840// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
841// RUN: --target=x86_64-linux-android \
842// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
843// RUN: -pie \
844// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000845// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000846// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000847// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
848// CHECK-ANDROID-PIE-NOT: "gcc_s"
849// CHECK-ANDROID-PIE: "-lgcc"
850// CHECK-ANDROID-PIE-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000851// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000852// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
853// RUN: --target=arm-linux-androideabi \
854// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
855// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
856// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
857// RUN: --target=arm-linux-android \
858// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
859// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
860// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
861// RUN: --target=mipsel-linux-android \
862// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
863// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
864// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000865// RUN: --target=aarch64-linux-android \
866// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
867// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
868// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000869// RUN: --target=arm64-linux-android \
870// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
871// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
872// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000873// RUN: --target=mips64el-linux-android \
874// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
875// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
876// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000877// RUN: --target=i686-linux-android \
878// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
879// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
880// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
881// RUN: --target=x86_64-linux-android \
882// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
883// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
884// CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker"
885// CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64"
Simon Atanasyand4413882012-09-14 11:27:24 +0000886//
Evgeniy Stepanov152b0232014-05-28 12:53:34 +0000887// Test that -pthread does not add -lpthread on Android.
888// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
889// RUN: --target=arm-linux-androideabi -pthread \
890// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
891// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
892// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
893// RUN: --target=arm-linux-android -pthread \
894// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
895// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
896// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
897// RUN: --target=aarch64-linux-android -pthread \
898// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
899// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
900// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
901// RUN: --target=arm64-linux-android -pthread \
902// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
903// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
904// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
905// RUN: --target=mipsel-linux-android -pthread \
906// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
907// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
908// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
909// RUN: --target=mips64el-linux-android -pthread \
910// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
911// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
912// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
913// RUN: --target=i686-linux-android -pthread \
914// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
915// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
916// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
917// RUN: --target=x86_64-linux-android -pthread \
918// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
919// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
920// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
921// RUN: --target=arm-linux-androideabi -pthread \
922// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
923// RUN: -shared \
924// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
925// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
926// RUN: --target=arm-linux-android -pthread \
927// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
928// RUN: -shared \
929// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
930// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
931// RUN: --target=aarch64-linux-android -pthread \
932// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
933// RUN: -shared \
934// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
935// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
936// RUN: --target=arm64-linux-android -pthread \
937// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
938// RUN: -shared \
939// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
940// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
941// RUN: --target=mipsel-linux-android -pthread \
942// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
943// RUN: -shared \
944// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
945// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
946// RUN: --target=mips64el-linux-android -pthread \
947// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
948// RUN: -shared \
949// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
950// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
951// RUN: --target=i686-linux-android -pthread \
952// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
953// RUN: -shared \
954// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
955// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
956// RUN: --target=x86_64-linux-android -pthread \
957// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
958// RUN: -shared \
959// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
960// CHECK-ANDROID-PTHREAD-NOT: -lpthread
961//
Evgeniy Stepanovdad92062014-06-05 11:41:39 +0000962// RUN: %clang -no-canonical-prefixes %t.o -### -o %t 2>&1 \
963// RUN: --target=arm-linux-androideabi -pthread \
964// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
965// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s
966// CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread'
967//
Simon Atanasyand4413882012-09-14 11:27:24 +0000968// Check linker invocation on Debian 6 MIPS 32/64-bit.
969// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000970// RUN: --target=mipsel-linux-gnu \
Simon Atanasyand4413882012-09-14 11:27:24 +0000971// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
972// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
973// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000974// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o"
975// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o"
976// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +0000977// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
978// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
979// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
980// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
981// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
982// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
983// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
984//
985// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000986// RUN: --target=mips64el-linux-gnu \
Simon Atanasyand4413882012-09-14 11:27:24 +0000987// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
988// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
989// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000990// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o"
991// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o"
992// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +0000993// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
994// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
995// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
996// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
997// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
998// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
999// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Hal Finkelf3587912012-09-18 22:25:07 +00001000//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001001// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001002// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001003// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1004// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
1005// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001006// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o"
1007// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o"
1008// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001009// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
1010// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
1011// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
1012// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
1013// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1014// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
1015// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
1016//
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001017// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1018// RUN: --target=mips64-linux-gnuabi64 -mabi=n64 \
1019// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1020// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s
1021// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1022// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crt1.o"
1023// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crti.o"
1024// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1025// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1026// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64"
1027// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64"
1028// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64"
1029// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1030// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../.."
1031// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib"
1032// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib"
1033// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1034// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crtn.o"
1035//
1036// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1037// RUN: --target=mips64el-linux-gnuabi64 -mabi=n64 \
1038// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1039// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s
1040// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1041// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crt1.o"
1042// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crti.o"
1043// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1044// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1045// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64"
1046// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64"
1047// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64"
1048// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1049// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../.."
1050// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib"
1051// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib"
1052// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1053// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crtn.o"
1054//
Hal Finkelf3587912012-09-18 22:25:07 +00001055// Test linker invocation for Freescale SDK (OpenEmbedded).
1056// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001057// RUN: --target=powerpc-fsl-linux \
Hal Finkelf3587912012-09-18 22:25:07 +00001058// RUN: --sysroot=%S/Inputs/freescale_ppc_tree \
1059// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s
1060// CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1061// CHECK-FSL-PPC: "-m" "elf32ppclinux"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001062// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o"
1063// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001064// CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
1065// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001066// RUN: --target=powerpc64-fsl-linux \
Hal Finkelf3587912012-09-18 22:25:07 +00001067// RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \
1068// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
1069// CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1070// CHECK-FSL-PPC64: "-m" "elf64ppc"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001071// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o"
1072// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001073// CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
Benjamin Kramer058666a2012-10-04 19:42:20 +00001074//
Benjamin Kramerab88f622014-03-25 18:02:07 +00001075// Check that crtfastmath.o is linked with -ffast-math and with -Ofast.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001076// RUN: %clang --target=x86_64-unknown-linux -### %s \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001077// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1078// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001079// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001080// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1081// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001082// RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\
Benjamin Kramer058666a2012-10-04 19:42:20 +00001083// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1084// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001085// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast\
1086// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1087// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1088// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -O3\
1089// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1090// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
1091// RUN: %clang --target=x86_64-unknown-linux -### %s -O3 -Ofast\
1092// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1093// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001094// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001095// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1096// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001097// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-fast-math \
1098// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1099// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1100// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-unsafe-math-optimizations \
1101// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1102// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1103// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-fast-math -Ofast \
1104// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1105// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1106// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-unsafe-math-optimizations -Ofast \
1107// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1108// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramer058666a2012-10-04 19:42:20 +00001109// We don't have crtfastmath.o in the i386 tree, use it to check that file
1110// detection works.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001111// RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001112// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1113// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Rafael Espindola49ddb862013-06-24 22:07:15 +00001114// CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o
Benjamin Kramer058666a2012-10-04 19:42:20 +00001115// CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
Eric Christopherac021742013-06-07 23:25:01 +00001116
1117// Check that we link in gcrt1.o when compiling with -pg
Chandler Carruth274b6f02013-06-20 09:42:40 +00001118// RUN: %clang -pg --target=x86_64-unknown-linux -### %s \
Eric Christopherac021742013-06-07 23:25:01 +00001119// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1120// RUN: | FileCheck --check-prefix=CHECK-PG %s
1121// CHECK-PG: gcrt1.o