1 | // General tests that ld invocations on Solaris targets sane. Note that we use |
2 | // sysroot to make these tests independent of the host system. |
3 | |
4 | // Check sparc-sun-solaris2.11, 32bit |
5 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
6 | // RUN: --target=sparc-sun-solaris2.11 \ |
7 | // RUN: --gcc-toolchain="" \ |
8 | // 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{{(.exe)?}}" "-cc1" "-triple" "sparc-sun-solaris2.11" |
12 | // CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
13 | // 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" |
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 \ |
31 | // RUN: --gcc-toolchain="" \ |
32 | // 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{{(.exe)?}}" "-cc1" "-triple" "sparcv9-sun-solaris2.11" |
36 | // CHECK-LD-SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
37 | // 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" |
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 \ |
55 | // RUN: --gcc-toolchain="" \ |
56 | // 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{{(.exe)?}}" "-cc1" "-triple" "i386-pc-solaris2.11" |
60 | // CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
61 | // 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" |
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 \ |
79 | // RUN: --gcc-toolchain="" \ |
80 | // 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{{(.exe)?}}" "-cc1" "-triple" "x86_64-pc-solaris2.11" |
84 | // CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]" |
85 | // 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" |
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" |
99 | |
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 \ |
103 | // RUN: --gcc-toolchain="" \ |
104 | // RUN: --sysroot=%S/Inputs/solaris_sparc_tree \ |
105 | // RUN: | FileCheck --check-prefix=CHECK-SPARC32-SHARED %s |
106 | // CHECK-SPARC32-SHARED: "{{.*}}ld{{(.exe)?}}" |
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" |
111 | |