blob: 7bafdb065c939c14d5573fc85d58f0d77d24270e [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:
11// CHECK-LD-SPARC32: {{.*/clang}}" "-cc1" "-triple" "sparc-sun-solaris2.11"
12// CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
13// CHECK-LD-SPARC32: {{.*/ld}}"
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"
18// 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"
25// 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"
27
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:
35// CHECK-LD-SPARC64: {{.*/clang}}" "-cc1" "-triple" "sparcv9-sun-solaris2.11"
36// CHECK-LD-SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
37// CHECK-LD-SPARC64: {{.*/ld}}"
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"
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/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"
49// 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"
51
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:
59// CHECK-LD-X32: {{.*/clang}}" "-cc1" "-triple" "i386-pc-solaris2.11"
60// CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
61// CHECK-LD-X32: {{.*/ld}}"
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"
66// 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"
73// 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"
75
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:
83// CHECK-LD-X64: {{.*/clang}}" "-cc1" "-triple" "x86_64-pc-solaris2.11"
84// CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
85// CHECK-LD-X64: {{.*/ld}}"
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"
90// 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"
97// 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
106// CHECK-SPARC32-SHARED: {{.*/ld}}"
107// CHECK-SPARC32-SHARED-SAME: "-lgcc_s"
108// CHECK-SPARC32-SHARED-SAME: "-lc"
109// CHECK-SPARC32-SHARED-NOT: "-lgcc"
110// CHECK-SPARC32-SHARED-NOT: "-lm"