Clang Project

clang_source_code/test/Driver/netbsd.c
1// RUN: %clang -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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 -no-canonical-prefixes -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: clang{{.*}}" "-cc1" "-triple" "x86_64-unknown-netbsd"
172// X86_64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
173// X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
174// X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
175// X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
176
177// X86_64-7: clang{{.*}}" "-cc1" "-triple" "x86_64-unknown-netbsd7.0.0"
178// X86_64-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
179// X86_64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
180// X86_64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
181// X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
182
183// X86_64-6: clang{{.*}}" "-cc1" "-triple" "x86_64-unknown-netbsd6.0.0"
184// X86_64-6: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
185// X86_64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
186// X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
187// X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
188
189// AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd"
190// AARCH64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
191// AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
192// AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
193// AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
194
195// AARCH64-7: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd7.0.0"
196// AARCH64-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
197// AARCH64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
198// AARCH64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
199// AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
200
201// AARCH64_BE: clang{{.*}}" "-cc1" "-triple" "aarch64_be-unknown-netbsd"
202// AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
203// AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
204// AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
205// AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
206
207// AARCH64_BE-7: clang{{.*}}" "-cc1" "-triple" "aarch64_be-unknown-netbsd7.0.0"
208// AARCH64_BE-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
209// AARCH64_BE-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
210// AARCH64_BE-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
211// AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
212
213// ARM: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
214// ARM: as{{.*}}" "-mcpu=arm926ej-s" "-o"
215// ARM: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
216// ARM: "-m" "armelf_nbsd_eabi"
217// ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
218// ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
219// ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
220// ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
221
222// ARMEB: clang{{.*}}" "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
223// ARMEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
224// ARMEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
225// ARMEB-NOT: "--be8"
226// ARMEB: "-m" "armelfb_nbsd_eabi"
227// ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
228// ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
229// ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
230// ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
231// ARMV7EB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
232// ARMV7EB: "--be8" "-m" "armelfb_nbsd_eabi"
233
234// ARMEB-R: ld{{.*}}"
235// ARMEB-R-NOT: "--be8"
236
237// ARM-APCS: clang{{.*}}" "-cc1" "-triple" "armv4-unknown-netbsd"
238// ARM-APCS: as{{.*}}" "-mcpu=strongarm" "-o"
239// ARM-APCS: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
240// ARM-APCS: "-m" "armelf_nbsd"
241// ARM-APCS: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
242// ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}oabi{{/|\\\\}}crti.o"
243// ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
244// ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
245
246// ARM-HF: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd-eabihf"
247// ARM-HF: as{{.*}}" "-mcpu=arm926ej-s" "-o"
248// ARM-HF: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
249// ARM-HF: "-m" "armelf_nbsd_eabihf"
250// ARM-HF: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
251// ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}eabihf{{/|\\\\}}crti.o"
252// ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
253// ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
254
255// THUMB: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
256// THUMB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
257// THUMB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
258// THUMB: "-m" "armelf_nbsd_eabi"
259// THUMB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
260// THUMB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
261// THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
262// THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
263
264// THUMBEB: clang{{.*}}" "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
265// THUMBEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
266// THUMBEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
267// THUMBEB: "-m" "armelfb_nbsd_eabi"
268// THUMBEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
269// THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
270// THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
271// THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
272
273// ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi"
274// ARM-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
275// ARM-7: "-m" "armelf_nbsd_eabi"
276// ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
277// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
278// ARM-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
279// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
280
281// ARM-6: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd6.0.0-eabi"
282// ARM-6: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
283// ARM-6: "-m" "armelf_nbsd_eabi"
284// ARM-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
285// ARM-6: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
286// ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
287// ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
288
289// SPARC: clang{{.*}}" "-cc1" "-triple" "sparc-unknown-netbsd"
290// SPARC: as{{.*}}" "-32" "-Av8" "-o"
291// SPARC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
292// SPARC: "-m" "elf32_sparc"
293// SPARC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
294// SPARC: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
295// SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
296// SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
297
298// SPARC64: clang{{.*}}" "-cc1" "-triple" "sparc64-unknown-netbsd"
299// SPARC64: as{{.*}}" "-64" "-Av9" "-o"
300// SPARC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
301// SPARC64: "-m" "elf64_sparc"
302// SPARC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
303// SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
304// SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
305
306// POWERPC: clang{{.*}}" "-cc1" "-triple" "powerpc-unknown-netbsd"
307// POWERPC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
308// POWERPC: "-m" "elf32ppc_nbsd"
309// POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
310// POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
311// POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
312// POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
313
314// POWERPC64: clang{{.*}}" "-cc1" "-triple" "powerpc64-unknown-netbsd"
315// POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
316// POWERPC64: "-m" "elf64ppc"
317// POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
318// POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
319// POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
320// POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
321
322// S-X86_64: clang{{.*}}" "-cc1" "-triple" "x86_64-unknown-netbsd"
323// S-X86_64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
324// S-X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
325// S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
326// S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
327
328// S-X86_64-7: clang{{.*}}" "-cc1" "-triple" "x86_64-unknown-netbsd7.0.0"
329// S-X86_64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
330// S-X86_64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
331// S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
332// S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
333
334// S-X86_64-6: clang{{.*}}" "-cc1" "-triple" "x86_64-unknown-netbsd6.0.0"
335// S-X86_64-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
336// S-X86_64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
337// S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
338// S-X86_64-6: "-lgcc_eh" "-lc" "-lgcc"
339// S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
340
341// S-AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd"
342// S-AARCH64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
343// S-AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
344// S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
345// S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
346
347// S-AARCH64-7: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd7.0.0"
348// S-AARCH64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
349// S-AARCH64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
350// S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
351// S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
352
353// S-AARCH64_BE: clang{{.*}}" "-cc1" "-triple" "aarch64_be-unknown-netbsd"
354// S-AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
355// S-AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
356// S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
357// S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
358
359// S-AARCH64_BE-7: clang{{.*}}" "-cc1" "-triple" "aarch64_be-unknown-netbsd7.0.0"
360// S-AARCH64_BE-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
361// S-AARCH64_BE-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
362// S-AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
363// S-AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
364
365// S-ARM: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd-eabi"
366// S-ARM: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
367// S-ARM: "-m" "armelf_nbsd_eabi"
368// S-ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
369// S-ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
370// S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
371// S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
372
373// S-ARMEB: clang{{.*}}" "-cc1" "-triple" "armebv5e-unknown-netbsd-eabi"
374// S-ARMEB: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
375// S-ARMEB: "-m" "armelfb_nbsd_eabi"
376// S-ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
377// S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
378// S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
379// S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
380
381// S-ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi"
382// S-ARM-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
383// S-ARM-7: "-m" "armelf_nbsd_eabi"
384// S-ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
385// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
386// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
387// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
388
389// S-ARM-6: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd6.0.0-eabi"
390// S-ARM-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
391// S-ARM-6: "-m" "armelf_nbsd_eabi"
392// S-ARM-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
393// S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
394// S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
395// S-ARM-6: "-lgcc_eh" "-lc" "-lgcc"
396// S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
397
398// S-SPARC-6: clang{{.*}}" "-cc1" "-triple" "sparc-unknown-netbsd6.0.0"
399// S-SPARC-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
400// S-SPARC-6: "-m" "elf32_sparc"
401// S-SPARC-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
402// S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
403// S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
404// S-SPARC-6: "-lgcc_eh" "-lc" "-lgcc"
405// S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
406
407// S-SPARC-7: clang{{.*}}" "-cc1" "-triple" "sparc-unknown-netbsd7.0.0"
408// S-SPARC-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
409// S-SPARC-7: "-m" "elf32_sparc"
410// S-SPARC-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
411// S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
412// S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
413// S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
414
415// S-SPARC64-6: clang{{.*}}" "-cc1" "-triple" "sparc64-unknown-netbsd6.0.0"
416// S-SPARC64-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
417// S-SPARC64-6: "-m" "elf64_sparc"
418// S-SPARC64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
419// S-SPARC64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
420// S-SPARC64-6: "-lgcc_eh" "-lc" "-lgcc"
421// S-SPARC64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
422
423// S-SPARC64-7: clang{{.*}}" "-cc1" "-triple" "sparc64-unknown-netbsd7.0.0"
424// S-SPARC64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
425// S-SPARC64-7: "-m" "elf64_sparc"
426// S-SPARC64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
427// S-SPARC64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
428// S-SPARC64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
429
430// S-POWERPC: clang{{.*}}" "-cc1" "-triple" "powerpc-unknown-netbsd"
431// S-POWERPC: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
432// S-POWERPC: "-m" "elf32ppc_nbsd"
433// S-POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
434// S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
435// S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
436// S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
437
438// S-POWERPC64: clang{{.*}}" "-cc1" "-triple" "powerpc64-unknown-netbsd"
439// S-POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
440// S-POWERPC64: "-m" "elf64ppc"
441// S-POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
442// S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
443// S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
444// S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
445
446// PTHREAD-NOT: _POSIX_THREADS
447// PTHREAD:     _REENTRANT
448// PTHREAD-NOT: _POSIX_THREADS
449
450// Check PowerPC for Secure PLT
451// RUN: %clang -target powerpc-unknown-netbsd -### -c %s 2>&1 \
452// RUN:   | FileCheck -check-prefix=POWERPC-SECUREPLT %s
453// POWERPC-SECUREPLT: "-target-feature" "+secure-plt"
454