Subversion Repositories QNX 8.QNX8 GNU binutils

Rev

Rev 1 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
# config.bfd
2
#
3
#   Copyright (C) 2012-2023 Free Software Foundation, Inc.
4
#
5
# This file is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# This program is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with this program; see the file COPYING3.  If not see
17
# <http://www.gnu.org/licenses/>.
18
#
19
# Convert a canonical host type into a BFD host type.
20
# Set shell variable targ to canonical target name, and run
21
# using ``. config.bfd''.
22
# Sets the following shell variables:
23
#  targ_defvec		Default vector for this target
24
#  targ_selvecs		Vectors to build for this target
25
#  targ64_selvecs	Vectors to build if --enable-64-bit-bfd is given
26
#			or if host is 64 bit.
27
#  targ_archs		Architectures for this target
28
#  targ_cflags		$(CFLAGS) for this target (FIXME: pretty bogus)
29
#  targ_underscore	Whether underscores are used: yes or no
30
 
31
# Part of this file is processed by targmatch.sed to generate the
32
# targmatch.h file.  The #ifdef and #endif lines that appear below are
33
# copied directly into targmatch.h.
34
 
35
# The binutils c++filt program wants to know whether underscores are
36
# stripped or not.  That is why we set targ_underscore.  c++filt uses
37
# this information to choose a default.  This information is
38
# duplicated in the symbol_leading_char field of the BFD target
39
# vector, but c++filt does not deal with object files and is not
40
# linked against libbfd.a.  It is not terribly important that c++filt
41
# get this right; it is just convenient.
42
 
43
targ_defvec=
44
targ_selvecs=
45
targ64_selvecs=
46
targ_cflags=
47
targ_underscore=no
48
 
49
# Catch obsolete configurations.
50
case $targ in
51
 *-*-beos* | \
52
 null)
53
    if test "x$enable_obsolete" != xyes; then
54
      echo "*** Configuration $targ is obsolete." >&2
55
      echo "*** Specify --enable-obsolete to build it anyway." >&2
56
      echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2
57
      echo "*** unless a maintainer comes forward." >&2
58
      exit 1
59
    fi;;
60
esac
61
 
62
# Warn on changed defaulting
63
case $targ in
64
 *-*-netbsdelf* | *-*-netbsdaout* | *-*-netbsdpe*)
65
    # Explicit, no defaulting
66
    ;;
67
 ns32k-*-netbsd*)
68
    # The obsolete warning below is enough, and ns32k does not have ELF support
69
    ;;
70
 *-*-netbsd* )
71
    targ_migrated=`echo "$targ" | sed 's/netbsd/netbsdaout/'`
72
    echo "*** WARNING: $targ is now defaults to meaning ELF not a.out." >&2
73
    echo "*** Use $targ_migrated instead to explicitly specify a.out." >&2
74
    ;;
75
esac
76
 
77
case $targ in
78
 mips*-*-irix5* | mips*-*-irix6*)
79
    # Not obsolete
80
    ;;
81
 *-adobe-* | \
82
 *-go32-rtems* | \
83
 *-sony-* | \
84
 *-tandem-* | \
85
 *-*-ieee* | \
86
 *-*-netbsdpe* | \
87
 *-*-netware* | \
88
 *-*-rtemsaout* | \
89
 *-*-rtemscoff* | \
90
 a29k-* | \
91
 arm*-*-aout | \
92
 arm-*-coff | \
93
 arm*-*-netbsdaout* | \
94
 arm-*-oabi | \
95
 arm-*-riscix* | \
96
 arm*-*-symbianelf* | \
97
 arm-epoc-pe* | \
98
 c30-*-*aout* | tic30-*-*aout* | \
99
 cr16c-*-* | \
100
 h8300*-*-coff | \
101
 h8500*-*-coff | \
102
 hppa*-*-rtems* | \
103
 i[3-7]86-*-unixware* | \
104
 i[3-7]86-*-dgux* | \
105
 i[3-7]86-*-chorus* | \
106
 i[3-7]86-*-sysv* | \
107
 i[3-7]86-*-isc* | \
108
 i[3-7]86-*-sco* | \
109
 i[3-7]86-*-coff | \
110
 i[3-7]86-*-aix* | \
111
 i[3-7]86-sequent-bsd* | \
112
 i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12] | \
113
 i[3-7]86-*-netbsdaout* | \
114
 i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3] | \
115
 i[3-7]86-*-linux*aout* | \
116
 i[3-7]86-*-mach* | i[3-7]86-*-osf1mk* | \
117
 i[3-7]86-*-os9k | \
118
 i[3-7]86-none-* | \
119
 i[3-7]86-*-aout* | i[3-7]86*-*-vsta* | \
120
 i370-* | \
121
 i860-*-* | \
122
 i960-*-* | \
123
 m68*-*-bsd* | \
124
 m68*-*-aout* | \
125
 m68*-*-coff* | \
126
 m68*-*-hpux* | \
127
 m68*-*-linux*aout* | \
128
 m68*-*-lynxos* | \
129
 m68*-*-openbsd* | \
130
 m68*-*-os68k* | \
131
 m68*-*-psos* | \
132
 m68*-*-sunos* | \
133
 m68*-*-sysv* | \
134
 m68*-*-vsta* | \
135
 m68*-*-vxworks* | \
136
 m68*-apollo-* | \
137
 m68*-apple-aux* | \
138
 m68*-ericsson-* | \
139
 m68*-netx-* | \
140
 m88*-*-* | \
141
 maxq-*-coff | \
142
 mips*-*-bsd* | \
143
 mips*-*-ecoff* | \
144
 mips*-*-lnews* | \
145
 mips*-*-mach3* | \
146
 mips*-*-pe* | \
147
 mips*-*-riscos* | \
148
 mips*-*-sysv* | \
149
 mips*-big-* | \
150
 mips*-dec-* | \
151
 mips*-sgi-* | \
152
 mips*el-*-rtems* | \
153
 m32c-*-rtems* | \
154
 ns32k-*-netbsd* | \
155
 openrisc-*-* | \
156
 or32-*-* | \
157
 powerpc-*-lynxos* | powerpc-*-windiss* | \
158
 powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin* | \
159
 sh*-*-netbsdaout* | \
160
 sh*-*-symbianelf* | sh5*-*-* | sh64*-*-* | \
161
 sparc*-*-*aout* | \
162
 sparc*-*-chorus* | \
163
 sparc*-*-coff* | \
164
 sparc-*-lynxos* | \
165
 sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1] | \
166
 tahoe-*-* | \
167
 vax-*-bsd* | vax-*-ultrix* | vax-*-vms* | \
168
 w65-*-* | \
169
 we32k-*-* | \
170
 xc16x-*-* | \
171
 null)
172
    echo "*** Configuration $targ is now obsolete" >&2
173
    echo "*** and so support for it has been REMOVED." >&2
174
    exit 1
175
    ;;
176
esac
177
 
178
targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
179
case "${targ_cpu}" in
180
aarch64*)	 targ_archs="bfd_aarch64_arch bfd_arm_arch";;
181
alpha*)		 targ_archs=bfd_alpha_arch ;;
182
am33_2.0*)	 targ_archs=bfd_mn10300_arch ;;
183
arc*)		 targ_archs=bfd_arc_arch ;;
184
arm*)		 targ_archs=bfd_arm_arch ;;
185
amdgcn*)	 targ_archs=bfd_amdgcn_arch ;;
186
bfin*)		 targ_archs=bfd_bfin_arch ;;
187
c30*)		 targ_archs=bfd_tic30_arch ;;
188
c4x*)		 targ_archs=bfd_tic4x_arch ;;
189
c54x*)		 targ_archs=bfd_tic54x_arch ;;
190
cr16*)		 targ_archs=bfd_cr16_arch ;;
191
crisv32)	 targ_archs=bfd_cris_arch ;;
192
crx*)		 targ_archs=bfd_crx_arch ;;
193
csky*)		 targ_archs=bfd_csky_arch ;;
194
dlx*)		 targ_archs=bfd_dlx_arch ;;
195
fido*)		 targ_archs=bfd_m68k_arch ;;
196
hppa*)		 targ_archs=bfd_hppa_arch ;;
197
i[3-7]86)	 targ_archs=bfd_i386_arch ;;
198
ia16)		 targ_archs=bfd_i386_arch ;;
199
loongarch*)	 targ_archs=bfd_loongarch_arch ;;
200
m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
201
m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
202
m68*)		 targ_archs=bfd_m68k_arch ;;
203
microblaze*)	 targ_archs=bfd_microblaze_arch ;;
204
mips*)		 targ_archs=bfd_mips_arch ;;
205
nds32*)		 targ_archs=bfd_nds32_arch ;;
206
nios2*)          targ_archs=bfd_nios2_arch ;;
207
or1k*|or1knd*)	 targ_archs=bfd_or1k_arch ;;
208
pdp11*)		 targ_archs=bfd_pdp11_arch ;;
209
pj*)		 targ_archs="bfd_pj_arch bfd_i386_arch";;
210
powerpc*)	 targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
211
pru*)		 targ_archs=bfd_pru_arch ;;
212
riscv*)		 targ_archs=bfd_riscv_arch ;;
213
rs6000)		 targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
214
s12z*)		 targ_archs=bfd_s12z_arch ;;
215
s390*)		 targ_archs=bfd_s390_arch ;;
216
sh*)		 targ_archs=bfd_sh_arch ;;
217
sparc*)		 targ_archs=bfd_sparc_arch ;;
218
spu*)            targ_archs=bfd_spu_arch ;;
219
tilegx*)	 targ_archs=bfd_tilegx_arch ;;
220
tilepro*)	 targ_archs=bfd_tilepro_arch ;;
221
v850*)		 targ_archs="bfd_v850_arch bfd_v850_rh850_arch" ;;
222
visium*)	 targ_archs=bfd_visium_arch ;;
223
x86_64*)	 targ_archs=bfd_i386_arch ;;
224
xtensa*)	 targ_archs=bfd_xtensa_arch ;;
225
z80*|r800|z180|gbz80|ez80*)	 targ_archs=bfd_z80_arch ;;
226
z8k*)		 targ_archs=bfd_z8k_arch ;;
227
*)		 targ_archs=bfd_${targ_cpu}_arch ;;
228
esac
229
 
230
 
231
# WHEN ADDING ENTRIES TO THIS MATRIX:
232
#  Make sure that the left side always has two dashes.  Otherwise you
233
#  can get spurious matches.  Even for unambiguous cases, do this as a
234
#  convention, else the table becomes a real mess to understand and maintain.
235
 
236
case "${targ}" in
237
# START OF targmatch.h
238
#ifdef BFD64
239
  aarch64-*-darwin*)
240
    targ_defvec=aarch64_mach_o_vec
241
    targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
242
    targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
243
    want64=true
244
    ;;
245
  aarch64-*-elf | aarch64-*-rtems* | aarch64-*-genode*)
246
    targ_defvec=aarch64_elf64_le_vec
247
    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_le_vec aarch64_pe_le_vec"
248
    want64=true
249
    ;;
8 pmbaty 250
  # Pierre-Marie Baty -- added aarch64 QNX case. Reminder:
251
  #  targ_defvec	Default vector for this target
252
  #  targ_selvecs	Vectors to build for this target
253
  #  targ64_selvecs	Vectors to build if --enable-64-bit-bfd is given or if host is 64 bit
254
  #  targ_archs		Architectures for this target
255
  #  targ_cflags	$(CFLAGS) for this target (FIXME: pretty bogus)
256
  #  targ_underscore	Whether underscores are used: yes or no
1 pmbaty 257
  aarch64-*-nto-qnx*)
258
    targ_defvec=aarch64_elf64_le_vec
259
    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_le_vec aarch64_pe_le_vec"
260
    want64=true
261
    ;;
262
  aarch64-*-pe* | aarch64-*-mingw*)
263
    targ_defvec=aarch64_pe_le_vec
264
    targ_selvecs="aarch64_pe_le_vec aarch64_pei_le_vec aarch64_elf64_le_vec aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec pdb_vec"
265
    want64=true
266
    targ_underscore=no
267
    ;;
268
  aarch64_be-*-elf)
269
    targ_defvec=aarch64_elf64_be_vec
270
    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
271
    want64=true
272
    ;;
273
  aarch64-*-freebsd*)
274
    targ_defvec=aarch64_elf64_le_vec
275
    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
276
    want64=true
277
    ;;
278
  aarch64-*-openbsd*)
279
    targ_defvec=aarch64_elf64_le_vec
280
    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
281
    want64=true
282
    ;;
283
  aarch64-*-fuchsia*)
284
    targ_defvec=aarch64_elf64_le_vec
285
    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
286
    want64=true
287
    ;;
288
  aarch64-*-cloudabi*)
289
    targ_defvec=aarch64_elf64_le_cloudabi_vec
290
    targ_selvecs=aarch64_elf64_be_cloudabi_vec
291
    want64=true
292
    ;;
293
  aarch64-*-haiku*)
294
    targ_defvec=aarch64_elf64_le_vec
295
    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
296
    want64=true
297
    ;;
298
  aarch64-*-linux* | aarch64-*-netbsd* | aarch64-*-nto*)
299
    targ_defvec=aarch64_elf64_le_vec
300
    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_le_vec aarch64_pe_le_vec"
301
    want64=true
302
    ;;
303
  aarch64_be-*-linux* | aarch64_be-*-netbsd*)
304
    targ_defvec=aarch64_elf64_be_vec
305
    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
306
    want64=true
307
    ;;
308
  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
309
    targ_defvec=alpha_elf64_fbsd_vec
310
    targ_selvecs="alpha_elf64_vec alpha_ecoff_le_vec"
311
    want64=true
312
    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
313
    case "${targ}" in
314
      alpha*-*-freebsd3* | alpha*-*-freebsd4 | alpha*-*-freebsd4.0*)
315
	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
316
    esac
317
    ;;
318
  alpha*-*-netbsd* | alpha*-*-openbsd*)
319
    targ_defvec=alpha_elf64_vec
320
    targ_selvecs=alpha_ecoff_le_vec
321
    want64=true
322
    ;;
323
  alpha*-*-linux*ecoff*)
324
    targ_defvec=alpha_ecoff_le_vec
325
    targ_selvecs=alpha_elf64_vec
326
    want64=true
327
    ;;
328
  alpha*-*-linux-* | alpha*-*-elf*)
329
    targ_defvec=alpha_elf64_vec
330
    targ_selvecs=alpha_ecoff_le_vec
331
    want64=true
332
    ;;
333
  alpha*-*-*vms*)
334
    targ_defvec=alpha_vms_vec
335
    targ_selvecs=alpha_vms_lib_txt_vec
336
    want64=true
337
    ;;
338
  alpha*-*-*)
339
    targ_defvec=alpha_ecoff_le_vec
340
    want64=true
341
    ;;
342
  amdgcn-*-*)
343
    targ_defvec=amdgcn_elf64_le_vec
344
    want64=true
345
    ;;
346
  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
347
    targ_defvec=ia64_elf64_le_vec
348
    targ_selvecs="ia64_elf64_be_vec ia64_pei_vec"
349
    want64=true
350
    ;;
351
  ia64*-*-hpux*)
352
    targ_defvec=ia64_elf32_hpux_be_vec
353
    targ_selvecs="ia64_elf64_hpux_be_vec"
354
    want64=true
355
    ;;
356
  ia64*-*-*vms*)
357
    targ_defvec=ia64_elf64_vms_vec
358
    targ_selvecs=alpha_vms_lib_txt_vec
359
    want64=true
360
    ;;
361
#endif /* BFD64 */
362
 
363
  am33_2.0-*-linux*)
364
    targ_defvec=am33_elf32_linux_vec
365
    ;;
366
 
367
  arc*eb-*-elf* | arc*eb-*-linux*)
368
    targ_defvec=arc_elf32_be_vec
369
    targ_selvecs=arc_elf32_le_vec
370
    ;;
371
 
372
  arc*-*-elf* | arc*-*-linux*)
373
    targ_defvec=arc_elf32_le_vec
374
    targ_selvecs=arc_elf32_be_vec
375
    ;;
376
 
377
  arm-*-darwin*)
378
    targ_defvec=arm_mach_o_vec
379
    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
380
    targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
381
    ;;
382
  arm-*-fuchsia*)
383
    targ_defvec=arm_elf32_le_vec
384
    targ_selvecs="arm_elf32_be_vec"
385
    ;;
386
  arm*-*-haiku*)
387
    targ_defvec=arm_elf32_le_vec
388
    targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_be_vec arm_elf32_fdpic_be_vec arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec"
389
    ;;
390
  arm-*-nacl*)
391
    targ_defvec=arm_elf32_nacl_le_vec
392
    targ_selvecs="arm_elf32_nacl_be_vec"
393
    ;;
394
  armeb-*-nacl*)
395
    targ_defvec=arm_elf32_nacl_be_vec
396
    targ_selvecs="arm_elf32_nacl_le_vec"
397
    ;;
398
  armeb-*-netbsd*)
399
    targ_defvec=arm_elf32_be_vec
400
    targ_selvecs="arm_elf32_le_vec"
401
    ;;
402
  arm-*-netbsd* | arm-*-openbsd*)
403
    targ_defvec=arm_elf32_le_vec
404
    targ_selvecs="arm_elf32_be_vec"
405
    ;;
406
  arm-*-nto* | nto*arm*)
407
    targ_defvec=arm_elf32_le_vec
408
    targ_selvecs=arm_elf32_be_vec
409
    targ_cflags=-D__QNXTARGET__
410
    ;;
411
  arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
412
    targ_defvec=arm_pe_wince_le_vec
413
    targ_selvecs="arm_pe_wince_le_vec arm_pe_wince_be_vec arm_pei_wince_le_vec arm_pei_wince_be_vec"
414
    targ_underscore=no
415
    targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
416
    ;;
417
  arm-*-pe*)
418
    targ_defvec=arm_pe_le_vec
419
    targ_selvecs="arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec"
420
    targ_underscore=yes
421
    ;;
422
  arm-*-phoenix*)
423
    targ_defvec=arm_elf32_le_vec
424
    targ_selvecs=arm_elf32_be_vec
425
    ;;
426
  armeb-*-elf | arm*b-*-freebsd* | arm*b-*-linux-* | armeb-*-eabi*)
427
    targ_defvec=arm_elf32_be_vec
428
    targ_selvecs=arm_elf32_le_vec
429
    ;;
430
  arm-*-kaos*)
431
    targ_defvec=arm_elf32_le_vec
432
    targ_selvecs=arm_elf32_be_vec
433
    ;;
434
  arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
435
  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
436
  arm*-*-eabi* | arm-*-rtems* | arm*-*-uclinuxfdpiceabi)
437
    targ_defvec=arm_elf32_le_vec
438
    targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_be_vec arm_elf32_fdpic_be_vec"
439
    ;;
440
  arm*-*-vxworks | arm*-*-windiss)
441
    targ_defvec=arm_elf32_vxworks_le_vec
442
    targ_selvecs=arm_elf32_vxworks_be_vec
443
    ;;
444
  arm9e-*-elf)
445
    targ_defvec=arm_elf32_le_vec
446
    targ_selvecs=arm_elf32_be_vec
447
    ;;
448
 
449
  avr-*-*)
450
    targ_defvec=avr_elf32_vec
451
    ;;
452
 
453
  bfin-*-*)
454
    targ_defvec=bfin_elf32_vec
455
    targ_selvecs=bfin_elf32_fdpic_vec
456
    targ_underscore=yes
457
    ;;
458
 
459
  c30-*-*coff* | tic30-*-*coff*)
460
    targ_defvec=tic30_coff_vec
461
    ;;
462
 
463
  c4x-*-*coff* | tic4x-*-*coff*)
464
    targ_defvec=tic4x_coff1_vec
465
    targ_selvecs="tic4x_coff1_beh_vec tic4x_coff2_vec tic4x_coff2_beh_vec tic4x_coff0_vec tic4x_coff0_beh_vec"
466
    targ_underscore=yes
467
    ;;
468
 
469
  c54x*-*-*coff* | tic54x-*-*coff*)
470
    targ_defvec=tic54x_coff1_vec
471
    targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec"
472
    targ_underscore=yes
473
    ;;
474
 
475
  cr16-*-elf* | cr16*-*-uclinux*)
476
    targ_defvec=cr16_elf32_vec
477
    targ_underscore=yes
478
    ;;
479
 
480
  cris-*-* | crisv32-*-*)
481
    targ_defvec=cris_aout_vec
482
    targ_selvecs="cris_elf32_us_vec cris_elf32_vec"
483
    case "${targ}" in
484
	*-*-linux*) ;;
485
	*) targ_underscore=yes ;;
486
    esac
487
    want64=true
488
    ;;
489
 
490
  crx-*-elf*)
491
    targ_defvec=crx_elf32_vec
492
    targ_underscore=yes
493
    ;;
494
 
495
  csky-*-elf* | csky-*-linux* )
496
    targ_defvec=csky_elf32_le_vec
497
    targ_selvecs="csky_elf32_be_vec csky_elf32_le_vec"
498
    ;;
499
 
500
  d10v-*-*)
501
    targ_defvec=d10v_elf32_vec
502
    ;;
503
 
504
  dlx-*-elf*)
505
    targ_defvec=dlx_elf32_be_vec
506
    targ_selvecs="dlx_elf32_be_vec"
507
    ;;
508
 
509
  d30v-*-*)
510
    targ_defvec=d30v_elf32_vec
511
    ;;
512
 
513
#ifdef BFD64
514
  bpf-*-none)
515
    targ_defvec=bpf_elf64_le_vec
516
    targ_selvecs=bpf_elf64_be_vec
517
    targ_underscore=yes
518
    ;;
519
#endif
520
 
521
  epiphany-*-*)
522
    targ_defvec=epiphany_elf32_vec
523
    targ_underscore=yes
524
    ;;
525
 
526
  fido-*-elf* )
527
    targ_defvec=m68k_elf32_vec
528
    ;;
529
 
530
  fr30-*-elf)
531
    targ_defvec=fr30_elf32_vec
532
    ;;
533
 
534
  frv-*-elf)
535
    targ_defvec=frv_elf32_vec
536
    targ_selvecs=frv_elf32_fdpic_vec
537
    ;;
538
 
539
  frv-*-*linux*)
540
    targ_defvec=frv_elf32_fdpic_vec
541
    targ_selvecs=frv_elf32_vec
542
    ;;
543
 
544
  moxie-*-elf | moxie-*-rtems* | moxie-*-uclinux)
545
    targ_defvec=moxie_elf32_be_vec
546
    targ_selvecs=moxie_elf32_le_vec
547
    ;;
548
 
549
  moxie-*-moxiebox*)
550
    targ_defvec=moxie_elf32_le_vec
551
    ;;
552
 
553
  h8300*-*-elf | h8300*-*-rtems*)
554
    targ_defvec=h8300_elf32_vec
555
    targ_underscore=yes
556
    ;;
557
 
558
  h8300*-*-linux*)
559
    targ_defvec=h8300_elf32_linux_vec
560
    ;;
561
 
562
#ifdef BFD64
563
  hppa*64*-*-linux-*)
564
    targ_defvec=hppa_elf64_linux_vec
565
    targ_selvecs=hppa_elf64_vec
566
    want64=true
567
    ;;
568
  hppa*64*-*-hpux11*)
569
    targ_defvec=hppa_elf64_vec
570
    targ_selvecs=hppa_elf64_linux_vec
571
    targ_cflags=-DHPUX_LARGE_AR_IDS
572
    want64=true
573
    ;;
574
#endif
575
 
576
  hppa*-*-linux-*)
577
    targ_defvec=hppa_elf32_linux_vec
578
    targ_selvecs=hppa_elf32_vec
579
    ;;
580
  hppa*-*-netbsd*)
581
    targ_defvec=hppa_elf32_nbsd_vec
582
    targ_selvecs="hppa_elf32_vec hppa_elf32_linux_vec"
583
    ;;
584
  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-openbsd*)
585
    targ_defvec=hppa_elf32_vec
586
    targ_selvecs=hppa_elf32_linux_vec
587
    ;;
588
 
589
  hppa*-*-bsd*)
590
    targ_defvec=hppa_som_vec
591
    targ_selvecs=hppa_elf32_vec
592
    ;;
593
  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
594
    targ_defvec=hppa_som_vec
595
    ;;
596
  hppa*-*-osf*)
597
    targ_defvec=hppa_som_vec
598
    targ_selvecs=hppa_elf32_vec
599
    ;;
600
 
601
  i[3-7]86-*-elf* | i[3-7]86-*-rtems* | i[3-7]86-*-genode*)
602
    targ_defvec=i386_elf32_vec
603
    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
604
    ;;
605
  i[3-7]86-*-solaris2*)
606
    targ_defvec=i386_elf32_sol2_vec
607
    targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec"
608
    targ64_selvecs="x86_64_elf64_sol2_vec x86_64_pe_vec x86_64_pei_vec"
609
    want64=true
610
    ;;
611
#ifdef BFD64
612
  x86_64-*-solaris2*)
613
    targ_defvec=i386_elf32_sol2_vec
614
    targ_selvecs="x86_64_elf64_sol2_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec"
615
    want64=true
616
    ;;
617
#endif
618
  i[3-7]86-*-nto*)
619
    targ_defvec=i386_elf32_vec
620
    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
621
    ;;
622
  i[3-7]86-*-aros*)
623
    targ_defvec=i386_elf32_vec
624
    targ_selvecs=iamcu_elf32_vec
625
    ;;
626
  i[3-7]86-*-dicos*)
627
    targ_defvec=i386_elf32_vec
628
    targ_selvecs=iamcu_elf32_vec
629
    targ64_selvecs="x86_64_elf64_vec"
630
    ;;
631
  *-*-msdosdjgpp* | *-*-go32* )
632
    targ_defvec=i386_coff_go32_vec
633
    targ_selvecs="i386_coff_go32stubbed_vec i386_aout_vec"
634
    ;;
635
  i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
636
    targ_defvec=i386_mach_o_vec
637
    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
638
    targ64_selvecs=x86_64_mach_o_vec
639
    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
640
    ;;
641
  i[3-7]86-*-bsd*)
642
    targ_defvec=i386_aout_bsd_vec
643
    targ_underscore=yes
644
    ;;
645
  i[3-7]86-*-dragonfly*)
646
    targ_defvec=i386_elf32_vec
647
    targ_selvecs=iamcu_elf32_vec
648
    targ64_selvecs="x86_64_elf64_vec"
649
    ;;
650
  i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
651
    targ_defvec=i386_elf32_fbsd_vec
652
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_pei_vec i386_coff_vec"
653
    targ64_selvecs="x86_64_elf64_fbsd_vec x86_64_elf64_vec x86_64_pe_vec x86_64_pei_vec"
654
    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
655
    case "${targ}" in
656
      i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*)
657
	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
658
    esac
659
    ;;
660
  i[3-7]86-*-netbsd* | i[3-7]86-*-knetbsd*-gnu)
661
    targ_defvec=i386_elf32_vec
662
    targ_selvecs="iamcu_elf32_vec"
663
    targ64_selvecs="x86_64_elf64_vec"
664
    ;;
665
  i[3-7]86-*-openbsd*)
666
    targ_defvec=i386_elf32_vec
667
    targ_selvecs="iamcu_elf32_vec"
668
    ;;
669
  i[3-7]86-*-linux-*)
670
    targ_defvec=i386_elf32_vec
671
    targ_selvecs="iamcu_elf32_vec i386_pei_vec"
672
    targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pe_vec x86_64_pei_vec"
673
    ;;
674
  i[3-7]86-*-redox*)
675
    targ_defvec=i386_elf32_vec
676
    targ_selvecs=
677
    targ64_selvecs=x86_64_elf64_vec
678
    ;;
679
#ifdef BFD64
680
  x86_64-*-cloudabi*)
681
    targ_defvec=x86_64_elf64_cloudabi_vec
682
    want64=true
683
    ;;
684
  x86_64-*-darwin*)
685
    targ_defvec=x86_64_mach_o_vec
686
    targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
687
    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
688
    want64=true
689
    ;;
690
  x86_64-*-dicos*)
691
    targ_defvec=x86_64_elf64_vec
692
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec"
693
    want64=true
694
    ;;
695
  x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia | x86_64-*-genode*)
696
    targ_defvec=x86_64_elf64_vec
697
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec"
698
    case "${targ}" in
699
      x86_64-*-rtems*)
700
    targ_selvecs="${targ_selvecs} x86_64_pe_vec x86_64_pei_vec"
701
    esac
702
    want64=true
703
    ;;
8 pmbaty 704
  # Pierre-Marie Baty -- added x86_64 QNX case. Reminder:
705
  #  targ_defvec	Default vector for this target
706
  #  targ_selvecs	Vectors to build for this target
707
  #  targ64_selvecs	Vectors to build if --enable-64-bit-bfd is given or if host is 64 bit
708
  #  targ_archs		Architectures for this target
709
  #  targ_cflags	$(CFLAGS) for this target (FIXME: pretty bogus)
710
  #  targ_underscore	Whether underscores are used: yes or no
1 pmbaty 711
  x86_64-*-nto-qnx*)
712
    targ_defvec=x86_64_elf64_vec
713
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec"
714
    targ_cflags=-D__QNXTARGET__
715
    want64=true
716
    ;;
717
  x86_64-*-dragonfly*)
718
    targ_defvec=x86_64_elf64_vec
719
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec"
720
    want64=true
721
    ;;
722
  x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
723
    targ_defvec=x86_64_elf64_fbsd_vec
724
    targ_selvecs="i386_elf32_fbsd_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec i386_elf32_vec x86_64_elf64_vec"
725
    want64=true
726
    ;;
727
  x86_64-*-haiku*)
728
    targ_defvec=x86_64_elf64_vec
729
    targ_selvecs="i386_elf32_vec"
730
    want64=true
731
    ;;
732
  x86_64-*-netbsd* | x86_64-*-openbsd*)
733
    targ_defvec=x86_64_elf64_vec
734
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec"
735
    want64=true
736
    ;;
737
  x86_64-*-linux-*)
738
    targ_defvec=x86_64_elf64_vec
739
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec"
740
    want64=true
741
    ;;
742
  x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin)
743
    targ_defvec=x86_64_pe_vec
744
    targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_big_vec x86_64_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec pdb_vec"
745
    want64=true
746
    targ_underscore=no
747
    ;;
748
  x86_64-*-rdos*)
749
    targ_defvec=x86_64_elf64_vec
750
    want64=true
751
    ;;
752
  x86_64-*-redox*)
753
    targ_defvec=x86_64_elf64_vec
754
    targ_selvecs=i386_elf32_vec
755
    want64=true
756
    ;;
757
  x86_64-*-gnu*)
758
    targ_defvec=x86_64_elf64_vec
759
    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec"
760
    want64=true
761
    ;;
762
#endif
763
  i[3-7]86-*-lynxos*)
764
    targ_defvec=i386_elf32_vec
765
    targ_selvecs="iamcu_elf32_vec i386_coff_lynx_vec i386_aout_lynx_vec"
766
    ;;
767
  i[3-7]86-*-gnu*)
768
    targ_defvec=i386_elf32_vec
769
    targ_selvecs=iamcu_elf32_vec
770
    ;;
771
  i[3-7]86-*-msdos*)
772
    targ_defvec=i386_aout_vec
773
    targ_selvecs=i386_msdos_vec
774
    ;;
775
  i[3-7]86-*-moss*)
776
    targ_defvec=i386_elf32_vec
777
    targ_selvecs="iamcu_elf32_vec i386_msdos_vec i386_aout_vec"
778
    ;;
779
  i[3-7]86-*-beospe*)
780
    targ_defvec=i386_pe_vec
781
    targ_selvecs="i386_pe_vec i386_pei_vec"
782
    ;;
783
  i[3-7]86-*-beos*)
784
    targ_defvec=i386_elf32_vec
785
    targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec"
786
    ;;
787
  i[3-7]86-*-haiku*)
788
    targ_defvec=i386_elf32_vec
789
    targ_selvecs="i386_pei_vec"
790
    ;;
791
  i[3-7]86-*-interix*)
792
    targ_defvec=i386_pei_vec
793
    targ_selvecs="i386_pe_vec"
794
    # FIXME: This should eventually be checked at runtime.
795
    targ_cflags=-DSTRICT_PE_FORMAT
796
    ;;
797
  i[3-7]86-*-rdos*)
798
    targ_defvec=i386_elf32_vec
799
    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
800
    ;;
801
  i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe)
802
    targ_defvec=i386_pe_vec
803
    targ_selvecs="i386_pe_vec i386_pe_big_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec pdb_vec"
804
    targ_underscore=yes
805
    ;;
806
  i[3-7]86-*-vxworks*)
807
    targ_defvec=i386_elf32_vxworks_vec
808
    targ_underscore=yes
809
    ;;
810
 
811
  ia16-*-elf)
812
    targ_defvec=i386_elf32_vec
813
    targ_selvecs="i386_msdos_vec i386_aout_vec"
814
    ;;
815
 
816
  ip2k-*-elf)
817
    targ_defvec=ip2k_elf32_vec
818
    targ_underscore=yes
819
    ;;
820
 
821
  iq2000-*-elf)
822
    targ_defvec=iq2000_elf32_vec
823
    ;;
824
 
825
  lm32-*-elf | lm32-*-rtems*)
826
    targ_defvec=lm32_elf32_vec
827
    targ_selvecs=lm32_elf32_fdpic_vec
828
    ;;
829
 
830
  lm32-*-*linux*)
831
    targ_defvec=lm32_elf32_fdpic_vec
832
    targ_selvecs=lm32_elf32_vec
833
    ;;
834
 
835
  m32c-*-elf)
836
    targ_defvec=m32c_elf32_vec
837
    targ_underscore=yes
838
    ;;
839
 
840
  m32r*le-*-linux*)
841
    targ_defvec=m32r_elf32_linux_le_vec
842
    targ_selvecs="m32r_elf32_linux_vec  m32r_elf32_linux_le_vec"
843
    ;;
844
  m32r*-*-linux*)
845
    targ_defvec=m32r_elf32_linux_vec
846
    targ_selvecs="m32r_elf32_linux_vec  m32r_elf32_linux_le_vec"
847
    ;;
848
  m32r*le-*-*)
849
    targ_defvec=m32r_elf32_le_vec
850
    targ_selvecs="m32r_elf32_vec m32r_elf32_le_vec"
851
    ;;
852
  m32r-*-*)
853
    targ_defvec=m32r_elf32_vec
854
    ;;
855
 
856
  m68*-*-haiku*)
857
    targ_defvec=m68k_elf32_vec
858
    ;;
859
  m68hc11-*-* | m6811-*-*)
860
    targ_defvec=m68hc11_elf32_vec
861
    targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec"
862
    ;;
863
  m68hc12-*-* | m6812-*-*)
864
    targ_defvec=m68hc12_elf32_vec
865
    targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec"
866
    ;;
867
 
868
  m68*-*-*)
869
    targ_defvec=m68k_elf32_vec
870
    ;;
871
 
872
  s12z-*-*)
873
    targ_defvec=s12z_elf32_vec
874
    ;;
875
  mcore-*-elf)
876
    targ_defvec=mcore_elf32_be_vec
877
    targ_selvecs="mcore_elf32_be_vec mcore_elf32_le_vec"
878
    ;;
879
  mcore-*-pe)
880
    targ_defvec=mcore_pe_be_vec
881
    targ_selvecs="mcore_pe_be_vec mcore_pe_le_vec mcore_pei_be_vec mcore_pei_le_vec"
882
    ;;
883
 
884
  mep-*-elf)
885
    targ_defvec=mep_elf32_vec
886
    targ_selvecs=mep_elf32_le_vec
887
    ;;
888
 
889
  metag-*-*)
890
    targ_defvec=metag_elf32_vec
891
    targ_underscore=yes
892
    ;;
893
 
894
  microblazeel*-*)
895
    targ_defvec=microblaze_elf32_le_vec
896
    targ_selvecs=microblaze_elf32_vec
897
    ;;
898
 
899
  microblaze*-*)
900
    targ_defvec=microblaze_elf32_vec
901
    targ_selvecs=microblaze_elf32_le_vec
902
    ;;
903
 
904
#ifdef BFD64
905
  mips*el-*-netbsd*)
906
    targ_defvec=mips_elf32_trad_le_vec
907
    targ_selvecs="mips_elf32_trad_be_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
908
    ;;
909
  mips*-*-netbsd*)
910
    targ_defvec=mips_elf32_trad_be_vec
911
    targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
912
    ;;
913
  mips*el-*-haiku*)
914
    targ_defvec=mips_elf32_le_vec
915
    targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
916
    ;;
917
  mips*-*-irix6*)
918
    targ_defvec=mips_elf32_n_be_vec
919
    targ_selvecs="mips_elf32_n_le_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
920
    ;;
921
  mips64*-ps2-elf*)
922
    targ_defvec=mips_elf32_n_le_vec
923
    targ_selvecs="mips_elf32_n_le_vec mips_elf32_n_be_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
924
    ;;
925
  mips*-ps2-elf*)
926
    targ_defvec=mips_elf32_le_vec
927
    targ_selvecs="mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
928
    ;;
929
  mips*-*-irix5*)
930
    targ_defvec=mips_elf32_be_vec
931
    targ_selvecs="mips_elf32_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
932
    ;;
933
  mips*el-*-vxworks*)
934
    targ_defvec=mips_elf32_vxworks_le_vec
935
    targ_selvecs="mips_elf32_le_vec mips_elf32_vxworks_be_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
936
    ;;
937
  mips*-*-vxworks*)
938
    targ_defvec=mips_elf32_vxworks_be_vec
939
    targ_selvecs="mips_elf32_be_vec mips_elf32_vxworks_le_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
940
    ;;
941
  mips*el-sde-elf*)
942
    targ_defvec=mips_elf32_trad_le_vec
943
    targ_selvecs="mips_elf32_trad_be_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
944
    ;;
945
  mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
946
    targ_defvec=mips_elf32_trad_be_vec
947
    targ_selvecs="mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
948
    ;;
949
  mips*el-*-elf* | mips*-*-chorus*)
950
    targ_defvec=mips_elf32_le_vec
951
    targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
952
    ;;
953
  mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none)
954
    targ_defvec=mips_elf32_be_vec
955
    targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
956
    ;;
957
  mips64*-*-openbsd*)
958
    targ_defvec=mips_elf64_trad_be_vec
959
    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec"
960
    ;;
961
  mips*el-*-openbsd*)
962
    targ_defvec=mips_elf32_le_vec
963
    targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
964
    ;;
965
  mips*-*-openbsd*)
966
    targ_defvec=mips_elf32_be_vec
967
    targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
968
    ;;
969
  mips64*el-*-linux*-gnuabi64)
970
    targ_defvec=mips_elf64_trad_le_vec
971
    targ_selvecs="mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec"
972
    want64=true
973
    ;;
974
  mips64*el-*-linux*)
975
    targ_defvec=mips_elf32_ntrad_le_vec
976
    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
977
    ;;
978
  mips64*-*-linux*-gnuabi64)
979
    targ_defvec=mips_elf64_trad_be_vec
980
    targ_selvecs="mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec"
981
    want64=true
982
    ;;
983
  mips64*-*-linux*)
984
    targ_defvec=mips_elf32_ntrad_be_vec
985
    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
986
    ;;
987
  mips*el-*-linux*)
988
    targ_defvec=mips_elf32_trad_le_vec
989
    targ_selvecs="mips_elf32_trad_be_vec mips_ecoff_le_vec mips_ecoff_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec"
990
    ;;
991
  mips*-*-linux*)
992
    targ_defvec=mips_elf32_trad_be_vec
993
    targ_selvecs="mips_elf32_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec"
994
    ;;
995
  mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
996
    # FreeBSD vectors
997
    targ_defvec=mips_elf32_ntradfbsd_le_vec
998
    targ_selvecs="mips_elf32_ntradfbsd_be_vec mips_elf32_tradfbsd_le_vec mips_elf32_tradfbsd_be_vec mips_elf64_tradfbsd_le_vec mips_elf64_tradfbsd_be_vec"
999
    # Generic vectors
1000
    targ_selvecs="${targ_selvecs} mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
1001
    ;;
1002
  mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
1003
    # FreeBSD vectors
1004
    targ_defvec=mips_elf32_ntradfbsd_be_vec
1005
    targ_selvecs="mips_elf32_ntradfbsd_le_vec mips_elf32_tradfbsd_be_vec mips_elf32_tradfbsd_le_vec mips_elf64_tradfbsd_be_vec mips_elf64_tradfbsd_le_vec"
1006
    # Generic vectors
1007
    targ_selvecs="${targ_selvecs} mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
1008
    ;;
1009
  mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
1010
    # FreeBSD vectors
1011
    targ_defvec=mips_elf32_tradfbsd_le_vec
1012
    targ_selvecs="mips_elf32_tradfbsd_be_vec mips_elf32_ntradfbsd_le_vec mips_elf64_tradfbsd_le_vec mips_elf32_ntradfbsd_be_vec mips_elf64_tradfbsd_be_vec"
1013
    # Generic vectors
1014
    targ_selvecs="${targ_selvecs} mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec"
1015
    ;;
1016
  mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
1017
    # FreeBSD vectors
1018
    targ_defvec=mips_elf32_tradfbsd_be_vec
1019
    targ_selvecs="mips_elf32_tradfbsd_le_vec mips_elf32_ntradfbsd_be_vec mips_elf64_tradfbsd_be_vec mips_elf32_ntradfbsd_le_vec mips_elf64_tradfbsd_le_vec"
1020
    # Generic vectors
1021
    targ_selvecs="${targ_selvecs} mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec"
1022
    ;;
1023
  mmix-*-*)
1024
    targ_defvec=mmix_elf64_vec
1025
    targ_selvecs=mmix_mmo_vec
1026
    want64=true
1027
    ;;
1028
#endif
1029
  mn10200-*-*)
1030
    targ_defvec=mn10200_elf32_vec
1031
    targ_underscore=yes
1032
    ;;
1033
 
1034
  mn10300-*-*)
1035
    targ_defvec=mn10300_elf32_vec
1036
    targ_underscore=yes
1037
    ;;
1038
 
1039
  mt-*-elf)
1040
    targ_defvec=mt_elf32_vec
1041
    ;;
1042
 
1043
  msp430-*-*)
1044
    targ_defvec=msp430_elf32_vec
1045
    targ_selvecs=msp430_elf32_ti_vec
1046
    ;;
1047
 
1048
  nds32*le-*-linux*)
1049
    targ_defvec=nds32_elf32_linux_le_vec
1050
    targ_selvecs=nds32_elf32_linux_be_vec
1051
    ;;
1052
 
1053
  nds32*be-*-linux*)
1054
    targ_defvec=nds32_elf32_linux_be_vec
1055
    targ_selvecs=nds32_elf32_linux_le_vec
1056
    ;;
1057
 
1058
  nds32*le-*-*)
1059
    targ_defvec=nds32_elf32_le_vec
1060
    targ_selvecs=nds32_elf32_be_vec
1061
    ;;
1062
 
1063
  nds32*be-*-*)
1064
    targ_defvec=nds32_elf32_be_vec
1065
    targ_selvecs=nds32_elf32_le_vec
1066
    ;;
1067
 
1068
#ifdef BFD64
1069
  nfp-*-*)
1070
    targ_defvec=nfp_elf64_vec
1071
    ;;
1072
#endif
1073
 
1074
  ns32k-pc532-mach* | ns32k-pc532-ux*)
1075
    targ_defvec=ns32k_aout_pc532mach_vec
1076
    targ_underscore=yes
1077
    ;;
1078
  ns32k-*-lites* | ns32k-*-*bsd*)
1079
    targ_defvec=ns32k_aout_pc532nbsd_vec
1080
    targ_underscore=yes
1081
    ;;
1082
 
1083
  nios2eb-*-*)
1084
    targ_defvec=nios2_elf32_be_vec
1085
    targ_selvecs=nios2_elf32_le_vec
1086
    ;;
1087
 
1088
  nios2el-*-*)
1089
    targ_defvec=nios2_elf32_le_vec
1090
    targ_selvecs=nios2_elf32_be_vec
1091
    ;;
1092
 
1093
  nios2-*-*)
1094
    targ_defvec=nios2_elf32_le_vec
1095
    targ_selvecs=nios2_elf32_be_vec
1096
    ;;
1097
 
1098
  or1k-*-elf | or1k-*-linux* | or1k-*-rtems*)
1099
    targ_defvec=or1k_elf32_vec
1100
    ;;
1101
 
1102
  or1knd-*-elf | or1knd-*-linux* | or1knd-*-rtems*)
1103
    targ_defvec=or1k_elf32_vec
1104
    ;;
1105
 
1106
  pdp11-*-*)
1107
    targ_defvec=pdp11_aout_vec
1108
    targ_underscore=yes
1109
    ;;
1110
 
1111
  pj-*-*)
1112
    targ_defvec=pj_elf32_vec
1113
    targ_selvecs="pj_elf32_vec pj_elf32_le_vec"
1114
    ;;
1115
 
1116
  pjl-*-*)
1117
    targ_defvec=pj_elf32_le_vec
1118
    targ_selvecs="pj_elf32_le_vec pj_elf32_vec i386_elf32_vec iamcu_elf32_vec"
1119
    ;;
1120
 
1121
  powerpc-*-aix5.[01] | rs6000-*-aix5.[01])
1122
    targ_defvec=rs6000_xcoff_vec
1123
    targ_selvecs="rs6000_xcoff64_aix_vec"
1124
    want64=true
1125
    ;;
1126
  powerpc-*-haiku*)
1127
    targ_defvec=powerpc_elf32_vec
1128
    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
1129
    targ_cflags=-D__HAIKU_TARGET__
1130
    ;;
1131
#ifdef BFD64
1132
  powerpc64-*-aix5.[01])
1133
    targ_defvec=rs6000_xcoff64_aix_vec
1134
    targ_selvecs="rs6000_xcoff_vec"
1135
    want64=true
1136
    ;;
1137
#endif
1138
  powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
1139
    targ_cflags=-DAIX_WEAK_SUPPORT
1140
    targ_defvec=rs6000_xcoff_vec
1141
    targ_selvecs="rs6000_xcoff64_aix_vec"
1142
    want64=true
1143
    ;;
1144
#ifdef BFD64
1145
  powerpc64-*-aix[5-9]*)
1146
    targ_cflags=-DAIX_WEAK_SUPPORT
1147
    targ_defvec=rs6000_xcoff64_aix_vec
1148
    targ_selvecs="rs6000_xcoff_vec"
1149
    want64=true
1150
    ;;
1151
#endif
1152
 
1153
  powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*)
1154
    targ_defvec=rs6000_xcoff_vec
1155
    targ64_selvecs=rs6000_xcoff64_vec
1156
    case "${targ}" in
1157
	*-*-aix4.[3456789]* | *-*-aix[56789]*)
1158
	want64=true;;
1159
	*)
1160
	targ_cflags=-DSMALL_ARCHIVE;;
1161
    esac
1162
    ;;
1163
#ifdef BFD64
1164
  powerpc64-*-aix*)
1165
    targ_defvec=rs6000_xcoff64_vec
1166
    targ_selvecs=rs6000_xcoff_vec
1167
    want64=true
1168
    ;;
1169
  powerpc64-*-freebsd*)
1170
    targ_defvec=powerpc_elf64_fbsd_vec
1171
    targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
1172
    want64=true
1173
    ;;
1174
  powerpc64le-*-freebsd*)
1175
    targ_defvec=powerpc_elf64_fbsd_le_vec
1176
    targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
1177
    want64=true
1178
    ;;
1179
  powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
1180
  powerpc64-*-*bsd*)
1181
    targ_defvec=powerpc_elf64_vec
1182
    targ_selvecs="powerpc_elf64_le_vec powerpc_elf32_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
1183
    want64=true
1184
    ;;
1185
  powerpc64le-*-elf* | powerpcle-*-elf64* | powerpc64le-*-linux* | \
1186
  powerpc64le-*-*bsd*)
1187
    targ_defvec=powerpc_elf64_le_vec
1188
    targ_selvecs="powerpc_elf64_vec powerpc_elf32_le_vec powerpc_elf32_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
1189
    want64=true
1190
    ;;
1191
#endif
1192
  powerpc-*-*freebsd*)
1193
    targ_defvec=powerpc_elf32_fbsd_vec
1194
    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec"
1195
    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec powerpc_elf64_fbsd_vec"
1196
    ;;
1197
  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
1198
  powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
1199
  powerpc-*-chorus*)
1200
    targ_defvec=powerpc_elf32_vec
1201
    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
1202
    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1203
    ;;
1204
  powerpc-*-kaos*)
1205
    targ_defvec=powerpc_elf32_vec
1206
    targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
1207
    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1208
    ;;
1209
  powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*)
1210
    targ_defvec=mach_o_be_vec
1211
    targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
1212
    targ_archs="$targ_archs bfd_i386_arch"
1213
    ;;
1214
  powerpc-*-macos*)
1215
    targ_defvec=powerpc_xcoff_vec
1216
    ;;
1217
  powerpc-*-nto*)
1218
    targ_defvec=powerpc_elf32_vec
1219
    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
1220
    ;;
1221
  powerpc-*-vxworks*)
1222
    targ_defvec=powerpc_elf32_vxworks_vec
1223
    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec"
1224
    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1225
    ;;
1226
  powerpcle-*-nto*)
1227
    targ_defvec=powerpc_elf32_le_vec
1228
    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
1229
    ;;
1230
  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
1231
  powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks*)
1232
    targ_defvec=powerpc_elf32_le_vec
1233
    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
1234
    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1235
    ;;
1236
 
1237
  pru-*-*)
1238
    targ_defvec=pru_elf32_vec
1239
    ;;
1240
 
1241
#ifdef BFD64
1242
  riscvbe-*-* | riscv32be*-*-*)
1243
    targ_defvec=riscv_elf32_be_vec
1244
    targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec"
1245
    want64=true
1246
    ;;
1247
  riscv-*-* | riscv32*-*-*)
1248
    targ_defvec=riscv_elf32_vec
1249
    targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec"
1250
    want64=true
1251
    ;;
1252
  riscv64be*-*-*)
1253
    targ_defvec=riscv_elf64_be_vec
1254
    targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec"
1255
    want64=true
1256
    ;;
1257
  riscv64*-*-*)
1258
    targ_defvec=riscv_elf64_vec
1259
    targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec"
1260
    want64=true
1261
    ;;
1262
#endif
1263
 
1264
  rl78-*-elf)
1265
    targ_defvec=rl78_elf32_vec
1266
    targ_underscore=yes
1267
    ;;
1268
 
1269
  rx-*-elf)
1270
    targ_defvec=rx_elf32_le_vec
1271
    targ_selvecs="rx_elf32_be_vec rx_elf32_le_vec rx_elf32_be_ns_vec"
1272
    targ_underscore=yes
1273
    ;;
1274
  rx-*-linux*)
1275
    targ_defvec=rx_elf32_linux_le_vec
1276
    targ_selvecs="rx_elf32_linux_le_vec"
1277
    ;;
1278
 
1279
  s390-*-linux*)
1280
    targ_defvec=s390_elf32_vec
1281
    targ64_selvecs=s390_elf64_vec
1282
    want64=true
1283
    ;;
1284
#ifdef BFD64
1285
  s390x-*-linux*)
1286
    targ_defvec=s390_elf64_vec
1287
    targ_selvecs=s390_elf32_vec
1288
    want64=true
1289
    ;;
1290
  s390x-*-tpf*)
1291
    targ_defvec=s390_elf64_vec
1292
    want64=true
1293
    ;;
1294
 
1295
  score*-*-elf*)
1296
    targ_defvec=score_elf32_be_vec
1297
    targ_selvecs=score_elf32_le_vec
1298
    ;;
1299
#endif /* BFD64 */
1300
 
1301
  sh*eb-*-linux*)
1302
    targ_defvec=sh_elf32_linux_be_vec
1303
    targ_selvecs=sh_elf32_linux_vec
1304
    targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
1305
    ;;
1306
  sh*-*-linux*)
1307
    targ_defvec=sh_elf32_linux_vec
1308
    targ_selvecs=sh_elf32_linux_be_vec
1309
    targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
1310
    ;;
1311
 
1312
  sh-*-uclinux* | sh[12]-*-uclinux*)
1313
    targ_defvec=sh_elf32_vec
1314
    targ_selvecs="sh_elf32_le_vec sh_elf32_linux_be_vec sh_elf32_linux_vec sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
1315
    ;;
1316
 
1317
  sh*l*-*-netbsd*)
1318
    targ_defvec=sh_elf32_nbsd_le_vec
1319
    targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec"
1320
    ;;
1321
  sh*-*-netbsd*)
1322
    targ_defvec=sh_elf32_nbsd_vec
1323
    targ_selvecs="sh_elf32_nbsd_le_vec sh_coff_vec sh_coff_le_vec"
1324
    ;;
1325
 
1326
  shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*)
1327
    targ_defvec=sh_elf32_le_vec
1328
    targ_selvecs="sh_elf32_vec sh_coff_le_vec sh_coff_vec sh_coff_small_le_vec sh_coff_small_vec"
1329
    targ_underscore=yes
1330
    ;;
1331
 
1332
  sh-*-elf* | sh[1234]*-elf* | sh-*-rtems* | sh-*-kaos*)
1333
    targ_defvec=sh_elf32_vec
1334
    targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1335
    targ_underscore=yes
1336
    ;;
1337
 
1338
  sh-*-nto*)
1339
    targ_defvec=sh_elf32_vec
1340
    targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1341
    targ_underscore=yes
1342
    ;;
1343
  sh*-*-openbsd*)
1344
    targ_defvec=sh_elf32_nbsd_le_vec
1345
    targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec"
1346
    ;;
1347
  sh-*-pe)
1348
    targ_defvec=sh_pe_le_vec
1349
    targ_selvecs="sh_pe_le_vec sh_pei_le_vec"
1350
    targ_underscore=yes
1351
    ;;
1352
  sh-*-vxworks)
1353
    targ_defvec=sh_elf32_vxworks_vec
1354
    targ_selvecs="sh_elf32_vxworks_le_vec"
1355
    # FIXME None of the following are actually used on this target, but
1356
    # they're necessary for coff-sh.c (which is unconditionally used) to be
1357
    # compiled correctly.
1358
    targ_selvecs="$targ_selvecs sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1359
    targ_underscore=yes
1360
    ;;
1361
  sh-*-*)
1362
    targ_defvec=sh_coff_vec
1363
    targ_selvecs="sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1364
    targ_underscore=yes
1365
    ;;
1366
 
1367
  sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
1368
    # PR 27666: Do not include sparc_elf32_vec here.
1369
    targ_defvec=sparc_elf32_sol2_vec
1370
    ;;
1371
#ifdef BFD64
1372
  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
1373
    # PR 27666: Do not include sparc_elf32_vec or sparc_elf64_vec here.
1374
    targ_defvec=sparc_elf32_sol2_vec
1375
    targ_selvecs="sparc_elf64_sol2_vec"
1376
    want64=true
1377
    ;;
1378
  sparc64-*-haiku*)
1379
    targ_defvec=sparc_elf64_vec
1380
    targ_selvecs="sparc_elf64_vec sparc_elf32_vec"
1381
    want64=true
1382
    ;;
1383
  sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu)
1384
    targ_defvec=sparc_elf64_fbsd_vec
1385
    targ_selvecs="sparc_elf64_vec sparc_elf32_vec"
1386
    ;;
1387
  sparc64*-*-*)
1388
    targ_defvec=sparc_elf64_vec
1389
    targ_selvecs="sparc_elf32_vec"
1390
    want64=true
1391
    ;;
1392
#endif
1393
  sparc-*-linux-* | sparcv*-*-linux-*)
1394
    targ_defvec=sparc_elf32_vec
1395
    targ_selvecs="sparc_elf64_vec"
1396
    ;;
1397
  sparc-*-vxworks*)
1398
    targ_defvec=sparc_elf32_vxworks_vec
1399
    targ_selvecs="sparc_elf32_vec"
1400
    ;;
1401
  sparc*-*-*)
1402
    targ_defvec=sparc_elf32_vec
1403
    ;;
1404
 
1405
  spu-*-elf)
1406
    targ_defvec=spu_elf32_vec
1407
    want64=true
1408
    ;;
1409
 
1410
  tic6x-*-elf)
1411
    targ_defvec=tic6x_elf32_c6000_le_vec
1412
    targ_selvecs="tic6x_elf32_c6000_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec"
1413
    ;;
1414
 
1415
  tic6x-*-uclinux)
1416
    targ_defvec=tic6x_elf32_linux_le_vec
1417
    targ_selvecs="tic6x_elf32_linux_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec"
1418
    ;;
1419
 
1420
#ifdef BFD64
1421
  tilegx-*-*)
1422
    targ_defvec=tilegx_elf64_le_vec
1423
    targ_selvecs="tilegx_elf64_be_vec tilegx_elf32_be_vec tilegx_elf32_le_vec"
1424
    ;;
1425
  tilegxbe-*-*)
1426
    targ_defvec=tilegx_elf64_be_vec
1427
    targ_selvecs="tilegx_elf64_le_vec tilegx_elf32_be_vec tilegx_elf32_le_vec"
1428
    ;;
1429
#endif
1430
 
1431
  tilepro-*-*)
1432
    targ_defvec=tilepro_elf32_vec
1433
    ;;
1434
 
1435
  ft32*-*-*)
1436
    targ_defvec=ft32_elf32_vec
1437
    ;;
1438
 
1439
  v850*-*-*)
1440
    targ_defvec=v850_elf32_vec
1441
    targ_selvecs="v800_elf32_vec"
1442
    targ_underscore=yes
1443
    ;;
1444
 
1445
  vax-*-netbsdaout*)
1446
    targ_defvec=vax_aout_nbsd_vec
1447
    targ_selvecs="vax_elf32_vec vax_aout_1knbsd_vec"
1448
    targ_underscore=yes
1449
    ;;
1450
 
1451
  vax-*-netbsd*)
1452
    targ_defvec=vax_elf32_vec
1453
    targ_selvecs="vax_aout_nbsd_vec vax_aout_1knbsd_vec"
1454
    ;;
1455
 
1456
  vax-*-openbsd*)
1457
    targ_defvec=vax_aout_nbsd_vec
1458
    targ_underscore=yes
1459
    ;;
1460
 
1461
  vax-*-linux-*)
1462
    targ_defvec=vax_elf32_vec
1463
    ;;
1464
 
1465
  visium-*-elf)
1466
    targ_defvec=visium_elf32_vec
1467
    ;;
1468
 
1469
  wasm32-*-*)
1470
    targ_defvec=wasm32_elf32_vec
1471
    targ_selvecs="wasm_vec"
1472
    ;;
1473
 
1474
  xgate-*-*)
1475
    targ_defvec=xgate_elf32_vec
1476
    targ_selvecs="xgate_elf32_vec"
1477
    ;;
1478
 
1479
  xstormy16-*-elf)
1480
    targ_defvec=xstormy16_elf32_vec
1481
    ;;
1482
 
1483
  xtensa*-*-*)
1484
    targ_defvec=xtensa_elf32_le_vec
1485
    targ_selvecs=xtensa_elf32_be_vec
1486
    ;;
1487
 
1488
  z80-*-coff)
1489
    targ_defvec=z80_coff_vec
1490
    targ_underscore=no
1491
    ;;
1492
 
1493
  z80-*-elf)
1494
    targ_defvec=z80_elf32_vec
1495
    targ_underscore=no
1496
    ;;
1497
 
1498
  z8k*-*-*)
1499
    targ_defvec=z8k_coff_vec
1500
    targ_underscore=yes
1501
    ;;
1502
 
1503
#ifdef BFD64
1504
  loongarch32-*)
1505
    targ_defvec=loongarch_elf32_vec
1506
    targ_selvecs="loongarch_elf32_vec"
1507
    want64=true
1508
    ;;
1509
 
1510
  loongarch64-*)
1511
    targ_defvec=loongarch_elf64_vec
1512
    targ_selvecs="loongarch_elf32_vec loongarch_elf64_vec loongarch64_pei_vec"
1513
    want64=true
1514
    ;;
1515
#endif
1516
 
1517
# END OF targmatch.h
1518
  bpf-*-*)
1519
    echo "*** Configuration $targ is not fully supported." >&2
1520
    echo "*** Use bpf or bpf-*-none as the target instead." >&2
1521
    exit 1
1522
    ;;
1523
 
1524
  *)
1525
    echo 1>&2 "*** BFD does not support target ${targ}."
1526
    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
1527
    exit 1
1528
    ;;
1529
esac
1530
 
1531
# All MIPS ELF targets need a 64-bit bfd_vma.
1532
case "${targ_defvec} ${targ_selvecs}" in
1533
  *mips_elf*)
1534
    want64=true
1535
    ;;
1536
esac
1537
 
1538
case "${host64}${want64}" in
1539
  *true*)
1540
    targ_selvecs="${targ_selvecs} ${targ64_selvecs}"
1541
    ;;
1542
esac
1543
 
1544
# If we support any ELF target, then automatically add support for the
1545
# generic ELF targets.  This permits an objdump with some ELF support
1546
# to be used on an arbitrary ELF file for anything other than
1547
# relocation information.
1548
case "${targ_defvec} ${targ_selvecs}" in
1549
  *elf64* | *mips_elf32_n*)
1550
    targ_selvecs="${targ_selvecs} elf64_le_vec elf64_be_vec elf32_le_vec elf32_be_vec"
1551
    ;;
1552
  *elf32*)
1553
    targ_selvecs="${targ_selvecs} elf32_le_vec elf32_be_vec"
1554
    ;;
1555
esac
1556
 
1557
# If we support Intel MCU target, then add support for bfd_iamcu_arch.
1558
case "${targ_defvec} ${targ_selvecs}" in
1559
  *iamcu_elf32*)
1560
    targ_archs="$targ_archs bfd_iamcu_arch"
1561
    ;;
1562
esac
1563
 
1564
case "${targ}" in
1565
  mipsisa32r6* | mipsisa64r6*)
1566
    targ_cflags="$targ_cflags -DMIPS_DEFAULT_R6=1"
1567
    ;;
1568
esac