xref: /llvm-project/clang/test/Driver/netbsd.c (revision 5912de9ede81407f93162e930ae9bc97e561d017)
1 // RUN: %clang --target=x86_64-unknown-netbsd \
2 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
3 // RUN: | FileCheck -check-prefix=STATIC %s
4 // RUN: %clang --target=x86_64-unknown-netbsd \
5 // RUN: -pie --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
6 // RUN: | FileCheck -check-prefix=PIE %s
7 // RUN: %clang --target=x86_64-unknown-netbsd \
8 // RUN: -static -pie --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
9 // RUN: | FileCheck -check-prefix=STATIC-PIE %s
10 // RUN: %clang --target=x86_64-unknown-netbsd \
11 // RUN: -shared --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
12 // RUN: | FileCheck -check-prefix=SHARED %s
13 
14 // RUN: %clang --target=x86_64-unknown-netbsd \
15 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
16 // RUN: | FileCheck -check-prefix=X86_64 %s
17 // RUN: %clang --target=aarch64-unknown-netbsd \
18 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
19 // RUN: | FileCheck -check-prefix=AARCH64 %s
20 // RUN: %clang --target=aarch64_be-unknown-netbsd \
21 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
22 // RUN: | FileCheck -check-prefix=AARCH64_BE %s
23 // RUN: %clang --target=arm-unknown-netbsd-eabi \
24 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
25 // RUN: | FileCheck -check-prefix=ARM %s
26 // RUN: %clang --target=armeb-unknown-netbsd-eabi \
27 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
28 // RUN: | FileCheck -check-prefix=ARMEB %s
29 // RUN: %clang --target=armeb-unknown-netbsd-eabi -march=armv7 \
30 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
31 // RUN: | FileCheck -check-prefix=ARMV7EB %s
32 // RUN: %clang --target=armv7eb-unknown-netbsd-eabi \
33 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
34 // RUN: | FileCheck -check-prefix=ARMV7EB %s
35 // RUN: %clang -r --target=armeb-unknown-netbsd-eabi \
36 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
37 // RUN: | FileCheck -check-prefix=ARMEB-R %s
38 // RUN: %clang --target=arm-unknown-netbsd \
39 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
40 // RUN: | FileCheck -check-prefix=ARM-APCS %s
41 // RUN: %clang --target=arm-unknown-netbsd-eabihf \
42 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
43 // RUN: | FileCheck -check-prefix=ARM-HF %s
44 // RUN: %clang --target=thumb-unknown-netbsd-eabi \
45 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
46 // RUN: | FileCheck -check-prefix=THUMB %s
47 // RUN: %clang --target=thumbeb-unknown-netbsd-eabi \
48 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
49 // RUN: | FileCheck -check-prefix=THUMBEB %s
50 // RUN: %clang --target=riscv32-unknown-netbsd \
51 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
52 // RUN: | FileCheck -check-prefix=RISCV32 %s
53 // RUN: %clang --target=riscv64-unknown-netbsd \
54 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
55 // RUN: | FileCheck -check-prefix=RISCV64 %s
56 // RUN: %clang --target=sparc-unknown-netbsd \
57 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
58 // RUN: | FileCheck -check-prefix=SPARC %s
59 // RUN: %clang --target=sparc64-unknown-netbsd \
60 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
61 // RUN: | FileCheck -check-prefix=SPARC64 %s
62 // RUN: %clang --target=powerpc-unknown-netbsd \
63 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
64 // RUN: | FileCheck -check-prefix=POWERPC %s
65 // RUN: %clang --target=powerpc64-unknown-netbsd \
66 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
67 // RUN: | FileCheck -check-prefix=POWERPC64 %s
68 
69 // RUN: %clang --target=x86_64-unknown-netbsd -static \
70 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
71 // RUN: | FileCheck -check-prefix=S-X86_64 %s
72 // RUN: %clang --target=aarch64-unknown-netbsd -static \
73 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
74 // RUN: | FileCheck -check-prefix=S-AARCH64 %s
75 // RUN: %clang --target=aarch64_be-unknown-netbsd -static \
76 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
77 // RUN: | FileCheck -check-prefix=S-AARCH64_BE %s
78 // RUN: %clang --target=arm-unknown-netbsd-eabi -static \
79 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
80 // RUN: | FileCheck -check-prefix=S-ARM %s
81 // RUN: %clang --target=armeb-unknown-netbsd-eabi -static \
82 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
83 // RUN: | FileCheck -check-prefix=S-ARMEB %s
84 // RUN: %clang --target=powerpc-unknown-netbsd -static \
85 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
86 // RUN: | FileCheck -check-prefix=S-POWERPC %s
87 // RUN: %clang --target=powerpc64-unknown-netbsd -static \
88 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
89 // RUN: | FileCheck -check-prefix=S-POWERPC64 %s
90 // RUN: %clang --target=x86_64-unknown-netbsd -pthread -dM -E %s \
91 // RUN: | FileCheck -check-prefix=PTHREAD %s
92 
93 // STATIC: ld{{.*}}" "--eh-frame-hdr"
94 // STATIC-NOT: "-pie"
95 // STATIC-NOT: "-shared"
96 // STATIC: "-dynamic-linker" "/libexec/ld.elf_so"
97 // STATIC-NOT: "-pie"
98 // STATIC-NOT: "-shared"
99 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
100 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
101 // STATIC: "-L{{.*}}/usr/lib"
102 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
103 
104 // STATIC-PIE: ld{{.*}}" "--eh-frame-hdr"
105 // STATIC-PIE-NOT: "-dynamic-linker" "/libexec/ld.elf_so"
106 // STATIC-PIE-NOT: "-shared"
107 // STATIC-PIE: "-pie"
108 // STATIC-PIE-NOT: "-dynamic-linker" "/libexec/ld.elf_so"
109 // STATIC-PIE-NOT: "-shared"
110 // STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
111 // STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
112 // STATIC-PIE: "-L{{.*}}/usr/lib"
113 // STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
114 
115 // SHARED: ld{{.*}}" "--eh-frame-hdr"
116 // SHARED-NOT: "-pie"
117 // SHARED-NOT: "-dynamic-linker"
118 // SHARED-NOT: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
119 // SHARED: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
120 // SHARED: "-L{{.*}}/usr/lib"
121 // SHARED: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
122 
123 // PIE: ld{{.*}}" "--eh-frame-hdr"
124 // PIE-NOT: "-shared"
125 // PIE: "-pie" "-dynamic-linker" "/libexec/ld.elf_so"
126 // PIE-NOT: "-shared"
127 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
128 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
129 // PIE: "-L{{.*}}/usr/lib"
130 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o"
131 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
132 
133 // X86_64: "-cc1" "-triple" "x86_64-unknown-netbsd"
134 // X86_64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
135 // X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
136 // X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
137 // X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
138 
139 // AARCH64: "-cc1" "-triple" "aarch64-unknown-netbsd"
140 // AARCH64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
141 // AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
142 // AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
143 // AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
144 
145 // AARCH64_BE: "-cc1" "-triple" "aarch64_be-unknown-netbsd"
146 // AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
147 // AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
148 // AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
149 // AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
150 
151 // ARM: "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
152 // ARM: as{{.*}}" "-mcpu=arm926ej-s" "-o"
153 // ARM: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
154 // ARM: "-m" "armelf_nbsd_eabi"
155 // ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
156 // ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
157 // ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
158 // ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
159 
160 // ARMEB: "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
161 // ARMEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
162 // ARMEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
163 // ARMEB-NOT: "--be8"
164 // ARMEB: "-m" "armelfb_nbsd_eabi"
165 // ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
166 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
167 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
168 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
169 // ARMV7EB: as{{.*}}" "-mcpu=cortex-a8"
170 // ARMV7EB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
171 // ARMV7EB: "--be8" "-m" "armelfb_nbsd_eabi"
172 
173 // ARMEB-R: ld{{.*}}"
174 // ARMEB-R-NOT: "--be8"
175 
176 // ARM-APCS: "-cc1" "-triple" "armv4-unknown-netbsd"
177 // ARM-APCS: as{{.*}}" "-mcpu=strongarm" "-o"
178 // ARM-APCS: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
179 // ARM-APCS: "-m" "armelf_nbsd"
180 // ARM-APCS: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
181 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}oabi{{/|\\\\}}crti.o"
182 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
183 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
184 
185 // ARM-HF: "-cc1" "-triple" "armv5e-unknown-netbsd-eabihf"
186 // ARM-HF: as{{.*}}" "-mcpu=arm926ej-s" "-o"
187 // ARM-HF: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
188 // ARM-HF: "-m" "armelf_nbsd_eabihf"
189 // ARM-HF: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
190 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}eabihf{{/|\\\\}}crti.o"
191 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
192 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
193 
194 // THUMB: "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
195 // THUMB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
196 // THUMB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
197 // THUMB: "-m" "armelf_nbsd_eabi"
198 // THUMB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
199 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
200 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
201 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
202 
203 // THUMBEB: "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
204 // THUMBEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
205 // THUMBEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
206 // THUMBEB: "-m" "armelfb_nbsd_eabi"
207 // THUMBEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
208 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
209 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
210 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
211 
212 // RISCV32: "-cc1" "-triple" "riscv32-unknown-netbsd"
213 // RISCV32: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
214 // RISCV32-SAME: "-m" "elf32lriscv" "-X"
215 // RISCV32-SAME: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
216 // RISCV32-SAME: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
217 // RISCV32-SAME: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
218 
219 // RISCV64: "-cc1" "-triple" "riscv64-unknown-netbsd"
220 // RISCV64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
221 // RISCV64-SAME: "-m" "elf64lriscv" "-X"
222 // RISCV64-SAME: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
223 // RISCV64-SAME: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
224 // RISCV64-SAME: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
225 
226 // SPARC: "-cc1" "-triple" "sparc-unknown-netbsd"
227 // SPARC: as{{.*}}" "-32" "-Av8" "-o"
228 // SPARC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
229 // SPARC: "-m" "elf32_sparc"
230 // SPARC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
231 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
232 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
233 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
234 
235 // SPARC64: "-cc1" "-triple" "sparc64-unknown-netbsd"
236 // SPARC64: as{{.*}}" "-64" "-Av9" "-o"
237 // SPARC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
238 // SPARC64: "-m" "elf64_sparc"
239 // SPARC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
240 // SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
241 // SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
242 
243 // POWERPC: "-cc1" "-triple" "powerpc-unknown-netbsd"
244 // POWERPC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
245 // POWERPC: "-m" "elf32ppc_nbsd"
246 // POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
247 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
248 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
249 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
250 
251 // POWERPC64: "-cc1" "-triple" "powerpc64-unknown-netbsd"
252 // POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
253 // POWERPC64: "-m" "elf64ppc"
254 // POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
255 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
256 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
257 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
258 
259 // S-X86_64: "-cc1" "-triple" "x86_64-unknown-netbsd"
260 // S-X86_64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
261 // S-X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
262 // S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
263 // S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
264 
265 // S-AARCH64: "-cc1" "-triple" "aarch64-unknown-netbsd"
266 // S-AARCH64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
267 // S-AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
268 // S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
269 // S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
270 
271 // S-AARCH64_BE: "-cc1" "-triple" "aarch64_be-unknown-netbsd"
272 // S-AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
273 // S-AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
274 // S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
275 // S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
276 
277 // S-ARM: "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
278 // S-ARM: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
279 // S-ARM: "-m" "armelf_nbsd_eabi"
280 // S-ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
281 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
282 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
283 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
284 
285 // S-ARMEB: "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
286 // S-ARMEB: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
287 // S-ARMEB: "-m" "armelfb_nbsd_eabi"
288 // S-ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
289 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
290 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
291 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
292 
293 // S-POWERPC: "-cc1" "-triple" "powerpc-unknown-netbsd"
294 // S-POWERPC: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
295 // S-POWERPC: "-m" "elf32ppc_nbsd"
296 // S-POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
297 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
298 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
299 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
300 
301 // S-POWERPC64: "-cc1" "-triple" "powerpc64-unknown-netbsd"
302 // S-POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
303 // S-POWERPC64: "-m" "elf64ppc"
304 // S-POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
305 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
306 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
307 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
308 
309 // PTHREAD-NOT: _POSIX_THREADS
310 // PTHREAD:     _REENTRANT
311 // PTHREAD-NOT: _POSIX_THREADS
312 
313 // Check PowerPC for Secure PLT
314 // RUN: %clang --target=powerpc-unknown-netbsd -### -c %s 2>&1 \
315 // RUN:   | FileCheck -check-prefix=POWERPC-SECUREPLT %s
316 // POWERPC-SECUREPLT: "-target-feature" "+secure-plt"
317 
318 // -r suppresses -dynamic-linker, default -l and crt*.o like -nostdlib.
319 // RUN: %clang --target=x86_64-unknown-netbsd -r \
320 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
321 // RUN: | FileCheck -check-prefix=RELOCATABLE %s
322 // RELOCATABLE:     "-r"
323 // RELOCATABLE-NOT: "-pie"
324 // RELOCATABLE-NOT: "-dynamic-linker"
325 // RELOCATABLE-NOT: "-l
326 // RELOCATABLE-NOT: crt{{[^./\\]+}}.o
327 
328 // Check that the driver passes include paths to cc1 on NetBSD.
329 // RUN: %clang -### %s --target=x86_64-unknown-netbsd -r 2>&1 \
330 // RUN:   | FileCheck %s --check-prefix=DRIVER-PASS-INCLUDES
331 // DRIVER-PASS-INCLUDES:      "-cc1" {{.*}}"-resource-dir" "[[RESOURCE:[^"]+]]"
332 // DRIVER-PASS-INCLUDES-SAME: "-internal-isystem" "[[RESOURCE]]{{/|\\\\}}include"
333 // DRIVER-PASS-INCLUDES-SAME: {{^}} "-internal-externc-isystem" "{{.*}}/usr/include"
334 
335 // Check that the -X and --no-relax flags are passed to the linker on riscv
336 // RUN: %clang --target=riscv32-unknown-netbsd -mno-relax -### %s 2>&1 \
337 // RUN:   | FileCheck -check-prefix=RISCV-FLAGS %s
338 // RUN: %clang --target=riscv64-unknown-netbsd -mno-relax -### %s 2>&1 \
339 // RUN:   | FileCheck -check-prefix=RISCV-FLAGS %s
340 // RISCV-FLAGS: "-X" "--no-relax"
341