xref: /netbsd-src/external/gpl3/binutils/dist/bfd/config.bfd (revision f89f6560d453f5e37386cc7938c072d2f528b9fa)
1# config.bfd
2# Convert a canonical host type into a BFD host type.
3# Set shell variable targ to canonical target name, and run
4# using ``. config.bfd''.
5# Sets the following shell variables:
6#  targ_defvec		Default vector for this target
7#  targ_selvecs		Vectors to build for this target
8#  targ64_selvecs	Vectors to build if --enable-64-bit-bfd is given
9#			or if host is 64 bit.
10#  targ_archs		Architectures for this target
11#  targ_cflags		$(CFLAGS) for this target (FIXME: pretty bogus)
12#  targ_underscore	Whether underscores are used: yes or no
13
14# Part of this file is processed by targmatch.sed to generate the
15# targmatch.h file.  The #ifdef and #endif lines that appear below are
16# copied directly into targmatch.h.
17
18# The binutils c++filt program wants to know whether underscores are
19# stripped or not.  That is why we set targ_underscore.  c++filt uses
20# this information to choose a default.  This information is
21# duplicated in the symbol_leading_char field of the BFD target
22# vector, but c++filt does not deal with object files and is not
23# linked against libbfd.a.  It is not terribly important that c++filt
24# get this right; it is just convenient.
25
26targ_defvec=
27targ_selvecs=
28targ64_selvecs=
29targ_cflags=
30targ_underscore=no
31
32# Catch obsolete configurations.
33case $targ in
34 null)
35    if test "x$enable_obsolete" != xyes; then
36      echo "*** Configuration $targ is obsolete." >&2
37      echo "*** Specify --enable-obsolete to build it anyway." >&2
38      echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2
39      echo "*** unless a maintainer comes forward." >&2
40      exit 1
41    fi;;
42esac
43
44case $targ in
45 m68*-apple-aux* | \
46 m68*-apollo-* | \
47 m68*-bull-sysv* | \
48 m68*-*-rtemscoff* | \
49 maxq-*-coff | \
50 i960-*-rtems* | \
51 or32-*-rtems* | \
52 m68*-*-lynxos* | \
53 sparc-*-lynxos* | \
54 vax-*-vms* | \
55 arm-*-oabi | \
56 a29k-* | \
57 hppa*-*-rtems* | \
58 *-go32-rtems* | \
59 i[3-7]86*-*-rtemscoff* | \
60 mips*el-*-rtems* | \
61 powerpcle-*-rtems* | \
62 sparc*-*-rtemsaout* | \
63 null)
64    echo "*** Configuration $targ is obsolete." >&2
65    echo "*** Support has been REMOVED." >&2
66    exit 1
67    ;;
68esac
69
70targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
71case "${targ_cpu}" in
72aarch64*)	 targ_archs="bfd_aarch64_arch bfd_arm_arch";;
73alpha*)		 targ_archs=bfd_alpha_arch ;;
74am34*|am33_2.0*) targ_archs=bfd_mn10300_arch ;;
75arm*)		 targ_archs=bfd_arm_arch ;;
76bfin*)		 targ_archs=bfd_bfin_arch ;;
77c30*)		 targ_archs=bfd_tic30_arch ;;
78c4x*)		 targ_archs=bfd_tic4x_arch ;;
79c54x*)		 targ_archs=bfd_tic54x_arch ;;
80cr16*)		 targ_archs=bfd_cr16_arch ;;
81crisv32)	 targ_archs=bfd_cris_arch ;;
82crx*)		 targ_archs=bfd_crx_arch ;;
83dlx*)		 targ_archs=bfd_dlx_arch ;;
84fido*)		 targ_archs=bfd_m68k_arch ;;
85hppa*)		 targ_archs=bfd_hppa_arch ;;
86i[3-7]86)	 targ_archs=bfd_i386_arch ;;
87i370)		 targ_archs=bfd_i370_arch ;;
88lm32)	         targ_archs=bfd_lm32_arch ;;
89m5200|m5407)	 targ_archs=bfd_m68k_arch ;;
90m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
91m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
92m68*)		 targ_archs=bfd_m68k_arch ;;
93m88*)		 targ_archs=bfd_m88k_arch ;;
94microblaze*)	 targ_archs=bfd_microblaze_arch ;;
95mips*)		 targ_archs=bfd_mips_arch ;;
96or1k*)		 targ_archs=bfd_or1k_arch ;;
97pdp11*)		 targ_archs=bfd_pdp11_arch ;;
98pj*)		 targ_archs="bfd_pj_arch bfd_i386_arch";;
99powerpc*)	 targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
100riscv*)		 targ_archs=bfd_riscv_arch ;;
101rs6000)		 targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
102s390*)		 targ_archs=bfd_s390_arch ;;
103sh*)		 targ_archs=bfd_sh_arch ;;
104sparc*)		 targ_archs=bfd_sparc_arch ;;
105spu*)            targ_archs=bfd_spu_arch ;;
106tilegx*)	 targ_archs=bfd_tilegx_arch ;;
107tilepro*)	 targ_archs=bfd_tilepro_arch ;;
108v850*)		 targ_archs=bfd_v850_arch ;;
109x86_64*)	 targ_archs=bfd_i386_arch ;;
110xtensa*)	 targ_archs=bfd_xtensa_arch ;;
111xgate)		 targ_archs=bfd_xgate_arch ;;
112z80|r800)	 targ_archs=bfd_z80_arch ;;
113z8k*)		 targ_archs=bfd_z8k_arch ;;
114*)		 targ_archs=bfd_${targ_cpu}_arch ;;
115esac
116
117
118# WHEN ADDING ENTRIES TO THIS MATRIX:
119#  Make sure that the left side always has two dashes.  Otherwise you
120#  can get spurious matches.  Even for unambiguous cases, do this as a
121#  convention, else the table becomes a real mess to understand and maintain.
122#
123#  Keep obsolete entries above the START comment, to keep them out of
124#  targmatch.h.
125
126case "${targ}" in
127  mips*-dec-bsd*)
128    echo "This target is obsolete and has been removed."
129    exit 1
130    ;;
131
132  mips*-*-mach3*)
133    echo "This target is obsolete and has been removed."
134    exit 1
135    ;;
136
137  mips*-*-pe*)
138    echo "This target is obsolete and has been removed."
139    exit 1
140    ;;
141
142  plugin)
143    targ_defvec=plugin_vec
144    targ_selvecs="plugin_vec"
145    ;;
146
147# START OF targmatch.h
148#ifdef BFD64
149  aarch64-*-elf)
150    targ_defvec=bfd_elf64_littleaarch64_vec
151    targ_selvecs="bfd_elf64_bigaarch64_vec bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
152    want64=true
153    ;;
154  aarch64_be-*-elf)
155    targ_defvec=bfd_elf64_bigaarch64_vec
156    targ_selvecs="bfd_elf64_littleaarch64_vec bfd_elf32_bigarm_vec bfd_elf32_littlearm_vec"
157    want64=true
158    ;;
159  aarch64-*-linux*)
160    targ_defvec=bfd_elf64_littleaarch64_vec
161    targ_selvecs="bfd_elf64_bigaarch64_vec bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
162    want64=true
163    ;;
164  aarch64_be-*-linux*)
165    targ_defvec=bfd_elf64_bigaarch64_vec
166    targ_selvecs="bfd_elf64_littleaarch64_vec bfd_elf32_bigarm_vec bfd_elf32_littlearm_vec"
167    want64=true
168    ;;
169  aarch64-*-netbsd*)
170    targ_defvec=bfd_elf64_littleaarch64_vec
171    targ_selvecs="bfd_elf64_bigaarch64_vec bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
172    want64=true
173    ;;
174  aarch64_be-*-netbsd*)
175    targ_defvec=bfd_elf64_bigaarch64_vec
176    targ_selvecs="bfd_elf64_littleaarch64_vec bfd_elf32_bigarm_vec bfd_elf32_littlearm_vec"
177    want64=true
178    ;;
179  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
180    targ_defvec=bfd_elf64_alpha_freebsd_vec
181    targ_selvecs="bfd_elf64_alpha_vec ecoffalpha_little_vec"
182    want64=true
183    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
184    case "${targ}" in
185      alpha*-*-freebsd3* | alpha*-*-freebsd4 | alpha*-*-freebsd4.0*)
186	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
187    esac
188    ;;
189  alpha*-*-netbsd* | alpha*-*-openbsd*)
190    targ_defvec=bfd_elf64_alpha_vec
191    targ_selvecs=ecoffalpha_little_vec
192    want64=true
193    ;;
194  alpha*-*-netware*)
195    targ_defvec=ecoffalpha_little_vec
196    targ_selvecs=nlm32_alpha_vec
197    want64=true
198    ;;
199  alpha*-*-linuxecoff*)
200    targ_defvec=ecoffalpha_little_vec
201    targ_selvecs=bfd_elf64_alpha_vec
202    want64=true
203    ;;
204  alpha*-*-linux-* | alpha*-*-elf*)
205    targ_defvec=bfd_elf64_alpha_vec
206    targ_selvecs=ecoffalpha_little_vec
207    want64=true
208    ;;
209  alpha*-*-*vms*)
210    targ_defvec=vms_alpha_vec
211    targ_selvecs=vms_lib_txt_vec
212    want64=true
213    ;;
214  alpha*-*-*)
215    targ_defvec=ecoffalpha_little_vec
216    want64=true
217    ;;
218  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
219    targ_defvec=bfd_elf64_ia64_little_vec
220    targ_selvecs="bfd_elf64_ia64_big_vec bfd_pei_ia64_vec"
221    want64=true
222    ;;
223  ia64*-*-hpux*)
224    targ_defvec=bfd_elf32_ia64_hpux_big_vec
225    targ_selvecs="bfd_elf64_ia64_hpux_big_vec"
226    want64=true
227    ;;
228  ia64*-*-*vms*)
229    targ_defvec=bfd_elf64_ia64_vms_vec
230    targ_selvecs=vms_lib_txt_vec
231    want64=true
232    ;;
233  sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu)
234    targ_defvec=bfd_elf64_sparc_freebsd_vec
235    targ_selvecs="bfd_elf64_sparc_vec bfd_elf32_sparc_vec sunos_big_vec"
236    ;;
237  sparc64-*-netbsd* | sparc64-*-openbsd*)
238    targ_defvec=bfd_elf64_sparc_vec
239    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
240    want64=true
241    ;;
242#endif /* BFD64 */
243
244  am34-*-linux* | am33_2.0-*-linux*)
245    targ_defvec=bfd_elf32_am33lin_vec
246    ;;
247
248  arc-*-elf*)
249    targ_defvec=bfd_elf32_littlearc_vec
250    targ_selvecs=bfd_elf32_bigarc_vec
251    ;;
252
253  arm-*-nacl*)
254    targ_defvec=bfd_elf32_littlearm_nacl_vec
255    targ_selvecs="bfd_elf32_bigarm_nacl_vec bfd_elf32_i386_nacl_vec"
256    targ64_selvecs="bfd_elf32_x86_64_nacl_vec bfd_elf64_x86_64_nacl_vec"
257    targ_archs="$targ_archs bfd_i386_arch"
258    ;;
259  armeb-*-nacl*)
260    targ_defvec=bfd_elf32_bigarm_nacl_vec
261    targ_selvecs="bfd_elf32_littlearm_nacl_vec bfd_elf32_i386_nacl_vec"
262    targ64_selvecs="bfd_elf32_x86_64_nacl_vec bfd_elf64_x86_64_nacl_vec"
263    targ_archs="$targ_archs bfd_i386_arch"
264    ;;
265  arm*eb-*-netbsdelf*)
266    targ_defvec=bfd_elf32_bigarm_vec
267    targ_selvecs="bfd_elf32_littlearm_vec armnetbsd_vec armcoff_little_vec armcoff_big_vec"
268    ;;
269  arm*-*-netbsdelf*)
270    targ_defvec=bfd_elf32_littlearm_vec
271    targ_selvecs="bfd_elf32_bigarm_vec armnetbsd_vec armcoff_little_vec armcoff_big_vec"
272    ;;
273  arm-*-netbsd* | arm-*-openbsd*)
274    targ_defvec=armnetbsd_vec
275    targ_selvecs="bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec armcoff_little_vec armcoff_big_vec"
276    targ_underscore=yes
277    targ_cflags=-D__QNXTARGET__
278    ;;
279  arm-*-nto* | nto*arm*)
280    targ_defvec=bfd_elf32_littlearm_vec
281    targ_selvecs=bfd_elf32_bigarm_vec
282    ;;
283  arm-*-riscix*)
284    targ_defvec=riscix_vec
285    ;;
286  arm-epoc-pe*)
287    targ_defvec=arm_epoc_pe_little_vec
288    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
289    targ_underscore=no
290    targ_cflags=-DARM_COFF_BUGFIX
291    ;;
292  arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
293    targ_defvec=arm_wince_pe_little_vec
294    targ_selvecs="arm_wince_pe_little_vec arm_wince_pe_big_vec arm_wince_pei_little_vec arm_wince_pei_big_vec"
295    targ_underscore=no
296    targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
297    ;;
298  arm-*-pe*)
299    targ_defvec=armpe_little_vec
300    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
301    targ_underscore=yes
302    ;;
303  arm-*-aout | armel-*-aout)
304    targ_defvec=aout_arm_little_vec
305    targ_selvecs=aout_arm_big_vec
306    ;;
307  armeb-*-aout)
308    targ_defvec=aout_arm_big_vec
309    targ_selvecs=aout_arm_little_vec
310    ;;
311  arm-*-coff)
312    targ_defvec=armcoff_little_vec
313    targ_selvecs=armcoff_big_vec
314    targ_underscore=yes
315    ;;
316  arm-*-rtems*)
317    targ_defvec=bfd_elf32_littlearm_vec
318    targ_selvecs=bfd_elf32_bigarm_vec
319    ;;
320  armeb-*-elf | arm*b-*-linux-*)
321    targ_defvec=bfd_elf32_bigarm_vec
322    targ_selvecs=bfd_elf32_littlearm_vec
323    ;;
324  arm-*-kaos*)
325    targ_defvec=bfd_elf32_littlearm_vec
326    targ_selvecs=bfd_elf32_bigarm_vec
327    ;;
328  arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
329  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
330  arm*-*-eabi* )
331    targ_defvec=bfd_elf32_littlearm_vec
332    targ_selvecs=bfd_elf32_bigarm_vec
333    ;;
334  arm*-*-vxworks | arm*-*-windiss)
335    targ_defvec=bfd_elf32_littlearm_vxworks_vec
336    targ_selvecs=bfd_elf32_bigarm_vxworks_vec
337    ;;
338  arm*-*-symbianelf*)
339    targ_defvec=bfd_elf32_littlearm_symbian_vec
340    targ_selvecs=bfd_elf32_bigarm_symbian_vec
341    ;;
342  arm9e-*-elf)
343    targ_defvec=bfd_elf32_littlearm_vec
344    targ_selvecs=bfd_elf32_bigarm_vec
345    ;;
346
347  avr-*-*)
348    targ_defvec=bfd_elf32_avr_vec
349    ;;
350
351  bfin-*-*)
352    targ_defvec=bfd_elf32_bfin_vec
353    targ_selvecs=bfd_elf32_bfinfdpic_vec
354    targ_underscore=yes
355    ;;
356
357  c30-*-*aout* | tic30-*-*aout*)
358    targ_defvec=tic30_aout_vec
359    ;;
360  c30-*-*coff* | tic30-*-*coff*)
361    targ_defvec=tic30_coff_vec
362    ;;
363
364  c4x-*-*coff* | tic4x-*-*coff* | tic4x-*-rtems*)
365    targ_defvec=tic4x_coff1_vec
366    targ_selvecs="tic4x_coff1_beh_vec tic4x_coff2_vec tic4x_coff2_beh_vec tic4x_coff0_vec tic4x_coff0_beh_vec"
367    targ_underscore=yes
368    ;;
369
370  c54x*-*-*coff* | tic54x-*-*coff*)
371    targ_defvec=tic54x_coff1_vec
372    targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec"
373    targ_underscore=yes
374    ;;
375
376  cr16-*-elf*)
377    targ_defvec=bfd_elf32_cr16_vec
378    targ_underscore=yes
379    ;;
380
381  cr16c-*-elf*)
382    targ_defvec=bfd_elf32_cr16c_vec
383    targ_underscore=yes
384    ;;
385
386  cris-*-* | crisv32-*-*)
387    targ_defvec=cris_aout_vec
388    targ_selvecs="bfd_elf32_us_cris_vec bfd_elf32_cris_vec ieee_vec"
389    targ_underscore=yes # Note: not true for bfd_elf32_cris_vec.
390    ;;
391
392  crx-*-elf*)
393    targ_defvec=bfd_elf32_crx_vec
394    targ_underscore=yes
395    ;;
396
397  d10v-*-*)
398    targ_defvec=bfd_elf32_d10v_vec
399    ;;
400
401  dlx-*-elf*)
402    targ_defvec=bfd_elf32_dlx_big_vec
403    targ_selvecs="bfd_elf32_dlx_big_vec"
404    ;;
405
406  d30v-*-*)
407    targ_defvec=bfd_elf32_d30v_vec
408    ;;
409
410  epiphany-*-elf)
411    targ_defvec=bfd_elf32_epiphany_vec
412    ;;
413
414  fido-*-elf* )
415    targ_defvec=bfd_elf32_m68k_vec
416    targ_selvecs="m68kcoff_vec ieee_vec"
417    ;;
418
419  fr30-*-elf)
420    targ_defvec=bfd_elf32_fr30_vec
421    ;;
422
423  frv-*-elf)
424    targ_defvec=bfd_elf32_frv_vec
425    targ_selvecs=bfd_elf32_frvfdpic_vec
426    ;;
427
428  frv-*-*linux*)
429    targ_defvec=bfd_elf32_frvfdpic_vec
430    targ_selvecs=bfd_elf32_frv_vec
431    ;;
432
433  moxie-*-elf | moxie-*-rtems | moxie-*-uclinux)
434    targ_defvec=bfd_elf32_moxie_vec
435    ;;
436
437  h8300*-*-rtemscoff*)
438    targ_defvec=h8300coff_vec
439    targ_underscore=yes
440    ;;
441
442  h8300*-*-elf | h8300*-*-rtems*)
443    targ_defvec=bfd_elf32_h8300_vec
444    targ_underscore=yes
445    ;;
446
447  h8300*-*-*)
448    targ_defvec=h8300coff_vec
449    targ_underscore=yes
450    ;;
451
452  h8500-*-*)
453    targ_defvec=h8500coff_vec
454    targ_underscore=yes
455    ;;
456
457#ifdef BFD64
458  hppa*64*-*-linux-*)
459    targ_defvec=bfd_elf64_hppa_linux_vec
460    targ_selvecs=bfd_elf64_hppa_vec
461    want64=true
462    ;;
463  hppa*64*-*-hpux11*)
464    targ_defvec=bfd_elf64_hppa_vec
465    targ_selvecs=bfd_elf64_hppa_linux_vec
466    targ_cflags=-DHPUX_LARGE_AR_IDS
467    want64=true
468    ;;
469#endif
470
471  hppa*-*-linux-*)
472    targ_defvec=bfd_elf32_hppa_linux_vec
473    targ_selvecs=bfd_elf32_hppa_vec
474    ;;
475  hppa*-*-netbsd*)
476    targ_defvec=bfd_elf32_hppa_nbsd_vec
477    targ_selvecs="bfd_elf32_hppa_vec bfd_elf32_hppa_linux_vec"
478    ;;
479  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-openbsd*)
480    targ_defvec=bfd_elf32_hppa_vec
481    targ_selvecs=bfd_elf32_hppa_linux_vec
482    ;;
483
484  hppa*-*-bsd*)
485    targ_defvec=som_vec
486    targ_selvecs=bfd_elf32_hppa_vec
487    ;;
488  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
489    targ_defvec=som_vec
490    ;;
491  hppa*-*-osf*)
492    targ_defvec=som_vec
493    targ_selvecs=bfd_elf32_hppa_vec
494    ;;
495
496  i370-*-*)
497    targ_defvec=bfd_elf32_i370_vec
498    targ_selvecs="bfd_elf32_i370_vec"
499    ;;
500  i[3-7]86-*-sco3.2v5*coff)
501    targ_defvec=i386coff_vec
502    targ_selvecs=bfd_elf32_i386_vec
503    ;;
504  i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \
505  i[3-7]86-*-elf | i[3-7]86-*-sco3.2v5* | \
506  i[3-7]86-*-dgux* | i[3-7]86-*-sysv5*)
507    targ_defvec=bfd_elf32_i386_vec
508    targ_selvecs=i386coff_vec
509    ;;
510  i[3-7]86-*-solaris2*)
511    targ_defvec=bfd_elf32_i386_sol2_vec
512    targ_selvecs="i386coff_vec"
513    targ64_selvecs="bfd_elf64_x86_64_sol2_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
514    want64=true
515    ;;
516#ifdef BFD64
517  x86_64-*-solaris2*)
518    targ_defvec=bfd_elf32_i386_sol2_vec
519    targ_selvecs="bfd_elf64_x86_64_sol2_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386coff_vec"
520    want64=true
521    ;;
522#endif
523  i[3-7]86-*-kaos*)
524    targ_defvec=bfd_elf32_i386_vec
525    targ_selvecs=bfd_elf32_i386_vec
526    ;;
527  i[3-7]86-*-nto*)
528    targ_defvec=bfd_elf32_i386_vec
529    targ_selvecs=i386coff_vec
530    ;;
531  i[3-7]86-*-aros*)
532    targ_defvec=bfd_elf32_i386_vec
533    ;;
534  i[3-7]86-*-chorus*)
535    targ_defvec=bfd_elf32_i386_vec
536    ;;
537  i[3-7]86-*-dicos*)
538    targ_defvec=bfd_elf32_i386_vec
539    targ64_selvecs="bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
540    ;;
541  *-*-msdosdjgpp* | *-*-go32* )
542    targ_defvec=go32coff_vec
543    targ_selvecs="go32stubbedcoff_vec i386aout_vec"
544    ;;
545  i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \
546  i[3-7]86-*-aix*)
547    targ_defvec=i386coff_vec
548    ;;
549  i[3-7]86-*-rtems*)
550    targ_defvec=bfd_elf32_i386_vec
551    targ_selvecs="i386coff_vec i386aout_vec"
552    ;;
553  i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
554    targ_defvec=mach_o_i386_vec
555    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
556    targ64_selvecs=mach_o_x86_64_vec
557    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
558    ;;
559  i[3-7]86-sequent-bsd*)
560    targ_defvec=i386dynix_vec
561    targ_underscore=yes
562    ;;
563  i[3-7]86-*-bsd*)
564    targ_defvec=i386bsd_vec
565    targ_underscore=yes
566    ;;
567  i[3-7]86-*-dragonfly*)
568    targ_defvec=bfd_elf32_i386_vec
569    targ64_selvecs="bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
570    ;;
571  i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \
572  i[3-7]86-*-freebsd[12])
573    targ_defvec=i386freebsd_vec
574    targ_selvecs=i386bsd_vec
575    targ_underscore=yes
576    ;;
577  i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
578    targ_defvec=bfd_elf32_i386_freebsd_vec
579    targ_selvecs="bfd_elf32_i386_vec i386pei_vec i386coff_vec"
580    targ64_selvecs="bfd_elf64_x86_64_freebsd_vec bfd_elf64_x86_64_vec x86_64pei_vec bfd_elf64_l1om_vec bfd_elf64_l1om_freebsd_vec bfd_elf64_k1om_vec bfd_elf64_k1om_freebsd_vec"
581    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
582    case "${targ}" in
583      i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*)
584	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
585    esac
586    ;;
587  i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu)
588    targ_defvec=bfd_elf32_i386_vec
589    targ_selvecs="i386netbsd_vec i386coff_vec i386pei_vec"
590    targ64_selvecs="bfd_elf64_x86_64_vec x86_64pei_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
591    ;;
592  i[3-7]86-*-netbsdpe*)
593    targ_defvec=i386pe_vec
594    targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec"
595    ;;
596  i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \
597  i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3])
598    targ_defvec=i386netbsd_vec
599    targ_selvecs="bfd_elf32_i386_vec i386bsd_vec"
600    targ_underscore=yes
601    ;;
602  i[3-7]86-*-openbsd*)
603    targ_defvec=bfd_elf32_i386_vec
604    targ_selvecs=i386netbsd_vec
605    ;;
606  i[3-7]86-*-netware*)
607    targ_defvec=bfd_elf32_i386_vec
608    targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
609    ;;
610  i[3-7]86-*-linux*aout*)
611    targ_defvec=i386linux_vec
612    targ_selvecs=bfd_elf32_i386_vec
613    targ_underscore=yes
614    ;;
615  i[3-7]86-*-linux-*)
616    targ_defvec=bfd_elf32_i386_vec
617    targ_selvecs="i386linux_vec i386pei_vec"
618    targ64_selvecs="bfd_elf64_x86_64_vec bfd_elf32_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
619    ;;
620  i[3-7]86-*-nacl*)
621    targ_defvec=bfd_elf32_i386_nacl_vec
622    targ_selvecs="bfd_elf32_bigarm_nacl_vec bfd_elf32_littlearm_nacl_vec"
623    targ64_selvecs="bfd_elf64_x86_64_nacl_vec bfd_elf32_x86_64_nacl_vec"
624    targ_archs="$targ_archs bfd_arm_arch"
625    ;;
626#ifdef BFD64
627  x86_64-*-darwin*)
628    targ_defvec=mach_o_x86_64_vec
629    targ_selvecs="mach_o_i386_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
630    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
631    want64=true
632    ;;
633  x86_64-*-dicos*)
634    targ_defvec=bfd_elf64_x86_64_vec
635    targ_selvecs="bfd_elf32_i386_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
636    want64=true
637    ;;
638  x86_64-*-elf*)
639    targ_defvec=bfd_elf64_x86_64_vec
640    targ_selvecs="bfd_elf32_i386_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386coff_vec"
641    want64=true
642    ;;
643  x86_64-*-dragonfly*)
644    targ_defvec=bfd_elf64_x86_64_vec
645    targ_selvecs="bfd_elf32_i386_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
646    want64=true
647    ;;
648  x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
649    targ_defvec=bfd_elf64_x86_64_freebsd_vec
650    targ_selvecs="bfd_elf32_i386_freebsd_vec i386coff_vec i386pei_vec x86_64pei_vec bfd_elf32_i386_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_l1om_freebsd_vec bfd_elf64_k1om_vec bfd_elf64_k1om_freebsd_vec"
651    want64=true
652    ;;
653  x86_64-*-netbsd* | x86_64-*-openbsd*)
654    targ_defvec=bfd_elf64_x86_64_vec
655    targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
656    want64=true
657    ;;
658  x86_64-*-linux-*)
659    targ_defvec=bfd_elf64_x86_64_vec
660    targ_selvecs="bfd_elf32_i386_vec bfd_elf32_x86_64_vec i386linux_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
661    want64=true
662    ;;
663  x86_64-*-nacl*)
664    targ_defvec=bfd_elf32_x86_64_nacl_vec
665    targ_selvecs="bfd_elf32_i386_nacl_vec bfd_elf64_x86_64_nacl_vec bfd_elf32_bigarm_nacl_vec bfd_elf32_littlearm_nacl_vec"
666    targ_archs="$targ_archs bfd_arm_arch"
667    want64=true
668    ;;
669  x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep)
670    targ_defvec=x86_64pe_vec
671    targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386pe_vec i386pei_vec bfd_elf32_i386_vec"
672    want64=true
673    targ_underscore=no
674    ;;
675#endif
676  i[3-7]86-*-lynxos*)
677    targ_defvec=bfd_elf32_i386_vec
678    targ_selvecs="i386lynx_coff_vec i386lynx_aout_vec"
679    ;;
680  i[3-7]86-*-gnu*)
681    targ_defvec=bfd_elf32_i386_vec
682    ;;
683  i[3-7]86-*-mach* | i[3-7]86-*-osf1mk*)
684    targ_defvec=i386mach3_vec
685    targ_cflags=-DSTAT_FOR_EXEC
686    targ_underscore=yes
687    ;;
688  i[3-7]86-*-os9k)
689    targ_defvec=i386os9k_vec
690    ;;
691  i[3-7]86-*-msdos*)
692    targ_defvec=i386aout_vec
693    targ_selvecs=i386msdos_vec
694    ;;
695  i[3-7]86-*-moss*)
696    targ_defvec=bfd_elf32_i386_vec
697    targ_selvecs="i386msdos_vec i386aout_vec"
698    ;;
699  i[3-7]86-*-beospe*)
700    targ_defvec=i386pe_vec
701    targ_selvecs="i386pe_vec i386pei_vec"
702    ;;
703  i[3-7]86-*-beoself* | i[3-7]86-*-beos*)
704    targ_defvec=bfd_elf32_i386_vec
705    targ_selvecs="i386pe_vec i386pei_vec"
706    ;;
707  i[3-7]86-*-interix*)
708    targ_defvec=i386pei_vec
709    targ_selvecs="i386pe_vec"
710    # FIXME: This should eventually be checked at runtime.
711    targ_cflags=-DSTRICT_PE_FORMAT
712    ;;
713  i[3-7]86-*-rdos*)
714    targ_defvec=bfd_elf32_i386_vec
715    targ_selvecs=i386coff_vec
716    ;;
717  i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe)
718    targ_defvec=i386pe_vec
719    targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec"
720    targ_underscore=yes
721    ;;
722  i[3-7]86-none-*)
723    targ_defvec=i386coff_vec
724    ;;
725  i[3-7]86-*-aout* | i[3-7]86*-*-vsta*)
726    targ_defvec=i386aout_vec
727    ;;
728  i[3-7]86-*-vxworks*)
729    targ_defvec=bfd_elf32_i386_vxworks_vec
730    targ_underscore=yes
731    ;;
732  i[3-7]86-*-chaos)
733    targ_defvec=bfd_elf32_i386_vec
734    targ_selfvecs=i386chaos_vec
735    ;;
736
737  i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
738    targ_defvec=i860coff_vec
739    ;;
740  i860-stardent-sysv4* | i860-stardent-elf*)
741    targ_defvec=bfd_elf32_i860_little_vec
742    targ_selvecs="bfd_elf32_i860_vec bfd_elf32_i860_little_vec"
743    ;;
744  i860-*-sysv4* | i860-*-elf*)
745    targ_defvec=bfd_elf32_i860_vec
746    ;;
747
748  i960-*-vxworks4* | i960-*-vxworks5.0)
749    targ_defvec=b_out_vec_little_host
750    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
751    targ_underscore=yes
752    ;;
753  i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv*)
754    targ_defvec=icoff_little_vec
755    targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
756    targ_underscore=yes
757    ;;
758  i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
759    targ_defvec=b_out_vec_little_host
760    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
761    targ_underscore=yes
762    ;;
763  i960-*-elf*)
764    targ_defvec=bfd_elf32_i960_vec
765    targ_selvecs="icoff_little_vec icoff_big_vec"
766    ;;
767
768  ip2k-*-elf)
769    targ_defvec=bfd_elf32_ip2k_vec
770    ;;
771
772  iq2000-*-elf)
773    targ_defvec=bfd_elf32_iq2000_vec
774    ;;
775
776  lm32-*-elf | lm32-*-rtems*)
777    targ_defvec=bfd_elf32_lm32_vec
778    targ_selvecs=bfd_elf32_lm32fdpic_vec
779    ;;
780
781  lm32-*-*linux*)
782    targ_defvec=bfd_elf32_lm32fdpic_vec
783    targ_selvecs=bfd_elf32_lm32_vec
784    ;;
785
786  m32c-*-elf | m32c-*-rtems*)
787    targ_defvec=bfd_elf32_m32c_vec
788    ;;
789
790  m32r*le-*-linux*)
791    targ_defvec=bfd_elf32_m32rlelin_vec
792    targ_selvecs="bfd_elf32_m32rlin_vec  bfd_elf32_m32rlelin_vec"
793    ;;
794  m32r*-*-linux*)
795    targ_defvec=bfd_elf32_m32rlin_vec
796    targ_selvecs="bfd_elf32_m32rlin_vec  bfd_elf32_m32rlelin_vec"
797    ;;
798  m32r*le-*-*)
799    targ_defvec=bfd_elf32_m32rle_vec
800    targ_selvecs="bfd_elf32_m32r_vec bfd_elf32_m32rle_vec"
801    ;;
802  m32r-*-*)
803    targ_defvec=bfd_elf32_m32r_vec
804    ;;
805
806  m68hc11-*-* | m6811-*-*)
807    targ_defvec=bfd_elf32_m68hc11_vec
808    targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
809    ;;
810  m68hc12-*-* | m6812-*-*)
811    targ_defvec=bfd_elf32_m68hc12_vec
812    targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
813    ;;
814
815  m68*-motorola-sysv*)
816    targ_defvec=m68ksysvcoff_vec
817    ;;
818  m68*-hp-bsd*)
819    targ_defvec=hp300bsd_vec
820    targ_underscore=yes
821    ;;
822  m68*-*-aout*)
823    targ_defvec=aout0_big_vec
824    # We include cisco_core_big_vec here, rather than making a separate cisco
825    # configuration, so that cisco-core.c gets routinely tested at
826    # least for compilation.
827    targ_selvecs="cisco_core_big_vec ieee_vec"
828    targ_underscore=yes
829    ;;
830  m68*-*-elf* | m68*-*-sysv4* | m68*-*-uclinux*)
831    targ_defvec=bfd_elf32_m68k_vec
832    targ_selvecs="m68kcoff_vec ieee_vec"
833    ;;
834  m68*-*-rtems*)
835    targ_defvec=bfd_elf32_m68k_vec
836    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
837    ;;
838  m68*-*-coff* | m68*-*-sysv*)
839    targ_defvec=m68kcoff_vec
840    targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
841    ;;
842  m68*-*-hpux*)
843    targ_defvec=hp300hpux_vec
844    targ_underscore=yes
845    ;;
846  m68*-*-linux*aout*)
847    targ_defvec=m68klinux_vec
848    targ_selvecs=bfd_elf32_m68k_vec
849    targ_underscore=yes
850    ;;
851  m68*-*-linux-*)
852    targ_defvec=bfd_elf32_m68k_vec
853    targ_selvecs=m68klinux_vec
854    ;;
855  m68*-*-gnu*)
856    targ_defvec=bfd_elf32_m68k_vec
857    # targ_selvecs=m68kmach3_vec
858    # targ_cflags=-DSTAT_FOR_EXEC
859    ;;
860  m68k4k*-*-netbsd*)
861    targ_defvec=m68k4knetbsd_vec
862    targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec bfd_elf32_m68k_vec"
863    targ_underscore=yes
864    ;;
865  m68*-*-netbsdelf* | m5407-*-netbsdelf*)
866    targ_defvec=bfd_elf32_m68k_vec
867    targ_selvecs="m68knetbsd_vec m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
868    ;;
869  m68*-*-netbsdaout* | m68*-*-netbsd*)
870    targ_defvec=m68knetbsd_vec
871    targ_selvecs="m68k4knetbsd_vec bfd_elf32_m68k_vec hp300bsd_vec sunos_big_vec"
872    targ_underscore=yes
873    ;;
874  m68*-*-openbsd*)
875    targ_defvec=m68knetbsd_vec
876    targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
877    targ_underscore=yes
878    ;;
879  m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
880  m68*-*-bsd* | m68*-*-vsta*)
881    targ_defvec=sunos_big_vec
882    targ_underscore=yes
883    ;;
884  m68*-ericsson-*)
885    targ_defvec=sunos_big_vec
886    targ_selvecs="m68kcoff_vec versados_vec tekhex_vec"
887    targ_underscore=yes
888    ;;
889  m68*-cbm-*)
890    targ_defvec=bfd_elf32_m68k_vec
891    targ_selvecs=m68kcoff_vec
892    ;;
893  m68*-*-psos*)
894    targ_defvec=bfd_elf32_m68k_vec
895    targ_selvecs=ieee_vec
896    targ_underscore=yes
897    ;;
898
899  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
900    targ_defvec=bfd_elf32_m88k_vec
901    targ_selvecs=m88kbcs_vec
902    ;;
903  m88*-*-mach3*)
904    targ_defvec=m88kmach3_vec
905    targ_cflags=-DSTAT_FOR_EXEC
906    ;;
907  m88*-*-openbsd*)
908   targ_defvec=m88kopenbsd_vec
909   targ_underscore=yes
910   ;;
911  m88*-*-*)
912    targ_defvec=m88kbcs_vec
913    targ_underscore=yes
914    ;;
915
916  mcore-*-elf)
917    targ_defvec=bfd_elf32_mcore_big_vec
918    targ_selvecs="bfd_elf32_mcore_big_vec bfd_elf32_mcore_little_vec"
919    ;;
920  mcore-*-pe)
921    targ_defvec=mcore_pe_big_vec
922    targ_selvecs="mcore_pe_big_vec mcore_pe_little_vec mcore_pei_big_vec mcore_pei_little_vec"
923    ;;
924
925  mep-*-elf)
926    targ_defvec=bfd_elf32_mep_vec
927    targ_selvecs=bfd_elf32_mep_little_vec
928    ;;
929
930  microblaze*-*)
931    targ_defvec=bfd_elf32_microblaze_vec
932    ;;
933
934  mips*-big-*)
935    targ_defvec=ecoff_big_vec
936    targ_selvecs=ecoff_little_vec
937    ;;
938#ifdef BFD64
939  mips64*el-*-netbsd*)
940    targ_defvec=bfd_elf32_ntradlittlemips_vec
941    targ_selvecs="bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec"
942    ;;
943  mips64*-*-netbsd*)
944    targ_defvec=bfd_elf32_ntradbigmips_vec
945    targ_selvecs="bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf32_ntradlittlemips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec"
946    ;;
947#endif
948  mips*el-*-netbsd*)
949    targ_defvec=bfd_elf32_tradlittlemips_vec
950    targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_little_vec ecoff_big_vec"
951    ;;
952  mips*-*-netbsd*)
953    targ_defvec=bfd_elf32_tradbigmips_vec
954    targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"
955    ;;
956  mips*-dec-* | mips*el-*-ecoff*)
957    targ_defvec=ecoff_little_vec
958    targ_selvecs=ecoff_big_vec
959    ;;
960  mips*-*-ecoff*)
961    targ_defvec=ecoff_big_vec
962    targ_selvecs=ecoff_little_vec
963    ;;
964#ifdef BFD64
965  mips*-*-irix6*)
966    targ_defvec=bfd_elf32_nbigmips_vec
967    targ_selvecs="bfd_elf32_nlittlemips_vec bfd_elf32_bigmips_vec bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
968    want64=true
969    ;;
970#endif
971  mips*-*-irix5*)
972    targ_defvec=bfd_elf32_bigmips_vec
973    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
974    ;;
975  mips*-sgi-* | mips*-*-bsd*)
976    targ_defvec=ecoff_big_vec
977    targ_selvecs=ecoff_little_vec
978    ;;
979  mips*-*-lnews*)
980    targ_defvec=ecoff_biglittle_vec
981    targ_selvecs="ecoff_little_vec ecoff_big_vec"
982    ;;
983  mips*-*-sysv4*)
984    targ_defvec=bfd_elf32_tradbigmips_vec
985    targ_selvecs="bfd_elf32_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"
986    ;;
987  mips*-*-sysv* | mips*-*-riscos*)
988    targ_defvec=ecoff_big_vec
989    targ_selvecs=ecoff_little_vec
990    ;;
991#ifdef BFD64
992  mips*el-*-vxworks*)
993    targ_defvec=bfd_elf32_littlemips_vxworks_vec
994    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf32_bigmips_vxworks_vec bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
995    want64=true
996    ;;
997  mips*-*-vxworks*)
998    targ_defvec=bfd_elf32_bigmips_vxworks_vec
999    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf32_littlemips_vxworks_vec bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
1000    want64=true
1001    ;;
1002#endif
1003  mips*el-sde-elf*)
1004    targ_defvec=bfd_elf32_tradlittlemips_vec
1005    targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
1006    want64=true
1007    ;;
1008  mips*-sde-elf*)
1009    targ_defvec=bfd_elf32_tradbigmips_vec
1010    targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
1011    want64=true
1012    ;;
1013  mips*el-*-elf* | mips*el-*-vxworks* | mips*-*-chorus*)
1014    targ_defvec=bfd_elf32_littlemips_vec
1015    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
1016    ;;
1017  mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks | mips*-*-windiss)
1018    targ_defvec=bfd_elf32_bigmips_vec
1019    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
1020    ;;
1021  mips*-*-none)
1022    targ_defvec=bfd_elf32_bigmips_vec
1023    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
1024    ;;
1025#ifdef BFD64
1026  mips64*-*-openbsd*)
1027    targ_defvec=bfd_elf64_tradbigmips_vec
1028    targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
1029    want64=true
1030    ;;
1031#endif
1032  mips*el-*-openbsd*)
1033    targ_defvec=bfd_elf32_littlemips_vec
1034    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
1035    ;;
1036  mips*-*-openbsd*)
1037    targ_defvec=bfd_elf32_bigmips_vec
1038    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
1039    ;;
1040#ifdef BFD64
1041  mips64*el-*-linux*)
1042    targ_defvec=bfd_elf32_ntradlittlemips_vec
1043    targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec"
1044    want64=true
1045    ;;
1046  mips64*-*-linux*)
1047    targ_defvec=bfd_elf32_ntradbigmips_vec
1048    targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
1049    want64=true
1050    ;;
1051  mips*el-*-linux*)
1052    targ_defvec=bfd_elf32_tradlittlemips_vec
1053    targ_selvecs="bfd_elf32_tradbigmips_vec ecoff_little_vec ecoff_big_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec"
1054    want64=true
1055    ;;
1056  mips*-*-linux*)
1057    targ_defvec=bfd_elf32_tradbigmips_vec
1058    targ_selvecs="bfd_elf32_tradlittlemips_vec ecoff_big_vec ecoff_little_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec"
1059    want64=true
1060    ;;
1061  mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
1062    # FreeBSD vectors
1063    targ_defvec=bfd_elf32_ntradlittlemips_freebsd_vec
1064    targ_selvecs="bfd_elf32_ntradbigmips_freebsd_vec bfd_elf32_tradlittlemips_freebsd_vec bfd_elf32_tradbigmips_freebsd_vec bfd_elf64_tradlittlemips_freebsd_vec bfd_elf64_tradbigmips_freebsd_vec"
1065    # Generic vectors
1066    targ_selvecs="${targ_selvecs} bfd_elf32_ntradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec"
1067    want64=true
1068    ;;
1069  mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
1070    # FreeBSD vectors
1071    targ_defvec=bfd_elf32_ntradbigmips_freebsd_vec
1072    targ_selvecs="bfd_elf32_ntradlittlemips_freebsd_vec bfd_elf32_tradbigmips_freebsd_vec bfd_elf32_tradlittlemips_freebsd_vec bfd_elf64_tradbigmips_freebsd_vec bfd_elf64_tradlittlemips_freebsd_vec"
1073    # Generic vectors
1074    targ_selvecs="${targ_selvecs} bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
1075    want64=true
1076    ;;
1077#endif
1078  mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
1079    # FreeBSD vectors
1080    targ_defvec=bfd_elf32_tradlittlemips_freebsd_vec
1081    targ_selvecs="bfd_elf32_tradbigmips_freebsd_vec bfd_elf32_ntradlittlemips_freebsd_vec bfd_elf64_tradlittlemips_freebsd_vec bfd_elf32_ntradbigmips_freebsd_vec bfd_elf64_tradbigmips_freebsd_vec"
1082    # Generic vectors
1083    targ_selvecs="${targ_selvecs} bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec"
1084    want64=true
1085    ;;
1086  mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
1087    # FreeBSD vectors
1088    targ_defvec=bfd_elf32_tradbigmips_freebsd_vec
1089    targ_selvecs="bfd_elf32_tradlittlemips_freebsd_vec bfd_elf32_ntradbigmips_freebsd_vec bfd_elf64_tradbigmips_freebsd_vec bfd_elf32_ntradlittlemips_freebsd_vec bfd_elf64_tradlittlemips_freebsd_vec"
1090    # Generic vectors
1091    targ_selvecs="${targ_selvecs} bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec"
1092    want64=true
1093    ;;
1094#ifdef BFD64
1095  mmix-*-*)
1096    targ_defvec=bfd_elf64_mmix_vec
1097    targ_selvecs=bfd_mmo_vec
1098    want64=true
1099    ;;
1100#endif
1101  mn10200-*-*)
1102    targ_defvec=bfd_elf32_mn10200_vec
1103    ;;
1104
1105  mn10300-*-*)
1106    targ_defvec=bfd_elf32_mn10300_vec
1107    targ_underscore=yes
1108    ;;
1109
1110  mt-*-elf)
1111    targ_defvec=bfd_elf32_mt_vec
1112    ;;
1113
1114  msp430-*-*)
1115    targ_defvec=bfd_elf32_msp430_vec
1116    ;;
1117
1118  ns32k-pc532-mach* | ns32k-pc532-ux*)
1119    targ_defvec=pc532machaout_vec
1120    targ_underscore=yes
1121    ;;
1122  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
1123    targ_defvec=pc532netbsd_vec
1124    targ_underscore=yes
1125    ;;
1126
1127  or1k*-*-elf)
1128    targ_defvec=bfd_elf32_or1k_big_vec
1129    ;;
1130
1131  or1k*-*-linux*)
1132    targ_defvec=bfd_elf32_or1k_big_vec
1133    ;;
1134
1135  or1k*-*-netbsd*)
1136    targ_defvec=bfd_elf32_or1k_big_vec
1137    ;;
1138
1139  pdp11-*-*)
1140    targ_defvec=pdp11_aout_vec
1141    targ_underscore=yes
1142    ;;
1143
1144  pj-*-*)
1145    targ_defvec=bfd_elf32_pj_vec
1146    targ_selvecs="bfd_elf32_pj_vec bfd_elf32_pjl_vec"
1147    ;;
1148
1149  pjl-*-*)
1150    targ_defvec=bfd_elf32_pjl_vec
1151    targ_selvecs="bfd_elf32_pjl_vec bfd_elf32_pj_vec bfd_elf32_i386_vec"
1152    ;;
1153
1154  powerpc-*-aix5.[01] | rs6000-*-aix5.[01])
1155    targ_defvec=rs6000coff_vec
1156    targ_selvecs="aix5coff64_vec"
1157    want64=true
1158    ;;
1159#ifdef BFD64
1160  powerpc64-*-aix5.[01] | rs6000-*-aix5.[01])
1161    targ_defvec=aix5coff64_vec
1162    targ_selvecs="rs6000coff_vec"
1163    want64=true
1164    ;;
1165#endif
1166  powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
1167    targ_cflags=-DAIX_WEAK_SUPPORT
1168    targ_defvec=rs6000coff_vec
1169    targ_selvecs="aix5coff64_vec"
1170    want64=true
1171    ;;
1172#ifdef BFD64
1173  powerpc64-*-aix[5-9]* | rs6000-*-aix[5-9]*)
1174    targ_cflags=-DAIX_WEAK_SUPPORT
1175    targ_defvec=aix5coff64_vec
1176    targ_selvecs="rs6000coff_vec"
1177    want64=true
1178    ;;
1179#endif
1180
1181  powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*)
1182    targ_defvec=rs6000coff_vec
1183    targ64_selvecs=rs6000coff64_vec
1184    case "${targ}" in
1185	*-*-aix4.[3456789]* | *-*-aix[56789]*)
1186	want64=true;;
1187	*)
1188	targ_cflags=-DSMALL_ARCHIVE;;
1189    esac
1190    ;;
1191#ifdef BFD64
1192  powerpc64-*-aix*)
1193    targ_defvec=rs6000coff64_vec
1194    targ_selvecs=rs6000coff_vec
1195    want64=true
1196    ;;
1197  powerpc64-*-freebsd*)
1198    targ_defvec=bfd_elf64_powerpc_freebsd_vec
1199    targ_selvecs="bfd_elf64_powerpc_vec bfd_elf32_powerpc_vec bfd_elf32_powerpc_freebsd_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec aix5coff64_vec"
1200    want64=true
1201    ;;
1202  powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
1203  powerpc64-*-*bsd*)
1204    targ_defvec=bfd_elf64_powerpc_vec
1205    targ_selvecs="bfd_elf64_powerpcle_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec aix5coff64_vec"
1206    want64=true
1207    ;;
1208  powerpc64le-*-elf* | powerpcle-*-elf64*)
1209    targ_defvec=bfd_elf64_powerpcle_vec
1210    targ_selvecs="bfd_elf64_powerpc_vec bfd_elf32_powerpcle_vec bfd_elf32_powerpc_vec rs6000coff_vec rs6000coff64_vec aix5coff64_vec"
1211    want64=true
1212    ;;
1213#endif
1214  powerpc-*-*freebsd*)
1215    targ_defvec=bfd_elf32_powerpc_freebsd_vec
1216    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec ppcboot_vec"
1217    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec bfd_elf64_powerpc_freebsd_vec"
1218    ;;
1219  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
1220  powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
1221  powerpc-*-chorus*)
1222    targ_defvec=bfd_elf32_powerpc_vec
1223    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
1224    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
1225    ;;
1226  powerpc-*-kaos*)
1227    targ_defvec=bfd_elf32_powerpc_vec
1228    targ_selvecs="bfd_elf32_powerpcle_vec ppcboot_vec"
1229    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
1230    ;;
1231  powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*)
1232    targ_defvec=mach_o_be_vec
1233    targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
1234    targ_archs="$targ_archs bfd_i386_arch"
1235    ;;
1236  powerpc-*-macos*)
1237    targ_defvec=pmac_xcoff_vec
1238    ;;
1239  powerpc-*-lynxos*)
1240    targ_defvec=bfd_elf32_powerpc_vec
1241    targ_selvecs="rs6000coff_vec"
1242    targ_cflags=-DSMALL_ARCHIVE
1243    ;;
1244  powerpc-*-netware*)
1245    targ_defvec=bfd_elf32_powerpc_vec
1246    targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
1247    ;;
1248  powerpc-*-nto*)
1249    targ_defvec=bfd_elf32_powerpc_vec
1250    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
1251    ;;
1252  powerpc-*-vxworks* | powerpc-*-windiss*)
1253    targ_defvec=bfd_elf32_powerpc_vxworks_vec
1254    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec ppcboot_vec"
1255    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
1256    ;;
1257  powerpcle-*-nto*)
1258    targ_defvec=bfd_elf32_powerpcle_vec
1259    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
1260    ;;
1261  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
1262  powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks*)
1263    targ_defvec=bfd_elf32_powerpcle_vec
1264    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
1265    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
1266    ;;
1267  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
1268    targ_defvec=bfd_powerpcle_pe_vec
1269    targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
1270    ;;
1271
1272  rl78-*-elf)
1273    targ_defvec=bfd_elf32_rl78_vec
1274    ;;
1275
1276#ifdef BFD64
1277  riscv*-*-*)
1278    targ_defvec=bfd_elf64_riscv_vec
1279    targ_selvecs="bfd_elf32_riscv_vec bfd_elf64_riscv_vec"
1280    want64=true
1281    ;;
1282#endif
1283
1284  rx-*-elf)
1285    targ_defvec=bfd_elf32_rx_le_vec
1286    targ_selvecs="bfd_elf32_rx_be_vec bfd_elf32_rx_le_vec bfd_elf32_rx_be_ns_vec"
1287    ;;
1288
1289  s390-*-linux*)
1290    targ_defvec=bfd_elf32_s390_vec
1291    targ64_selvecs=bfd_elf64_s390_vec
1292    want64=true
1293    ;;
1294#ifdef BFD64
1295  s390x-*-linux*)
1296    targ_defvec=bfd_elf64_s390_vec
1297    targ_selvecs=bfd_elf32_s390_vec
1298    want64=true
1299    ;;
1300  s390x-*-tpf*)
1301    targ_defvec=bfd_elf64_s390_vec
1302    want64=true
1303    ;;
1304
1305  score*-*-elf*)
1306    targ_defvec=bfd_elf32_bigscore_vec
1307    targ_selvecs=bfd_elf32_littlescore_vec
1308    ;;
1309
1310  sh64l*-*-elf*)
1311    targ_defvec=bfd_elf32_sh64l_vec
1312    targ_selvecs="bfd_elf32_sh64_vec bfd_elf64_sh64l_vec bfd_elf64_sh64_vec bfd_elf32_shl_vec bfd_elf32_sh_vec"
1313    targ_underscore=yes
1314    want64=true
1315    ;;
1316  sh64-*-elf*)
1317    targ_defvec=bfd_elf32_sh64_vec
1318    targ_selvecs="bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec bfd_elf32_sh_vec bfd_elf32_shl_vec"
1319    targ_underscore=yes
1320    want64=true
1321    ;;
1322  sh64eb-*-linux*)
1323    targ_defvec=bfd_elf32_sh64blin_vec
1324    targ_selvecs="bfd_elf32_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf32_shblin_vec bfd_elf32_shlin_vec"
1325    want64=true
1326    ;;
1327  sh64-*-linux*)
1328    targ_defvec=bfd_elf32_sh64lin_vec
1329    targ_selvecs="bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf32_shlin_vec bfd_elf32_shblin_vec"
1330    want64=true
1331    ;;
1332  sh-*-linux*)
1333    targ_defvec=bfd_elf32_shblin_vec
1334    targ_selvecs="bfd_elf32_shlin_vec bfd_elf32_sh64lin_vec bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec"
1335    want64=true
1336    ;;
1337#endif /* BFD64 */
1338
1339  sh*eb-*-linux*)
1340    targ_defvec=bfd_elf32_shblin_vec
1341    targ_selvecs=bfd_elf32_shlin_vec
1342    ;;
1343  sh*-*-linux*)
1344    targ_defvec=bfd_elf32_shlin_vec
1345    targ_selvecs=bfd_elf32_shblin_vec
1346    ;;
1347
1348  sh-*-uclinux* | sh[12]-*-uclinux*)
1349    targ_defvec=bfd_elf32_sh_vec
1350    targ_selvecs="bfd_elf32_shl_vec bfd_elf32_shblin_vec bfd_elf32_shlin_vec bfd_elf32_shfd_vec bfd_elf32_shbfd_vec"
1351#ifdef BFD64
1352    targ_selvecs="${targ_selvecs} bfd_elf32_sh64lin_vec bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec"
1353#endif
1354    ;;
1355
1356#ifdef BFD64
1357  sh5le-*-netbsd*)
1358    targ_defvec=bfd_elf32_sh64lnbsd_vec
1359    targ_selvecs="bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec bfd_elf32_shnbsd_vec bfd_elf32_shlnbsd_vec"
1360    want64=true
1361    ;;
1362  sh5-*-netbsd*)
1363    targ_defvec=bfd_elf32_sh64nbsd_vec
1364    targ_selvecs="bfd_elf32_sh64lnbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec bfd_elf32_shnbsd_vec bfd_elf32_shlnbsd_vec"
1365    want64=true
1366    ;;
1367
1368  sh64le-*-netbsd*)
1369    targ_defvec=bfd_elf64_sh64lnbsd_vec
1370    targ_selvecs="bfd_elf64_sh64nbsd_vec bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf32_shnbsd_vec bfd_elf32_shlnbsd_vec"
1371    want64=true
1372    ;;
1373  sh64-*-netbsd*)
1374    targ_defvec=bfd_elf64_sh64nbsd_vec
1375    targ_selvecs="bfd_elf64_sh64lnbsd_vec bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf32_shnbsd_vec bfd_elf32_shlnbsd_vec"
1376    want64=true
1377    ;;
1378
1379#endif
1380
1381  sh*l*-*-netbsdelf*)
1382    targ_defvec=bfd_elf32_shlnbsd_vec
1383    targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
1384    want64=true
1385    ;;
1386  sh-*-netbsdelf*)
1387    targ_defvec=bfd_elf32_shnbsd_vec
1388    targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
1389    want64=true
1390    ;;
1391  sh*-*-netbsdelf*)
1392    targ_defvec=bfd_elf32_shnbsd_vec
1393    targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
1394    ;;
1395  sh*-*-symbianelf*)
1396    targ_defvec=bfd_elf32_shl_symbian_vec
1397    targ_selvecs="shlcoff_vec shlcoff_small_vec"
1398    targ_underscore=yes
1399    ;;
1400
1401#ifdef BFD64
1402  shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*)
1403    targ_defvec=bfd_elf32_shl_vec
1404    targ_selvecs="bfd_elf32_sh_vec shlcoff_vec shcoff_vec shlcoff_small_vec shcoff_small_vec bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
1405    targ_underscore=yes
1406    want64=true
1407    ;;
1408#endif
1409
1410  sh-*-rtemscoff*)
1411    targ_defvec=shcoff_vec
1412    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1413    targ_underscore=yes
1414    ;;
1415
1416#ifdef BFD64
1417  sh-*-elf* | sh[1234]*-elf* | sh-*-rtems* | sh-*-kaos*)
1418    targ_defvec=bfd_elf32_sh_vec
1419    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
1420    targ_underscore=yes
1421    want64=true
1422    ;;
1423#endif
1424
1425  sh-*-nto*)
1426    targ_defvec=bfd_elf32_sh_vec
1427    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1428    targ_underscore=yes
1429    ;;
1430  sh*-*-openbsd*)
1431    targ_defvec=bfd_elf32_shlnbsd_vec
1432    targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec"
1433    ;;
1434  sh-*-pe)
1435    targ_defvec=shlpe_vec
1436    targ_selvecs="shlpe_vec shlpei_vec"
1437    targ_underscore=yes
1438    ;;
1439  sh-*-vxworks)
1440    targ_defvec=bfd_elf32_shvxworks_vec
1441    targ_selvecs="bfd_elf32_shlvxworks_vec"
1442    # FIXME None of the following are actually used on this target, but
1443    # they're necessary for coff-sh.c (which is unconditionally used) to be
1444    # compiled correctly.
1445    targ_selvecs="$targ_selvecs shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1446    targ_underscore=yes
1447    ;;
1448  sh-*-*)
1449    targ_defvec=shcoff_vec
1450    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1451    targ_underscore=yes
1452    ;;
1453
1454  sparclet-*-aout*)
1455    targ_defvec=sunos_big_vec
1456    targ_selvecs=sparcle_aout_vec
1457    targ_underscore=yes
1458    ;;
1459  sparc86x-*-aout*)
1460    targ_defvec=sunos_big_vec
1461    targ_underscore=yes
1462    ;;
1463  sparclite-*-elf* | sparc86x-*-elf*)
1464    targ_defvec=bfd_elf32_sparc_vec
1465    ;;
1466  sparc*-*-chorus*)
1467    targ_defvec=bfd_elf32_sparc_vec
1468    ;;
1469  sparc-*-linux*aout*)
1470    targ_defvec=sparclinux_vec
1471    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
1472    targ_underscore=yes
1473    ;;
1474  sparc-*-linux-* | sparcv*-*-linux-*)
1475    targ_defvec=bfd_elf32_sparc_vec
1476    targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
1477    ;;
1478  sparc-*-netbsdelf*)
1479    targ_defvec=bfd_elf32_sparc_vec
1480    targ_selvecs="sparcnetbsd_vec sunos_big_vec"
1481    want64=true
1482    ;;
1483  sparc-*-netbsd*)
1484    targ_defvec=sparcnetbsd_vec
1485    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
1486    targ_underscore=yes
1487    ;;
1488  sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1])
1489    targ_defvec=sparcnetbsd_vec
1490    targ_underscore=yes
1491    ;;
1492  sparc-*-openbsd*)
1493    targ_defvec=bfd_elf32_sparc_vec
1494    targ_selvecs=sparcnetbsd_vec
1495    ;;
1496  sparc-*-elf*)
1497    targ_defvec=bfd_elf32_sparc_vec
1498    targ_selvecs=sunos_big_vec
1499    ;;
1500  sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
1501    targ_defvec=bfd_elf32_sparc_sol2_vec
1502    targ_selvecs=sunos_big_vec
1503    ;;
1504#ifdef BFD64
1505  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
1506    targ_defvec=bfd_elf32_sparc_sol2_vec
1507    targ_selvecs="bfd_elf64_sparc_sol2_vec sunos_big_vec"
1508    want64=true
1509    ;;
1510#endif
1511  sparc-*-sysv4*)
1512    targ_defvec=bfd_elf32_sparc_vec
1513    ;;
1514  sparc-*-vxworks*)
1515    targ_defvec=bfd_elf32_sparc_vxworks_vec
1516    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
1517    ;;
1518  sparc-*-netware*)
1519    targ_defvec=bfd_elf32_sparc_vec
1520    targ_selvecs="nlm32_sparc_vec sunos_big_vec"
1521    ;;
1522#ifdef BFD64
1523  sparc64-*-aout*)
1524    targ_defvec=sunos_big_vec
1525    targ_underscore=yes
1526    want64=true
1527    ;;
1528  sparc64*-*-linux-*)
1529    targ_defvec=bfd_elf64_sparc_vec
1530    targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
1531    want64=true
1532    ;;
1533  sparc64-*-netbsd*)
1534    targ_defvec=bfd_elf64_sparc_vec
1535    targ_selvecs="bfd_elf32_sparc_vec sparcnetbsd_vec sunos_big_vec"
1536    ;;
1537  sparc64-*-elf* | sparc64-*-rtems* )
1538    targ_defvec=bfd_elf64_sparc_vec
1539    targ_selvecs=bfd_elf32_sparc_vec
1540    want64=true
1541    ;;
1542#endif /* BFD64 */
1543  sparc*-*-coff*)
1544    targ_defvec=sparccoff_vec
1545    ;;
1546  sparc-*-rtems*)
1547    targ_defvec=bfd_elf32_sparc_vec
1548    targ_selvecs="sunos_big_vec sparccoff_vec"
1549    ;;
1550  sparc*-*-*)
1551    targ_defvec=sunos_big_vec
1552    targ_underscore=yes
1553    ;;
1554
1555  spu-*-elf)
1556    targ_defvec=bfd_elf32_spu_vec
1557    want64=true
1558    ;;
1559
1560#if HAVE_host_aout_vec
1561  tahoe-*-*)
1562    targ_defvec=host_aout_vec
1563    targ_underscore=yes
1564    ;;
1565#endif
1566
1567  tic6x-*-elf)
1568    targ_defvec=bfd_elf32_tic6x_elf_le_vec
1569    targ_selvecs="bfd_elf32_tic6x_elf_be_vec bfd_elf32_tic6x_le_vec bfd_elf32_tic6x_be_vec"
1570    ;;
1571
1572  tic6x-*-uclinux)
1573    targ_defvec=bfd_elf32_tic6x_linux_le_vec
1574    targ_selvecs="bfd_elf32_tic6x_linux_be_vec bfd_elf32_tic6x_le_vec bfd_elf32_tic6x_be_vec"
1575    ;;
1576
1577  tic80*-*-*)
1578    targ_defvec=tic80coff_vec
1579    targ_underscore=yes
1580    ;;
1581
1582#ifdef BFD64
1583  tilegx-*-*)
1584    targ_defvec=bfd_elf64_tilegx_le_vec
1585    targ_selvecs="bfd_elf64_tilegx_be_vec bfd_elf32_tilegx_be_vec bfd_elf32_tilegx_le_vec"
1586    ;;
1587  tilegxbe-*-*)
1588    targ_defvec=bfd_elf64_tilegx_be_vec
1589    targ_selvecs="bfd_elf64_tilegx_le_vec bfd_elf32_tilegx_be_vec bfd_elf32_tilegx_le_vec"
1590    ;;
1591#endif
1592
1593  tilepro-*-*)
1594    targ_defvec=bfd_elf32_tilepro_vec
1595    ;;
1596
1597  v850*-*-*)
1598    targ_defvec=bfd_elf32_v850_vec
1599    ;;
1600
1601  vax-*-netbsdelf*)
1602    targ_defvec=bfd_elf32_vax_vec
1603    targ_selvecs="vaxnetbsd_vec vax1knetbsd_vec"
1604    ;;
1605
1606  vax-*-netbsdaout* | vax-*-netbsd*)
1607    targ_defvec=vaxnetbsd_vec
1608    targ_selvecs="bfd_elf32_vax_vec vax1knetbsd_vec"
1609    targ_underscore=yes
1610    ;;
1611
1612  vax-*-bsd* | vax-*-ultrix*)
1613    targ_defvec=vaxbsd_vec
1614    targ_underscore=yes
1615    ;;
1616
1617  vax-*-openbsd*)
1618    targ_defvec=vaxnetbsd_vec
1619    targ_underscore=yes
1620    ;;
1621
1622  vax-*-linux-*)
1623    targ_defvec=bfd_elf32_vax_vec
1624    ;;
1625
1626  we32k-*-*)
1627    targ_defvec=we32kcoff_vec
1628    ;;
1629
1630  w65-*-*)
1631    targ_defvec=w65_vec
1632    ;;
1633
1634  xgate-*-*)
1635    targ_defvec=bfd_elf32_xgate_vec
1636    targ_selvecs="bfd_elf32_xgate_vec"
1637    ;;
1638
1639  xstormy16-*-elf)
1640    targ_defvec=bfd_elf32_xstormy16_vec
1641    ;;
1642
1643  xtensa*-*-*)
1644    targ_defvec=bfd_elf32_xtensa_le_vec
1645    targ_selvecs=bfd_elf32_xtensa_be_vec
1646    ;;
1647 xc16x-*-elf)
1648    targ_defvec=bfd_elf32_xc16x_vec
1649    ;;
1650
1651  z80-*-*)
1652    targ_defvec=z80coff_vec
1653    targ_underscore=no
1654    ;;
1655
1656  z8k*-*-*)
1657    targ_defvec=z8kcoff_vec
1658    targ_underscore=yes
1659    ;;
1660
1661  *-*-ieee*)
1662    targ_defvec=ieee_vec
1663    ;;
1664
1665  *-adobe-*)
1666    targ_defvec=a_out_adobe_vec
1667    targ_underscore=yes
1668    ;;
1669
1670  *-sony-*)
1671    targ_defvec=newsos3_vec
1672    targ_underscore=yes
1673    ;;
1674
1675  *-tandem-*)
1676    targ_defvec=m68kcoff_vec
1677    targ_selvecs=ieee_vec
1678    ;;
1679# END OF targmatch.h
1680  *)
1681    echo 1>&2 "*** BFD does not support target ${targ}."
1682    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
1683    exit 1
1684    ;;
1685esac
1686
1687case "${host64}${want64}" in
1688  *true*)
1689    targ_selvecs="${targ_selvecs} ${targ64_selvecs}"
1690    ;;
1691esac
1692
1693# If we support any ELF target, then automatically add support for the
1694# generic ELF targets.  This permits an objdump with some ELF support
1695# to be used on an arbitrary ELF file for anything other than
1696# relocation information.
1697case "${targ_defvec} ${targ_selvecs}" in
1698  *bfd_elf64* | *bfd_elf32_n*mips*)
1699    targ_selvecs="${targ_selvecs} bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
1700    ;;
1701  *bfd_elf32*)
1702    targ_selvecs="${targ_selvecs} bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
1703    ;;
1704esac
1705
1706# If we support Intel L1OM target, then add support for bfd_l1om_arch.
1707case "${targ_defvec} ${targ_selvecs}" in
1708  *bfd_elf64_l1om_vec*)
1709    targ_archs="$targ_archs bfd_l1om_arch"
1710    ;;
1711esac
1712
1713# If we support Intel K1OM target, then add support for bfd_k1om_arch.
1714case "${targ_defvec} ${targ_selvecs}" in
1715  *bfd_elf64_k1om_vec*)
1716    targ_archs="$targ_archs bfd_k1om_arch"
1717    ;;
1718esac
1719