blob: 78223bb06bc36d2c51ba9db4fea6a2cd142fc6ac [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 \
Sebastian Pop422377c2012-01-20 22:01:23 +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:[^"]+]]"
Chandler Carruth35cd7022011-10-03 08:16:09 +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 \
Sebastian Pop422377c2012-01-20 22:01:23 +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"
Chandler Carruth35cd7022011-10-03 08:16:09 +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 \
37// RUN: -target x86_64-unknown-linux \
38// RUN: -static-libgcc \
39// RUN: --sysroot=%S/Inputs/basic_linux_tree \
40// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +000041// CHECK-LD-64-STATIC-LIBGCC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +000042// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
43// CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr"
44// CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64"
45// CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker"
46// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o"
47// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
48// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
49// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
50// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib"
51// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib"
52// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
53// CHECK-LD-64-STATIC-LIBGCC: "-lc"
54// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
55//
56// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
57// RUN: -target x86_64-unknown-linux \
58// RUN: -static \
59// RUN: --sysroot=%S/Inputs/basic_linux_tree \
60// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +000061// CHECK-LD-64-STATIC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +000062// CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
63// CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr"
64// CHECK-LD-64-STATIC: "-m" "elf_x86_64"
65// CHECK-LD-64-STATIC-NOT: "-dynamic-linker"
66// CHECK-LD-64-STATIC: "-static"
67// CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o"
68// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
69// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
70// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
71// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib"
72// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib"
73// CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
Chandler Carruth2356b2c2011-10-03 09:00:50 +000074//
Chandler Carruth58d6eb62013-03-04 02:07:55 +000075// Check that flags can be combined. The -static dominates.
76// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
77// RUN: -target x86_64-unknown-linux \
78// RUN: -static-libgcc -static \
79// RUN: --sysroot=%S/Inputs/basic_linux_tree \
80// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
81//
Chandler Carruth2356b2c2011-10-03 09:00:50 +000082// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +000083// RUN: -target i386-unknown-linux -m32 \
Chandler Carruth2356b2c2011-10-03 09:00:50 +000084// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
85// RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s
86// CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
87// CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/crtbegin.o"
88// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
89// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32"
90// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32"
91// CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
92// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
93// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
94// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
95// CHECK-32-TO-32: "-L[[SYSROOT]]/lib"
96// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib"
97//
98// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +000099// RUN: -target i386-unknown-linux -m64 \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000100// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
101// RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s
102// CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
103// CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64/crtbegin.o"
104// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64"
105// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64"
106// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64"
107// CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
108// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
109// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
110// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
111// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
112// CHECK-32-TO-64: "-L[[SYSROOT]]/lib"
113// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000114//
115// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000116// RUN: -target x86_64-unknown-linux -m64 \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000117// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
118// RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s
119// CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
120// CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o"
121// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
122// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
123// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
124// CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64"
125// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
126// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
127// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
128// CHECK-64-TO-64: "-L[[SYSROOT]]/lib"
129// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib"
130//
131// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000132// RUN: -target x86_64-unknown-linux -m32 \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000133// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
134// RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s
135// CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
136// CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32/crtbegin.o"
137// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
138// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
139// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
140// CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32"
141// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
142// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
143// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
144// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
145// CHECK-64-TO-32: "-L[[SYSROOT]]/lib"
146// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000147//
148// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth69a125b2012-04-06 16:32:06 +0000149// RUN: -target x86_64-unknown-linux -m32 \
150// RUN: -gcc-toolchain %S/Inputs/multilib_64bit_linux_tree/usr \
151// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
152// RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s
153// CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
154// CHECK-64-TO-32-SYSROOT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32/crtbegin.o"
155// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
156// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32"
157// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32"
158// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
159// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib"
160// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib"
161//
162// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000163// RUN: -target i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000164// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000165// RUN: --sysroot=%S/Inputs/basic_linux_tree \
166// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s
167// CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthe276b362011-10-05 06:38:03 +0000168// CHECK-INSTALL-DIR-32: "{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0/crtbegin.o"
169// 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 +0000170//
171// Check that with 64-bit builds, we don't actually use the install directory
172// as its version of GCC is lower than our sysrooted version.
173// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000174// RUN: -target x86_64-unknown-linux -m64 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000175// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000176// RUN: --sysroot=%S/Inputs/basic_linux_tree \
177// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s
178// CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
179// CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o"
180// CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000181//
182// Check that we support unusual patch version formats, including missing that
183// component.
184// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000185// RUN: -target i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000186// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000187// RUN: --sysroot=%S/Inputs/basic_linux_tree \
188// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s
189// CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthe276b362011-10-05 06:38:03 +0000190// CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7/crtbegin.o"
191// CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000192// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000193// RUN: -target i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000194// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000195// RUN: --sysroot=%S/Inputs/basic_linux_tree \
196// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s
197// CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthe276b362011-10-05 06:38:03 +0000198// CHECK-GCC-VERSION2: "{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x/crtbegin.o"
199// CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000200// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000201// RUN: -target i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000202// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000203// RUN: --sysroot=%S/Inputs/basic_linux_tree \
204// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s
205// CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthe276b362011-10-05 06:38:03 +0000206// CHECK-GCC-VERSION3: "{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5/crtbegin.o"
207// 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 +0000208// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000209// RUN: -target i386-unknown-linux -m32 \
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000210// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \
211// RUN: --sysroot=%S/Inputs/basic_linux_tree \
212// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s
213// CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
214// CHECK-GCC-VERSION4: "{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99/crtbegin.o"
215// CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000216//
217// Test a very broken version of multiarch that shipped in Ubuntu 11.04.
218// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000219// RUN: -target i386-unknown-linux \
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000220// RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
221// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
222// CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
223// CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/crtbegin.o"
224// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
225// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu"
226// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
227// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
228// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib"
229// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib"
Hal Finkel6b89a102011-12-08 20:36:19 +0000230//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000231// Check multi arch support on Ubuntu 12.04 LTS.
232// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
233// RUN: -target arm-unknown-linux-gnueabihf \
234// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
235// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s
236// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
237// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf/crt1.o"
238// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf/crti.o"
239// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/crtbegin.o"
240// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3"
241// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf"
242// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf"
243// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf"
244// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.."
245// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/crtend.o"
246// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf/crtn.o"
247//
Rafael Espindola50ba9832013-04-14 10:14:21 +0000248// Check fedora 18 on arm.
249// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
250// RUN: -target armv7-unknown-linux-gnueabihf \
251// RUN: --sysroot=%S/Inputs/fedora_18_tree \
252// RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
253// CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
254// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../crt1.o"
255// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../crti.o"
256// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/crtbegin.o"
257// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
258// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../.."
259// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/lib"
260// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib"
261// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/crtend.o"
262// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../crtn.o"
263//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000264// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
265// RUN: -target arm-unknown-linux-gnueabi \
266// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
267// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
268// CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
269// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi/crt1.o"
270// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi/crti.o"
271// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/crtbegin.o"
272// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
273// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
274// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
275// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
276// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
277// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/crtend.o"
278// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi/crtn.o"
279//
Hal Finkel6b89a102011-12-08 20:36:19 +0000280// Test the setup that shipped in SUSE 10.3 on ppc64.
281// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Sebastian Pop422377c2012-01-20 22:01:23 +0000282// RUN: -target powerpc64-suse-linux \
Hal Finkel6b89a102011-12-08 20:36:19 +0000283// RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
284// RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
285// CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
286// CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64/crtbegin.o"
287// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
288// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
289// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
290// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000291//
Jiangning Liueabbf922012-07-30 11:05:56 +0000292// Check dynamic-linker for different archs
293// RUN: %clang %s -### -o %t.o 2>&1 \
294// RUN: -target arm-linux-gnueabi \
295// RUN: | FileCheck --check-prefix=CHECK-ARM %s
296// CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
297// CHECK-ARM: "-m" "armelf_linux_eabi"
298// CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
299//
300// RUN: %clang %s -### -o %t.o 2>&1 \
301// RUN: -target arm-linux-gnueabihf \
302// RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s
303// CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
304// CHECK-ARM-HF: "-m" "armelf_linux_eabi"
305// CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
306//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000307// Check that we do not pass --hash-style=gnu and --hash-style=both to linker
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000308// and provide correct path to the dynamic linker and emulation mode when build
309// for MIPS platforms.
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000310// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindolafc3fc0c2012-10-09 20:46:28 +0000311// RUN: -target mips-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000312// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
313// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000314// CHECK-MIPS: "-m" "elf32btsmip"
315// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000316// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
317// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindolafc3fc0c2012-10-09 20:46:28 +0000318// RUN: -target mipsel-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000319// RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s
320// CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000321// CHECK-MIPSEL: "-m" "elf32ltsmip"
322// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000323// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
324// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindolafc3fc0c2012-10-09 20:46:28 +0000325// RUN: -target mips64-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000326// RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
327// CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000328// CHECK-MIPS64: "-m" "elf64btsmip"
329// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000330// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
331// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindolafc3fc0c2012-10-09 20:46:28 +0000332// RUN: -target mips64el-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000333// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
334// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000335// CHECK-MIPS64EL: "-m" "elf64ltsmip"
336// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000337// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000338// RUN: %clang %s -### -o %t.o 2>&1 \
339// RUN: -target mips64-linux-gnu -mabi=n32 \
340// RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
341// CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
342// CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
343// CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
344// CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
345// RUN: %clang %s -### -o %t.o 2>&1 \
346// RUN: -target mips64el-linux-gnu -mabi=n32 \
347// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
348// CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
349// CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
350// CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
351// CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000352//
353// Thoroughly exercise the Debian multiarch environment.
354// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
355// RUN: -target i686-linux-gnu \
356// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
357// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
358// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
359// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5/crtbegin.o"
360// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
361// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
362// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
363// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
364// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
365// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
366// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
367// RUN: -target x86_64-linux-gnu \
368// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
369// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
370// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
371// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5/crtbegin.o"
372// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
373// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
374// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
375// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
376// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
377// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
378// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
379// RUN: -target powerpc-linux-gnu \
380// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
381// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
382// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
383// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5/crtbegin.o"
384// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
385// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
386// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
387// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
388// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
389// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
390// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
391// RUN: -target powerpc64-linux-gnu \
392// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
393// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
394// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
395// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5/crtbegin.o"
396// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
397// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
398// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
399// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
400// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
401// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000402// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
403// RUN: -target mips-linux-gnu \
404// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
405// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
406// CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
407// CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/crtbegin.o"
408// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
409// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
410// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
411// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
412// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
413// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
414// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
415// RUN: -target mipsel-linux-gnu \
416// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
417// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
418// CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
419// CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/crtbegin.o"
420// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
421// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
422// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
423// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
424// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
425// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000426// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
427// RUN: -target mips64-linux-gnu \
428// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
429// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
430// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
431// CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64/crtbegin.o"
432// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
433// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
434// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
435// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
436// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
437// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
438// RUN: -target mips64el-linux-gnu \
439// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
440// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
441// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
442// CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64/crtbegin.o"
443// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
444// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
445// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
446// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
447// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000448// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
449// RUN: -target mips64-linux-gnu -mabi=n32 \
450// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
451// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
452// CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
453// CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32/crtbegin.o"
454// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
455// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
456// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
457// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
458// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
459// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
460// RUN: -target mips64el-linux-gnu -mabi=n32 \
461// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
462// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
463// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
464// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32/crtbegin.o"
465// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
466// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
467// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
468// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
469// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000470//
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000471// Test linker invocation on Android.
472// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
473// RUN: -target arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000474// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000475// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000476// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
477// RUN: -target arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000478// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000479// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000480// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
481// RUN: -target mipsel-linux-android \
482// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
483// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000484// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien48a353d2012-12-06 23:40:31 +0000485// RUN: -target i386-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000486// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
487// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000488// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
489// CHECK-ANDROID: "{{.*}}/crtbegin_dynamic.o"
490// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
491// CHECK-ANDROID-NOT: "gcc_s"
492// CHECK-ANDROID: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000493// CHECK-ANDROID: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000494// CHECK-ANDROID-NOT: "gcc_s"
495// CHECK-ANDROID: "{{.*}}/crtend_android.o"
496// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
497// RUN: -target arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000498// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000499// RUN: -shared \
500// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000501// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
502// RUN: -target arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000503// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000504// RUN: -shared \
505// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000506// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
507// RUN: -target mipsel-linux-android \
508// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
509// RUN: -shared \
510// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000511// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien48a353d2012-12-06 23:40:31 +0000512// RUN: -target i386-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000513// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
514// RUN: -shared \
515// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000516// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola7df35012012-11-02 20:41:30 +0000517// CHECK-ANDROID-SO: "-Bsymbolic"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000518// CHECK-ANDROID-SO: "{{.*}}/crtbegin_so.o"
519// CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
520// CHECK-ANDROID-SO-NOT: "gcc_s"
521// CHECK-ANDROID-SO: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000522// CHECK-ANDROID-SO: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000523// CHECK-ANDROID-SO-NOT: "gcc_s"
524// CHECK-ANDROID-SO: "{{.*}}/crtend_so.o"
525// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
526// RUN: -target arm-linux-androideabi \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000527// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000528// RUN: -static \
529// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000530// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
531// RUN: -target arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000532// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000533// RUN: -static \
534// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000535// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
536// RUN: -target mipsel-linux-android \
537// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
538// RUN: -static \
539// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000540// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien48a353d2012-12-06 23:40:31 +0000541// RUN: -target i386-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000542// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
543// RUN: -static \
544// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000545// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
546// CHECK-ANDROID-STATIC: "{{.*}}/crtbegin_static.o"
547// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
548// CHECK-ANDROID-STATIC-NOT: "gcc_s"
549// CHECK-ANDROID-STATIC: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000550// CHECK-ANDROID-STATIC-NOT: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000551// CHECK-ANDROID-STATIC-NOT: "gcc_s"
552// CHECK-ANDROID-STATIC: "{{.*}}/crtend_android.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000553// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
554// RUN: -target arm-linux-androideabi \
555// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
556// RUN: -pie \
557// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
558// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
559// RUN: -target arm-linux-android \
560// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
561// RUN: -pie \
562// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000563// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
564// RUN: -target mipsel-linux-android \
565// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
566// RUN: -pie \
567// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000568// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien48a353d2012-12-06 23:40:31 +0000569// RUN: -target i386-linux-android \
Rafael Espindola7df35012012-11-02 20:41:30 +0000570// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
571// RUN: -pie \
572// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +0000573// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
574// CHECK-ANDROID-PIE: "{{.*}}/crtbegin_dynamic.o"
575// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
576// CHECK-ANDROID-PIE-NOT: "gcc_s"
577// CHECK-ANDROID-PIE: "-lgcc"
578// CHECK-ANDROID-PIE-NOT: "gcc_s"
579// CHECK-ANDROID-PIE: "{{.*}}/crtend_android.o"
Simon Atanasyand4413882012-09-14 11:27:24 +0000580//
581// Check linker invocation on Debian 6 MIPS 32/64-bit.
582// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
583// RUN: -target mipsel-linux-gnu \
584// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
585// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
586// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
587// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib/crt1.o"
588// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib/crti.o"
589// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/crtbegin.o"
590// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
591// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
592// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
593// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
594// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
595// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
596// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
597//
598// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
599// RUN: -target mips64el-linux-gnu \
600// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
601// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
602// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
603// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64/crt1.o"
604// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64/crti.o"
605// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64/crtbegin.o"
606// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
607// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
608// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
609// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
610// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
611// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
612// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Hal Finkelf3587912012-09-18 22:25:07 +0000613//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000614// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
615// RUN: -target mips64el-linux-gnu -mabi=n32 \
616// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
617// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
618// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
619// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32/crt1.o"
620// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32/crti.o"
621// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32/crtbegin.o"
622// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
623// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
624// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
625// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
626// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
627// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
628// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
629//
Hal Finkelf3587912012-09-18 22:25:07 +0000630// Test linker invocation for Freescale SDK (OpenEmbedded).
631// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
632// RUN: -target powerpc-fsl-linux \
633// RUN: --sysroot=%S/Inputs/freescale_ppc_tree \
634// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s
635// CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
636// CHECK-FSL-PPC: "-m" "elf32ppclinux"
637// CHECK-FSL-PPC: "{{.*}}/crt1.o"
638// CHECK-FSL-PPC: "{{.*}}/crtbegin.o"
639// CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
640// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
641// RUN: -target powerpc64-fsl-linux \
642// RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \
643// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
644// CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
645// CHECK-FSL-PPC64: "-m" "elf64ppc"
646// CHECK-FSL-PPC64: "{{.*}}/crt1.o"
647// CHECK-FSL-PPC64: "{{.*}}/crtbegin.o"
648// CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
Benjamin Kramer058666a2012-10-04 19:42:20 +0000649//
650// Check that crtfastmath.o is linked with -ffast-math.
651// RUN: %clang -target x86_64-unknown-linux -### %s \
652// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
653// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
654// RUN: %clang -target x86_64-unknown-linux -### %s -ffast-math \
655// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
656// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
657// RUN: %clang -target x86_64-unknown-linux -### %s -funsafe-math-optimizations\
658// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
659// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
660// RUN: %clang -target x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
661// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
662// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
663// We don't have crtfastmath.o in the i386 tree, use it to check that file
664// detection works.
665// RUN: %clang -target i386-unknown-linux -### %s -ffast-math \
666// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
667// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
668// CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtfastmath.o
669// CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
Eric Christopherac021742013-06-07 23:25:01 +0000670
671// Check that we link in gcrt1.o when compiling with -pg
672// RUN: %clang -pg -target x86_64-unknown-linux -### %s \
673// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
674// RUN: | FileCheck --check-prefix=CHECK-PG %s
675// CHECK-PG: gcrt1.o