blob: 95495718546ca64c25b93cd9652ea0808d945a58 [file] [log] [blame]
stevewanbb6a27f2019-10-24 14:47:32 -04001// General tests that ld invocations on AIX targets are sane. Note that we use
2// sysroot to make these tests independent of the host system.
3
4// Check powerpc-ibm-aix7.1.0.0, 32-bit.
5// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
6// RUN: -target powerpc-ibm-aix7.1.0.0 \
7// RUN: --sysroot %S/Inputs/aix_ppc_tree \
8// RUN: | FileCheck --check-prefix=CHECK-LD32 %s
9// CHECK-LD32-NOT: warning:
10// CHECK-LD32: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"
11// CHECK-LD32: "-isysroot" "[[SYSROOT:[^"]+]]"
12// CHECK-LD32: "{{.*}}ld{{(.exe)?}}"
13// CHECK-LD32-NOT: "-bnso"
14// CHECK-LD32: "-b32"
15// CHECK-LD32: "-bpT:0x10000000" "-bpD:0x20000000"
16// CHECK-LD32: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"
17// CHECK-LD32: "-L[[SYSROOT]]/usr/lib"
18// CHECK-LD32: "-lc"
19
20// Check powerpc64-ibm-aix7.1.0.0, 64-bit.
21// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
22// RUN: -target powerpc64-ibm-aix7.1.0.0 \
23// RUN: --sysroot %S/Inputs/aix_ppc_tree \
24// RUN: | FileCheck --check-prefix=CHECK-LD64 %s
25// CHECK-LD64-NOT: warning:
26// CHECK-LD64: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"
27// CHECK-LD64: "-isysroot" "[[SYSROOT:[^"]+]]"
28// CHECK-LD64: "{{.*}}ld{{(.exe)?}}"
29// CHECK-LD64-NOT: "-bnso"
30// CHECK-LD64: "-b64"
31// CHECK-LD64: "-bpT:0x100000000" "-bpD:0x110000000"
32// CHECK-LD64: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"
33// CHECK-LD64: "-L[[SYSROOT]]/usr/lib"
34// CHECK-LD64: "-lc"
35
36// Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable POSIX thread support.
37// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
38// RUN: -pthread \
39// RUN: -target powerpc-ibm-aix7.1.0.0 \
40// RUN: --sysroot %S/Inputs/aix_ppc_tree \
41// RUN: | FileCheck --check-prefix=CHECK-LD32-PTHREAD %s
42// CHECK-LD32-PTHREAD-NOT: warning:
43// CHECK-LD32-PTHREAD: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"
44// CHECK-LD32-PTHREAD: "-isysroot" "[[SYSROOT:[^"]+]]"
45// CHECK-LD32-PTHREAD: "{{.*}}ld{{(.exe)?}}"
46// CHECK-LD32-PTHREAD-NOT: "-bnso"
47// CHECK-LD32-PTHREAD: "-b32"
48// CHECK-LD32-PTHREAD: "-bpT:0x10000000" "-bpD:0x20000000"
49// CHECK-LD32-PTHREAD: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"
50// CHECK-LD32-PTHREAD: "-L[[SYSROOT]]/usr/lib"
51// CHECK-LD32-PTHREAD: "-lpthreads"
52// CHECK-LD32-PTHREAD: "-lc"
53
54// Check powerpc-ibm-aix7.1.0.0, 64-bit. POSIX thread alias.
55// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
56// RUN: -pthreads \
57// RUN: -target powerpc64-ibm-aix7.1.0.0 \
58// RUN: --sysroot %S/Inputs/aix_ppc_tree \
59// RUN: | FileCheck --check-prefix=CHECK-LD64-PTHREAD %s
60// CHECK-LD64-PTHREAD-NOT: warning:
61// CHECK-LD64-PTHREAD: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"
62// CHECK-LD64-PTHREAD: "-isysroot" "[[SYSROOT:[^"]+]]"
63// CHECK-LD64-PTHREAD: "{{.*}}ld{{(.exe)?}}"
64// CHECK-LD64-PTHREAD-NOT: "-bnso"
65// CHECK-LD64-PTHREAD: "-b64"
66// CHECK-LD64-PTHREAD: "-bpT:0x100000000" "-bpD:0x110000000"
67// CHECK-LD64-PTHREAD: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"
68// CHECK-LD64-PTHREAD: "-L[[SYSROOT]]/usr/lib"
69// CHECK-LD64-PTHREAD: "-lpthreads"
70// CHECK-LD64-PTHREAD: "-lc"
71
72// Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable profiling.
73// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
74// RUN: -p \
75// RUN: -target powerpc-ibm-aix7.1.0.0 \
76// RUN: --sysroot %S/Inputs/aix_ppc_tree \
77// RUN: | FileCheck --check-prefix=CHECK-LD32-PROF %s
78// CHECK-LD32-PROF-NOT: warning:
79// CHECK-LD32-PROF: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"
80// CHECK-LD32-PROF: "-isysroot" "[[SYSROOT:[^"]+]]"
81// CHECK-LD32-PROF: "{{.*}}ld{{(.exe)?}}"
82// CHECK-LD32-PROF-NOT: "-bnso"
83// CHECK-LD32-PROF: "-b32"
84// CHECK-LD32-PROF: "-bpT:0x10000000" "-bpD:0x20000000"
85// CHECK-LD32-PROF: "[[SYSROOT]]/usr/lib{{/|\\\\}}mcrt0.o"
86// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib"
87// CHECK-LD32-PROF: "-lc"
88
89// Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable g-profiling.
90// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
91// RUN: -pg \
92// RUN: -target powerpc64-ibm-aix7.1.0.0 \
93// RUN: --sysroot %S/Inputs/aix_ppc_tree \
94// RUN: | FileCheck --check-prefix=CHECK-LD64-GPROF %s
95// CHECK-LD64-GPROF-NOT: warning:
96// CHECK-LD64-GPROF: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"
97// CHECK-LD64-GPROF: "-isysroot" "[[SYSROOT:[^"]+]]"
98// CHECK-LD64-GPROF: "{{.*}}ld{{(.exe)?}}"
99// CHECK-LD64-GPROF-NOT: "-bnso"
100// CHECK-LD64-GPROF: "-b64"
101// CHECK-LD64-GPROF: "-bpT:0x100000000" "-bpD:0x110000000"
102// CHECK-LD64-GPROF: "[[SYSROOT]]/usr/lib{{/|\\\\}}gcrt0_64.o"
103// CHECK-LD64-GPROF: "-L[[SYSROOT]]/usr/lib"
104// CHECK-LD64-GPROF: "-lc"
105
106// Check powerpc-ibm-aix7.1.0.0, 32-bit. Static linking.
107// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
108// RUN: -static \
109// RUN: -target powerpc-ibm-aix7.1.0.0 \
110// RUN: --sysroot %S/Inputs/aix_ppc_tree \
111// RUN: | FileCheck --check-prefix=CHECK-LD32-STATIC %s
112// CHECK-LD32-STATIC-NOT: warning:
113// CHECK-LD32-STATIC: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"
114// CHECK-LD32-STATIC: "-isysroot" "[[SYSROOT:[^"]+]]"
115// CHECK-LD32-STATIC: "{{.*}}ld{{(.exe)?}}"
116// CHECK-LD32-STATIC: "-bnso"
117// CHECK-LD32-STATIC: "-b32"
118// CHECK-LD32-STATIC: "-bpT:0x10000000" "-bpD:0x20000000"
119// CHECK-LD32-STATIC: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"
120// CHECK-LD32-STATIC: "-L[[SYSROOT]]/usr/lib"
121// CHECK-LD32-STATIC: "-lc"
122
123// Check powerpc-ibm-aix7.1.0.0, 32-bit. Library search path.
124// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
125// RUN: -L%S/Inputs/aix_ppc_tree/powerpc-ibm-aix7.1.0.0 \
126// RUN: -target powerpc-ibm-aix7.1.0.0 \
127// RUN: --sysroot %S/Inputs/aix_ppc_tree \
128// RUN: | FileCheck --check-prefix=CHECK-LD32-LIBP %s
129// CHECK-LD32-LIBP-NOT: warning:
130// CHECK-LD32-LIBP: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"
131// CHECK-LD32-LIBP: "-isysroot" "[[SYSROOT:[^"]+]]"
132// CHECK-LD32-LIBP: "{{.*}}ld{{(.exe)?}}"
133// CHECK-LD32-LIBP-NOT: "-bnso"
134// CHECK-LD32-LIBP: "-b32"
135// CHECK-LD32-LIBP: "-bpT:0x10000000" "-bpD:0x20000000"
136// CHECK-LD32-LIBP: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"
137// CHECK-LD32-LIBP: "-L[[SYSROOT]]/powerpc-ibm-aix7.1.0.0"
138// CHECK-LD32-LIBP: "-L[[SYSROOT]]/usr/lib"
139// CHECK-LD32-LIBP: "-lc"
140
141// Check powerpc-ibm-aix7.1.0.0, 32-bit. nostdlib.
142// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
143// RUN: -nostdlib \
144// RUN: -pthread \
145// RUN: -target powerpc-ibm-aix7.1.0.0 \
146// RUN: --sysroot %S/Inputs/aix_ppc_tree \
147// RUN: | FileCheck --check-prefix=CHECK-LD32-NO-STD-LIB %s
148// CHECK-LD32-NO-STD-LIB-NOT: warning:
149// CHECK-LD32-NO-STD-LIB: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc-ibm-aix7.1.0.0"
150// CHECK-LD32-NO-STD-LIB: "-isysroot" "[[SYSROOT:[^"]+]]"
151// CHECK-LD32-NO-STD-LIB: "{{.*}}ld{{(.exe)?}}"
152// CHECK-LD32-NO-STD-LIB-NOT: "-bnso"
153// CHECK-LD32-NO-STD-LIB: "-b32"
154// CHECK-LD32-NO-STD-LIB: "-bpT:0x10000000" "-bpD:0x20000000"
155// CHECK-LD32-NO-STD-LIB-NOT: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0.o"
156// CHECK-LD32-NO-STD-LIB: "-L[[SYSROOT]]/usr/lib"
157// CHECK-LD32-NO-STD-LIB-NOT: "-lpthreads"
158// CHECK-LD32-NO-STD-LIB-NOT: "-lc"
159
160// Check powerpc-ibm-aix7.1.0.0, 64-bit. nodefaultlibs.
161// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
162// RUN: -nodefaultlibs \
163// RUN: -pthread \
164// RUN: -target powerpc64-ibm-aix7.1.0.0 \
165// RUN: --sysroot %S/Inputs/aix_ppc_tree \
166// RUN: | FileCheck --check-prefix=CHECK-LD64-NO-DEFAULT-LIBS %s
167// CHECK-LD64-NO-DEFAULT-LIBS-NOT: warning:
168// CHECK-LD64-NO-DEFAULT-LIBS: {{.*}}clang{{(.exe)?}}" "-cc1" "-triple" "powerpc64-ibm-aix7.1.0.0"
169// CHECK-LD64-NO-DEFAULT-LIBS: "-isysroot" "[[SYSROOT:[^"]+]]"
170// CHECK-LD64-NO-DEFAULT-LIBS: "{{.*}}ld{{(.exe)?}}"
171// CHECK-LD64-NO-DEFAULT-LIBS-NOT: "-bnso"
172// CHECK-LD64-NO-DEFAULT-LIBS: "-b64"
173// CHECK-LD64-NO-DEFAULT-LIBS: "-bpT:0x100000000" "-bpD:0x110000000"
174// CHECK-LD64-NO-DEFAULT-LIBS: "[[SYSROOT]]/usr/lib{{/|\\\\}}crt0_64.o"
175// CHECK-LD64-NO-DEFAULT-LIBS: "-L[[SYSROOT]]/usr/lib"
176// CHECK-LD64-NO-DEFAULT-LIBS-NOT: "-lpthreads"
177// CHECK-LD64-NO-DEFAULT-LIBS-NOT: "-lc"