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=x86_64-unknown-netbsd7.0.0 \
18 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
19 // RUN: | FileCheck -check-prefix=X86_64-7 %s
20 // RUN: %clang --target=x86_64-unknown-netbsd6.0.0 \
21 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
22 // RUN: | FileCheck -check-prefix=X86_64-6 %s
23 // RUN: %clang --target=aarch64-unknown-netbsd \
24 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
25 // RUN: | FileCheck -check-prefix=AARCH64 %s
26 // RUN: %clang --target=aarch64-unknown-netbsd7.0.0 \
27 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
28 // RUN: | FileCheck -check-prefix=AARCH64-7 %s
29 // RUN: %clang --target=aarch64_be-unknown-netbsd \
30 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
31 // RUN: | FileCheck -check-prefix=AARCH64_BE %s
32 // RUN: %clang --target=aarch64_be-unknown-netbsd7.0.0 \
33 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
34 // RUN: | FileCheck -check-prefix=AARCH64_BE-7 %s
35 // RUN: %clang --target=arm-unknown-netbsd-eabi \
36 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
37 // RUN: | FileCheck -check-prefix=ARM %s
38 // RUN: %clang --target=armeb-unknown-netbsd-eabi \
39 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
40 // RUN: | FileCheck -check-prefix=ARMEB %s
41 // RUN: %clang --target=armeb-unknown-netbsd-eabi -march=armv7 \
42 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
43 // RUN: | FileCheck -check-prefix=ARMV7EB %s
44 // RUN: %clang --target=armv7eb-unknown-netbsd-eabi \
45 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
46 // RUN: | FileCheck -check-prefix=ARMV7EB %s
47 // RUN: %clang -r --target=armeb-unknown-netbsd-eabi \
48 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
49 // RUN: | FileCheck -check-prefix=ARMEB-R %s
50 // RUN: %clang --target=arm-unknown-netbsd \
51 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
52 // RUN: | FileCheck -check-prefix=ARM-APCS %s
53 // RUN: %clang --target=arm-unknown-netbsd-eabihf \
54 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
55 // RUN: | FileCheck -check-prefix=ARM-HF %s
56 // RUN: %clang --target=thumb-unknown-netbsd-eabi \
57 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
58 // RUN: | FileCheck -check-prefix=THUMB %s
59 // RUN: %clang --target=thumbeb-unknown-netbsd-eabi \
60 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
61 // RUN: | FileCheck -check-prefix=THUMBEB %s
62 // RUN: %clang --target=arm-unknown-netbsd7.0.0-eabi \
63 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
64 // RUN: | FileCheck -check-prefix=ARM-7 %s
65 // RUN: %clang --target=arm-unknown-netbsd6.0.0-eabi \
66 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
67 // RUN: | FileCheck -check-prefix=ARM-6 %s
68 // RUN: %clang --target=sparc-unknown-netbsd \
69 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
70 // RUN: | FileCheck -check-prefix=SPARC %s
71 // RUN: %clang --target=sparc64-unknown-netbsd \
72 // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
73 // RUN: | FileCheck -check-prefix=SPARC64 %s
74 // RUN: %clang --target=powerpc-unknown-netbsd \
75 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
76 // RUN: | FileCheck -check-prefix=POWERPC %s
77 // RUN: %clang --target=powerpc64-unknown-netbsd \
78 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
79 // RUN: | FileCheck -check-prefix=POWERPC64 %s
80 
81 // RUN: %clang --target=x86_64-unknown-netbsd -static \
82 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
83 // RUN: | FileCheck -check-prefix=S-X86_64 %s
84 // RUN: %clang --target=x86_64-unknown-netbsd7.0.0 -static \
85 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
86 // RUN: | FileCheck -check-prefix=S-X86_64-7 %s
87 // RUN: %clang --target=x86_64-unknown-netbsd6.0.0 -static \
88 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
89 // RUN: | FileCheck -check-prefix=S-X86_64-6 %s
90 // RUN: %clang --target=aarch64-unknown-netbsd -static \
91 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
92 // RUN: | FileCheck -check-prefix=S-AARCH64 %s
93 // RUN: %clang --target=aarch64-unknown-netbsd7.0.0 -static \
94 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
95 // RUN: | FileCheck -check-prefix=S-AARCH64-7 %s
96 // RUN: %clang --target=aarch64_be-unknown-netbsd -static \
97 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
98 // RUN: | FileCheck -check-prefix=S-AARCH64_BE %s
99 // RUN: %clang --target=aarch64_be-unknown-netbsd7.0.0 -static \
100 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
101 // RUN: | FileCheck -check-prefix=S-AARCH64_BE-7 %s
102 // RUN: %clang --target=arm-unknown-netbsd-eabi -static \
103 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
104 // RUN: | FileCheck -check-prefix=S-ARM %s
105 // RUN: %clang --target=armeb-unknown-netbsd-eabi -static \
106 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
107 // RUN: | FileCheck -check-prefix=S-ARMEB %s
108 // RUN: %clang --target=arm-unknown-netbsd7.0.0-eabi -static \
109 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
110 // RUN: | FileCheck -check-prefix=S-ARM-7 %s
111 // RUN: %clang --target=arm-unknown-netbsd6.0.0-eabi -static \
112 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
113 // RUN: | FileCheck -check-prefix=S-ARM-6 %s
114 // RUN: %clang --target=sparc-unknown-netbsd7.0.0 -static \
115 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
116 // RUN: | FileCheck -check-prefix=S-SPARC-7 %s
117 // RUN: %clang --target=sparc-unknown-netbsd6.0.0 -static \
118 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
119 // RUN: | FileCheck -check-prefix=S-SPARC-6 %s
120 // RUN: %clang --target=sparc64-unknown-netbsd7.0.0 -static \
121 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
122 // RUN: | FileCheck -check-prefix=S-SPARC64-7 %s
123 // RUN: %clang --target=sparc64-unknown-netbsd6.0.0 -static \
124 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
125 // RUN: | FileCheck -check-prefix=S-SPARC64-6 %s
126 // RUN: %clang --target=powerpc-unknown-netbsd -static \
127 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
128 // RUN: | FileCheck -check-prefix=S-POWERPC %s
129 // RUN: %clang --target=powerpc64-unknown-netbsd -static \
130 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
131 // RUN: | FileCheck -check-prefix=S-POWERPC64 %s
132 // RUN: %clang --target=x86_64-unknown-netbsd -pthread -dM -E %s \
133 // RUN: | FileCheck -check-prefix=PTHREAD %s
134 
135 // STATIC: ld{{.*}}" "--eh-frame-hdr"
136 // STATIC-NOT: "-pie"
137 // STATIC-NOT: "-Bshareable"
138 // STATIC: "-dynamic-linker" "/libexec/ld.elf_so"
139 // STATIC-NOT: "-pie"
140 // STATIC-NOT: "-Bshareable"
141 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
142 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
143 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
144 
145 // STATIC-PIE: ld{{.*}}" "--eh-frame-hdr"
146 // STATIC-PIE-NOT: "-dynamic-linker" "/libexec/ld.elf_so"
147 // STATIC-PIE-NOT: "-Bshareable"
148 // STATIC-PIE: "-pie"
149 // STATIC-PIE-NOT: "-dynamic-linker" "/libexec/ld.elf_so"
150 // STATIC-PIE-NOT: "-Bshareable"
151 // STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
152 // STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
153 // STATIC-PIE: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
154 
155 // SHARED: ld{{.*}}" "--eh-frame-hdr"
156 // SHARED-NOT: "-pie"
157 // SHARED-NOT: "-dynamic-linker"
158 // SHARED-NOT: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
159 // SHARED: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
160 // SHARED: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
161 
162 // PIE: ld{{.*}}" "--eh-frame-hdr"
163 // PIE-NOT: "-Bshareable"
164 // PIE: "-pie" "-dynamic-linker" "/libexec/ld.elf_so"
165 // PIE-NOT: "-Bshareable"
166 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
167 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
168 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o"
169 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
170 
171 // X86_64: "-cc1" "-triple" "x86_64-unknown-netbsd"
172 // X86_64-NOT: "-fno-use-init-array"
173 // X86_64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
174 // X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
175 // X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
176 // X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
177 
178 // X86_64-7: "-cc1" "-triple" "x86_64-unknown-netbsd7.0.0"
179 // X86_64-7: "-fno-use-init-array"
180 // X86_64-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
181 // X86_64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
182 // X86_64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
183 // X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
184 
185 // X86_64-6: "-cc1" "-triple" "x86_64-unknown-netbsd6.0.0"
186 // X86_64-6: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
187 // X86_64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
188 // X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
189 // X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
190 
191 // AARCH64: "-cc1" "-triple" "aarch64-unknown-netbsd"
192 // AARCH64-NOT: "-fno-use-init-array"
193 // AARCH64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
194 // AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
195 // AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
196 // AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
197 
198 // AARCH64-7: "-cc1" "-triple" "aarch64-unknown-netbsd7.0.0"
199 // AARCH64-7-NOT: "-fno-use-init-array"
200 // AARCH64-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
201 // AARCH64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
202 // AARCH64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
203 // AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
204 
205 // AARCH64_BE: "-cc1" "-triple" "aarch64_be-unknown-netbsd"
206 // AARCH64_BE-NOT: "-fno-use-init-array"
207 // AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
208 // AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
209 // AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
210 // AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
211 
212 // AARCH64_BE-7: "-cc1" "-triple" "aarch64_be-unknown-netbsd7.0.0"
213 // AARCH64_BE-7-NOT: "-fno-use-init-array"
214 // AARCH64_BE-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
215 // AARCH64_BE-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
216 // AARCH64_BE-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
217 // AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
218 
219 // ARM: "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
220 // ARM-NOT: "-fno-use-init-array"
221 // ARM: as{{.*}}" "-mcpu=arm926ej-s" "-o"
222 // ARM: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
223 // ARM: "-m" "armelf_nbsd_eabi"
224 // ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
225 // ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
226 // ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
227 // ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
228 
229 // ARMEB: "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
230 // ARMEB-NOT: "-fno-use-init-array"
231 // ARMEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
232 // ARMEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
233 // ARMEB-NOT: "--be8"
234 // ARMEB: "-m" "armelfb_nbsd_eabi"
235 // ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
236 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
237 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
238 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
239 // ARMV7EB: as{{.*}}" "-mcpu=cortex-a8"
240 // ARMV7EB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
241 // ARMV7EB: "--be8" "-m" "armelfb_nbsd_eabi"
242 
243 // ARMEB-R: ld{{.*}}"
244 // ARMEB-R-NOT: "--be8"
245 
246 // ARM-APCS: "-cc1" "-triple" "armv4-unknown-netbsd"
247 // ARM-APCS: as{{.*}}" "-mcpu=strongarm" "-o"
248 // ARM-APCS: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
249 // ARM-APCS: "-m" "armelf_nbsd"
250 // ARM-APCS: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
251 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}oabi{{/|\\\\}}crti.o"
252 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
253 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
254 
255 // ARM-HF: "-cc1" "-triple" "armv5e-unknown-netbsd-eabihf"
256 // ARM-HF: as{{.*}}" "-mcpu=arm926ej-s" "-o"
257 // ARM-HF: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
258 // ARM-HF: "-m" "armelf_nbsd_eabihf"
259 // ARM-HF: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
260 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}eabihf{{/|\\\\}}crti.o"
261 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
262 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
263 
264 // THUMB: "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
265 // THUMB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
266 // THUMB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
267 // THUMB: "-m" "armelf_nbsd_eabi"
268 // THUMB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
269 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
270 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
271 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
272 
273 // THUMBEB: "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
274 // THUMBEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
275 // THUMBEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
276 // THUMBEB: "-m" "armelfb_nbsd_eabi"
277 // THUMBEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
278 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
279 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
280 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
281 
282 // ARM-7: "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi"
283 // ARM-7-NOT: "-fno-use-init-array"
284 // ARM-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
285 // ARM-7: "-m" "armelf_nbsd_eabi"
286 // ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
287 // ARM-7: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
288 // ARM-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
289 // ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
290 
291 // ARM-6: "-cc1" "-triple" "armv5e-unknown-netbsd6.0.0-eabi"
292 // ARM-6: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
293 // ARM-6: "-m" "armelf_nbsd_eabi"
294 // ARM-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
295 // ARM-6: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
296 // ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
297 // ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
298 
299 // SPARC: "-cc1" "-triple" "sparc-unknown-netbsd"
300 // SPARC-NOT: "-fno-use-init-array"
301 // SPARC: as{{.*}}" "-32" "-Av8" "-o"
302 // SPARC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
303 // SPARC: "-m" "elf32_sparc"
304 // SPARC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
305 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
306 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
307 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
308 
309 // SPARC64: "-cc1" "-triple" "sparc64-unknown-netbsd"
310 // SPARC64-NOT: "-fno-use-init-array"
311 // SPARC64: as{{.*}}" "-64" "-Av9" "-o"
312 // SPARC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
313 // SPARC64: "-m" "elf64_sparc"
314 // SPARC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
315 // SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
316 // SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
317 
318 // POWERPC: "-cc1" "-triple" "powerpc-unknown-netbsd"
319 // POWERPC-NOT: "-fno-use-init-array"
320 // POWERPC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
321 // POWERPC: "-m" "elf32ppc_nbsd"
322 // POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
323 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
324 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
325 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
326 
327 // POWERPC64: "-cc1" "-triple" "powerpc64-unknown-netbsd"
328 // POWERPC64-NOT: "-fno-use-init-array"
329 // POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
330 // POWERPC64: "-m" "elf64ppc"
331 // POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
332 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
333 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
334 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
335 
336 // S-X86_64: "-cc1" "-triple" "x86_64-unknown-netbsd"
337 // S-X86_64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
338 // S-X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
339 // S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
340 // S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
341 
342 // S-X86_64-7: "-cc1" "-triple" "x86_64-unknown-netbsd7.0.0"
343 // S-X86_64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
344 // S-X86_64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
345 // S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
346 // S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
347 
348 // S-X86_64-6: "-cc1" "-triple" "x86_64-unknown-netbsd6.0.0"
349 // S-X86_64-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
350 // S-X86_64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
351 // S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
352 // S-X86_64-6: "-lgcc_eh" "-lc" "-lgcc"
353 // S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
354 
355 // S-AARCH64: "-cc1" "-triple" "aarch64-unknown-netbsd"
356 // S-AARCH64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
357 // S-AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
358 // S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
359 // S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
360 
361 // S-AARCH64-7: "-cc1" "-triple" "aarch64-unknown-netbsd7.0.0"
362 // S-AARCH64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
363 // S-AARCH64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
364 // S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
365 // S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
366 
367 // S-AARCH64_BE: "-cc1" "-triple" "aarch64_be-unknown-netbsd"
368 // S-AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
369 // S-AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
370 // S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
371 // S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
372 
373 // S-AARCH64_BE-7: "-cc1" "-triple" "aarch64_be-unknown-netbsd7.0.0"
374 // S-AARCH64_BE-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
375 // S-AARCH64_BE-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
376 // S-AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
377 // S-AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
378 
379 // S-ARM: "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
380 // S-ARM: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
381 // S-ARM: "-m" "armelf_nbsd_eabi"
382 // S-ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
383 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
384 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
385 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
386 
387 // S-ARMEB: "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
388 // S-ARMEB: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
389 // S-ARMEB: "-m" "armelfb_nbsd_eabi"
390 // S-ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
391 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
392 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
393 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
394 
395 // S-ARM-7: "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi"
396 // S-ARM-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
397 // S-ARM-7: "-m" "armelf_nbsd_eabi"
398 // S-ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
399 // S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
400 // S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
401 // S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
402 
403 // S-ARM-6: "-cc1" "-triple" "armv5e-unknown-netbsd6.0.0-eabi"
404 // S-ARM-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
405 // S-ARM-6: "-m" "armelf_nbsd_eabi"
406 // S-ARM-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
407 // S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
408 // S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
409 // S-ARM-6: "-lgcc_eh" "-lc" "-lgcc"
410 // S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
411 
412 // S-SPARC-6: "-cc1" "-triple" "sparc-unknown-netbsd6.0.0"
413 // S-SPARC-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
414 // S-SPARC-6: "-m" "elf32_sparc"
415 // S-SPARC-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
416 // S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
417 // S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
418 // S-SPARC-6: "-lgcc_eh" "-lc" "-lgcc"
419 // S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
420 
421 // S-SPARC-7: "-cc1" "-triple" "sparc-unknown-netbsd7.0.0"
422 // S-SPARC-7: "-fno-use-init-array"
423 // S-SPARC-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
424 // S-SPARC-7: "-m" "elf32_sparc"
425 // S-SPARC-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
426 // S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
427 // S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
428 // S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
429 
430 // S-SPARC64-6: "-cc1" "-triple" "sparc64-unknown-netbsd6.0.0"
431 // S-SPARC64-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
432 // S-SPARC64-6: "-m" "elf64_sparc"
433 // S-SPARC64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
434 // S-SPARC64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
435 // S-SPARC64-6: "-lgcc_eh" "-lc" "-lgcc"
436 // S-SPARC64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
437 
438 // S-SPARC64-7: "-cc1" "-triple" "sparc64-unknown-netbsd7.0.0"
439 // S-SPARC64-7: "-fno-use-init-array"
440 // S-SPARC64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
441 // S-SPARC64-7: "-m" "elf64_sparc"
442 // S-SPARC64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
443 // S-SPARC64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
444 // S-SPARC64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
445 
446 // S-POWERPC: "-cc1" "-triple" "powerpc-unknown-netbsd"
447 // S-POWERPC: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
448 // S-POWERPC: "-m" "elf32ppc_nbsd"
449 // S-POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
450 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
451 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
452 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
453 
454 // S-POWERPC64: "-cc1" "-triple" "powerpc64-unknown-netbsd"
455 // S-POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
456 // S-POWERPC64: "-m" "elf64ppc"
457 // S-POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
458 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
459 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
460 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
461 
462 // PTHREAD-NOT: _POSIX_THREADS
463 // PTHREAD:     _REENTRANT
464 // PTHREAD-NOT: _POSIX_THREADS
465 
466 // Check PowerPC for Secure PLT
467 // RUN: %clang --target=powerpc-unknown-netbsd -### -c %s 2>&1 \
468 // RUN:   | FileCheck -check-prefix=POWERPC-SECUREPLT %s
469 // POWERPC-SECUREPLT: "-target-feature" "+secure-plt"
470 
471 // -r suppresses -dynamic-linker, default -l and crt*.o like -nostdlib.
472 // RUN: %clang --target=x86_64-unknown-netbsd -r \
473 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree -### %s 2>&1 \
474 // RUN: | FileCheck -check-prefix=RELOCATABLE %s
475 // RELOCATABLE:     "-r"
476 // RELOCATABLE-NOT: "-pie"
477 // RELOCATABLE-NOT: "-dynamic-linker"
478 // RELOCATABLE-NOT: "-l
479 // RELOCATABLE-NOT: crt{{[^./]+}}.o
480