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 vax-*-vms*			\
35 )
36    if test "x$enable_obsolete" != xyes; then
37      echo "*** Configuration $targ is obsolete." >&2
38      echo "*** Specify --enable-obsolete to build it anyway." >&2
39      echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2
40      echo "*** unless a maintainer comes forward." >&2
41      exit 1
42    fi;;
43esac
44
45
46targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
47case "${targ_cpu}" in
48alpha*)          targ_archs=bfd_alpha_arch ;;
49arm*)	         targ_archs=bfd_arm_arch ;;
50c30*)	         targ_archs=bfd_tic30_arch ;;
51c4x*)            targ_archs=bfd_tic4x_arch ;;
52c54x*)	         targ_archs=bfd_tic54x_arch ;;
53dlx*)		 targ_archs=bfd_dlx_arch ;;
54hppa*)	         targ_archs=bfd_hppa_arch ;;
55i[3-7]86)       targ_archs=bfd_i386_arch ;;
56i370)            targ_archs=bfd_i370_arch ;;
57zpu)		targ_archs=bfd_zpu_arch ;;
58m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch" ;;
59m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch" ;;
60m68*)	         targ_archs=bfd_m68k_arch ;;
61m88*)	         targ_archs=bfd_m88k_arch ;;
62mips*)	         targ_archs=bfd_mips_arch ;;
63or32*)		 targ_archs=bfd_or32_arch ;;
64pdp11*)	         targ_archs=bfd_pdp11_arch ;;
65pj*)	         targ_archs="bfd_pj_arch bfd_i386_arch";;
66powerpc*)        targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
67rs6000)	         targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
68s390*)           targ_archs=bfd_s390_arch ;;
69sh*)             targ_archs=bfd_sh_arch ;;
70sparc*)          targ_archs=bfd_sparc_arch ;;
71strongarm*)      targ_archs=bfd_arm_arch ;;
72thumb*)	         targ_archs=bfd_arm_arch ;;
73v850*)	         targ_archs=bfd_v850_arch ;;
74x86_64)          targ_archs=bfd_i386_arch ;;
75xscale*)         targ_archs=bfd_arm_arch ;;
76xtensa*)         targ_archs=bfd_xtensa_arch ;;
77z8k*)	         targ_archs=bfd_z8k_arch ;;
78am33_2.0)        targ_archs=bfd_mn10300_arch ;;
79*)	         targ_archs=bfd_${targ_cpu}_arch ;;
80esac
81
82
83# WHEN ADDING ENTRIES TO THIS MATRIX:
84#  Make sure that the left side always has two dashes.  Otherwise you
85#  can get spurious matches.  Even for unambiguous cases, do this as a
86#  convention, else the table becomes a real mess to understand and maintain.
87#
88#  Keep obsolete entries above the START comment, to keep them out of
89#  targmatch.h.
90
91case "${targ}" in
92  mips*-dec-bsd*)
93    echo "This target is obsolete and has been removed."
94    exit 1
95    ;;
96
97  mips*-*-mach3*)
98    echo "This target is obsolete and has been removed."
99    exit 1
100    ;;
101
102  mips*-*-pe*)
103    echo "This target is obsolete and has been removed."
104    exit 1
105    ;;
106
107# START OF targmatch.h
108#ifdef BFD64
109  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
110    targ_defvec=bfd_elf64_alpha_freebsd_vec
111    targ_selvecs=ecoffalpha_little_vec
112    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
113    case "${targ}" in
114      alpha*-*-freebsd3* | alpha*-*-freebsd4 | alpha*-*-freebsd4.0*)
115	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
116    esac
117    ;;
118  alpha*-*-netbsd* | alpha*-*-openbsd*)
119    targ_defvec=bfd_elf64_alpha_vec
120    targ_selvecs=ecoffalpha_little_vec
121    ;;
122  alpha*-*-netware*)
123    targ_defvec=ecoffalpha_little_vec
124    targ_selvecs=nlm32_alpha_vec
125    ;;
126  alpha*-*-linuxecoff*)
127    targ_defvec=ecoffalpha_little_vec
128    targ_selvecs=bfd_elf64_alpha_vec
129    ;;
130  alpha*-*-linux-gnu* | alpha*-*-elf*)
131    targ_defvec=bfd_elf64_alpha_vec
132    targ_selvecs=ecoffalpha_little_vec
133    ;;
134  alpha*-*-*vms*)
135    targ_defvec=vms_alpha_vec
136    ;;
137  alpha*-*-*)
138    targ_defvec=ecoffalpha_little_vec
139    ;;
140  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
141    targ_defvec=bfd_elf64_ia64_little_vec
142    targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
143    ;;
144  ia64*-*-hpux*)
145    targ_defvec=bfd_elf32_ia64_hpux_big_vec
146    targ_selvecs="bfd_elf64_ia64_hpux_big_vec"
147    ;;
148  sparc64-*-freebsd* | sparc64-*-netbsd* | sparc64-*-openbsd* | sparc64-*-kfreebsd*-gnu)
149    targ_defvec=bfd_elf64_sparc_vec
150    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
151    ;;
152#endif /* BFD64 */
153
154  am33_2.0-*-linux*)
155    targ_defvec=bfd_elf32_am33lin_vec
156    ;;
157  arc-*-elf*)
158    targ_defvec=bfd_elf32_littlearc_vec
159    targ_selvecs=bfd_elf32_bigarc_vec
160    ;;
161
162  armeb-*-netbsdelf*)
163    targ_defvec=bfd_elf32_bigarm_vec
164    targ_selvecs="bfd_elf32_littlearm_vec armnetbsd_vec"
165    ;;
166  arm-*-netbsdelf*)
167    targ_defvec=bfd_elf32_littlearm_vec
168    targ_selvecs="bfd_elf32_bigarm_vec armnetbsd_vec"
169    ;;
170  arm-*-netbsd* | arm-*-openbsd*)
171    targ_defvec=armnetbsd_vec
172    targ_selvecs="bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
173    targ_underscore=yes
174    targ_cflags=-D__QNXTARGET__
175    ;;
176  arm-*-nto* | nto*arm*)
177    targ_defvec=bfd_elf32_littlearm_vec
178    targ_selvecs=bfd_elf32_bigarm_vec
179    ;;
180  arm-*-riscix*)
181    targ_defvec=riscix_vec
182    ;;
183  arm-epoc-pe*)
184    targ_defvec=arm_epoc_pe_little_vec
185    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
186    targ_underscore=no
187    targ_cflags=-DARM_COFF_BUGFIX
188    ;;
189  arm-wince-pe | arm-*-wince)
190    targ_defvec=armpe_little_vec
191    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
192    targ_underscore=no
193    targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
194    ;;
195  arm-*-pe*)
196    targ_defvec=armpe_little_vec
197    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
198    targ_underscore=yes
199    ;;
200  arm-*-aout | armel-*-aout)
201    targ_defvec=aout_arm_little_vec
202    targ_selvecs=aout_arm_big_vec
203    ;;
204  armeb-*-aout)
205    targ_defvec=aout_arm_big_vec
206    targ_selvecs=aout_arm_little_vec
207    ;;
208  arm-*-coff)
209    targ_defvec=armcoff_little_vec
210    targ_selvecs=armcoff_big_vec
211    targ_underscore=yes
212    ;;
213  arm-*-rtems*)
214    targ_defvec=bfd_elf32_littlearm_vec
215    targ_selvecs=bfd_elf32_bigarm_vec
216    ;;
217  armeb-*-elf | arm*b-*-linux-gnu*)
218    targ_defvec=bfd_elf32_bigarm_vec
219    targ_selvecs=bfd_elf32_littlearm_vec
220    ;;
221  arm-*-kaos* | strongarm-*-kaos*)
222    targ_defvec=bfd_elf32_littlearm_vec
223    targ_selvecs=bfd_elf32_bigarm_vec
224    ;;
225  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
226  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks)
227    targ_defvec=bfd_elf32_littlearm_vec
228    targ_selvecs=bfd_elf32_bigarm_vec
229    ;;
230  arm9e-*-elf)
231    targ_defvec=bfd_elf32_littlearm_vec
232    targ_selvecs=bfd_elf32_bigarm_vec
233    ;;
234  arm-*-oabi)
235    targ_defvec=bfd_elf32_littlearm_oabi_vec
236    targ_selvecs=bfd_elf32_bigarm_oabi_vec
237    ;;
238
239  thumb-*-coff)
240    targ_defvec=armcoff_little_vec
241    targ_selvecs=armcoff_big_vec
242    targ_underscore=yes
243    ;;
244  thumb-*-oabi)
245    targ_defvec=bfd_elf32_littlearm_oabi_vec
246    targ_selvecs=bfd_elf32_bigarm_oabi_vec
247    ;;
248  thumb-*-elf)
249    targ_defvec=bfd_elf32_littlearm_vec
250    targ_selvecs=bfd_elf32_bigarm_vec
251    ;;
252  thumb-epoc-pe*)
253    targ_defvec=arm_epoc_pe_little_vec
254    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
255    targ_underscore=no
256    ;;
257  thumb-*-pe*)
258    targ_defvec=armpe_little_vec
259    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
260    targ_underscore=yes
261    ;;
262  strongarm-*-elf)
263    targ_defvec=bfd_elf32_littlearm_vec
264    targ_selvecs=bfd_elf32_bigarm_vec
265    ;;
266  strongarm-*-coff)
267    targ_defvec=armcoff_little_vec
268    targ_selvecs=armcoff_big_vec
269    targ_underscore=yes
270    ;;
271  xscale-*-elf)
272    targ_defvec=bfd_elf32_littlearm_vec
273    targ_selvecs=bfd_elf32_bigarm_vec
274    ;;
275  xscale-*-coff)
276    targ_defvec=armcoff_little_vec
277    targ_selvecs=armcoff_big_vec
278    targ_underscore=yes
279    ;;
280
281  a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
282  a29k-*-vxworks* | a29k-*-sysv* | a29k-*rtems*)
283    targ_defvec=a29kcoff_big_vec
284    targ_selvecs=sunos_big_vec
285    targ_underscore=yes
286    ;;
287  a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*)
288    targ_defvec=sunos_big_vec
289    targ_underscore=yes
290    ;;
291
292  avr-*-*)
293    targ_defvec=bfd_elf32_avr_vec
294    ;;
295
296  c30-*-*aout* | tic30-*-*aout*)
297    targ_defvec=tic30_aout_vec
298    ;;
299  c30-*-*coff* | tic30-*-*coff*)
300    targ_defvec=tic30_coff_vec
301    ;;
302
303  c4x-*-*coff* | tic4x-*-*coff* | tic4x-*-rtems*)
304    targ_defvec=tic4x_coff1_vec
305    targ_selvecs="tic4x_coff1_beh_vec tic4x_coff2_vec tic4x_coff2_beh_vec tic4x_coff0_vec tic4x_coff0_beh_vec"
306    targ_underscore=yes
307    ;;
308
309  c54x*-*-*coff* | tic54x-*-*coff*)
310    targ_defvec=tic54x_coff1_vec
311    targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec"
312    targ_underscore=yes
313    ;;
314
315  cris-*-*)
316    targ_defvec=cris_aout_vec
317    targ_selvecs="bfd_elf32_us_cris_vec bfd_elf32_cris_vec ieee_vec"
318    targ_underscore=yes # Note: not true for bfd_elf32_cris_vec.
319    ;;
320
321  d10v-*-*)
322    targ_defvec=bfd_elf32_d10v_vec
323    ;;
324
325  dlx-*-elf*)
326    targ_defvec=bfd_elf32_dlx_big_vec
327    targ_selvecs="bfd_elf32_dlx_big_vec"
328    ;;
329
330  d30v-*-*)
331    targ_defvec=bfd_elf32_d30v_vec
332    ;;
333
334  fr30-*-elf)
335    targ_defvec=bfd_elf32_fr30_vec
336    ;;
337
338  frv-*-elf)
339    targ_defvec=bfd_elf32_frv_vec
340    targ_selvecs=bfd_elf32_frvfdpic_vec
341    ;;
342
343  frv-*-*linux*)
344    targ_defvec=bfd_elf32_frvfdpic_vec
345    targ_selvecs=bfd_elf32_frv_vec
346    ;;
347
348  h8300*-*-elf)
349    targ_defvec=bfd_elf32_h8300_vec
350    targ_underscore=yes
351    ;;
352
353  h8300*-*-*)
354    targ_defvec=h8300coff_vec
355    targ_underscore=yes
356    ;;
357
358  h8500-*-*)
359    targ_defvec=h8500coff_vec
360    targ_underscore=yes
361    ;;
362
363#ifdef BFD64
364  hppa*64*-*-linux-gnu*)
365    targ_defvec=bfd_elf64_hppa_linux_vec
366    targ_selvecs=bfd_elf64_hppa_vec
367    ;;
368  hppa*64*-*-hpux11*)
369    targ_defvec=bfd_elf64_hppa_vec
370    targ_selvecs=bfd_elf64_hppa_linux_vec
371    targ_cflags=-DHPUX_LARGE_AR_IDS
372    ;;
373#endif
374
375  hppa*-*-linux-gnu* | hppa*-*-netbsd*)
376    targ_defvec=bfd_elf32_hppa_linux_vec
377    targ_selvecs=bfd_elf32_hppa_vec
378    ;;
379  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems* | hppa*-*-openbsd*)
380    targ_defvec=bfd_elf32_hppa_vec
381    targ_selvecs=bfd_elf32_hppa_linux_vec
382    ;;
383
384#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) || defined (HOST_HPPAMPEIX)
385  hppa*-*-bsd*)
386    targ_defvec=som_vec
387    targ_selvecs=bfd_elf32_hppa_vec
388    ;;
389  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
390    targ_defvec=som_vec
391    ;;
392  hppa*-*-osf*)
393    targ_defvec=som_vec
394    targ_selvecs=bfd_elf32_hppa_vec
395    ;;
396#endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */
397
398  i370-*-*)
399    targ_defvec=bfd_elf32_i370_vec
400    targ_selvecs="bfd_elf32_i370_vec"
401    ;;
402  i[3-7]86-*-sco3.2v5*coff)
403    targ_defvec=i386coff_vec
404    targ_selvecs=bfd_elf32_i386_vec
405    ;;
406  i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | i[3-7]86-*-solaris2* | \
407  i[3-7]86-*-elf | i[3-7]86-*-sco3.2v5* | \
408  i[3-7]86-*-dgux* | i[3-7]86-*-sysv5*)
409    targ_defvec=bfd_elf32_i386_vec
410    targ_selvecs=i386coff_vec
411    ;;
412  i[3-7]86-*-kaos*)
413    targ_defvec=bfd_elf32_i386_vec
414    targ_selvecs=bfd_elf32_i386_vec
415    ;;
416  i[3-7]86-*-nto*)
417    targ_defvec=bfd_elf32_i386_vec
418    targ_selvecs=i386coff_vec
419    ;;
420  i[3-7]86-*-aros*)
421    targ_defvec=bfd_elf32_i386_vec
422    ;;
423  i[3-7]86-*-chorus*)
424    targ_defvec=bfd_elf32_i386_vec
425    ;;
426  *-*-msdosdjgpp* | *-*-go32* | *-go32-rtems* )
427    targ_defvec=go32coff_vec
428    targ_selvecs="go32stubbedcoff_vec i386aout_vec"
429    ;;
430  i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \
431  i[3-7]86-*-aix*)
432    targ_defvec=i386coff_vec
433    ;;
434  i[3-7]86*-*-rtemscoff*)
435    targ_defvec=i386coff_vec
436    targ_selvecs="bfd_elf32_i386_vec i386aout_vec"
437    ;;
438  i[3-7]86-*-rtemself* | i[3-7]86-*-rtems*)
439    targ_defvec=bfd_elf32_i386_vec
440    targ_selvecs="i386coff_vec i386aout_vec"
441    ;;
442  i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
443    targ_defvec=mach_o_le_vec
444    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
445    targ_archs="bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
446    ;;
447 i[3-7]86-sequent-bsd*)
448    targ_defvec=i386dynix_vec
449    targ_underscore=yes
450    ;;
451  i[3-7]86-*-bsd*)
452    targ_defvec=i386bsd_vec
453    targ_underscore=yes
454    ;;
455  i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \
456  i[3-7]86-*-freebsd[12])
457    targ_defvec=i386freebsd_vec
458    targ_selvecs=i386bsd_vec
459    targ_underscore=yes
460    ;;
461  i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
462    targ_defvec=bfd_elf32_i386_freebsd_vec
463    targ_selvecs=i386coff_vec
464    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
465    case "${targ}" in
466      i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*)
467	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
468    esac
469    ;;
470  i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu)
471    targ_defvec=bfd_elf32_i386_vec
472    targ_selvecs=i386netbsd_vec
473    targ64_selvecs=bfd_elf64_x86_64_vec
474    ;;
475  i[3-7]86-*-netbsdpe*)
476    targ_defvec=i386pe_vec
477    targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec"
478    ;;
479  i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \
480  i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3])
481    targ_defvec=i386netbsd_vec
482    targ_selvecs="bfd_elf32_i386_vec i386bsd_vec"
483    targ_underscore=yes
484    ;;
485  i[3-7]86-*-openbsd*)
486    targ_defvec=bfd_elf32_i386_vec
487    targ_selvecs=i386netbsd_vec
488    ;;
489  i[3-7]86-*-netware*)
490    targ_defvec=bfd_elf32_i386_vec
491    targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
492    ;;
493  i[3-7]86-*-linux*aout*)
494    targ_defvec=i386linux_vec
495    targ_selvecs=bfd_elf32_i386_vec
496    targ_underscore=yes
497    ;;
498  i[3-7]86-*-linux-gnu*)
499    targ_defvec=bfd_elf32_i386_vec
500    targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
501    targ64_selvecs=bfd_elf64_x86_64_vec
502    ;;
503#ifdef BFD64
504  x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
505    targ_defvec=bfd_elf64_x86_64_vec
506    targ_selvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec"
507    ;;
508  x86_64-*-netbsd* | x86_64-*-openbsd*)
509    targ_defvec=bfd_elf64_x86_64_vec
510    targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
511    ;;
512  x86_64-*-linux-gnu*)
513    targ_defvec=bfd_elf64_x86_64_vec
514    targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
515    ;;
516#endif
517  i[3-7]86-*-lynxos*)
518    targ_defvec=i386lynx_coff_vec
519    targ_selvecs=i386lynx_aout_vec
520    ;;
521  i[3-7]86-*-gnu*)
522    targ_defvec=bfd_elf32_i386_vec
523    ;;
524  i[3-7]86-*-mach* | i[3-7]86-*-osf1mk*)
525    targ_defvec=i386mach3_vec
526    targ_cflags=-DSTAT_FOR_EXEC
527    targ_underscore=yes
528    ;;
529  i[3-7]86-*-os9k)
530    targ_defvec=i386os9k_vec
531    ;;
532  i[3-7]86-*-msdos*)
533    targ_defvec=i386aout_vec
534    targ_selvecs=i386msdos_vec
535    ;;
536  i[3-7]86-*-moss*)
537    targ_defvec=bfd_elf32_i386_vec
538    targ_selvecs="i386msdos_vec i386aout_vec"
539    ;;
540  i[3-7]86-*-beospe*)
541    targ_defvec=i386pe_vec
542    targ_selvecs="i386pe_vec i386pei_vec"
543    ;;
544  i[3-7]86-*-beoself* | i[3-7]86-*-beos*)
545    targ_defvec=bfd_elf32_i386_vec
546    targ_selvecs="i386pe_vec i386pei_vec"
547    ;;
548  i[3-7]86-*-interix*)
549    targ_defvec=i386pei_vec
550    targ_selvecs="i386pe_vec"
551    # FIXME: This should eventually be checked at runtime.
552    targ_cflags=-DSTRICT_PE_FORMAT
553    ;;
554  i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe)
555    targ_defvec=i386pe_vec
556    targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec"
557    ;;
558  i[3-7]86-none-*)
559    targ_defvec=i386coff_vec
560    ;;
561  i[3-7]86-*-aout* | i[3-7]86*-*-vsta*)
562    targ_defvec=i386aout_vec
563    ;;
564  i[3-7]86-*-vxworks)
565    targ_defvec=bfd_elf32_i386_vec
566    targ_underscore=yes
567    ;;
568  i[3-7]86-*-chaos)
569    targ_defvec=bfd_elf32_i386_vec
570    targ_selfvecs=i386chaos_vec
571    ;;
572
573  i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
574    targ_defvec=i860coff_vec
575    ;;
576  i860-stardent-sysv4* | i860-stardent-elf*)
577    targ_defvec=bfd_elf32_i860_little_vec
578    targ_selvecs="bfd_elf32_i860_vec bfd_elf32_i860_little_vec"
579    ;;
580  i860-*-sysv4* | i860-*-elf*)
581    targ_defvec=bfd_elf32_i860_vec
582    ;;
583
584  i960-*-vxworks4* | i960-*-vxworks5.0)
585    targ_defvec=b_out_vec_little_host
586    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
587    targ_underscore=yes
588    ;;
589  i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*)
590    targ_defvec=icoff_little_vec
591    targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
592    targ_underscore=yes
593    ;;
594  i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
595    targ_defvec=b_out_vec_little_host
596    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
597    targ_underscore=yes
598    ;;
599  i960-*-elf*)
600    targ_defvec=bfd_elf32_i960_vec
601    targ_selvecs="icoff_little_vec icoff_big_vec"
602    ;;
603
604  ip2k-*-elf)
605    targ_defvec=bfd_elf32_ip2k_vec
606    ;;
607
608  iq2000-*-elf)
609    targ_defvec=bfd_elf32_iq2000_vec
610    ;;
611
612  m32r*le-*-linux*)
613    targ_defvec=bfd_elf32_m32rlelin_vec
614    targ_selvecs="bfd_elf32_m32rlin_vec  bfd_elf32_m32rlelin_vec"
615    ;;
616
617  m32r*-*-linux*)
618    targ_defvec=bfd_elf32_m32rlin_vec
619    targ_selvecs="bfd_elf32_m32rlin_vec  bfd_elf32_m32rlelin_vec"
620    ;;
621
622  m32r*le-*-*)
623    targ_defvec=bfd_elf32_m32rle_vec
624    targ_selvecs="bfd_elf32_m32r_vec bfd_elf32_m32rle_vec"
625    ;;
626
627  m32r-*-*)
628    targ_defvec=bfd_elf32_m32r_vec
629    ;;
630
631  zpu-*-*)
632    targ_defvec=bfd_elf32_zpu_vec
633    ;;
634
635  m68hc11-*-* | m6811-*-*)
636    targ_defvec=bfd_elf32_m68hc11_vec
637    targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
638    ;;
639  m68hc12-*-* | m6812-*-*)
640    targ_defvec=bfd_elf32_m68hc12_vec
641    targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
642    ;;
643
644  m68*-apollo-*)
645    targ_defvec=apollocoff_vec
646    ;;
647  m68*-bull-sysv*)
648    targ_defvec=m68kcoffun_vec
649    targ_underscore=yes
650    ;;
651  m68*-motorola-sysv*)
652    targ_defvec=m68ksysvcoff_vec
653    ;;
654  m68*-hp-bsd*)
655    targ_defvec=hp300bsd_vec
656    targ_underscore=yes
657    ;;
658  m68*-*-aout*)
659    targ_defvec=aout0_big_vec
660    # We include cisco_core_big_vec here, rather than making a separate cisco
661    # configuration, so that cisco-core.c gets routinely tested at
662    # least for compilation.
663    targ_selvecs="cisco_core_big_vec ieee_vec"
664    targ_underscore=yes
665    ;;
666  m68*-*-rtemscoff*)
667    targ_defvec=m68kcoff_vec
668    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
669    ;;
670  m68*-*-elf* | m68*-*-sysv4* | m68*-*-uclinux*)
671    targ_defvec=bfd_elf32_m68k_vec
672    targ_selvecs="m68kcoff_vec ieee_vec"
673    ;;
674  m68*-*-rtems*)
675    targ_defvec=bfd_elf32_m68k_vec
676    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
677    ;;
678  m68*-*-coff* | m68*-*-sysv*)
679    targ_defvec=m68kcoff_vec
680    targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
681    ;;
682  m68*-*-hpux*)
683    targ_defvec=hp300hpux_vec
684    targ_underscore=yes
685    ;;
686  m68*-*-linux*aout*)
687    targ_defvec=m68klinux_vec
688    targ_selvecs=bfd_elf32_m68k_vec
689    targ_underscore=yes
690    ;;
691  m68*-*-linux-gnu*)
692    targ_defvec=bfd_elf32_m68k_vec
693    targ_selvecs=m68klinux_vec
694    ;;
695  m68*-*-gnu*)
696    targ_defvec=bfd_elf32_m68k_vec
697    # targ_selvecs=m68kmach3_vec
698    # targ_cflags=-DSTAT_FOR_EXEC
699    ;;
700  m68*-*-lynxos*)
701    targ_defvec=m68klynx_coff_vec
702    targ_selvecs=m68klynx_aout_vec
703    ;;
704  m68*-hp*-netbsd*)
705    targ_defvec=m68k4knetbsd_vec
706    targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
707    targ_underscore=yes
708    ;;
709  m68*-*-netbsdelf*)
710    targ_defvec=bfd_elf32_m68k_vec
711    targ_selvecs="m68knetbsd_vec m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
712    ;;
713  m68*-*-netbsdaout* | m68*-*-netbsd*)
714    targ_defvec=m68knetbsd_vec
715    targ_selvecs="m68k4knetbsd_vec bfd_elf32_m68k_vec hp300bsd_vec sunos_big_vec"
716    targ_underscore=yes
717    ;;
718  m68*-*-openbsd*)
719    targ_defvec=m68knetbsd_vec
720    targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
721    targ_underscore=yes
722    ;;
723  m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
724  m68*-*-bsd* | m68*-*-vsta*)
725    targ_defvec=sunos_big_vec
726    targ_underscore=yes
727    ;;
728  m68*-ericsson-*)
729    targ_defvec=sunos_big_vec
730    targ_selvecs="m68kcoff_vec versados_vec tekhex_vec"
731    targ_underscore=yes
732    ;;
733  m68*-cbm-*)
734    targ_defvec=bfd_elf32_m68k_vec
735    targ_selvecs=m68kcoff_vec
736    ;;
737  m68*-apple-aux*)
738    targ_defvec=m68kaux_coff_vec
739    ;;
740  m68*-*-psos*)
741    targ_defvec=bfd_elf32_m68k_vec
742    targ_selvecs=ieee_vec
743    targ_underscore=yes
744    ;;
745
746  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
747    targ_defvec=bfd_elf32_m88k_vec
748    targ_selvecs=m88kbcs_vec
749    ;;
750  m88*-*-mach3*)
751    targ_defvec=m88kmach3_vec
752    targ_cflags=-DSTAT_FOR_EXEC
753    ;;
754  m88*-*-*)
755    targ_defvec=m88kbcs_vec
756    targ_underscore=yes
757    ;;
758
759  mcore-*-elf)
760    targ_defvec=bfd_elf32_mcore_big_vec
761    targ_selvecs="bfd_elf32_mcore_big_vec bfd_elf32_mcore_little_vec"
762    ;;
763  mcore-*-pe)
764    targ_defvec=mcore_pe_big_vec
765    targ_selvecs="mcore_pe_big_vec mcore_pe_little_vec mcore_pei_big_vec mcore_pei_little_vec"
766    ;;
767
768  mips*-big-*)
769    targ_defvec=ecoff_big_vec
770    targ_selvecs=ecoff_little_vec
771    ;;
772  mips*el-*-netbsd*)
773    targ_defvec=bfd_elf32_littlemips_vec
774    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
775    ;;
776  mips*-*-netbsd*)
777    targ_defvec=bfd_elf32_bigmips_vec
778    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
779    ;;
780  mips*-dec-* | mips*el-*-ecoff*)
781    targ_defvec=ecoff_little_vec
782    targ_selvecs=ecoff_big_vec
783    ;;
784  mips*-*-ecoff*)
785    targ_defvec=ecoff_big_vec
786    targ_selvecs=ecoff_little_vec
787    ;;
788#ifdef BFD64
789  mips*-*-irix6*)
790    targ_defvec=bfd_elf32_nbigmips_vec
791    targ_selvecs="bfd_elf32_nlittlemips_vec bfd_elf32_bigmips_vec bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
792    ;;
793#endif
794  mips*-*-irix5*)
795    targ_defvec=bfd_elf32_bigmips_vec
796    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
797    ;;
798  mips*-sgi-* | mips*-*-bsd*)
799    targ_defvec=ecoff_big_vec
800    targ_selvecs=ecoff_little_vec
801    ;;
802  mips*-*-lnews*)
803    targ_defvec=ecoff_biglittle_vec
804    targ_selvecs="ecoff_little_vec ecoff_big_vec"
805    ;;
806  mips*-*-sysv4*)
807    targ_defvec=bfd_elf32_tradbigmips_vec
808    targ_selvecs="bfd_elf32_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"
809    ;;
810  mips*-*-sysv* | mips*-*-riscos*)
811    targ_defvec=ecoff_big_vec
812    targ_selvecs=ecoff_little_vec
813    ;;
814  mips*el-*-elf* | mips*el-*-rtems* | mips*el-*-vxworks* | mips*-*-chorus*)
815    targ_defvec=bfd_elf32_littlemips_vec
816    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
817    ;;
818  mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks | mips*-*-windiss)
819    targ_defvec=bfd_elf32_bigmips_vec
820    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
821    ;;
822  mips*-*-none)
823    targ_defvec=bfd_elf32_bigmips_vec
824    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
825    ;;
826  mips*el-*-openbsd*)
827    targ_defvec=bfd_elf32_littlemips_vec
828    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
829    ;;
830  mips*-*-openbsd*)
831    targ_defvec=bfd_elf32_bigmips_vec
832    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
833    ;;
834#ifdef BFD64
835  mips64*el-*-linux*)
836    targ_defvec=bfd_elf32_ntradlittlemips_vec
837    targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec"
838    ;;
839  mips64*-*-linux*)
840    targ_defvec=bfd_elf32_ntradbigmips_vec
841    targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
842    ;;
843#endif
844  mips*el-*-linux*)
845    targ_defvec=bfd_elf32_tradlittlemips_vec
846    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"
847    want64=true
848    ;;
849  mips*-*-linux*)
850    targ_defvec=bfd_elf32_tradbigmips_vec
851    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"
852    want64=true
853    ;;
854#ifdef BFD64
855  mmix-*-*)
856    targ_defvec=bfd_elf64_mmix_vec
857    targ_selvecs=bfd_mmo_vec
858    ;;
859#endif
860  mn10200-*-*)
861    targ_defvec=bfd_elf32_mn10200_vec
862    ;;
863
864  mn10300-*-*)
865    targ_defvec=bfd_elf32_mn10300_vec
866    targ_underscore=yes
867    ;;
868
869  msp430-*-*)
870    targ_defvec=bfd_elf32_msp430_vec
871    ;;
872
873  ns32k-pc532-mach* | ns32k-pc532-ux*)
874    targ_defvec=pc532machaout_vec
875    targ_underscore=yes
876    ;;
877  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
878    targ_defvec=pc532netbsd_vec
879    targ_underscore=yes
880    ;;
881
882  openrisc-*-elf)
883    targ_defvec=bfd_elf32_openrisc_vec
884    ;;
885
886  or32-*-coff)
887    targ_defvec=or32coff_big_vec
888    targ_underscore=yes
889    ;;
890
891  or32-*-elf | or32-*-rtems*)
892    targ_defvec=bfd_elf32_or32_big_vec
893    ;;
894
895  pdp11-*-*)
896    targ_defvec=pdp11_aout_vec
897    targ_underscore=yes
898    ;;
899
900  pj-*-*)
901    targ_defvec=bfd_elf32_pj_vec
902    targ_selvecs="bfd_elf32_pj_vec bfd_elf32_pjl_vec"
903    ;;
904
905  pjl-*-*)
906    targ_defvec=bfd_elf32_pjl_vec
907    targ_selvecs="bfd_elf32_pjl_vec bfd_elf32_pj_vec bfd_elf32_i386_vec"
908    ;;
909
910  powerpc-*-aix5.[01])
911    targ_defvec=rs6000coff_vec
912    targ_selvecs="aix5coff64_vec"
913    want64=true
914    ;;
915#ifdef BFD64
916  powerpc64-*-aix5.[01])
917    targ_defvec=aix5coff64_vec
918    targ_selvecs="rs6000coff_vec"
919    want64=true
920    ;;
921#endif
922  powerpc-*-aix5*)
923    targ_cflags=-DAIX_WEAK_SUPPORT
924    targ_defvec=rs6000coff_vec
925    targ_selvecs="aix5coff64_vec"
926    want64=true
927    ;;
928#ifdef BFD64
929  powerpc64-*-aix5*)
930    targ_cflags=-DAIX_WEAK_SUPPORT
931    targ_defvec=aix5coff64_vec
932    targ_selvecs="rs6000coff_vec"
933    want64=true
934    ;;
935#endif
936
937  powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*)
938    targ_defvec=rs6000coff_vec
939    targ64_selvecs=rs6000coff64_vec
940    case "${targ}" in
941        *-*-aix4.[3456789]* | *-*-aix[56789]*)
942	want64=true;;
943	*)
944	targ_cflags=-DSMALL_ARCHIVE;;
945    esac
946    ;;
947#ifdef BFD64
948  powerpc64-*-aix*)
949    targ_defvec=rs6000coff64_vec
950    targ_selvecs=rs6000coff_vec
951    ;;
952  powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
953  powerpc64-*-*bsd*)
954    targ_defvec=bfd_elf64_powerpc_vec
955    targ_selvecs="bfd_elf64_powerpcle_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec"
956    ;;
957  powerpc64le-*-elf* | powerpcle-*-elf64*)
958    targ_defvec=bfd_elf64_powerpcle_vec
959    targ_selvecs="bfd_elf64_powerpc_vec bfd_elf32_powerpcle_vec bfd_elf32_powerpc_vec rs6000coff_vec rs6000coff64_vec"
960    ;;
961#endif
962  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
963  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
964  powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
965    targ_defvec=bfd_elf32_powerpc_vec
966    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
967    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
968    ;;
969  powerpc-*-kaos*)
970    targ_defvec=bfd_elf32_powerpc_vec
971    targ_selvecs="bfd_elf32_powerpcle_vec ppcboot_vec"
972    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
973    ;;
974  powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*)
975    targ_defvec=mach_o_be_vec
976    targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
977    targ_archs="bfd_powerpc_arch bfd_rs6000_arch bfd_i386_arch"
978    ;;
979  powerpc-*-macos* | powerpc-*-mpw*)
980    targ_defvec=pmac_xcoff_vec
981    ;;
982  powerpc-*-netware*)
983    targ_defvec=bfd_elf32_powerpc_vec
984    targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
985    ;;
986  powerpc-*-nto*)
987    targ_defvec=bfd_elf32_powerpc_vec
988    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
989    ;;
990  powerpcle-*-nto*)
991    targ_defvec=bfd_elf32_powerpcle_vec
992    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
993    ;;
994  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
995  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
996  powerpcle-*-rtems*)
997    targ_defvec=bfd_elf32_powerpcle_vec
998    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
999    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
1000    ;;
1001  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
1002    targ_defvec=bfd_powerpcle_pe_vec
1003    targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
1004    ;;
1005
1006  s390-*-linux*)
1007    targ_defvec=bfd_elf32_s390_vec
1008    targ64_selvecs=bfd_elf64_s390_vec
1009    ;;
1010#ifdef BFD64
1011  s390x-*-linux*)
1012    targ_defvec=bfd_elf64_s390_vec
1013    targ_selvecs=bfd_elf32_s390_vec
1014    ;;
1015#endif
1016
1017#ifdef BFD64
1018  sh64l*-*-elf*)
1019    targ_defvec=bfd_elf32_sh64l_vec
1020    targ_selvecs="bfd_elf32_sh64_vec bfd_elf64_sh64l_vec bfd_elf64_sh64_vec bfd_elf32_shl_vec bfd_elf32_sh_vec"
1021    targ_underscore=yes
1022    ;;
1023  sh64-*-elf*)
1024    targ_defvec=bfd_elf32_sh64_vec
1025    targ_selvecs="bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec bfd_elf32_sh_vec bfd_elf32_shl_vec"
1026    targ_underscore=yes
1027    ;;
1028  sh64eb-*-linux*)
1029    targ_defvec=bfd_elf32_sh64blin_vec
1030    targ_selvecs="bfd_elf32_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf32_shblin_vec bfd_elf32_shlin_vec"
1031    ;;
1032  sh64-*-linux*)
1033    targ_defvec=bfd_elf32_sh64lin_vec
1034    targ_selvecs="bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf32_shlin_vec bfd_elf32_shblin_vec"
1035    ;;
1036#endif /* BFD64 */
1037
1038  sh-*-linux*)
1039    targ_defvec=bfd_elf32_shblin_vec
1040    targ_selvecs=bfd_elf32_shlin_vec
1041#ifdef BFD64
1042    targ_selvecs="${targ_selvecs} bfd_elf32_sh64lin_vec bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec"
1043#endif
1044    ;;
1045  sh*eb-*-linux*)
1046    targ_defvec=bfd_elf32_shblin_vec
1047    targ_selvecs=bfd_elf32_shlin_vec
1048    ;;
1049  sh*-*-linux*)
1050    targ_defvec=bfd_elf32_shlin_vec
1051    targ_selvecs=bfd_elf32_shblin_vec
1052    ;;
1053
1054#ifdef BFD64
1055  sh5le-*-netbsd*)
1056    targ_defvec=bfd_elf32_sh64lnbsd_vec
1057    targ_selvecs="bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
1058    ;;
1059  sh5-*-netbsd*)
1060    targ_defvec=bfd_elf32_sh64nbsd_vec
1061    targ_selvecs="bfd_elf32_sh64lnbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
1062    ;;
1063
1064  sh64le-*-netbsd*)
1065    targ_defvec=bfd_elf64_sh64lnbsd_vec
1066    targ_selvecs="bfd_elf64_sh64nbsd_vec bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec"
1067    ;;
1068  sh64-*-netbsd*)
1069    targ_defvec=bfd_elf64_sh64nbsd_vec
1070    targ_selvecs="bfd_elf64_sh64lnbsd_vec bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec"
1071    ;;
1072#endif
1073
1074  sh*l*-*-netbsdelf*)
1075    targ_defvec=bfd_elf32_shlnbsd_vec
1076    targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec"
1077#ifdef BFD64
1078    targ_selvecs="${targ_selvecs} bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
1079#endif
1080    ;;
1081  sh-*-netbsdelf*)
1082    targ_defvec=bfd_elf32_shnbsd_vec
1083    targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
1084#ifdef BFD64
1085    targ_selvecs="${targ_selvecs} bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
1086#endif
1087    ;;
1088  sh*-*-netbsdelf*)
1089    targ_defvec=bfd_elf32_shnbsd_vec
1090    targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
1091    ;;
1092  shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*)
1093    targ_defvec=bfd_elf32_shl_vec
1094    targ_selvecs="bfd_elf32_sh_vec shlcoff_vec shcoff_vec shlcoff_small_vec shcoff_small_vec"
1095#ifdef BFD64
1096    targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
1097#endif
1098    targ_underscore=yes
1099    ;;
1100  sh-*-rtemscoff*)
1101    targ_defvec=shcoff_vec
1102    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1103    targ_underscore=yes
1104    ;;
1105  sh-*-elf* | sh[1234]*-elf* | sh-*-rtems* | sh-*-kaos*)
1106    targ_defvec=bfd_elf32_sh_vec
1107    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1108#ifdef BFD64
1109    targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
1110#endif
1111    targ_underscore=yes
1112    ;;
1113  sh-*-nto*)
1114    targ_defvec=bfd_elf32_sh_vec
1115    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1116    targ_underscore=yes
1117    ;;
1118  sh-*-pe)
1119    targ_defvec=shlpe_vec
1120    targ_selvecs="shlpe_vec shlpei_vec"
1121    targ_underscore=yes
1122    ;;
1123  sh-*-vxworks)
1124    targ_defvec=bfd_elf32_sh_vec
1125    targ_selvecs="bfd_elf32_shl_vec"
1126    # FIXME None of the following are actually used on this target, but
1127    # they're necessary for coff-sh.c (which is unconditionally used) to be
1128    # compiled correctly.
1129    targ_selvecs="$targ_selvecs shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1130    ;;
1131  sh-*-*)
1132    targ_defvec=shcoff_vec
1133    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
1134    targ_underscore=yes
1135    ;;
1136
1137  sparclet-*-aout*)
1138    targ_defvec=sunos_big_vec
1139    targ_selvecs=sparcle_aout_vec
1140    targ_underscore=yes
1141    ;;
1142  sparc86x-*-aout*)
1143    targ_defvec=sunos_big_vec
1144    targ_underscore=yes
1145    ;;
1146  sparclite-*-elf* | sparc86x-*-elf*)
1147    targ_defvec=bfd_elf32_sparc_vec
1148    ;;
1149  sparc*-*-chorus*)
1150    targ_defvec=bfd_elf32_sparc_vec
1151    ;;
1152  sparc-*-linux*aout*)
1153    targ_defvec=sparclinux_vec
1154    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
1155    targ_underscore=yes
1156    ;;
1157  sparc-*-linux-gnu*)
1158    targ_defvec=bfd_elf32_sparc_vec
1159    targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
1160    ;;
1161  sparc-*-lynxos*)
1162    targ_defvec=sparclynx_coff_vec
1163    targ_selvecs=sparclynx_aout_vec
1164    ;;
1165  sparc-*-netbsdelf*)
1166    targ_defvec=bfd_elf32_sparc_vec
1167    targ_selvecs=sparcnetbsd_vec
1168    ;;
1169  sparc-*-netbsdaout* | sparc-*-netbsd*)
1170    targ_defvec=sparcnetbsd_vec
1171    targ_selvecs=bfd_elf32_sparc_vec
1172    targ_underscore=yes
1173    ;;
1174  sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1])
1175    targ_defvec=sparcnetbsd_vec
1176    targ_underscore=yes
1177    ;;
1178  sparc-*-openbsd*)
1179    targ_defvec=bfd_elf32_sparc_vec
1180    targ_selvecs=sparcnetbsd_vec
1181    ;;
1182  sparc-*-elf* | sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
1183    targ_defvec=bfd_elf32_sparc_vec
1184    targ_selvecs=sunos_big_vec
1185    ;;
1186#ifdef BFD64
1187  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
1188    targ_defvec=bfd_elf32_sparc_vec
1189    targ_selvecs="bfd_elf64_sparc_vec sunos_big_vec"
1190    ;;
1191#endif
1192  sparc-*-sysv4*)
1193    targ_defvec=bfd_elf32_sparc_vec
1194    ;;
1195  sparc-*-netware*)
1196    targ_defvec=bfd_elf32_sparc_vec
1197    targ_selvecs="nlm32_sparc_vec sunos_big_vec"
1198    ;;
1199#ifdef BFD64
1200  sparc64-*-aout*)
1201    targ_defvec=sunos_big_vec
1202    targ_underscore=yes
1203    ;;
1204  sparc64-*-linux-gnu*)
1205    targ_defvec=bfd_elf64_sparc_vec
1206    targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
1207    ;;
1208  sparc64-*-elf*)
1209    targ_defvec=bfd_elf64_sparc_vec
1210    targ_selvecs=bfd_elf32_sparc_vec
1211    ;;
1212#endif /* BFD64 */
1213  sparc*-*-coff*)
1214    targ_defvec=sparccoff_vec
1215    ;;
1216  sparc*-*-rtemsaout*)
1217    targ_defvec=sunos_big_vec
1218    targ_selvecs="bfd_elf32_sparc_vec sparccoff_vec"
1219    targ_underscore=yes
1220    ;;
1221  sparc*-*-rtems* | sparc*-*-rtemself*)
1222    targ_defvec=bfd_elf32_sparc_vec
1223    targ_selvecs="sunos_big_vec sparccoff_vec"
1224    ;;
1225  sparc*-*-* | sparc*-*-rtems*)
1226    targ_defvec=sunos_big_vec
1227    targ_underscore=yes
1228    ;;
1229
1230#if HAVE_host_aout_vec
1231  tahoe-*-*)
1232    targ_defvec=host_aout_vec
1233    targ_underscore=yes
1234    ;;
1235#endif
1236
1237  tic80*-*-*)
1238    targ_defvec=tic80coff_vec
1239    targ_underscore=yes
1240    ;;
1241
1242  v850-*-*)
1243    targ_defvec=bfd_elf32_v850_vec
1244    ;;
1245  v850e-*-*)
1246    targ_defvec=bfd_elf32_v850_vec
1247    ;;
1248  v850ea-*-*)
1249    targ_defvec=bfd_elf32_v850_vec
1250    ;;
1251
1252  vax-*-netbsdelf*)
1253    targ_defvec=bfd_elf32_vax_vec
1254    targ_selvecs="vaxnetbsd_vec vax1knetbsd_vec"
1255    ;;
1256
1257  vax-*-netbsdaout* | vax-*-netbsd*)
1258    targ_defvec=vaxnetbsd_vec
1259    targ_selvecs="bfd_elf32_vax_vec vax1knetbsd_vec"
1260    targ_underscore=yes
1261    ;;
1262
1263  vax-*-bsd* | vax-*-ultrix*)
1264    targ_defvec=vaxbsd_vec
1265    targ_underscore=yes
1266    ;;
1267
1268  vax-*-openbsd*)
1269    targ_defvec=vaxnetbsd_vec
1270    targ_underscore=yes
1271    ;;
1272
1273  vax-*-linux-gnu*)
1274    targ_defvec=bfd_elf32_vax_vec
1275    ;;
1276
1277  vax*-*-*vms*)
1278    targ_defvec=vms_vax_vec
1279    ;;
1280
1281  we32k-*-*)
1282    targ_defvec=we32kcoff_vec
1283    ;;
1284
1285  w65-*-*)
1286    targ_defvec=w65_vec
1287    ;;
1288
1289  xstormy16-*-elf)
1290    targ_defvec=bfd_elf32_xstormy16_vec
1291    ;;
1292
1293  xtensa-*-*)
1294    targ_defvec=bfd_elf32_xtensa_le_vec
1295    targ_selvecs=bfd_elf32_xtensa_be_vec
1296    ;;
1297
1298  z8k*-*-*)
1299    targ_defvec=z8kcoff_vec
1300    targ_underscore=yes
1301    ;;
1302
1303  *-*-ieee*)
1304    targ_defvec=ieee_vec
1305    ;;
1306
1307  *-adobe-*)
1308    targ_defvec=a_out_adobe_vec
1309    targ_underscore=yes
1310    ;;
1311
1312  *-sony-*)
1313    targ_defvec=newsos3_vec
1314    targ_underscore=yes
1315    ;;
1316
1317  *-tandem-*)
1318    targ_defvec=m68kcoff_vec
1319    targ_selvecs=ieee_vec
1320    ;;
1321# END OF targmatch.h
1322  *)
1323    echo 1>&2 "*** BFD does not support target ${targ}."
1324    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
1325    exit 1
1326    ;;
1327esac
1328
1329case "${host64}${want64}" in
1330  *true*)
1331    targ_selvecs="${targ_selvecs} ${targ64_selvecs}"
1332    ;;
1333esac
1334
1335# If we support any ELF target, then automatically add support for the
1336# generic ELF targets.  This permits an objdump with some ELF support
1337# to be used on an arbitrary ELF file for anything other than
1338# relocation information.
1339case "${targ_defvec} ${targ_selvecs}" in
1340  *bfd_elf64* | *bfd_elf32_n*mips*)
1341    targ_selvecs="${targ_selvecs} bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
1342    ;;
1343  *bfd_elf32*)
1344    targ_selvecs="${targ_selvecs} bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
1345    ;;
1346esac
1347