blob: 5d1001beb02c758c40c2f18e2e347a20be0186ae [file] [log] [blame]
Chandler Carruth2a649c72011-10-03 06:41:08 +00001// General tests that ld invocations on Linux targets sane. Note that we use
2// sysroot to make these tests independent of the host system.
Chandler Carruth94bcd382011-10-01 00:37:39 +00003//
Chandler Carruth2a649c72011-10-03 06:41:08 +00004// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00005// RUN: --target=i386-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00006// RUN: --gcc-toolchain="" \
Chandler Carruth2a649c72011-10-03 06:41:08 +00007// RUN: --sysroot=%S/Inputs/basic_linux_tree \
Chandler Carruth94bcd382011-10-01 00:37:39 +00008// RUN: | FileCheck --check-prefix=CHECK-LD-32 %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +00009// CHECK-LD-32-NOT: warning:
Chandler Carruth2a649c72011-10-03 06:41:08 +000010// CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +000011// CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000012// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
Chandler Carruth2c5e91e2011-10-03 08:09:02 +000013// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000014// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
15// CHECK-LD-32: "-L[[SYSROOT]]/lib"
16// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruth94bcd382011-10-01 00:37:39 +000017//
Chandler Carruth2a649c72011-10-03 06:41:08 +000018// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +000019// RUN: --target=x86_64-unknown-linux -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +000020// RUN: --gcc-toolchain="" \
Chandler Carruth2a649c72011-10-03 06:41:08 +000021// RUN: --sysroot=%S/Inputs/basic_linux_tree \
Chandler Carruth94bcd382011-10-01 00:37:39 +000022// RUN: | FileCheck --check-prefix=CHECK-LD-64 %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +000023// CHECK-LD-64-NOT: warning:
Chandler Carruth2a649c72011-10-03 06:41:08 +000024// CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruth4588e342013-03-04 01:27:49 +000025// CHECK-LD-64: "--eh-frame-hdr"
26// CHECK-LD-64: "-m" "elf_x86_64"
27// CHECK-LD-64: "-dynamic-linker"
Rafael Espindola49ddb862013-06-24 22:07:15 +000028// CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000029// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruth2c5e91e2011-10-03 08:09:02 +000030// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
Chandler Carruth5fdc7cb2011-10-03 08:02:58 +000031// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
32// CHECK-LD-64: "-L[[SYSROOT]]/lib"
33// CHECK-LD-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruth4588e342013-03-04 01:27:49 +000034// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
35// CHECK-LD-64: "-lc"
36// CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
37//
38// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +000039// RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +000040// RUN: --gcc-toolchain="" \
Zinovy Nis1db95732014-07-10 15:27:19 +000041// RUN: --sysroot=%S/Inputs/basic_linux_tree \
42// RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s
43// CHECK-LD-X32-NOT: warning:
44// CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
45// CHECK-LD-X32: "--eh-frame-hdr"
46// CHECK-LD-X32: "-m" "elf32_x86_64"
47// CHECK-LD-X32: "-dynamic-linker"
48// CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
49// CHECK-LD-X32: "-lc"
50// CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
51//
52// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000053// RUN: --target=x86_64-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +000054// RUN: --gcc-toolchain="" \
Renato Golinc4b49242014-02-13 10:01:16 +000055// RUN: --sysroot=%S/Inputs/basic_linux_tree \
56// RUN: --rtlib=compiler-rt \
57// RUN: | FileCheck --check-prefix=CHECK-LD-RT %s
58// CHECK-LD-RT-NOT: warning:
59// CHECK-LD-RT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
60// CHECK-LD-RT: "--eh-frame-hdr"
61// CHECK-LD-RT: "-m" "elf_x86_64"
62// CHECK-LD-RT: "-dynamic-linker"
63// CHECK-LD-RT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
64// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
65// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
66// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
67// CHECK-LD-RT: "-L[[SYSROOT]]/lib"
68// CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib"
Renato Golin830f0c42015-07-23 17:24:41 +000069// CHECK-LD-RT: libclang_rt.builtins-x86_64.a"
Renato Golinc4b49242014-02-13 10:01:16 +000070// CHECK-LD-RT: "-lc"
Renato Golin830f0c42015-07-23 17:24:41 +000071// CHECK-LD-RT: libclang_rt.builtins-x86_64.a"
Renato Golinc4b49242014-02-13 10:01:16 +000072//
73// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Dan Albert6f2875d2015-01-28 23:23:36 +000074// RUN: --target=arm-linux-androideabi \
75// RUN: --gcc-toolchain="" \
76// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
77// RUN: --rtlib=compiler-rt \
78// RUN: | FileCheck --check-prefix=CHECK-LD-RT-ANDROID %s
79// CHECK-LD-RT-ANDROID-NOT: warning:
80// CHECK-LD-RT-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
81// CHECK-LD-RT-ANDROID: "--eh-frame-hdr"
82// CHECK-LD-RT-ANDROID: "-m" "armelf_linux_eabi"
83// CHECK-LD-RT-ANDROID: "-dynamic-linker"
Renato Golin830f0c42015-07-23 17:24:41 +000084// CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a"
Dan Albert6f2875d2015-01-28 23:23:36 +000085// CHECK-LD-RT-ANDROID: "-lc"
Renato Golin830f0c42015-07-23 17:24:41 +000086// CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a"
Dan Albert6f2875d2015-01-28 23:23:36 +000087//
88// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +000089// RUN: --target=x86_64-unknown-linux -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +000090// RUN: --gcc-toolchain="" \
Renato Golinc4b49242014-02-13 10:01:16 +000091// RUN: --sysroot=%S/Inputs/basic_linux_tree \
92// RUN: --rtlib=libgcc \
93// RUN: | FileCheck --check-prefix=CHECK-LD-GCC %s
94// CHECK-LD-GCC-NOT: warning:
95// CHECK-LD-GCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
96// CHECK-LD-GCC: "--eh-frame-hdr"
97// CHECK-LD-GCC: "-m" "elf_x86_64"
98// CHECK-LD-GCC: "-dynamic-linker"
99// CHECK-LD-GCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
100// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
101// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
102// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
103// CHECK-LD-GCC: "-L[[SYSROOT]]/lib"
104// CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib"
Hans Wennborg2151d122015-08-31 21:48:52 +0000105// CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
Renato Golinc4b49242014-02-13 10:01:16 +0000106// CHECK-LD-GCC: "-lc"
107// CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
108//
109// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +0000110// RUN: --target=x86_64-unknown-linux -rtlib=platform \
Chandler Carruth4588e342013-03-04 01:27:49 +0000111// RUN: -static-libgcc \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000112// RUN: --gcc-toolchain="" \
Chandler Carruth4588e342013-03-04 01:27:49 +0000113// RUN: --sysroot=%S/Inputs/basic_linux_tree \
114// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000115// CHECK-LD-64-STATIC-LIBGCC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +0000116// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
117// CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr"
118// CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64"
119// CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000120// CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth4588e342013-03-04 01:27:49 +0000121// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
122// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
123// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
124// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib"
125// CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib"
126// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
127// CHECK-LD-64-STATIC-LIBGCC: "-lc"
128// CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
129//
130// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +0000131// RUN: --target=x86_64-unknown-linux -rtlib=platform \
Chandler Carruth4588e342013-03-04 01:27:49 +0000132// RUN: -static \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000133// RUN: --gcc-toolchain="" \
Chandler Carruth4588e342013-03-04 01:27:49 +0000134// RUN: --sysroot=%S/Inputs/basic_linux_tree \
135// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000136// CHECK-LD-64-STATIC-NOT: warning:
Chandler Carruth4588e342013-03-04 01:27:49 +0000137// CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
138// CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr"
139// CHECK-LD-64-STATIC: "-m" "elf_x86_64"
140// CHECK-LD-64-STATIC-NOT: "-dynamic-linker"
141// CHECK-LD-64-STATIC: "-static"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000142// CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o"
Chandler Carruth4588e342013-03-04 01:27:49 +0000143// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
144// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
145// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
146// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib"
147// CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib"
148// CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000149//
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000150// Check that flags can be combined. The -static dominates.
151// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +0000152// RUN: --target=x86_64-unknown-linux -rtlib=platform \
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000153// RUN: -static-libgcc -static \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000154// RUN: --gcc-toolchain="" \
Chandler Carruth58d6eb62013-03-04 02:07:55 +0000155// RUN: --sysroot=%S/Inputs/basic_linux_tree \
156// RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s
157//
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000158// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000159// RUN: --target=i386-unknown-linux -m32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000160// RUN: --gcc-toolchain="" \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000161// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
162// RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s
163// CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000164// CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000165// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000166// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32"
167// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32"
168// CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
169// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000170// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
171// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
172// CHECK-32-TO-32: "-L[[SYSROOT]]/lib"
173// CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib"
174//
175// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000176// RUN: --target=i386-unknown-linux -m64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000177// RUN: --gcc-toolchain="" \
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000178// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
179// RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s
180// CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000181// CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o"
Chandler Carruth2356b2c2011-10-03 09:00:50 +0000182// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64"
183// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64"
184// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64"
185// CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
186// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
187// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
188// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
189// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
190// CHECK-32-TO-64: "-L[[SYSROOT]]/lib"
191// CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000192//
193// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000194// RUN: --target=x86_64-unknown-linux -m64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000195// RUN: --gcc-toolchain="" \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000196// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
197// RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s
198// CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000199// CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000200// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Rafael Espindolaa8398552013-10-28 23:14:34 +0000201// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
202// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
203// CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64"
204// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000205// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
206// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
207// CHECK-64-TO-64: "-L[[SYSROOT]]/lib"
208// CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib"
209//
210// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000211// RUN: --target=x86_64-unknown-linux -m32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000212// RUN: --gcc-toolchain="" \
Chandler Carruthadf23a42011-10-03 09:08:26 +0000213// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
214// RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s
215// CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000216// CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
Chandler Carruthadf23a42011-10-03 09:08:26 +0000217// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
218// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
219// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
220// CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32"
221// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
222// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
223// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
224// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
225// CHECK-64-TO-32: "-L[[SYSROOT]]/lib"
226// CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000227//
228// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis1db95732014-07-10 15:27:19 +0000229// RUN: --target=x86_64-unknown-linux-gnux32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000230// RUN: --gcc-toolchain="" \
Zinovy Nis1db95732014-07-10 15:27:19 +0000231// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
232// RUN: | FileCheck --check-prefix=CHECK-X32 %s
233// CHECK-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
234// CHECK-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
235// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
236// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
237// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
238// CHECK-X32: "-L[[SYSROOT]]/lib/../libx32"
239// CHECK-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
240// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
241// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
242// CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
243// CHECK-X32: "-L[[SYSROOT]]/lib"
244// CHECK-X32: "-L[[SYSROOT]]/usr/lib"
245//
246// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Zinovy Nis3d163872014-07-11 14:28:45 +0000247// RUN: --target=x86_64-unknown-linux -mx32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000248// RUN: --gcc-toolchain="" \
Zinovy Nis3d163872014-07-11 14:28:45 +0000249// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
250// RUN: | FileCheck --check-prefix=CHECK-64-TO-X32 %s
251// CHECK-64-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
252// CHECK-64-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
253// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
254// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
255// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
256// CHECK-64-TO-X32: "-L[[SYSROOT]]/lib/../libx32"
257// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
258// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
259// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
260// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
261// CHECK-64-TO-X32: "-L[[SYSROOT]]/lib"
262// CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib"
263//
264// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
265// RUN: --target=i386-unknown-linux -mx32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000266// RUN: --gcc-toolchain="" \
Zinovy Nis3d163872014-07-11 14:28:45 +0000267// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
268// RUN: | FileCheck --check-prefix=CHECK-32-TO-X32 %s
269// CHECK-32-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
270// CHECK-32-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o"
271// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32"
272// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32"
273// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32"
274// CHECK-32-TO-X32: "-L[[SYSROOT]]/lib/../libx32"
275// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
276// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
277// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
278// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
279// CHECK-32-TO-X32: "-L[[SYSROOT]]/lib"
280// CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib"
281//
282// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Pavel Chupin4a294682014-08-18 15:38:38 +0000283// RUN: --target=x86_64-unknown-linux-gnux32 -m64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000284// RUN: --gcc-toolchain="" \
Pavel Chupin4a294682014-08-18 15:38:38 +0000285// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
286// RUN: | FileCheck --check-prefix=CHECK-X32-TO-64 %s
287// CHECK-X32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
288// CHECK-X32-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
289// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
290// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64"
291// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64"
292// CHECK-X32-TO-64: "-L[[SYSROOT]]/lib/../lib64"
293// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64"
294// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
295// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
296// CHECK-X32-TO-64: "-L[[SYSROOT]]/lib"
297// CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib"
298//
299// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
300// RUN: --target=x86_64-unknown-linux-gnux32 -m32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000301// RUN: --gcc-toolchain="" \
Pavel Chupin4a294682014-08-18 15:38:38 +0000302// RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \
303// RUN: | FileCheck --check-prefix=CHECK-X32-TO-32 %s
304// CHECK-X32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
305// CHECK-X32-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o"
306// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
307// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32"
308// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32"
309// CHECK-X32-TO-32: "-L[[SYSROOT]]/lib/../lib32"
310// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32"
311// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
312// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib"
313// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.."
314// CHECK-X32-TO-32: "-L[[SYSROOT]]/lib"
315// CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib"
316//
317// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000318// RUN: --target=x86_64-unknown-linux -m32 \
319// RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \
Chandler Carruth69a125b2012-04-06 16:32:06 +0000320// RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \
321// RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s
322// CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000323// 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 +0000324// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32"
325// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32"
326// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32"
327// CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
328// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib"
329// CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib"
330//
331// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000332// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000333// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000334// RUN: --gcc-toolchain="" \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000335// RUN: --sysroot=%S/Inputs/basic_linux_tree \
336// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s
337// CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000338// 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 +0000339// 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 +0000340//
341// Check that with 64-bit builds, we don't actually use the install directory
342// as its version of GCC is lower than our sysrooted version.
343// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000344// RUN: --target=x86_64-unknown-linux -m64 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000345// RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000346// RUN: --gcc-toolchain="" \
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000347// RUN: --sysroot=%S/Inputs/basic_linux_tree \
348// RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s
349// CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000350// CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
Chandler Carruthf7e0ecb2011-10-05 01:01:57 +0000351// CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000352//
353// Check that we support unusual patch version formats, including missing that
354// component.
355// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000356// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000357// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000358// RUN: --gcc-toolchain="" \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000359// RUN: --sysroot=%S/Inputs/basic_linux_tree \
360// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s
361// CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000362// CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o"
Chandler Carruthe276b362011-10-05 06:38:03 +0000363// CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000364// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000365// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000366// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000367// RUN: --gcc-toolchain="" \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000368// RUN: --sysroot=%S/Inputs/basic_linux_tree \
369// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s
370// CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000371// 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 +0000372// CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x"
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000373// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000374// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthe276b362011-10-05 06:38:03 +0000375// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000376// RUN: --gcc-toolchain="" \
Chandler Carruthcf59bc52011-10-05 03:09:51 +0000377// RUN: --sysroot=%S/Inputs/basic_linux_tree \
378// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s
379// CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000380// 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 +0000381// 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 +0000382// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000383// RUN: --target=i386-unknown-linux -m32 \
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000384// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000385// RUN: --gcc-toolchain="" \
Chandler Carruthbff1e8d2011-11-05 23:24:30 +0000386// RUN: --sysroot=%S/Inputs/basic_linux_tree \
387// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s
388// CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000389// 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 +0000390// CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99"
Bryan Chand346ae62016-06-17 16:47:14 +0000391// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
392// RUN: --target=i386-unknown-linux -m32 \
393// RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing5/bin \
394// RUN: --gcc-toolchain="" \
395// RUN: --sysroot=%S/Inputs/basic_linux_tree \
396// RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION5 %s
397// CHECK-GCC-VERSION5: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
398// CHECK-GCC-VERSION5: "{{.*}}/Inputs/gcc_version_parsing5/bin/../lib/gcc/i386-unknown-linux/5{{/|\\\\}}crtbegin.o"
399// CHECK-GCC-VERSION5: "-L{{.*}}/Inputs/gcc_version_parsing5/bin/../lib/gcc/i386-unknown-linux/5"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000400//
Chandler Carruth902efc62014-01-21 22:49:05 +0000401// Test a simulated installation of libc++ on Linux, both through sysroot and
402// the installation path of Clang.
403// RUN: %clangxx -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
404// RUN: -target x86_64-unknown-linux-gnu \
405// RUN: -stdlib=libc++ \
406// RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000407// RUN: --gcc-toolchain="" \
Chandler Carruth902efc62014-01-21 22:49:05 +0000408// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
409// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s
410// CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
411// CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
412// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
413// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
414// CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]"
415// RUN: %clang -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
416// RUN: -target x86_64-unknown-linux-gnu \
417// RUN: -stdlib=libc++ \
418// RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000419// RUN: --gcc-toolchain="" \
Chandler Carruth902efc62014-01-21 22:49:05 +0000420// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
421// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s
422// CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
423// CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
424// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
425// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
426// CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]"
427// CHECK-BASIC-LIBCXX-INSTALL: "-L[[SYSROOT]]/usr/bin/../lib"
428//
Chandler Carruth7e7dd472015-03-07 10:01:29 +0000429// Test that we can use -stdlib=libc++ in a build system even when it
430// occasionally links C code instead of C++ code.
431// RUN: %clang -no-canonical-prefixes -x c %s -### -o %t.o 2>&1 \
432// RUN: -target x86_64-unknown-linux-gnu \
433// RUN: -stdlib=libc++ \
434// RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
435// RUN: --gcc-toolchain="" \
436// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
437// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-C-LINK %s
438// CHECK-BASIC-LIBCXX-C-LINK-NOT: warning:
439// CHECK-BASIC-LIBCXX-C-LINK: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
440// CHECK-BASIC-LIBCXX-C-LINK: "-isysroot" "[[SYSROOT:[^"]+]]"
441// CHECK-BASIC-LIBCXX-C-LINK-NOT: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
442// CHECK-BASIC-LIBCXX-C-LINK: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
443// CHECK-BASIC-LIBCXX-C-LINK: "--sysroot=[[SYSROOT]]"
444// CHECK-BASIC-LIBCXX-C-LINK: "-L[[SYSROOT]]/usr/bin/../lib"
445//
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000446// Test a very broken version of multiarch that shipped in Ubuntu 11.04.
447// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000448// RUN: --target=i386-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000449// RUN: --gcc-toolchain="" \
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000450// RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
451// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
452// CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000453// CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000454// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
455// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu"
456// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
457// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
458// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib"
459// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib"
Hal Finkel6b89a102011-12-08 20:36:19 +0000460//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000461// Check multi arch support on Ubuntu 12.04 LTS.
462// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000463// RUN: --target=arm-unknown-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000464// RUN: --gcc-toolchain="" \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000465// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
466// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s
467// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000468// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o"
469// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o"
470// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000471// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3"
472// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf"
473// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf"
474// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf"
475// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000476// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o"
477// 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 +0000478//
Chandler Carruthda797042013-10-29 10:27:30 +0000479// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf.
480// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
481// RUN: --target=arm-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000482// RUN: --gcc-toolchain="" \
Chandler Carruthda797042013-10-29 10:27:30 +0000483// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
484// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s
485// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000486// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "{{(/usr/arm--linux-gnueabihf)?}}/lib/ld-linux-armhf.so.3"
Chandler Carruthda797042013-10-29 10:27:30 +0000487// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o"
488// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o"
489// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o"
490// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8"
491// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib"
492// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib"
493// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib"
494// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib"
495// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o"
496// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o"
497//
498// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi.
499// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
500// RUN: --target=arm-linux-gnueabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000501// RUN: --gcc-toolchain="" \
Chandler Carruthda797042013-10-29 10:27:30 +0000502// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
503// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s
504// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000505// CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "{{(/usr/arm--linux-gnueabi)?}}/lib/ld-linux.so.3"
Chandler Carruthda797042013-10-29 10:27:30 +0000506// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o"
507// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o"
508// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o"
509// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7"
510// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib"
511// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib"
512// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib"
513// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib"
514// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o"
515// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o"
516//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000517// Check Ubuntu 14.04 on powerpc64le.
518// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
519// RUN: --target=powerpc64le-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000520// RUN: --gcc-toolchain="" \
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000521// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
522// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s
523// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
524// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crt1.o"
525// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crti.o"
526// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o"
527// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8"
528// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu"
529// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu"
530// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu"
531// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../.."
532// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o"
533// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crtn.o"
534//
Zinovy Nis1db95732014-07-10 15:27:19 +0000535// Check Ubuntu 14.04 on x32.
536// "/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o" "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32/crtn.o"
537// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
538// RUN: --target=x86_64-unknown-linux-gnux32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000539// RUN: --gcc-toolchain="" \
Zinovy Nis1db95732014-07-10 15:27:19 +0000540// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
541// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-X32 %s
542// CHECK-UBUNTU-14-04-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
543// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crt1.o"
544// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crti.o"
545// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtbegin.o"
546// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/x32"
547// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32"
548// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/lib/../libx32"
549// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
550// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu/../../libx32"
551// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8"
552// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.."
553// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtend.o"
554// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crtn.o"
555//
Rafael Espindola50ba9832013-04-14 10:14:21 +0000556// Check fedora 18 on arm.
557// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000558// RUN: --target=armv7-unknown-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000559// RUN: --gcc-toolchain="" \
Rafael Espindola50ba9832013-04-14 10:14:21 +0000560// RUN: --sysroot=%S/Inputs/fedora_18_tree \
561// RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
562// CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthda797042013-10-29 10:27:30 +0000563// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
564// 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 +0000565// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
Rafael Espindola50ba9832013-04-14 10:14:21 +0000566// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
Chandler Carruthda797042013-10-29 10:27:30 +0000567// 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 +0000568// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
Chandler Carruthda797042013-10-29 10:27:30 +0000569// 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 +0000570//
Tilmann Schellere914bc82014-05-06 16:58:14 +0000571// Check Fedora 21 on AArch64.
572// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
573// RUN: --target=arm64-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000574// RUN: --gcc-toolchain="" \
Tilmann Schellere914bc82014-05-06 16:58:14 +0000575// RUN: --sysroot=%S/Inputs/fedora_21_tree \
576// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
577// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
578// RUN: --target=aarch64-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000579// RUN: --gcc-toolchain="" \
Tilmann Schellere914bc82014-05-06 16:58:14 +0000580// RUN: --sysroot=%S/Inputs/fedora_21_tree \
581// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
582// CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
583// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o"
584// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o"
585// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o"
586// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0"
587// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64"
588// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o"
589// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o"
590//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000591// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000592// RUN: --target=arm-unknown-linux-gnueabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000593// RUN: --gcc-toolchain="" \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000594// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
595// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
596// CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000597// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o"
598// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o"
599// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000600// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
601// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
602// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
603// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
604// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000605// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o"
606// 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 +0000607//
Hal Finkel6b89a102011-12-08 20:36:19 +0000608// Test the setup that shipped in SUSE 10.3 on ppc64.
609// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000610// RUN: --target=powerpc64-suse-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000611// RUN: --gcc-toolchain="" \
Hal Finkel6b89a102011-12-08 20:36:19 +0000612// RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
613// RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
614// CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000615// CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o"
Hal Finkel6b89a102011-12-08 20:36:19 +0000616// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
617// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
618// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
619// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000620//
Kostya Kortchinskyaf6a9b92017-01-10 21:13:08 +0000621// Check openSuse Leap 42.2 on AArch64
622// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
623// RUN: --target=arm64-unknown-linux-gnu \
624// RUN: --gcc-toolchain="" \
625// RUN: --sysroot=%S/Inputs/opensuse_42.2_aarch64_tree \
626// RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-42-2-AARCH64 %s
627// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
628// RUN: --target=aarch64-unknown-linux-gnu \
629// RUN: --gcc-toolchain="" \
630// RUN: --sysroot=%S/Inputs/opensuse_42.2_aarch64_tree \
631// RUN: | FileCheck --check-prefix=CHECK-OPENSUSE-42-2-AARCH64 %s
632// CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
633// CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64{{/|\\\\}}crt1.o"
634// CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64{{/|\\\\}}crti.o"
635// CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8{{/|\\\\}}crtbegin.o"
636// CHECK-OPENSUSE-42-2-AARCH64: "-L[[SYSROOT]]/usr/lib64/gcc/aarch64-suse-linux/4.8"
637// CHECK-OPENSUSE-42-2-AARCH64: "-L[[SYSROOT]]/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64"
638// CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8{{/|\\\\}}crtend.o"
639// CHECK-OPENSUSE-42-2-AARCH64: "{{.*}}/usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../lib64{{/|\\\\}}crtn.o"
640//
Jiangning Liueabbf922012-07-30 11:05:56 +0000641// Check dynamic-linker for different archs
642// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000643// RUN: --target=arm-linux-gnueabi \
Jiangning Liueabbf922012-07-30 11:05:56 +0000644// RUN: | FileCheck --check-prefix=CHECK-ARM %s
645// CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
646// CHECK-ARM: "-m" "armelf_linux_eabi"
647// CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
648//
649// RUN: %clang %s -### -o %t.o 2>&1 \
Renato Golin24ba3e92015-07-27 09:56:37 +0000650// RUN: --target=arm-linux-gnueabi -mfloat-abi=hard \
651// RUN: | FileCheck --check-prefix=CHECK-ARM-ABIHF %s
652// CHECK-ARM-ABIHF: "{{.*}}ld{{(.exe)?}}"
653// CHECK-ARM-ABIHF: "-m" "armelf_linux_eabi"
654// CHECK-ARM-ABIHF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
655//
656// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000657// RUN: --target=arm-linux-gnueabihf \
Jiangning Liueabbf922012-07-30 11:05:56 +0000658// RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s
659// CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
660// CHECK-ARM-HF: "-m" "armelf_linux_eabi"
661// CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
662//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000663// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand8afad612014-07-28 13:17:52 +0000664// RUN: --target=powerpc64-linux-gnu \
665// RUN: | FileCheck --check-prefix=CHECK-PPC64 %s
666// CHECK-PPC64: "{{.*}}ld{{(.exe)?}}"
667// CHECK-PPC64: "-m" "elf64ppc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000668// CHECK-PPC64: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1"
Ulrich Weigand8afad612014-07-28 13:17:52 +0000669//
670// RUN: %clang %s -### -o %t.o 2>&1 \
671// RUN: --target=powerpc64-linux-gnu -mabi=elfv1 \
672// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s
Hal Finkel0d0a1a52015-03-11 19:14:15 +0000673// RUN: %clang %s -### -o %t.o 2>&1 \
674// RUN: --target=powerpc64-linux-gnu -mabi=elfv1-qpx \
675// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s
Ulrich Weigand8afad612014-07-28 13:17:52 +0000676// CHECK-PPC64-ELFv1: "{{.*}}ld{{(.exe)?}}"
677// CHECK-PPC64-ELFv1: "-m" "elf64ppc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000678// CHECK-PPC64-ELFv1: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1"
Ulrich Weigand8afad612014-07-28 13:17:52 +0000679//
680// RUN: %clang %s -### -o %t.o 2>&1 \
681// RUN: --target=powerpc64-linux-gnu -mabi=elfv2 \
682// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv2 %s
683// CHECK-PPC64-ELFv2: "{{.*}}ld{{(.exe)?}}"
684// CHECK-PPC64-ELFv2: "-m" "elf64ppc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000685// CHECK-PPC64-ELFv2: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2"
Ulrich Weigand8afad612014-07-28 13:17:52 +0000686//
687// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000688// RUN: --target=powerpc64le-linux-gnu \
689// RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s
690// CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}"
691// CHECK-PPC64LE: "-m" "elf64lppc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000692// CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2"
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000693//
Ulrich Weigand8afad612014-07-28 13:17:52 +0000694// RUN: %clang %s -### -o %t.o 2>&1 \
695// RUN: --target=powerpc64le-linux-gnu -mabi=elfv1 \
696// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv1 %s
697// CHECK-PPC64LE-ELFv1: "{{.*}}ld{{(.exe)?}}"
698// CHECK-PPC64LE-ELFv1: "-m" "elf64lppc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000699// CHECK-PPC64LE-ELFv1: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1"
Ulrich Weigand8afad612014-07-28 13:17:52 +0000700//
701// RUN: %clang %s -### -o %t.o 2>&1 \
702// RUN: --target=powerpc64le-linux-gnu -mabi=elfv2 \
703// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv2 %s
704// CHECK-PPC64LE-ELFv2: "{{.*}}ld{{(.exe)?}}"
705// CHECK-PPC64LE-ELFv2: "-m" "elf64lppc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000706// CHECK-PPC64LE-ELFv2: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2"
Ulrich Weigand8afad612014-07-28 13:17:52 +0000707//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000708// Check that we do not pass --hash-style=gnu and --hash-style=both to linker
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000709// and provide correct path to the dynamic linker and emulation mode when build
710// for MIPS platforms.
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000711// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000712// RUN: --target=mips-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000713// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
714// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000715// CHECK-MIPS: "-m" "elf32btsmip"
716// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000717// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000718//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000719// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000720// RUN: --target=mipsel-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000721// RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s
722// CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000723// CHECK-MIPSEL: "-m" "elf32ltsmip"
724// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000725// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000726//
727// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mnan=2008 \
728// RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s
729// CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}"
730// CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip"
731// CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
732// CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}"
733//
734// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \
735// RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s
736// CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}"
737// CHECK-MIPS32R6EL: "-m" "elf32ltsmip"
738// CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
739// CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}"
740//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000741// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000742// RUN: --target=mips64-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000743// RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
744// CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000745// CHECK-MIPS64: "-m" "elf64btsmip"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000746// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000747// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000748//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000749// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000750// RUN: --target=mips64el-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000751// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
752// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000753// CHECK-MIPS64EL: "-m" "elf64ltsmip"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000754// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000755// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000756//
757// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mnan=2008 \
758// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s
759// CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}"
760// CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000761// CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-linux-mipsn8.so.1"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000762// CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}"
763//
764// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \
765// RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s
766// CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}"
767// CHECK-MIPS64R6EL: "-m" "elf64ltsmip"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000768// CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-linux-mipsn8.so.1"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000769// CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}"
770//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000771// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000772// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000773// RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
774// CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
775// CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000776// CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld.so.1"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000777// CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000778//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000779// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000780// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000781// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
782// CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
783// CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000784// CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld.so.1"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000785// CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000786//
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000787// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mabi=n32 \
788// RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s
789// CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}"
790// CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000791// CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld-linux-mipsn8.so.1"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000792// CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}"
793//
Vasileios Kalintiris44deb632016-05-16 11:53:51 +0000794// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-redhat-linux \
795// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-REDHAT %s
796// CHECK-MIPS64EL-REDHAT: "{{.*}}ld{{(.exe)?}}"
797// CHECK-MIPS64EL-REDHAT: "-m" "elf64ltsmip"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000798// CHECK-MIPS64EL-REDHAT: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1"
799// CHECK-MIPS64EL-REDHAT-NOT: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-musl-mipsel.so.1"
Vasileios Kalintiris44deb632016-05-16 11:53:51 +0000800// CHECK-MIPS64EL-REDHAT-NOT: "--hash-style={{gnu|both}}"
801//
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000802// RUN: %clang %s -### -o %t.o 2>&1 \
Douglas Katzmanf36dddf2015-05-11 15:21:44 +0000803// RUN: --target=sparc-unknown-linux-gnu \
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000804// RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s
805// CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}"
806// CHECK-SPARCV8: "-m" "elf32_sparc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000807// CHECK-SPARCV8: "-dynamic-linker" "{{(/usr/sparc-unknown-linux-gnu)?}}/lib/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000808//
809// RUN: %clang %s -### -o %t.o 2>&1 \
Douglas Katzmanf36dddf2015-05-11 15:21:44 +0000810// RUN: --target=sparcel-unknown-linux-gnu \
811// RUN: | FileCheck --check-prefix=CHECK-SPARCV8EL %s
812// CHECK-SPARCV8EL: "{{.*}}ld{{(.exe)?}}"
813// CHECK-SPARCV8EL: "-m" "elf32_sparc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000814// CHECK-SPARCV8EL: "-dynamic-linker" "{{(/usr/sparcel-unknown-linux-gnu)?}}/lib/ld-linux.so.2"
Douglas Katzmanf36dddf2015-05-11 15:21:44 +0000815//
816// RUN: %clang %s -### -o %t.o 2>&1 \
817// RUN: --target=sparcv9-unknown-linux-gnu \
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000818// RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s
819// CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}"
820// CHECK-SPARCV9: "-m" "elf64_sparc"
Saleem Abdulrasool6f8442b2016-05-23 02:17:28 +0000821// CHECK-SPARCV9: "-dynamic-linker" "{{(/usr/sparcv9-unknown-linux-gnu)?}}/lib{{(64)?}}/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000822//
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000823// Thoroughly exercise the Debian multiarch environment.
824// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000825// RUN: --target=i686-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000826// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000827// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
828// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
829// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000830// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000831// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
832// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
833// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
834// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
835// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
836// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
837// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000838// RUN: --target=x86_64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000839// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000840// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
841// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
842// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000843// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000844// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
845// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
846// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
847// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
848// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
849// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
850// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000851// RUN: --target=powerpc-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000852// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000853// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
854// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
855// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000856// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000857// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
858// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
859// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
860// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
861// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
862// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
863// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Douglas Katzmanecddb3a2015-06-26 18:37:15 +0000864// RUN: --target=powerpc64le-linux-gnu \
865// RUN: --gcc-toolchain="" \
866// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
867// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64LE %s
868// CHECK-DEBIAN-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
869// CHECK-DEBIAN-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
870// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5"
871// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5/../../../powerpc64le-linux-gnu"
872// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu"
873// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5/../../.."
874// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/lib"
875// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib"
876// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000877// RUN: --target=powerpc64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000878// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000879// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
880// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
881// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000882// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000883// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
884// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
885// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
886// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
887// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
888// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000889// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000890// RUN: --target=mips-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000891// RUN: --gcc-toolchain="" \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000892// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
893// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
894// CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000895// CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000896// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
897// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
898// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
899// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
900// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
901// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
902// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000903// RUN: --target=mipsel-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000904// RUN: --gcc-toolchain="" \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000905// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
906// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
907// CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000908// CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000909// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
910// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
911// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
912// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
913// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
914// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000915// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000916// RUN: --target=mips64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000917// RUN: --gcc-toolchain="" \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000918// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
919// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
920// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000921// CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000922// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
923// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
924// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
925// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
926// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
927// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000928// RUN: --target=mips64el-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000929// RUN: --gcc-toolchain="" \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000930// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
931// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
932// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000933// CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000934// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
935// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
936// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
937// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
938// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000939// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000940// RUN: --target=mips64-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000941// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000942// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
943// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
944// CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000945// CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000946// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
947// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
948// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
949// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
950// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
951// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000952// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000953// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000954// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
955// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
956// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000957// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000958// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
959// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
960// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
961// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
962// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000963//
James Y Knight09677ad2015-06-05 13:44:43 +0000964// Check linker paths on Debian 8 / Sparc
965// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
966// RUN: --target=sparc-linux-gnu \
967// RUN: --gcc-toolchain="" \
968// RUN: --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \
969// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32 %s
970// CHECK-DEBIAN-SPARC32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
James Y Knightf9373862015-06-05 14:16:39 +0000971// CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu{{/|\\\\}}crt1.o"
972// CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu{{/|\\\\}}crti.o"
973// CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9{{/|\\\\}}crtbegin.o"
James Y Knight09677ad2015-06-05 13:44:43 +0000974// CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9"
975// CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu"
976// CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib"
977// CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/lib/sparc-linux-gnu"
978// CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/sparc-linux-gnu"
979// CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/lib"
980// CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib"
James Y Knightf9373862015-06-05 14:16:39 +0000981// CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9{{/|\\\\}}crtend.o"
982// CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu{{/|\\\\}}crtn.o"
James Y Knight09677ad2015-06-05 13:44:43 +0000983//
984// Check linker paths on Debian 8 / Sparc, with the oldstyle multilib packages
985// RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \
986// RUN: --target=sparc-linux-gnu \
987// RUN: --gcc-toolchain="" \
988// RUN: --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \
989// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32-LIB64 %s
990// CHECK-DEBIAN-SPARC32-LIB64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
James Y Knightf9373862015-06-05 14:16:39 +0000991// CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64{{/|\\\\}}crt1.o"
992// CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64{{/|\\\\}}crti.o"
993// CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/64{{/|\\\\}}crtbegin.o"
James Y Knight09677ad2015-06-05 13:44:43 +0000994// CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/64"
995// CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64"
996// CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/lib/../lib64"
997// CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/../lib64"
998// CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9"
999// CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/lib"
1000// CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib"
James Y Knightf9373862015-06-05 14:16:39 +00001001// CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/64{{/|\\\\}}crtend.o"
1002// CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64{{/|\\\\}}crtn.o"
James Y Knight09677ad2015-06-05 13:44:43 +00001003//
1004// Check linker paths on Debian 8 / Sparc64
1005// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1006// RUN: --target=sparc64-linux-gnu \
1007// RUN: --gcc-toolchain="" \
1008// RUN: --sysroot=%S/Inputs/debian_8_sparc64_tree \
1009// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC64 %s
1010// CHECK-DEBIAN-SPARC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
James Y Knightf9373862015-06-05 14:16:39 +00001011// CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu{{/|\\\\}}crt1.o"
1012// CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu{{/|\\\\}}crti.o"
1013// CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9{{/|\\\\}}crtbegin.o"
James Y Knight09677ad2015-06-05 13:44:43 +00001014// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9"
1015// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu"
1016// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/lib/sparc64-linux-gnu"
1017// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/lib/../lib64"
1018// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/sparc64-linux-gnu"
1019// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../.."
1020// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/lib"
1021// CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib"
James Y Knightf9373862015-06-05 14:16:39 +00001022// CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9{{/|\\\\}}crtend.o"
1023// CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu{{/|\\\\}}crtn.o"
James Y Knight09677ad2015-06-05 13:44:43 +00001024//
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001025// Test linker invocation on Android.
1026// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001027// RUN: --target=arm-linux-androideabi -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001028// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +00001029// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001030// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Logan Chienc6fd8202012-09-02 09:30:11 +00001031// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001032// RUN: --target=arm-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001033// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +00001034// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +00001035// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001036// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001037// RUN: --target=aarch64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001038// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001039// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1040// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
1041// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001042// RUN: --target=arm64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001043// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001044// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1045// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
1046// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001047// RUN: --target=mipsel-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001048// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001049// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1050// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Rafael Espindola7df35012012-11-02 20:41:30 +00001051// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001052// RUN: --target=mips64el-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001053// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001054// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1055// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
1056// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001057// RUN: --target=i686-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001058// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001059// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1060// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001061// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001062// RUN: --target=x86_64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001063// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001064// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1065// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001066// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001067// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001068// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
1069// CHECK-ANDROID-NOT: "gcc_s"
1070// CHECK-ANDROID: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +00001071// CHECK-ANDROID: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001072// CHECK-ANDROID-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001073// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001074// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001075// RUN: --target=arm-linux-androideabi -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001076// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +00001077// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001078// RUN: -shared \
1079// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Logan Chienc6fd8202012-09-02 09:30:11 +00001080// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001081// RUN: --target=arm-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001082// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +00001083// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +00001084// RUN: -shared \
1085// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001086// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001087// RUN: --target=aarch64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001088// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001089// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1090// RUN: -shared \
1091// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
1092// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001093// RUN: --target=arm64-linux-android -rtlib=platform \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001094// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1095// RUN: -shared \
1096// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
1097// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001098// RUN: --target=mipsel-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001099// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001100// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1101// RUN: -shared \
1102// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Rafael Espindola7df35012012-11-02 20:41:30 +00001103// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001104// RUN: --target=mips64el-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001105// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001106// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1107// RUN: -shared \
1108// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
1109// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001110// RUN: --target=i686-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001111// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001112// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1113// RUN: -shared \
1114// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001115// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001116// RUN: --target=x86_64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001117// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001118// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1119// RUN: -shared \
1120// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001121// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Evgeniy Stepanova3331172014-07-16 08:46:35 +00001122// CHECK-ANDROID-SO-NOT: "-Bsymbolic"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001123// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001124// CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
1125// CHECK-ANDROID-SO-NOT: "gcc_s"
1126// CHECK-ANDROID-SO: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +00001127// CHECK-ANDROID-SO: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001128// CHECK-ANDROID-SO-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001129// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001130// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001131// RUN: --target=arm-linux-androideabi -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001132// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +00001133// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001134// RUN: -static \
1135// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Logan Chienc6fd8202012-09-02 09:30:11 +00001136// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001137// RUN: --target=arm-linux-android -rtlib=platform \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +00001138// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +00001139// RUN: -static \
1140// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001141// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001142// RUN: --target=aarch64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001143// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001144// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1145// RUN: -static \
1146// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
1147// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001148// RUN: --target=arm64-linux-android -rtlib=platform \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001149// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1150// RUN: -static \
1151// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
1152// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001153// RUN: --target=mipsel-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001154// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001155// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1156// RUN: -static \
1157// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Rafael Espindola7df35012012-11-02 20:41:30 +00001158// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001159// RUN: --target=mips64el-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001160// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001161// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1162// RUN: -static \
1163// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
1164// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001165// RUN: --target=i686-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001166// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001167// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1168// RUN: -static \
1169// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001170// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001171// RUN: --target=x86_64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001172// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001173// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1174// RUN: -static \
1175// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001176// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001177// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001178// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
1179// CHECK-ANDROID-STATIC-NOT: "gcc_s"
1180// CHECK-ANDROID-STATIC: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +00001181// CHECK-ANDROID-STATIC-NOT: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001182// CHECK-ANDROID-STATIC-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001183// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001184// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001185// RUN: --target=arm-linux-androideabi -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001186// RUN: --gcc-toolchain="" \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001187// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1188// RUN: -pie \
1189// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1190// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001191// RUN: --target=arm-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001192// RUN: --gcc-toolchain="" \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001193// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1194// RUN: -pie \
1195// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001196// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001197// RUN: --target=aarch64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001198// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001199// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1200// RUN: -pie \
1201// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1202// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001203// RUN: --target=arm64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001204// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001205// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1206// RUN: -pie \
1207// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1208// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001209// RUN: --target=mipsel-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001210// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001211// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1212// RUN: -pie \
1213// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Rafael Espindola7df35012012-11-02 20:41:30 +00001214// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001215// RUN: --target=mips64el-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001216// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001217// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1218// RUN: -pie \
1219// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1220// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001221// RUN: --target=i686-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001222// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001223// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1224// RUN: -pie \
1225// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001226// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Jonas Hahnfeldd196fa52016-07-27 08:15:54 +00001227// RUN: --target=x86_64-linux-android -rtlib=platform \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001228// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001229// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1230// RUN: -pie \
1231// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001232// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001233// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001234// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
1235// CHECK-ANDROID-PIE-NOT: "gcc_s"
1236// CHECK-ANDROID-PIE: "-lgcc"
1237// CHECK-ANDROID-PIE-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001238// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001239// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1240// RUN: --target=arm-linux-androideabi \
Dan Albert77214a42015-03-03 18:24:57 +00001241// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1242// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1243// RUN: --target=arm-linux-android \
1244// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1245// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1246// RUN: --target=aarch64-linux-android \
1247// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1248// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1249// RUN: --target=arm64-linux-android \
1250// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1251// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1252// RUN: --target=mipsel-linux-android \
1253// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1254// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1255// RUN: --target=mips64el-linux-android \
1256// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1257// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1258// RUN: --target=i686-linux-android \
1259// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1260// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1261// RUN: --target=x86_64-linux-android \
1262// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1263// CHECK-ANDROID-NO-DEFAULT-PIE-NOT: -pie
1264// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1265// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001266// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001267// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1268// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1269// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1270// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001271// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001272// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1273// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1274// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1275// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001276// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001277// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1278// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1279// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +00001280// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001281// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001282// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1283// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1284// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001285// RUN: --target=arm64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001286// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001287// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1288// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1289// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001290// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001291// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001292// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1293// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1294// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001295// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001296// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001297// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1298// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1299// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1300// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001301// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001302// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1303// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1304// CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker"
1305// CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64"
Simon Atanasyand4413882012-09-14 11:27:24 +00001306//
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001307// Test that -pthread does not add -lpthread on Android.
1308// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1309// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001310// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001311// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1312// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1313// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1314// RUN: --target=arm-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001315// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001316// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1317// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1318// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1319// RUN: --target=aarch64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001320// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001321// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1322// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1323// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1324// RUN: --target=arm64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001325// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001326// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1327// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1328// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1329// RUN: --target=mipsel-linux-android -pthread \
1330// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1331// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1332// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1333// RUN: --target=mips64el-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001334// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001335// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1336// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1337// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1338// RUN: --target=i686-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001339// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001340// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1341// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1342// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1343// RUN: --target=x86_64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001344// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001345// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1346// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1347// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1348// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001349// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001350// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1351// RUN: -shared \
1352// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1353// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1354// RUN: --target=arm-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001355// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001356// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1357// RUN: -shared \
1358// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1359// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1360// RUN: --target=aarch64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001361// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001362// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1363// RUN: -shared \
1364// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1365// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1366// RUN: --target=arm64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001367// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001368// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1369// RUN: -shared \
1370// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1371// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1372// RUN: --target=mipsel-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001373// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001374// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1375// RUN: -shared \
1376// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1377// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1378// RUN: --target=mips64el-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001379// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001380// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1381// RUN: -shared \
1382// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1383// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1384// RUN: --target=i686-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001385// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001386// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1387// RUN: -shared \
1388// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1389// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1390// RUN: --target=x86_64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001391// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001392// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1393// RUN: -shared \
1394// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1395// CHECK-ANDROID-PTHREAD-NOT: -lpthread
1396//
Evgeniy Stepanovdad92062014-06-05 11:41:39 +00001397// RUN: %clang -no-canonical-prefixes %t.o -### -o %t 2>&1 \
1398// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001399// RUN: --gcc-toolchain="" \
Evgeniy Stepanovdad92062014-06-05 11:41:39 +00001400// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1401// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s
1402// CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread'
1403//
Simon Atanasyand4413882012-09-14 11:27:24 +00001404// Check linker invocation on Debian 6 MIPS 32/64-bit.
1405// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001406// RUN: --target=mipsel-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001407// RUN: --gcc-toolchain="" \
Simon Atanasyand4413882012-09-14 11:27:24 +00001408// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1409// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
1410// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001411// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o"
1412// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o"
1413// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001414// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
1415// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
1416// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
1417// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
1418// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1419// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
1420// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
1421//
1422// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001423// RUN: --target=mips64el-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001424// RUN: --gcc-toolchain="" \
Simon Atanasyand4413882012-09-14 11:27:24 +00001425// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1426// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
1427// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001428// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o"
1429// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o"
1430// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001431// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
1432// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
1433// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
1434// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
1435// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1436// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
1437// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Hal Finkelf3587912012-09-18 22:25:07 +00001438//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001439// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001440// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001441// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001442// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1443// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
1444// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001445// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o"
1446// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o"
1447// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001448// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
1449// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
1450// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
1451// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
1452// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1453// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
1454// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
1455//
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001456// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1457// RUN: --target=mips64-linux-gnuabi64 -mabi=n64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001458// RUN: --gcc-toolchain="" \
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001459// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1460// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s
1461// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1462// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crt1.o"
1463// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crti.o"
1464// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1465// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1466// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64"
1467// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64"
1468// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64"
1469// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1470// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../.."
1471// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib"
1472// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib"
1473// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1474// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crtn.o"
1475//
1476// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1477// RUN: --target=mips64el-linux-gnuabi64 -mabi=n64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001478// RUN: --gcc-toolchain="" \
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001479// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1480// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s
1481// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1482// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crt1.o"
1483// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crti.o"
1484// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1485// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1486// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64"
1487// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64"
1488// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64"
1489// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1490// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../.."
1491// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib"
1492// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib"
1493// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1494// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crtn.o"
1495//
Hal Finkelf3587912012-09-18 22:25:07 +00001496// Test linker invocation for Freescale SDK (OpenEmbedded).
1497// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001498// RUN: --target=powerpc-fsl-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001499// RUN: --gcc-toolchain="" \
Hal Finkelf3587912012-09-18 22:25:07 +00001500// RUN: --sysroot=%S/Inputs/freescale_ppc_tree \
1501// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s
1502// CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1503// CHECK-FSL-PPC: "-m" "elf32ppclinux"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001504// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o"
1505// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001506// CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
1507// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001508// RUN: --target=powerpc64-fsl-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001509// RUN: --gcc-toolchain="" \
Hal Finkelf3587912012-09-18 22:25:07 +00001510// RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \
1511// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
1512// CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1513// CHECK-FSL-PPC64: "-m" "elf64ppc"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001514// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o"
1515// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001516// CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
Benjamin Kramer058666a2012-10-04 19:42:20 +00001517//
Benjamin Kramerab88f622014-03-25 18:02:07 +00001518// Check that crtfastmath.o is linked with -ffast-math and with -Ofast.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001519// RUN: %clang --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001520// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001521// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1522// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001523// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001524// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001525// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1526// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001527// RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001528// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001529// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1530// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001531// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001532// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001533// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1534// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1535// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -O3\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001536// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001537// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1538// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
1539// RUN: %clang --target=x86_64-unknown-linux -### %s -O3 -Ofast\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001540// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001541// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1542// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001543// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001544// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001545// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1546// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001547// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-fast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001548// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001549// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1550// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1551// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-unsafe-math-optimizations \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001552// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001553// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1554// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1555// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-fast-math -Ofast \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001556// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001557// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1558// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1559// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-unsafe-math-optimizations -Ofast \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001560// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001561// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1562// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramer058666a2012-10-04 19:42:20 +00001563// We don't have crtfastmath.o in the i386 tree, use it to check that file
1564// detection works.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001565// RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001566// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001567// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1568// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Rafael Espindola49ddb862013-06-24 22:07:15 +00001569// CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o
Benjamin Kramer058666a2012-10-04 19:42:20 +00001570// CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
Eric Christopherac021742013-06-07 23:25:01 +00001571
1572// Check that we link in gcrt1.o when compiling with -pg
Chandler Carruth274b6f02013-06-20 09:42:40 +00001573// RUN: %clang -pg --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001574// RUN: --gcc-toolchain="" \
Eric Christopherac021742013-06-07 23:25:01 +00001575// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1576// RUN: | FileCheck --check-prefix=CHECK-PG %s
1577// CHECK-PG: gcrt1.o
Reid Kleckner69071442014-06-26 01:08:54 +00001578
1579// GCC forwards -u to the linker.
1580// RUN: %clang -u asdf --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001581// RUN: --gcc-toolchain="" \
Reid Kleckner69071442014-06-26 01:08:54 +00001582// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1583// RUN: | FileCheck --check-prefix=CHECK-u %s
1584// CHECK-u: "-u" "asdf"
Joerg Sonnenberger1689d3f2015-01-28 23:30:39 +00001585
1586// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1587// RUN: --target=armeb-unknown-linux \
1588// RUN: --gcc-toolchain="" \
1589// RUN: --sysroot=%S/Inputs/basic_linux_tree \
1590// RUN: | FileCheck --check-prefix=CHECK-ARMEB %s
1591// CHECK-ARMEB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1592// CHECK-ARMEB-NOT: "--be8"
Strahinja Petrovicb8598962016-06-10 16:09:20 +00001593// CHECK-ARMEB: "-m" "armelfb_linux_eabi"
Joerg Sonnenberger1689d3f2015-01-28 23:30:39 +00001594
1595// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1596// RUN: --target=armebv7-unknown-linux \
1597// RUN: --gcc-toolchain="" \
1598// RUN: --sysroot=%S/Inputs/basic_linux_tree \
1599// RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s
1600// CHECK-ARMV7EB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1601// CHECK-ARMV7EB: "--be8"
Strahinja Petrovicb8598962016-06-10 16:09:20 +00001602// CHECK-ARMV7EB: "-m" "armelfb_linux_eabi"
Rafael Espindola164fe342016-06-14 12:47:24 +00001603
1604// Check dynamic-linker for musl-libc
1605// RUN: %clang %s -### -o %t.o 2>&1 \
1606// RUN: --target=i386-pc-linux-musl \
Rafael Espindolab31478b2016-06-15 20:02:22 +00001607// RUN: | FileCheck --check-prefix=CHECK-MUSL-X86 %s
Rafael Espindola164fe342016-06-14 12:47:24 +00001608// RUN: %clang %s -### -o %t.o 2>&1 \
1609// RUN: --target=x86_64-pc-linux-musl \
Rafael Espindolab31478b2016-06-15 20:02:22 +00001610// RUN: | FileCheck --check-prefix=CHECK-MUSL-X86_64 %s
1611// RUN: %clang %s -### -o %t.o 2>&1 \
1612// RUN: --target=mips-pc-linux-musl \
1613// RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS %s
1614// RUN: %clang %s -### -o %t.o 2>&1 \
1615// RUN: --target=mipsel-pc-linux-musl \
1616// RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPSEL %s
1617// RUN: %clang %s -### -o %t.o 2>&1 \
1618// RUN: --target=mips64-pc-linux-musl \
1619// RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS64 %s
1620// RUN: %clang %s -### -o %t.o 2>&1 \
1621// RUN: --target=mips64el-pc-linux-musl \
1622// RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS64EL %s
1623// RUN: %clang %s -### -o %t.o 2>&1 \
1624// RUN: --target=powerpc-pc-linux-musl \
1625// RUN: | FileCheck --check-prefix=CHECK-MUSL-PPC %s
1626// RUN: %clang %s -### -o %t.o 2>&1 \
1627// RUN: --target=powerpc64-pc-linux-musl \
1628// RUN: | FileCheck --check-prefix=CHECK-MUSL-PPC64 %s
Rafael Espindola0fa66802016-06-24 21:35:06 +00001629// RUN: %clang %s -### -o %t.o 2>&1 \
1630// RUN: --target=thumb-pc-linux-musleabi \
1631// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARM %s
1632// RUN: %clang %s -### -o %t.o 2>&1 \
1633// RUN: --target=thumb-pc-linux-musleabihf \
1634// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s
1635// RUN: %clang %s -### -o %t.o 2>&1 \
Diana Picus86db9e72016-08-08 08:27:36 +00001636// RUN: --target=thumbv7-pc-linux-musleabi -mhard-float \
1637// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s
1638// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindola0fa66802016-06-24 21:35:06 +00001639// RUN: --target=thumbeb-pc-linux-musleabi \
1640// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s
1641// RUN: %clang %s -### -o %t.o 2>&1 \
1642// RUN: --target=thumbeb-pc-linux-musleabihf \
1643// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s
1644// RUN: %clang %s -### -o %t.o 2>&1 \
Diana Picus86db9e72016-08-08 08:27:36 +00001645// RUN: --target=thumbv7eb-pc-linux-musleabi -mhard-float \
1646// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s
1647// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindola0fa66802016-06-24 21:35:06 +00001648// RUN: --target=arm-pc-linux-musleabi \
1649// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARM %s
1650// RUN: %clang %s -### -o %t.o 2>&1 \
1651// RUN: --target=arm-pc-linux-musleabihf \
1652// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s
1653// RUN: %clang %s -### -o %t.o 2>&1 \
Diana Picus86db9e72016-08-08 08:27:36 +00001654// RUN: --target=armv7-pc-linux-musleabi -mhard-float \
1655// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s
1656// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindola0fa66802016-06-24 21:35:06 +00001657// RUN: --target=armeb-pc-linux-musleabi \
1658// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s
1659// RUN: %clang %s -### -o %t.o 2>&1 \
1660// RUN: --target=armeb-pc-linux-musleabihf \
1661// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s
1662// RUN: %clang %s -### -o %t.o 2>&1 \
Diana Picus86db9e72016-08-08 08:27:36 +00001663// RUN: --target=armv7eb-pc-linux-musleabi -mhard-float \
1664// RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s
1665// RUN: %clang %s -### -o %t.o 2>&1 \
Rafael Espindola0fa66802016-06-24 21:35:06 +00001666// RUN: --target=aarch64-pc-linux-musleabi \
1667// RUN: | FileCheck --check-prefix=CHECK-MUSL-AARCH64 %s
1668// RUN: %clang %s -### -o %t.o 2>&1 \
1669// RUN: --target=aarch64_be-pc-linux-musleabi \
1670// RUN: | FileCheck --check-prefix=CHECK-MUSL-AARCH64_BE %s
1671// CHECK-MUSL-X86: "-dynamic-linker" "/lib/ld-musl-i386.so.1"
1672// CHECK-MUSL-X86_64: "-dynamic-linker" "/lib/ld-musl-x86_64.so.1"
1673// CHECK-MUSL-MIPS: "-dynamic-linker" "/lib/ld-musl-mips.so.1"
1674// CHECK-MUSL-MIPSEL: "-dynamic-linker" "/lib/ld-musl-mipsel.so.1"
1675// CHECK-MUSL-MIPS64: "-dynamic-linker" "/lib/ld-musl-mips64.so.1"
1676// CHECK-MUSL-MIPS64EL: "-dynamic-linker" "/lib/ld-musl-mips64el.so.1"
1677// CHECK-MUSL-PPC: "-dynamic-linker" "/lib/ld-musl-powerpc.so.1"
1678// CHECK-MUSL-PPC64: "-dynamic-linker" "/lib/ld-musl-powerpc64.so.1"
1679// CHECK-MUSL-ARM: "-dynamic-linker" "/lib/ld-musl-arm.so.1"
1680// CHECK-MUSL-ARMHF: "-dynamic-linker" "/lib/ld-musl-armhf.so.1"
1681// CHECK-MUSL-ARMEB: "-dynamic-linker" "/lib/ld-musl-armeb.so.1"
1682// CHECK-MUSL-ARMEBHF: "-dynamic-linker" "/lib/ld-musl-armebhf.so.1"
1683// CHECK-MUSL-AARCH64: "-dynamic-linker" "/lib/ld-musl-aarch64.so.1"
1684// CHECK-MUSL-AARCH64_BE: "-dynamic-linker" "/lib/ld-musl-aarch64_be.so.1"
Michal Gornyf4debdd2016-12-12 15:07:43 +00001685
1686// Check whether multilib gcc install works fine on Gentoo with gcc-config
1687// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1688// RUN: --target=x86_64-unknown-linux-gnu -rtlib=platform \
1689// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \
1690// RUN: --gcc-toolchain="" \
1691// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO %s
1692// CHECK-LD-GENTOO-NOT: warning:
1693// CHECK-LD-GENTOO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1694// CHECK-LD-GENTOO: "--eh-frame-hdr"
1695// CHECK-LD-GENTOO: "-m" "elf_x86_64"
1696// CHECK-LD-GENTOO: "-dynamic-linker"
Michal Gorny108044a2016-12-12 16:04:37 +00001697// CHECK-LD-GENTOO: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3{{/|\\\\}}crtbegin.o"
Michal Gornyf4debdd2016-12-12 15:07:43 +00001698// CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3"
1699// CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib"
1700// CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../.."
1701// CHECK-LD-GENTOO: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1702// CHECK-LD-GENTOO: "-lc"
1703// CHECK-LD-GENTOO: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1704// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1705// RUN: --target=i686-unknown-linux-gnu -rtlib=platform \
1706// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \
1707// RUN: --gcc-toolchain="" \
1708// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-32 %s
1709// CHECK-LD-GENTOO-32-NOT: warning:
1710// CHECK-LD-GENTOO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1711// CHECK-LD-GENTOO-32: "--eh-frame-hdr"
1712// CHECK-LD-GENTOO-32: "-m" "elf_i386"
1713// CHECK-LD-GENTOO-32: "-dynamic-linker"
Michal Gorny108044a2016-12-12 16:04:37 +00001714// CHECK-LD-GENTOO-32: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32{{/|\\\\}}crtbegin.o"
Michal Gornyf4debdd2016-12-12 15:07:43 +00001715// CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32"
1716// CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib"
1717// CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../.."
1718// CHECK-LD-GENTOO-32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1719// CHECK-LD-GENTOO-32: "-lc"
1720// CHECK-LD-GENTOO-32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1721// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1722// RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform \
1723// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \
1724// RUN: --gcc-toolchain="" \
1725// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-X32 %s
1726// CHECK-LD-GENTOO-X32-NOT: warning:
1727// CHECK-LD-GENTOO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1728// CHECK-LD-GENTOO-X32: "--eh-frame-hdr"
1729// CHECK-LD-GENTOO-X32: "-m" "elf32_x86_64"
1730// CHECK-LD-GENTOO-X32: "-dynamic-linker"
Michal Gorny108044a2016-12-12 16:04:37 +00001731// CHECK-LD-GENTOO-X32: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32{{/|\\\\}}crtbegin.o"
Michal Gornyf4debdd2016-12-12 15:07:43 +00001732// CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32"
1733// CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib"
1734// CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../.."
1735// CHECK-LD-GENTOO-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1736// CHECK-LD-GENTOO-X32: "-lc"
1737// CHECK-LD-GENTOO-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"