blob: f2e6eda3ffb40a8a0cd70f8c2a44e0695cec83b4 [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 \
Chandler Carruth274b6f02013-06-20 09:42:40 +000019// RUN: --target=x86_64-unknown-linux \
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 \
Zinovy Nis1db95732014-07-10 15:27:19 +000039// RUN: --target=x86_64-unknown-linux-gnux32 \
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"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000069// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
Renato Golinc4b49242014-02-13 10:01:16 +000070// CHECK-LD-RT: "-lc"
Alexey Samsonov99ee10d2014-05-22 21:13:30 +000071// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s"
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"
84// CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a" "-lgcc_s"
85// CHECK-LD-RT-ANDROID: "-lc"
86// CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a" "-lgcc_s"
87//
88// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Renato Golinc4b49242014-02-13 10:01:16 +000089// RUN: --target=x86_64-unknown-linux \
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"
105// CHECK-LD-GCC "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
106// 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 \
110// RUN: --target=x86_64-unknown-linux \
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 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000131// RUN: --target=x86_64-unknown-linux \
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 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000152// RUN: --target=x86_64-unknown-linux \
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"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000391//
Chandler Carruth902efc62014-01-21 22:49:05 +0000392// Test a simulated installation of libc++ on Linux, both through sysroot and
393// the installation path of Clang.
394// RUN: %clangxx -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
395// RUN: -target x86_64-unknown-linux-gnu \
396// RUN: -stdlib=libc++ \
397// RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000398// RUN: --gcc-toolchain="" \
Chandler Carruth902efc62014-01-21 22:49:05 +0000399// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
400// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s
401// CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
402// CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]"
403// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
404// CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
405// CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]"
406// RUN: %clang -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \
407// RUN: -target x86_64-unknown-linux-gnu \
408// RUN: -stdlib=libc++ \
409// RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000410// RUN: --gcc-toolchain="" \
Chandler Carruth902efc62014-01-21 22:49:05 +0000411// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \
412// RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s
413// CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
414// CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]"
415// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1"
416// CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
417// CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]"
418// CHECK-BASIC-LIBCXX-INSTALL: "-L[[SYSROOT]]/usr/bin/../lib"
419//
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000420// Test a very broken version of multiarch that shipped in Ubuntu 11.04.
421// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000422// RUN: --target=i386-unknown-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000423// RUN: --gcc-toolchain="" \
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000424// RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \
425// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s
426// CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000427// CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruth6e46ca22011-11-09 03:46:20 +0000428// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
429// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu"
430// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
431// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
432// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib"
433// CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib"
Hal Finkel6b89a102011-12-08 20:36:19 +0000434//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000435// Check multi arch support on Ubuntu 12.04 LTS.
436// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000437// RUN: --target=arm-unknown-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000438// RUN: --gcc-toolchain="" \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000439// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
440// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s
441// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000442// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o"
443// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o"
444// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000445// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3"
446// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf"
447// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf"
448// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf"
449// CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000450// CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o"
451// 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 +0000452//
Chandler Carruthda797042013-10-29 10:27:30 +0000453// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf.
454// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
455// RUN: --target=arm-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000456// RUN: --gcc-toolchain="" \
Chandler Carruthda797042013-10-29 10:27:30 +0000457// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
458// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s
459// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
460// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3"
461// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o"
462// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o"
463// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o"
464// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8"
465// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib"
466// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib"
467// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib"
468// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib"
469// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o"
470// CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o"
471//
472// Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi.
473// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
474// RUN: --target=arm-linux-gnueabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000475// RUN: --gcc-toolchain="" \
Chandler Carruthda797042013-10-29 10:27:30 +0000476// RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \
477// RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s
478// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
479// CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3"
480// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o"
481// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o"
482// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o"
483// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7"
484// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib"
485// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib"
486// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib"
487// CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib"
488// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o"
489// CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o"
490//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000491// Check Ubuntu 14.04 on powerpc64le.
492// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
493// RUN: --target=powerpc64le-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000494// RUN: --gcc-toolchain="" \
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000495// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
496// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s
497// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
498// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crt1.o"
499// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crti.o"
500// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o"
501// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8"
502// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu"
503// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu"
504// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu"
505// CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../.."
506// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o"
507// CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crtn.o"
508//
Zinovy Nis1db95732014-07-10 15:27:19 +0000509// Check Ubuntu 14.04 on x32.
510// "/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o" "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32/crtn.o"
511// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
512// RUN: --target=x86_64-unknown-linux-gnux32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000513// RUN: --gcc-toolchain="" \
Zinovy Nis1db95732014-07-10 15:27:19 +0000514// RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \
515// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-X32 %s
516// CHECK-UBUNTU-14-04-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
517// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crt1.o"
518// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crti.o"
519// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtbegin.o"
520// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/x32"
521// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32"
522// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/lib/../libx32"
523// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/../libx32"
524// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu/../../libx32"
525// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8"
526// CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.."
527// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtend.o"
528// CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crtn.o"
529//
Rafael Espindola50ba9832013-04-14 10:14:21 +0000530// Check fedora 18 on arm.
531// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000532// RUN: --target=armv7-unknown-linux-gnueabihf \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000533// RUN: --gcc-toolchain="" \
Rafael Espindola50ba9832013-04-14 10:14:21 +0000534// RUN: --sysroot=%S/Inputs/fedora_18_tree \
535// RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
536// CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Chandler Carruthda797042013-10-29 10:27:30 +0000537// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
538// 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 +0000539// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
Rafael Espindola50ba9832013-04-14 10:14:21 +0000540// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
Chandler Carruthda797042013-10-29 10:27:30 +0000541// 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 +0000542// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
Chandler Carruthda797042013-10-29 10:27:30 +0000543// 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 +0000544//
Tilmann Schellere914bc82014-05-06 16:58:14 +0000545// Check Fedora 21 on AArch64.
546// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
547// RUN: --target=arm64-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000548// RUN: --gcc-toolchain="" \
Tilmann Schellere914bc82014-05-06 16:58:14 +0000549// RUN: --sysroot=%S/Inputs/fedora_21_tree \
550// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
551// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
552// RUN: --target=aarch64-unknown-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000553// RUN: --gcc-toolchain="" \
Tilmann Schellere914bc82014-05-06 16:58:14 +0000554// RUN: --sysroot=%S/Inputs/fedora_21_tree \
555// RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s
556// CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
557// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o"
558// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o"
559// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o"
560// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0"
561// CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64"
562// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o"
563// CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o"
564//
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000565// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000566// RUN: --target=arm-unknown-linux-gnueabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000567// RUN: --gcc-toolchain="" \
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000568// RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \
569// RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s
570// CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000571// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o"
572// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o"
573// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o"
Jiangning Liu61b06cb2012-07-31 08:06:29 +0000574// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1"
575// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi"
576// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi"
577// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi"
578// CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.."
Rafael Espindola49ddb862013-06-24 22:07:15 +0000579// CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o"
580// 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 +0000581//
Hal Finkel6b89a102011-12-08 20:36:19 +0000582// Test the setup that shipped in SUSE 10.3 on ppc64.
583// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000584// RUN: --target=powerpc64-suse-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000585// RUN: --gcc-toolchain="" \
Hal Finkel6b89a102011-12-08 20:36:19 +0000586// RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \
587// RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s
588// CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000589// CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o"
Hal Finkel6b89a102011-12-08 20:36:19 +0000590// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64"
591// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64"
592// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64"
593// CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000594//
Jiangning Liueabbf922012-07-30 11:05:56 +0000595// Check dynamic-linker for different archs
596// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000597// RUN: --target=arm-linux-gnueabi \
Jiangning Liueabbf922012-07-30 11:05:56 +0000598// RUN: | FileCheck --check-prefix=CHECK-ARM %s
599// CHECK-ARM: "{{.*}}ld{{(.exe)?}}"
600// CHECK-ARM: "-m" "armelf_linux_eabi"
601// CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3"
602//
603// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000604// RUN: --target=arm-linux-gnueabihf \
Jiangning Liueabbf922012-07-30 11:05:56 +0000605// RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s
606// CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}"
607// CHECK-ARM-HF: "-m" "armelf_linux_eabi"
608// CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3"
609//
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000610// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand8afad612014-07-28 13:17:52 +0000611// RUN: --target=powerpc64-linux-gnu \
612// RUN: | FileCheck --check-prefix=CHECK-PPC64 %s
613// CHECK-PPC64: "{{.*}}ld{{(.exe)?}}"
614// CHECK-PPC64: "-m" "elf64ppc"
615// CHECK-PPC64: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
616//
617// RUN: %clang %s -### -o %t.o 2>&1 \
618// RUN: --target=powerpc64-linux-gnu -mabi=elfv1 \
619// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s
620// CHECK-PPC64-ELFv1: "{{.*}}ld{{(.exe)?}}"
621// CHECK-PPC64-ELFv1: "-m" "elf64ppc"
622// CHECK-PPC64-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
623//
624// RUN: %clang %s -### -o %t.o 2>&1 \
625// RUN: --target=powerpc64-linux-gnu -mabi=elfv2 \
626// RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv2 %s
627// CHECK-PPC64-ELFv2: "{{.*}}ld{{(.exe)?}}"
628// CHECK-PPC64-ELFv2: "-m" "elf64ppc"
629// CHECK-PPC64-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
630//
631// RUN: %clang %s -### -o %t.o 2>&1 \
Ulrich Weigand68e902c2014-06-20 14:19:02 +0000632// RUN: --target=powerpc64le-linux-gnu \
633// RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s
634// CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}"
635// CHECK-PPC64LE: "-m" "elf64lppc"
636// CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
637//
Ulrich Weigand8afad612014-07-28 13:17:52 +0000638// RUN: %clang %s -### -o %t.o 2>&1 \
639// RUN: --target=powerpc64le-linux-gnu -mabi=elfv1 \
640// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv1 %s
641// CHECK-PPC64LE-ELFv1: "{{.*}}ld{{(.exe)?}}"
642// CHECK-PPC64LE-ELFv1: "-m" "elf64lppc"
643// CHECK-PPC64LE-ELFv1: "-dynamic-linker" "{{.*}}/lib64/ld64.so.1"
644//
645// RUN: %clang %s -### -o %t.o 2>&1 \
646// RUN: --target=powerpc64le-linux-gnu -mabi=elfv2 \
647// RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv2 %s
648// CHECK-PPC64LE-ELFv2: "{{.*}}ld{{(.exe)?}}"
649// CHECK-PPC64LE-ELFv2: "-m" "elf64lppc"
650// CHECK-PPC64LE-ELFv2: "-dynamic-linker" "{{.*}}/lib64/ld64.so.2"
651//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000652// Check that we do not pass --hash-style=gnu and --hash-style=both to linker
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000653// and provide correct path to the dynamic linker and emulation mode when build
654// for MIPS platforms.
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000655// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000656// RUN: --target=mips-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000657// RUN: | FileCheck --check-prefix=CHECK-MIPS %s
658// CHECK-MIPS: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000659// CHECK-MIPS: "-m" "elf32btsmip"
660// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000661// CHECK-MIPS-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000662//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000663// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000664// RUN: --target=mipsel-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000665// RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s
666// CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000667// CHECK-MIPSEL: "-m" "elf32ltsmip"
668// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000669// CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000670//
671// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mnan=2008 \
672// RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s
673// CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}"
674// CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip"
675// CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
676// CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}"
677//
678// RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \
679// RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s
680// CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}"
681// CHECK-MIPS32R6EL: "-m" "elf32ltsmip"
682// CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1"
683// CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}"
684//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000685// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000686// RUN: --target=mips64-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000687// RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
688// CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000689// CHECK-MIPS64: "-m" "elf64btsmip"
690// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000691// CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000692//
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000693// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000694// RUN: --target=mips64el-linux-gnu \
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000695// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
696// CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}"
Simon Atanasyan1e1e2e22012-04-06 20:14:27 +0000697// CHECK-MIPS64EL: "-m" "elf64ltsmip"
698// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1"
Chandler Carruth7cf80e382011-12-17 21:57:25 +0000699// CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000700//
701// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mnan=2008 \
702// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s
703// CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}"
704// CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip"
705// CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
706// CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}"
707//
708// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \
709// RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s
710// CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}"
711// CHECK-MIPS64R6EL: "-m" "elf64ltsmip"
712// CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib64/ld-linux-mipsn8.so.1"
713// CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}"
714//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000715// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000716// RUN: --target=mips64-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000717// RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s
718// CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}"
719// CHECK-MIPS64-N32: "-m" "elf32btsmipn32"
720// CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
721// CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}"
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000722//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000723// RUN: %clang %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000724// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000725// RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s
726// CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}"
727// CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32"
728// CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1"
729// CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000730//
Daniel Sanders3b92c5b2014-06-24 15:04:16 +0000731// RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mabi=n32 \
732// RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s
733// CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}"
734// CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32"
735// CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib32/ld-linux-mipsn8.so.1"
736// CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}"
737//
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000738// RUN: %clang %s -### -o %t.o 2>&1 \
739// RUN: --target=sparc-linux-gnu \
740// RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s
741// CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}"
742// CHECK-SPARCV8: "-m" "elf32_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000743// CHECK-SPARCV8: "-dynamic-linker" "/lib/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000744//
745// RUN: %clang %s -### -o %t.o 2>&1 \
746// RUN: --target=sparcv9-linux-gnu \
747// RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s
748// CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}"
749// CHECK-SPARCV9: "-m" "elf64_sparc"
Jakob Stoklund Olesen73cb84c2014-01-10 08:18:34 +0000750// CHECK-SPARCV9: "-dynamic-linker" "/lib64/ld-linux.so.2"
Jakob Stoklund Olesen91a8e032014-01-10 03:51:33 +0000751//
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000752// Thoroughly exercise the Debian multiarch environment.
753// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000754// RUN: --target=i686-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000755// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000756// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
757// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s
758// CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000759// CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000760// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5"
761// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu"
762// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu"
763// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.."
764// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib"
765// CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib"
766// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000767// RUN: --target=x86_64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000768// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000769// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
770// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s
771// CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000772// CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000773// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5"
774// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu"
775// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu"
776// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.."
777// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib"
778// CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib"
779// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000780// RUN: --target=powerpc-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000781// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000782// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
783// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s
784// CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000785// CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000786// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5"
787// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu"
788// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu"
789// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.."
790// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib"
791// CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib"
792// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000793// RUN: --target=powerpc64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000794// RUN: --gcc-toolchain="" \
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000795// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
796// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s
797// CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000798// CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000799// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5"
800// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu"
801// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu"
802// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.."
803// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib"
804// CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000805// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000806// RUN: --target=mips-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000807// RUN: --gcc-toolchain="" \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000808// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
809// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s
810// CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000811// CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000812// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
813// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu"
814// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu"
815// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
816// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib"
817// CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib"
818// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000819// RUN: --target=mipsel-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000820// RUN: --gcc-toolchain="" \
Simon Atanasyan2be62252012-04-26 08:35:58 +0000821// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
822// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s
823// CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000824// CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
Simon Atanasyan2be62252012-04-26 08:35:58 +0000825// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
826// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu"
827// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu"
828// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
829// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib"
830// CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000831// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000832// RUN: --target=mips64-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000833// RUN: --gcc-toolchain="" \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000834// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
835// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s
836// CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000837// CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000838// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64"
839// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
840// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
841// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib"
842// CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib"
843// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000844// RUN: --target=mips64el-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000845// RUN: --gcc-toolchain="" \
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000846// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
847// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s
848// CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000849// CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o"
Simon Atanasyan9bb634d2012-04-26 19:57:02 +0000850// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64"
851// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
852// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
853// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib"
854// CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000855// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000856// RUN: --target=mips64-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000857// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000858// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
859// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s
860// CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000861// CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000862// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32"
863// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5"
864// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.."
865// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib"
866// CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib"
867// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000868// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000869// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000870// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \
871// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s
872// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000873// CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +0000874// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32"
875// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5"
876// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.."
877// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
878// CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
Chandler Carruthaf3c2092012-02-26 09:03:21 +0000879//
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000880// Test linker invocation on Android.
881// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000882// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000883// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000884// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000885// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000886// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000887// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000888// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000889// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000890// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000891// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000892// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000893// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +0000894// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
895// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
896// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000897// RUN: --target=arm64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000898// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000899// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
900// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
901// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000902// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000903// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000904// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
905// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000906// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000907// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000908// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000909// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
910// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
911// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000912// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000913// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +0000914// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
915// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000916// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
917// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000918// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000919// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
920// RUN: | FileCheck --check-prefix=CHECK-ANDROID %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000921// CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000922// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000923// CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib"
924// CHECK-ANDROID-NOT: "gcc_s"
925// CHECK-ANDROID: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000926// CHECK-ANDROID: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000927// CHECK-ANDROID-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000928// CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000929// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000930// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000931// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000932// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000933// RUN: -shared \
934// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000935// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000936// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000937// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000938// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000939// RUN: -shared \
940// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000941// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000942// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000943// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +0000944// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
945// RUN: -shared \
946// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
947// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +0000948// RUN: --target=arm64-linux-android \
949// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
950// RUN: -shared \
951// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
952// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000953// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000954// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000955// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
956// RUN: -shared \
957// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Rafael Espindola7df35012012-11-02 20:41:30 +0000958// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000959// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000960// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +0000961// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
962// RUN: -shared \
963// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
964// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +0000965// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000966// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +0000967// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
968// RUN: -shared \
969// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000970// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
971// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000972// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +0000973// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
974// RUN: -shared \
975// RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000976// CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Evgeniy Stepanova3331172014-07-16 08:46:35 +0000977// CHECK-ANDROID-SO-NOT: "-Bsymbolic"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000978// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000979// CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib"
980// CHECK-ANDROID-SO-NOT: "gcc_s"
981// CHECK-ANDROID-SO: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +0000982// CHECK-ANDROID-SO: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000983// CHECK-ANDROID-SO-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +0000984// CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000985// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000986// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000987// RUN: --gcc-toolchain="" \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000988// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Evgeniy Stepanov77866712012-04-25 08:59:22 +0000989// RUN: -static \
990// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Logan Chienc6fd8202012-09-02 09:30:11 +0000991// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +0000992// RUN: --target=arm-linux-android \
Evgeniy Stepanov763671e2012-09-03 09:05:50 +0000993// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Logan Chienc6fd8202012-09-02 09:30:11 +0000994// RUN: -static \
995// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +0000996// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +0000997// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +0000998// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +0000999// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1000// RUN: -static \
1001// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
1002// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001003// RUN: --target=arm64-linux-android \
1004// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1005// RUN: -static \
1006// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
1007// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001008// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001009// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001010// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1011// RUN: -static \
1012// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Rafael Espindola7df35012012-11-02 20:41:30 +00001013// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001014// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001015// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001016// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1017// RUN: -static \
1018// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
1019// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +00001020// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001021// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001022// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1023// RUN: -static \
1024// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001025// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Rafael Espindolad76eb442014-08-15 16:55:25 +00001026// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001027// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001028// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1029// RUN: -static \
1030// RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001031// CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001032// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001033// CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib"
1034// CHECK-ANDROID-STATIC-NOT: "gcc_s"
1035// CHECK-ANDROID-STATIC: "-lgcc"
Logan Chien3d3373c2012-11-19 12:04:11 +00001036// CHECK-ANDROID-STATIC-NOT: "-ldl"
Evgeniy Stepanov77866712012-04-25 08:59:22 +00001037// CHECK-ANDROID-STATIC-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001038// CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001039// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001040// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001041// RUN: --gcc-toolchain="" \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001042// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1043// RUN: -pie \
1044// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1045// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001046// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001047// RUN: --gcc-toolchain="" \
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001048// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1049// RUN: -pie \
1050// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001051// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +00001052// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001053// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001054// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1055// RUN: -pie \
1056// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1057// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001058// RUN: --target=arm64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001059// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001060// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1061// RUN: -pie \
1062// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1063// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001064// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001065// RUN: --gcc-toolchain="" \
Simon Atanasyan53fefd12012-10-03 17:46:38 +00001066// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1067// RUN: -pie \
1068// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Rafael Espindola7df35012012-11-02 20:41:30 +00001069// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001070// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001071// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001072// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1073// RUN: -pie \
1074// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
1075// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataev75db8c32014-01-13 03:49:38 +00001076// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001077// RUN: --gcc-toolchain="" \
Rafael Espindola7df35012012-11-02 20:41:30 +00001078// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1079// RUN: -pie \
1080// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001081// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1082// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001083// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001084// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1085// RUN: -pie \
1086// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001087// CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001088// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o"
Evgeniy Stepanovc9cde482012-09-10 10:30:12 +00001089// CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib"
1090// CHECK-ANDROID-PIE-NOT: "gcc_s"
1091// CHECK-ANDROID-PIE: "-lgcc"
1092// CHECK-ANDROID-PIE-NOT: "gcc_s"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001093// CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o"
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001094// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1095// RUN: --target=arm-linux-androideabi \
Dan Albert77214a42015-03-03 18:24:57 +00001096// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1097// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1098// RUN: --target=arm-linux-android \
1099// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1100// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1101// RUN: --target=aarch64-linux-android \
1102// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1103// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1104// RUN: --target=arm64-linux-android \
1105// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1106// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1107// RUN: --target=mipsel-linux-android \
1108// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1109// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1110// RUN: --target=mips64el-linux-android \
1111// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1112// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1113// RUN: --target=i686-linux-android \
1114// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1115// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1116// RUN: --target=x86_64-linux-android \
1117// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s
1118// CHECK-ANDROID-NO-DEFAULT-PIE-NOT: -pie
1119// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1120// RUN: --target=arm-linux-androideabi \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001121// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001122// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1123// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1124// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1125// RUN: --target=arm-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001126// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001127// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1128// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1129// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1130// RUN: --target=mipsel-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001131// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001132// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1133// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1134// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Logan Chien6a00cc82014-04-23 13:36:23 +00001135// RUN: --target=aarch64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001136// RUN: --gcc-toolchain="" \
Logan Chien6a00cc82014-04-23 13:36:23 +00001137// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1138// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1139// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001140// RUN: --target=arm64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001141// RUN: --gcc-toolchain="" \
Bradley Smith4da7dd82014-04-30 10:52:05 +00001142// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1143// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1144// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001145// RUN: --target=mips64el-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001146// RUN: --gcc-toolchain="" \
Simon Atanasyan68855fe32014-01-25 16:04:08 +00001147// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1148// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1149// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001150// RUN: --target=i686-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001151// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001152// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1153// RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s
1154// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1155// RUN: --target=x86_64-linux-android \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001156// RUN: --gcc-toolchain="" \
Alexey Bataevcf7ae302014-01-23 09:08:32 +00001157// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1158// RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s
1159// CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker"
1160// CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64"
Simon Atanasyand4413882012-09-14 11:27:24 +00001161//
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001162// Test that -pthread does not add -lpthread on Android.
1163// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1164// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001165// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001166// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1167// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1168// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1169// RUN: --target=arm-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001170// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001171// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1172// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1173// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1174// RUN: --target=aarch64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001175// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001176// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1177// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1178// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1179// RUN: --target=arm64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001180// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001181// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1182// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1183// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1184// RUN: --target=mipsel-linux-android -pthread \
1185// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1186// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1187// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1188// RUN: --target=mips64el-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001189// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001190// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1191// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1192// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1193// RUN: --target=i686-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001194// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001195// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1196// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1197// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1198// RUN: --target=x86_64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001199// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001200// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1201// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1202// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1203// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001204// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001205// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1206// RUN: -shared \
1207// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1208// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1209// RUN: --target=arm-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001210// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001211// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1212// RUN: -shared \
1213// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1214// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1215// RUN: --target=aarch64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001216// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001217// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1218// RUN: -shared \
1219// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1220// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1221// RUN: --target=arm64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001222// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001223// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1224// RUN: -shared \
1225// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1226// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1227// RUN: --target=mipsel-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001228// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001229// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1230// RUN: -shared \
1231// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1232// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1233// RUN: --target=mips64el-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001234// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001235// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1236// RUN: -shared \
1237// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1238// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1239// RUN: --target=i686-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001240// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001241// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1242// RUN: -shared \
1243// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1244// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1245// RUN: --target=x86_64-linux-android -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001246// RUN: --gcc-toolchain="" \
Evgeniy Stepanov152b0232014-05-28 12:53:34 +00001247// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1248// RUN: -shared \
1249// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s
1250// CHECK-ANDROID-PTHREAD-NOT: -lpthread
1251//
Evgeniy Stepanovdad92062014-06-05 11:41:39 +00001252// RUN: %clang -no-canonical-prefixes %t.o -### -o %t 2>&1 \
1253// RUN: --target=arm-linux-androideabi -pthread \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001254// RUN: --gcc-toolchain="" \
Evgeniy Stepanovdad92062014-06-05 11:41:39 +00001255// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
1256// RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s
1257// CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread'
1258//
Simon Atanasyand4413882012-09-14 11:27:24 +00001259// Check linker invocation on Debian 6 MIPS 32/64-bit.
1260// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001261// RUN: --target=mipsel-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001262// RUN: --gcc-toolchain="" \
Simon Atanasyand4413882012-09-14 11:27:24 +00001263// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1264// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s
1265// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001266// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o"
1267// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o"
1268// CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001269// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4"
1270// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib"
1271// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib"
1272// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib"
1273// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1274// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib"
1275// CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib"
1276//
1277// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001278// RUN: --target=mips64el-linux-gnu \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001279// RUN: --gcc-toolchain="" \
Simon Atanasyand4413882012-09-14 11:27:24 +00001280// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1281// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s
1282// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001283// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o"
1284// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o"
1285// CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o"
Simon Atanasyand4413882012-09-14 11:27:24 +00001286// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64"
1287// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64"
1288// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64"
1289// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64"
1290// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1291// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib"
1292// CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib"
Hal Finkelf3587912012-09-18 22:25:07 +00001293//
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001294// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001295// RUN: --target=mips64el-linux-gnu -mabi=n32 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001296// RUN: --gcc-toolchain="" \
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001297// RUN: --sysroot=%S/Inputs/debian_6_mips_tree \
1298// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s
1299// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001300// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o"
1301// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o"
1302// CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o"
Simon Atanasyan2d1b1ad2012-10-21 11:44:57 +00001303// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32"
1304// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32"
1305// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32"
1306// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32"
1307// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.."
1308// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib"
1309// CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib"
1310//
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001311// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1312// RUN: --target=mips64-linux-gnuabi64 -mabi=n64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001313// RUN: --gcc-toolchain="" \
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001314// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1315// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s
1316// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1317// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crt1.o"
1318// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crti.o"
1319// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1320// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1321// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64"
1322// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64"
1323// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64"
1324// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9"
1325// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../.."
1326// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib"
1327// CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib"
1328// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1329// CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crtn.o"
1330//
1331// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1332// RUN: --target=mips64el-linux-gnuabi64 -mabi=n64 \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001333// RUN: --gcc-toolchain="" \
Simon Atanasyan3a46afa2014-06-24 19:00:12 +00001334// RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \
1335// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s
1336// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1337// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crt1.o"
1338// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crti.o"
1339// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o"
1340// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1341// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64"
1342// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64"
1343// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64"
1344// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9"
1345// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../.."
1346// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib"
1347// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib"
1348// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o"
1349// CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crtn.o"
1350//
Hal Finkelf3587912012-09-18 22:25:07 +00001351// Test linker invocation for Freescale SDK (OpenEmbedded).
1352// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001353// RUN: --target=powerpc-fsl-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001354// RUN: --gcc-toolchain="" \
Hal Finkelf3587912012-09-18 22:25:07 +00001355// RUN: --sysroot=%S/Inputs/freescale_ppc_tree \
1356// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s
1357// CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1358// CHECK-FSL-PPC: "-m" "elf32ppclinux"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001359// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o"
1360// CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001361// CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib"
1362// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Chandler Carruth274b6f02013-06-20 09:42:40 +00001363// RUN: --target=powerpc64-fsl-linux \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001364// RUN: --gcc-toolchain="" \
Hal Finkelf3587912012-09-18 22:25:07 +00001365// RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \
1366// RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s
1367// CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1368// CHECK-FSL-PPC64: "-m" "elf64ppc"
Rafael Espindola49ddb862013-06-24 22:07:15 +00001369// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o"
1370// CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o"
Hal Finkelf3587912012-09-18 22:25:07 +00001371// CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.."
Benjamin Kramer058666a2012-10-04 19:42:20 +00001372//
Benjamin Kramerab88f622014-03-25 18:02:07 +00001373// Check that crtfastmath.o is linked with -ffast-math and with -Ofast.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001374// RUN: %clang --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001375// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001376// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1377// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001378// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001379// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001380// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1381// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001382// RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001383// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001384// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1385// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001386// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001387// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001388// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1389// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1390// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -O3\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001391// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001392// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1393// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
1394// RUN: %clang --target=x86_64-unknown-linux -### %s -O3 -Ofast\
Samuel Antao4ae1f672015-01-05 17:07:42 +00001395// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001396// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1397// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Chandler Carruth274b6f02013-06-20 09:42:40 +00001398// RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001399// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001400// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1401// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Benjamin Kramerab88f622014-03-25 18:02:07 +00001402// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-fast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001403// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001404// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1405// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1406// RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-unsafe-math-optimizations \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001407// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001408// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1409// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1410// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-fast-math -Ofast \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001411// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001412// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1413// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
1414// RUN: %clang --target=x86_64-unknown-linux -### %s -fno-unsafe-math-optimizations -Ofast \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001415// RUN: --gcc-toolchain="" \
Benjamin Kramerab88f622014-03-25 18:02:07 +00001416// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1417// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s
Benjamin Kramer058666a2012-10-04 19:42:20 +00001418// We don't have crtfastmath.o in the i386 tree, use it to check that file
1419// detection works.
Chandler Carruth274b6f02013-06-20 09:42:40 +00001420// RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001421// RUN: --gcc-toolchain="" \
Benjamin Kramer058666a2012-10-04 19:42:20 +00001422// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
1423// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s
Rafael Espindola49ddb862013-06-24 22:07:15 +00001424// CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o
Benjamin Kramer058666a2012-10-04 19:42:20 +00001425// CHECK-NOCRTFASTMATH-NOT: crtfastmath.o
Eric Christopherac021742013-06-07 23:25:01 +00001426
1427// Check that we link in gcrt1.o when compiling with -pg
Chandler Carruth274b6f02013-06-20 09:42:40 +00001428// RUN: %clang -pg --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001429// RUN: --gcc-toolchain="" \
Eric Christopherac021742013-06-07 23:25:01 +00001430// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1431// RUN: | FileCheck --check-prefix=CHECK-PG %s
1432// CHECK-PG: gcrt1.o
Reid Kleckner69071442014-06-26 01:08:54 +00001433
1434// GCC forwards -u to the linker.
1435// RUN: %clang -u asdf --target=x86_64-unknown-linux -### %s \
Samuel Antao4ae1f672015-01-05 17:07:42 +00001436// RUN: --gcc-toolchain="" \
Reid Kleckner69071442014-06-26 01:08:54 +00001437// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \
1438// RUN: | FileCheck --check-prefix=CHECK-u %s
1439// CHECK-u: "-u" "asdf"
Joerg Sonnenberger1689d3f2015-01-28 23:30:39 +00001440
1441// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1442// RUN: --target=armeb-unknown-linux \
1443// RUN: --gcc-toolchain="" \
1444// RUN: --sysroot=%S/Inputs/basic_linux_tree \
1445// RUN: | FileCheck --check-prefix=CHECK-ARMEB %s
1446// CHECK-ARMEB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1447// CHECK-ARMEB-NOT: "--be8"
1448// CHECK-ARMEB: "-m" "armebelf_linux_eabi"
1449
1450// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
1451// RUN: --target=armebv7-unknown-linux \
1452// RUN: --gcc-toolchain="" \
1453// RUN: --sysroot=%S/Inputs/basic_linux_tree \
1454// RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s
1455// CHECK-ARMV7EB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1456// CHECK-ARMV7EB: "--be8"
1457// CHECK-ARMV7EB: "-m" "armebelf_linux_eabi"