blob: 9aa7ed760666d41a63ebecba693ecb7904eed7c6 [file] [log] [blame]
Fedor Sergeevfaa0a822018-01-23 12:23:52 +00001// General tests that ld invocations on Solaris targets sane. Note that we use
2// sysroot to make these tests independent of the host system.
Rafael Espindolac53c5b12015-08-31 19:17:51 +00003
Fedor Sergeevfaa0a822018-01-23 12:23:52 +00004// Check sparc-sun-solaris2.11, 32bit
Rainer Orthd39a9e32023-09-01 21:42:05 +02005// RUN: %clang -### %s --target=sparc-sun-solaris2.11 -fuse-ld= \
Rainer Orthd39a9e32023-09-01 21:42:05 +02006// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
7// RUN: | FileCheck --check-prefixes=CHECK-LD-SPARC32,CHECK-LD %s
8// RUN: %clang -### %s --target=sparc-sun-solaris2.11 -fuse-ld=gld \
Rainer Orthd39a9e32023-09-01 21:42:05 +02009// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
10// RUN: | FileCheck --check-prefixes=CHECK-LD-SPARC32,CHECK-GLD %s
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000011// CHECK-LD-SPARC32-NOT: warning:
Fangrui Song332d5202022-06-05 16:06:09 -070012// CHECK-LD-SPARC32: "-cc1" "-triple" "sparc-sun-solaris2.11"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000013// CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
Douglas Yung1b9260b2018-01-24 00:05:01 +000014// CHECK-LD-SPARC32: "{{.*}}ld{{(.exe)?}}"
Douglas Yung1b9260b2018-01-24 00:05:01 +000015// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crt1.o"
16// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crti.o"
17// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtbegin.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000018// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2"
19// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../.."
20// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/lib"
Rainer Orthd39a9e32023-09-01 21:42:05 +020021// CHECK-LD: "-z" "ignore" "-latomic" "-z" "record"
22// CHECK-GLD: "--as-needed" "-latomic" "--no-as-needed"
Rainer Orth4e81ee42025-05-04 10:26:01 +020023// CHECK-LD-SPARC32-SAME: "-lgcc"
rorthb084d102023-09-06 19:44:39 +020024// CHECK-LD: "-z" "ignore" "-lgcc_s" "-z" "record"
25// CHECK-GLD: "--as-needed" "-lgcc_s" "--no-as-needed"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000026// CHECK-LD-SPARC32-SAME: "-lc"
Douglas Yung1b9260b2018-01-24 00:05:01 +000027// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtend.o"
28// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000029
30// Check sparc-sun-solaris2.11, 64bit
Fangrui Song332d5202022-06-05 16:06:09 -070031// RUN: %clang -m64 -### %s 2>&1 --target=sparc-sun-solaris2.11 \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000032// RUN: --sysroot=%S/Inputs/solaris_sparc_tree \
33// RUN: | FileCheck --check-prefix=CHECK-LD-SPARC64 %s
34// CHECK-LD-SPARC64-NOT: warning:
Fangrui Song332d5202022-06-05 16:06:09 -070035// CHECK-LD-SPARC64: "-cc1" "-triple" "sparcv9-sun-solaris2.11"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000036// CHECK-LD-SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
Douglas Yung1b9260b2018-01-24 00:05:01 +000037// CHECK-LD-SPARC64: "{{.*}}ld{{(.exe)?}}"
Douglas Yung1b9260b2018-01-24 00:05:01 +000038// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crt1.o"
39// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crti.o"
40// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtbegin.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000041// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9"
42// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../../sparcv9"
43// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/lib/sparcv9"
Rainer Ortha6afa9e2022-02-10 12:40:32 +010044// CHECK-LD-SPARC64-NOT: "-latomic"
Rainer Orth4e81ee42025-05-04 10:26:01 +020045// CHECK-LD-SPARC64-SAME: "-lgcc"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000046// CHECK-LD-SPARC64-SAME: "-lgcc_s"
47// CHECK-LD-SPARC64-SAME: "-lc"
Douglas Yung1b9260b2018-01-24 00:05:01 +000048// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtend.o"
49// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crtn.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000050
51// Check i386-pc-solaris2.11, 32bit
Fangrui Song332d5202022-06-05 16:06:09 -070052// RUN: %clang -### %s 2>&1 --target=i386-pc-solaris2.11 \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000053// RUN: --sysroot=%S/Inputs/solaris_x86_tree \
54// RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s
55// CHECK-LD-X32-NOT: warning:
Fangrui Song332d5202022-06-05 16:06:09 -070056// CHECK-LD-X32: "-cc1" "-triple" "i386-pc-solaris2.11"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000057// CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
Douglas Yung1b9260b2018-01-24 00:05:01 +000058// CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}"
Douglas Yung1b9260b2018-01-24 00:05:01 +000059// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt1.o"
60// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crti.o"
61// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtbegin.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000062// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4"
63// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../.."
64// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/lib"
Rainer Ortha6afa9e2022-02-10 12:40:32 +010065// CHECK-LD-X32-NOT: "-latomic"
Rainer Orth4e81ee42025-05-04 10:26:01 +020066// CHECK-LD-X32-SAME: "-lgcc"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000067// CHECK-LD-X32-SAME: "-lgcc_s"
68// CHECK-LD-X32-SAME: "-lc"
Douglas Yung1b9260b2018-01-24 00:05:01 +000069// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtend.o"
70// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000071
72// Check i386-pc-solaris2.11, 64bit
Fangrui Song332d5202022-06-05 16:06:09 -070073// RUN: %clang -m64 -### %s 2>&1 \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000074// RUN: --target=i386-pc-solaris2.11 \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000075// RUN: --sysroot=%S/Inputs/solaris_x86_tree \
76// RUN: | FileCheck --check-prefix=CHECK-LD-X64 %s
77// CHECK-LD-X64-NOT: warning:
Fangrui Song332d5202022-06-05 16:06:09 -070078// CHECK-LD-X64: "-cc1" "-triple" "x86_64-pc-solaris2.11"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000079// CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
Douglas Yung1b9260b2018-01-24 00:05:01 +000080// CHECK-LD-X64: "{{.*}}ld{{(.exe)?}}"
Douglas Yung1b9260b2018-01-24 00:05:01 +000081// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crt1.o"
82// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crti.o"
83// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtbegin.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000084// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64"
85// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../../amd64"
86// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/lib/amd64"
Rainer Ortha6afa9e2022-02-10 12:40:32 +010087// CHECK-LD-X64-NOT: "-latomic"
Rainer Orth4e81ee42025-05-04 10:26:01 +020088// CHECK-LD-X64-SAME: "-lgcc"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000089// CHECK-LD-X64-SAME: "-lgcc_s"
90// CHECK-LD-X64-SAME: "-lc"
Douglas Yung1b9260b2018-01-24 00:05:01 +000091// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtend.o"
92// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crtn.o"
Rafael Espindola8d4d9d2f2015-09-14 19:30:53 +000093
94// Check the right -l flags are present with -shared
Fangrui Song332d5202022-06-05 16:06:09 -070095// RUN: %clang -### %s -shared 2>&1 \
Rafael Espindola8d4d9d2f2015-09-14 19:30:53 +000096// RUN: --target=sparc-sun-solaris2.11 \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000097// RUN: --sysroot=%S/Inputs/solaris_sparc_tree \
98// RUN: | FileCheck --check-prefix=CHECK-SPARC32-SHARED %s
Douglas Yung1b9260b2018-01-24 00:05:01 +000099// CHECK-SPARC32-SHARED: "{{.*}}ld{{(.exe)?}}"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +0000100// CHECK-SPARC32-SHARED-SAME: "-lgcc_s"
101// CHECK-SPARC32-SHARED-SAME: "-lc"
102// CHECK-SPARC32-SHARED-NOT: "-lgcc"
Rainer Orth1e6b0df2023-09-07 19:14:55 +0200103
Rainer Orth4e81ee42025-05-04 10:26:01 +0200104/// Check that -static-libgcc is supported.
105// RUN: %clang -### %s --target=sparc-sun-solaris2.11 \
106// RUN: -static-libgcc \
107// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
108// RUN: | FileCheck --check-prefixes=CHECK-STATIC-LIBGCC %s
109// CHECK-STATIC-LIBGCC-NOT: warning: argument unused during compilation: '-static-libgcc'
110// CHECK-STATIC-LIBGCC: "-lgcc" "-lgcc_eh"
111// CHECK-STATIC-LIBGCC-NOT: "-lgcc_s"
112
Rainer Orth1e6b0df2023-09-07 19:14:55 +0200113// Check that libm is only linked with clang++.
114// RUN: %clang -### %s --target=sparc-sun-solaris2.11 \
Fangrui Songf5991162024-04-02 10:40:19 -0700115// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orth1e6b0df2023-09-07 19:14:55 +0200116// RUN: | FileCheck --check-prefix=CHECK-NOLIBM %s
117// RUN: %clang -### %s -shared --target=sparc-sun-solaris2.11 \
Fangrui Songf5991162024-04-02 10:40:19 -0700118// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orth1e6b0df2023-09-07 19:14:55 +0200119// RUN: | FileCheck --check-prefix=CHECK-NOLIBM %s
120// RUN: %clangxx -### %s --target=sparc-sun-solaris2.11 \
Fangrui Songf5991162024-04-02 10:40:19 -0700121// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orth1e6b0df2023-09-07 19:14:55 +0200122// RUN: | FileCheck --check-prefix=CHECK-LIBM %s
123// RUN: %clangxx -### %s -shared --target=sparc-sun-solaris2.11 \
Fangrui Songf5991162024-04-02 10:40:19 -0700124// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orth1e6b0df2023-09-07 19:14:55 +0200125// RUN: | FileCheck --check-prefix=CHECK-LIBM %s
126// CHECK-LIBM: "-lm"
127// CHECK-NOLIBM-NOT: "-lm"
Brad Smith3d7da812022-04-28 00:17:48 -0400128
Rainer Orth62945bb2023-08-18 21:09:37 +0200129// Check the right ld flags are present with -pie.
Rainer Orthd39a9e32023-09-01 21:42:05 +0200130// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie -fuse-ld= \
Rainer Orth62945bb2023-08-18 21:09:37 +0200131// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200132// RUN: | FileCheck --check-prefix=CHECK-PIE-LD %s
133// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie -fuse-ld=gld \
Rainer Orth62945bb2023-08-18 21:09:37 +0200134// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200135// RUN: | FileCheck --check-prefix=CHECK-PIE-GLD %s
Fangrui Songf1eddf52023-11-30 11:42:53 -0800136// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie -fuse-ld= \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200137// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
138// RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s
Fangrui Songf1eddf52023-11-30 11:42:53 -0800139// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie -fuse-ld=gld \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200140// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
141// RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s
Rainer Orth62945bb2023-08-18 21:09:37 +0200142
143// Check that -shared/-r/-static disable PIE.
Rainer Orthd39a9e32023-09-01 21:42:05 +0200144// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared -pie -fuse-ld= \
Rainer Orth62945bb2023-08-18 21:09:37 +0200145// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200146// RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s
147// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared -pie -fuse-ld=gld \
Rainer Orth62945bb2023-08-18 21:09:37 +0200148// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200149// RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s
150// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -r -pie -fuse-ld= \
Rainer Orth62945bb2023-08-18 21:09:37 +0200151// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200152// RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s
153// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -r -pie -fuse-ld=gld \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200154// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
155// RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s
156// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -static -pie -fuse-ld= \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200157// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
158// RUN: | FileCheck --check-prefix=CHECK-NOPIE-LD %s
159// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -static -pie -fuse-ld=gld \
Rainer Orthd39a9e32023-09-01 21:42:05 +0200160// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
161// RUN: | FileCheck --check-prefix=CHECK-NOPIE-GLD %s
Rainer Orth62945bb2023-08-18 21:09:37 +0200162
Rainer Orthd39a9e32023-09-01 21:42:05 +0200163// CHECK-PIE-LD: "-z" "type=pie"
164// CHECK-PIE-GLD: "-pie"
165// CHECK-NOPIE-LD-NOT: "-z" "type=pie"
166// CHECK-NOPIE-GLD-NOT: "-pie"
Rainer Orth62945bb2023-08-18 21:09:37 +0200167
Brad Smith3d7da812022-04-28 00:17:48 -0400168// -r suppresses default -l and crt*.o, values-*.o like -nostdlib.
Fangrui Song332d5202022-06-05 16:06:09 -0700169// RUN: %clang -### %s --target=sparc-sun-solaris2.11 -r 2>&1 \
Brad Smith3d7da812022-04-28 00:17:48 -0400170// RUN: | FileCheck %s --check-prefix=CHECK-RELOCATABLE
171// CHECK-RELOCATABLE: "-L
172// CHECK-RELOCATABLE: "-r"
Rainer Orth183158b2023-10-26 20:37:31 +0200173// CHECK-RELOCATABLE-NOT: "-e"
Brad Smith3d7da812022-04-28 00:17:48 -0400174// CHECK-RELOCATABLE-NOT: "-l
Fangrui Song11cf75f2022-06-13 19:44:24 -0700175// CHECK-RELOCATABLE-NOT: /crt{{[^.]+}}.o
176// CHECK-RELOCATABLE-NOT: /values-{{[^.]+}}.o
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100177
Rainer Orth62945bb2023-08-18 21:09:37 +0200178// Check that crt{begin,end}S.o is linked with -shared/-pie.
179// RUN: %clang --target=sparc-sun-solaris2.11 -### %s \
Rainer Orth62945bb2023-08-18 21:09:37 +0200180// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
181// RUN: | FileCheck --check-prefix=CHECK-NOCRTS %s
182// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -shared \
Rainer Orth62945bb2023-08-18 21:09:37 +0200183// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
184// RUN: | FileCheck --check-prefix=CHECK-CRTS %s
Fangrui Songf1eddf52023-11-30 11:42:53 -0800185// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -no-pie \
Rainer Orth62945bb2023-08-18 21:09:37 +0200186// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
187// RUN: | FileCheck --check-prefix=CHECK-NOCRTS %s
188// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -pie \
Rainer Orth62945bb2023-08-18 21:09:37 +0200189// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
190// RUN: | FileCheck --check-prefix=CHECK-CRTS %s
191// CHECK-CRTS: crtbeginS.o
192// CHECK-CRTS: crtendS.o
193// CHECK-NOCRTS-NOT: crtbeginS.o
194// CHECK-NOCRTS-NOT: crtendS.o
195
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100196// Check that crtfastmath.o is linked with -ffast-math.
197
198// Check sparc-sun-solaris2.11, 32bit
199// RUN: %clang --target=sparc-sun-solaris2.11 -### %s \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100200// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
201// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-SPARC32 %s
202// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -ffast-math \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100203// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
204// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC32 %s
Andy Kaylor8ba880b2024-04-29 13:22:08 -0700205// RUN: %clang --target=sparc-sun-solaris2.11 -### %s -ffp-model=fast \
206// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
207// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC32 %s
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100208// CHECK-CRTFASTMATH-SPARC32: "-isysroot" "[[SYSROOT:[^"]+]]"
209// CHECK-CRTFASTMATH-SPARC32: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtfastmath.o"
210// CHECK-NOCRTFASTMATH-SPARC32-NOT: crtfastmath.o
211
212// Check sparc-pc-solaris2.11, 64bit
213// RUN: %clang -m64 --target=sparc-sun-solaris2.11 -### %s \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100214// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
215// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-SPARC64 %s
216// RUN: %clang -m64 --target=sparc-sun-solaris2.11 -### %s -ffast-math \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100217// RUN: --sysroot=%S/Inputs/solaris_sparc_tree 2>&1 \
218// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-SPARC64 %s
219// CHECK-CRTFASTMATH-SPARC64: "-isysroot" "[[SYSROOT:[^"]+]]"
220// CHECK-CRTFASTMATH-SPARC64: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtfastmath.o"
221// CHECK-NOCRTFASTMATH-SPARC64-NOT: crtfastmath.o
222
223// Check i386-pc-solaris2.11, 32bit
224// RUN: %clang --target=i386-pc-solaris2.11 -### %s \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100225// RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \
226// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-X32 %s
227// RUN: %clang --target=i386-pc-solaris2.11 -### %s -ffast-math \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100228// RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \
229// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-X32 %s
230// CHECK-CRTFASTMATH-X32: "-isysroot" "[[SYSROOT:[^"]+]]"
231// CHECK-CRTFASTMATH-X32: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtfastmath.o"
232// CHECK-NOCRTFASTMATH-X32-NOT: crtfastmath.o
233
234// Check i386-pc-solaris2.11, 64bit
235// RUN: %clang -m64 --target=i386-pc-solaris2.11 -### %s \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100236// RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \
237// RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH-X64 %s
238// RUN: %clang -m64 --target=i386-pc-solaris2.11 -### %s -ffast-math \
Rainer Orth7c4a70f2023-01-13 10:08:33 +0100239// RUN: --sysroot=%S/Inputs/solaris_x86_tree 2>&1 \
240// RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH-X64 %s
241// CHECK-CRTFASTMATH-X64: "-isysroot" "[[SYSROOT:[^"]+]]"
242// CHECK-CRTFASTMATH-X64: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtfastmath.o"
243// CHECK-NOCRTFASTMATH-X64-NOT: crtfastmath.o