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