blob: 2fc5c91272aa03ac2bdc3e1c796afb8a6461f7b6 [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
Rafael Espindolac53c5b12015-08-31 19:17:51 +00005// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
6// RUN: --target=sparc-sun-solaris2.11 \
Fedor Sergeev69ea8292018-01-23 13:59:11 +00007// RUN: --gcc-toolchain="" \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +00008// RUN: --sysroot=%S/Inputs/solaris_sparc_tree \
9// RUN: | FileCheck --check-prefix=CHECK-LD-SPARC32 %s
10// CHECK-LD-SPARC32-NOT: warning:
Douglas Yung1b9260b2018-01-24 00:05:01 +000011// CHECK-LD-SPARC32: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "sparc-sun-solaris2.11"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000012// CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
Douglas Yung1b9260b2018-01-24 00:05:01 +000013// CHECK-LD-SPARC32: "{{.*}}ld{{(.exe)?}}"
14// CHECK-LD-SPARC32-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib{{/|\\\\}}ld.so.1"
15// 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"
21// CHECK-LD-SPARC32-SAME: "-lgcc_s"
22// CHECK-LD-SPARC32-SAME: "-lc"
23// CHECK-LD-SPARC32-SAME: "-lgcc"
24// CHECK-LD-SPARC32-SAME: "-lm"
Douglas Yung1b9260b2018-01-24 00:05:01 +000025// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/|\\\\}}crtend.o"
26// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000027
28// Check sparc-sun-solaris2.11, 64bit
29// RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \
30// RUN: --target=sparc-sun-solaris2.11 \
Fedor Sergeev69ea8292018-01-23 13:59:11 +000031// RUN: --gcc-toolchain="" \
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:
Douglas Yung1b9260b2018-01-24 00:05:01 +000035// CHECK-LD-SPARC64: {{.*}}clang{{(.exe)?}}" "-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)?}}"
38// CHECK-LD-SPARC64-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}ld.so.1"
39// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crt1.o"
40// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crti.o"
41// 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 +000042// 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/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/../../../sparcv9"
44// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/lib/sparcv9"
45// CHECK-LD-SPARC64-SAME: "-lgcc_s"
46// CHECK-LD-SPARC64-SAME: "-lc"
47// CHECK-LD-SPARC64-SAME: "-lgcc"
48// CHECK-LD-SPARC64-SAME: "-lm"
Douglas Yung1b9260b2018-01-24 00:05:01 +000049// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9{{/|\\\\}}crtend.o"
50// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9{{/|\\\\}}crtn.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000051
52// Check i386-pc-solaris2.11, 32bit
53// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
54// RUN: --target=i386-pc-solaris2.11 \
Fedor Sergeev69ea8292018-01-23 13:59:11 +000055// RUN: --gcc-toolchain="" \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000056// RUN: --sysroot=%S/Inputs/solaris_x86_tree \
57// RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s
58// CHECK-LD-X32-NOT: warning:
Douglas Yung1b9260b2018-01-24 00:05:01 +000059// CHECK-LD-X32: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "i386-pc-solaris2.11"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000060// CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
Douglas Yung1b9260b2018-01-24 00:05:01 +000061// CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}"
62// CHECK-LD-X32-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib{{/|\\\\}}ld.so.1"
63// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt1.o"
64// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crti.o"
65// 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 +000066// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4"
67// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../.."
68// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/lib"
69// CHECK-LD-X32-SAME: "-lgcc_s"
70// CHECK-LD-X32-SAME: "-lc"
71// CHECK-LD-X32-SAME: "-lgcc"
72// CHECK-LD-X32-SAME: "-lm"
Douglas Yung1b9260b2018-01-24 00:05:01 +000073// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4{{/|\\\\}}crtend.o"
74// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib{{/|\\\\}}crtn.o"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000075
76// Check i386-pc-solaris2.11, 64bit
77// RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \
78// RUN: --target=i386-pc-solaris2.11 \
Fedor Sergeev69ea8292018-01-23 13:59:11 +000079// RUN: --gcc-toolchain="" \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000080// RUN: --sysroot=%S/Inputs/solaris_x86_tree \
81// RUN: | FileCheck --check-prefix=CHECK-LD-X64 %s
82// CHECK-LD-X64-NOT: warning:
Douglas Yung1b9260b2018-01-24 00:05:01 +000083// CHECK-LD-X64: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "x86_64-pc-solaris2.11"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +000084// CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
Douglas Yung1b9260b2018-01-24 00:05:01 +000085// CHECK-LD-X64: "{{.*}}ld{{(.exe)?}}"
86// CHECK-LD-X64-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}ld.so.1"
87// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crt1.o"
88// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crti.o"
89// 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 +000090// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64"
91// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../../../amd64"
92// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/lib/amd64"
93// CHECK-LD-X64-SAME: "-lgcc_s"
94// CHECK-LD-X64-SAME: "-lc"
95// CHECK-LD-X64-SAME: "-lgcc"
96// CHECK-LD-X64-SAME: "-lm"
Douglas Yung1b9260b2018-01-24 00:05:01 +000097// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/amd64{{/|\\\\}}crtend.o"
98// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64{{/|\\\\}}crtn.o"
Rafael Espindola8d4d9d2f2015-09-14 19:30:53 +000099
100// Check the right -l flags are present with -shared
101// RUN: %clang -no-canonical-prefixes %s -### -o %t.o -shared 2>&1 \
102// RUN: --target=sparc-sun-solaris2.11 \
Fedor Sergeev69ea8292018-01-23 13:59:11 +0000103// RUN: --gcc-toolchain="" \
Fedor Sergeevfaa0a822018-01-23 12:23:52 +0000104// RUN: --sysroot=%S/Inputs/solaris_sparc_tree \
105// RUN: | FileCheck --check-prefix=CHECK-SPARC32-SHARED %s
Douglas Yung1b9260b2018-01-24 00:05:01 +0000106// CHECK-SPARC32-SHARED: "{{.*}}ld{{(.exe)?}}"
Fedor Sergeevfaa0a822018-01-23 12:23:52 +0000107// CHECK-SPARC32-SHARED-SAME: "-lgcc_s"
108// CHECK-SPARC32-SHARED-SAME: "-lc"
109// CHECK-SPARC32-SHARED-NOT: "-lgcc"
110// CHECK-SPARC32-SHARED-NOT: "-lm"