config.bfd revision 61843
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#  targ_archs		Architectures for this target
9#  targ_cflags		$(CFLAGS) for this target (FIXME: pretty bogus)
10#  targ_underscore	Whether underscores are used: yes or no
11
12# Part of this file is processed by targmatch.sed to generate the
13# targmatch.h file.  The #ifdef and #endif lines that appear below are
14# copied directly into targmatch.h.
15
16# The binutils c++filt program wants to know whether underscores are
17# stripped or not.  That is why we set targ_underscore.  c++filt uses
18# this information to choose a default.  This information is
19# duplicated in the symbol_leading_char field of the BFD target
20# vector, but c++filt does not deal with object files and is not
21# linked against libbfd.a.  It is not terribly important that c++filt
22# get this right; it is just convenient.
23
24targ_defvec=
25targ_selvecs=
26targ_cflags=
27targ_underscore=no
28
29targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
30case "${targ_cpu}" in
31alpha*) targ_archs=bfd_alpha_arch ;;
32arm*)	targ_archs=bfd_arm_arch ;;
33strongarm*) targ_archs=bfd_arm_arch ;;
34thumb*)	targ_archs=bfd_arm_arch ;;
35c30*)	targ_archs=bfd_tic30_arch ;;
36hppa*)	targ_archs=bfd_hppa_arch ;;
37i[3456]86) targ_archs=bfd_i386_arch ;;
38i370)   targ_archs=bfd_i370_arch ;;
39m68*)	targ_archs=bfd_m68k_arch ;;
40m88*)	targ_archs=bfd_m88k_arch ;;
41mips*)	targ_archs=bfd_mips_arch ;;
42pj*)	targ_archs="bfd_pj_arch bfd_i386_arch";;
43powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
44rs6000)	targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
45sparc*) targ_archs=bfd_sparc_arch ;;
46v850*)	targ_archs=bfd_v850_arch ;;
47z8k*)	targ_archs=bfd_z8k_arch ;;
48*)	targ_archs=bfd_${targ_cpu}_arch ;;
49esac
50
51
52# WHEN ADDING ENTRIES TO THIS MATRIX:
53#  Make sure that the left side always has two dashes.  Otherwise you
54#  can get spurious matches.  Even for unambiguous cases, do this as a
55#  convention, else the table becomes a real mess to understand and maintain.
56
57case "${targ}" in
58# START OF targmatch.h
59#ifdef BFD64
60  alpha*-*-netbsd* | alpha*-*-freebsd*)
61    targ_defvec=bfd_elf64_alpha_vec
62    targ_selvecs=ecoffalpha_little_vec
63    ;;
64  alpha*-*-netware*)
65    targ_defvec=ecoffalpha_little_vec
66    targ_selvecs=nlm32_alpha_vec
67    ;;
68  alpha*-*-linuxecoff*)
69    targ_defvec=ecoffalpha_little_vec
70    targ_selvecs=bfd_elf64_alpha_vec
71    ;;
72  alpha*-*-linux-gnu* | alpha*-*-elf*)
73    targ_defvec=bfd_elf64_alpha_vec
74    targ_selvecs=ecoffalpha_little_vec
75    ;;
76  alpha*-*-*vms*)
77    targ_defvec=vms_alpha_vec
78    ;;
79  alpha*-*-*)
80    targ_defvec=ecoffalpha_little_vec
81    ;;
82#endif /* BFD64 */
83
84  arc-*-elf*)
85    targ_defvec=bfd_elf32_littlearc_vec
86    targ_selvecs=bfd_elf32_bigarc_vec
87    ;;
88
89  arm-*-netbsd*)
90    targ_defvec=armnetbsd_vec
91    targ_underscore=yes
92    ;;
93  arm-*-riscix*)
94    targ_defvec=riscix_vec
95    ;;
96  arm-epoc-pe*)
97    targ_defvec=arm_epoc_pe_little_vec
98    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
99    targ_underscore=no
100    ;;
101  arm-wince-pe | arm-*-wince)
102    targ_defvec=armpe_little_vec
103    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
104    targ_underscore=no
105    targ_cflags=-DARM_WINCE
106    ;;
107  arm-*-pe*)
108    targ_defvec=armpe_little_vec
109    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
110    targ_underscore=yes
111    ;;
112  arm-*-aout | armel-*-aout)	
113    targ_defvec=aout_arm_little_vec
114    targ_selvecs=aout_arm_big_vec
115    ;;
116  armeb-*-aout)
117    targ_defvec=aout_arm_big_vec
118    targ_selvecs=aout_arm_little_vec
119    ;;
120  arm-*-coff)
121    targ_defvec=armcoff_little_vec
122    targ_selvecs=armcoff_big_vec
123    targ_underscore=yes
124    ;;
125  arm-*-elf | arm*-*-linux-gnu* | arm*-*-conix*)
126    targ_defvec=bfd_elf32_littlearm_vec
127    targ_selvecs=bfd_elf32_bigarm_vec
128    ;;
129  arm-*-oabi)
130    targ_defvec=bfd_elf32_littlearm_oabi_vec
131    targ_selvecs=bfd_elf32_bigarm_oabi_vec
132    ;;
133
134  thumb-*-coff)
135    targ_defvec=armcoff_little_vec
136    targ_selvecs=armcoff_big_vec
137    targ_underscore=yes
138    ;;
139  thumb-*-oabi)
140    targ_defvec=bfd_elf32_littlearm_oabi_vec
141    targ_selvecs=bfd_elf32_bigarm_oabi_vec
142    ;;
143  thumb-*-elf)
144    targ_defvec=bfd_elf32_littlearm_vec
145    targ_selvecs=bfd_elf32_bigarm_vec
146    ;;
147  thumb-epoc-pe*)
148    targ_defvec=arm_epoc_pe_little_vec
149    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
150    targ_underscore=no
151    ;;
152  thumb-*-pe*)
153    targ_defvec=armpe_little_vec
154    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
155    targ_underscore=yes
156    ;;
157  strongarm-*-elf)
158    targ_defvec=bfd_elf32_littlearm_vec
159    targ_selvecs=bfd_elf32_bigarm_vec
160    ;;
161  strongarm-*-coff)
162    targ_defvec=armcoff_little_vec
163    targ_selvecs=armcoff_big_vec
164    targ_underscore=yes
165    ;;
166
167  a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
168  a29k-*-vxworks* | a29k-*-sysv*)
169    targ_defvec=a29kcoff_big_vec
170    targ_selvecs=sunos_big_vec
171    targ_underscore=yes
172    ;;
173  a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*)
174    targ_defvec=sunos_big_vec
175    targ_underscore=yes
176    ;;
177
178  avr-*-*)
179    targ_defvec=bfd_elf32_avr_vec
180    ;;
181
182  c30-*-*aout* | tic30-*-*aout*)
183    targ_defvec=tic30_aout_vec
184    ;;
185  c30-*-*coff* | tic30-*-*coff*)
186    targ_defvec=tic30_coff_vec
187    ;;
188
189  d10v-*-*)
190    targ_defvec=bfd_elf32_d10v_vec
191    ;;
192
193  d30v-*-*)
194    targ_defvec=bfd_elf32_d30v_vec
195    ;;
196
197  fr30-*-elf)
198    targ_defvec=bfd_elf32_fr30_vec
199    ;;
200
201
202  h8300*-*-*)
203    targ_defvec=h8300coff_vec
204    targ_underscore=yes
205    ;;
206
207  h8500-*-*)
208    targ_defvec=h8500coff_vec
209    targ_underscore=yes
210    ;;
211
212#if 0 /* HPPA ELF does not work currently.  */
213  hppa*-*-*elf* | hppa*-*-linux-gnu* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
214    targ_defvec=bfd_elf32_hppa_vec
215    ;;
216#endif
217#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) || defined (HOST_HPPAMPEIX)
218#if 0 /* HPPA ELF does not work currently.  */
219  hppa*-*-bsd*)
220    targ_defvec=som_vec
221    targ_selvecs=bfd_elf32_hppa_vec
222    ;;
223#endif
224  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
225    targ_defvec=som_vec
226    ;;
227#if 0 /* HPPA ELF does not work currently.  */
228  hppa*-*-osf*)
229    targ_defvec=som_vec
230    targ_selvecs=bfd_elf32_hppa_vec
231    ;;
232#endif
233#endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */
234
235  i370-*-*) 
236    targ_defvec=bfd_elf32_i370_vec
237    targ_selvecs="bfd_elf32_i370_vec"
238    ;;
239  i[3456]86-*-sco3.2v5*coff)
240    targ_defvec=i386coff_vec
241    targ_selvecs=bfd_elf32_i386_vec
242    ;;
243  i[3456]86-*-sysv4* | i[3456]86-*-unixware* | i[3456]86-*-solaris2* | \
244  i[3456]86-*-elf | i[3456]86-*-sco3.2v5* | \
245  i[3456]86-*-dgux* | i[3456]86-*-sysv5*)
246    targ_defvec=bfd_elf32_i386_vec
247    targ_selvecs=i386coff_vec
248    ;;
249  i[3456]86-*-msdosdjgpp* | i[3456]*-*-go32* | i[3456]86-go32-rtems* )
250    targ_defvec=go32coff_vec
251    targ_selvecs="go32stubbedcoff_vec i386aout_vec"
252    ;;
253  i[3456]86-*-sysv* | i[3456]86-*-isc* | i[3456]86-*-sco* | i[3456]86-*-coff | \
254  i[3456]86-*-aix*)
255    targ_defvec=i386coff_vec
256    ;;
257  i[3456]86-*-rtemscoff*)
258    targ_defvec=i386coff_vec
259    targ_selvecs="bfd_elf32_i386_vec i386aout_vec"
260    ;;
261  i[3456]86-*-rtemself* | i[3456]86*-*-rtems*)
262    targ_defvec=bfd_elf32_i386_vec
263    targ_selvecs="i386coff_vec i386aout_vec"
264    ;;
265 i[3456]86-sequent-bsd*)
266    targ_defvec=i386dynix_vec
267    targ_underscore=yes
268    ;;
269  i[3456]86-*-bsd*)
270    targ_defvec=i386bsd_vec
271    targ_underscore=yes
272    ;;
273  i[3456]86-*-freebsdaout* | i[3456]86-*-freebsd[12].* | \
274  i[3456]86-*-freebsd[12])
275    targ_defvec=i386freebsd_vec
276    targ_selvecs=i386bsd_vec
277    targ_underscore=yes
278    ;;
279  i[3456]86-*-freebsd*)
280    targ_defvec=bfd_elf32_i386_vec
281    targ_selvecs=i386coff_vec
282    ;;
283  i[3456]86-*-netbsd* | i[3456]86-*-openbsd*)
284    targ_defvec=i386netbsd_vec
285    targ_selvecs=i386bsd_vec
286    targ_underscore=yes
287    ;;
288  i[3456]86-*-netware*)
289    targ_defvec=bfd_elf32_i386_vec
290    targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
291    ;;
292  i[3456]86-*-linux*aout*)
293    targ_defvec=i386linux_vec
294    targ_selvecs=bfd_elf32_i386_vec
295    targ_underscore=yes
296    ;;
297  i[3456]86-*-linux-gnu*)
298    targ_defvec=bfd_elf32_i386_vec
299    targ_selvecs=i386linux_vec
300    ;;
301  i[3456]86-*-lynxos*)
302    targ_defvec=i386lynx_coff_vec
303    targ_selvecs=i386lynx_aout_vec
304    ;;
305  i[3456]86-*-gnu*)
306    targ_defvec=bfd_elf32_i386_vec
307    ;;
308  i[3456]86-*-mach* | i[3456]86-*-osf1mk*)
309    targ_defvec=i386mach3_vec
310    targ_cflags=-DSTAT_FOR_EXEC
311    targ_underscore=yes
312    ;;
313  i[3456]86-*-os9k)
314    targ_defvec=i386os9k_vec
315    ;;
316  i[3456]86-*-msdos*)
317    targ_defvec=i386aout_vec
318    targ_selvecs=i386msdos_vec
319    ;;
320  i[3456]86-*-moss*)
321    targ_defvec=bfd_elf32_i386_vec
322    targ_selvecs="i386msdos_vec i386aout_vec"
323    ;;
324  i[3456]86-*-beospe*)
325    targ_defvec=i386pe_vec
326    targ_selvecs="i386pe_vec i386pei_vec"
327    ;;
328  i[3456]86-*-beoself* | i[3456]86-*-beos*)
329    targ_defvec=bfd_elf32_i386_vec
330    targ_selvecs="i386pe_vec i386pei_vec"
331    ;;
332  i[3456]86-*-interix*)
333    targ_defvec=i386pei_vec
334    targ_selvecs="i386pe_vec"
335    # FIXME: This should eventually be checked at runtime.
336    targ_cflags=-DSTRICT_PE_FORMAT
337    ;;
338  i[3456]86-*-mingw32* | i[3456]86-*-cygwin* | i[3456]86-*-winnt | i[3456]86-*-pe)
339    targ_defvec=i386pe_vec
340    targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec"
341    ;;
342  i[3456]86-none-*)
343    targ_defvec=i386coff_vec
344    ;;
345  i[3456]86-*-aout* | i[3456]86*-*-vsta*)
346    targ_defvec=i386aout_vec
347    ;;
348  i[3456]86-*-vxworks*)
349    targ_defvec=i386aout_vec
350    targ_underscore=yes
351    ;;
352
353  i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
354    targ_defvec=i860coff_vec
355    ;;
356  i860-*-sysv4* | i860-*-elf*)
357    targ_defvec=bfd_elf32_i860_vec
358    ;;
359
360  i960-*-vxworks4* | i960-*-vxworks5.0)
361    targ_defvec=b_out_vec_little_host
362    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
363    targ_underscore=yes
364    ;;
365  i960-*-rtemself*)
366    targ_defvec=bfd_elf32_i960_vec
367    targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
368    targ_underscore=yes
369    ;;
370  i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtemscoff* | i960-*-rtems*)
371    targ_defvec=icoff_little_vec
372    targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
373    targ_underscore=yes
374    ;;
375  i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
376    targ_defvec=b_out_vec_little_host
377    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
378    targ_underscore=yes
379    ;;
380  i960-*-elf*)
381    targ_defvec=bfd_elf32_i960_vec
382    targ_selvecs="icoff_little_vec icoff_big_vec"
383    ;;
384
385  m32r-*-*)
386    targ_defvec=bfd_elf32_m32r_vec
387    ;;
388
389  m68*-apollo-*)
390    targ_defvec=apollocoff_vec
391    ;;
392  m68*-bull-sysv*)
393    targ_defvec=m68kcoffun_vec
394    targ_underscore=yes
395    ;;
396  m68*-motorola-sysv*)
397    targ_defvec=m68ksysvcoff_vec
398    ;;
399  m68*-hp-bsd*)
400    targ_defvec=hp300bsd_vec
401    targ_underscore=yes
402    ;;
403  m68*-*-aout*)
404    targ_defvec=aout0_big_vec
405    # We include cisco_core_big_vec here, rather than making a separate cisco
406    # configuration, so that cisco-core.c gets routinely tested at
407    # least for compilation.
408    targ_selvecs="cisco_core_big_vec ieee_vec"
409    targ_underscore=yes
410    ;;
411  m68*-*-elf* | m68*-*-sysv4*)
412    targ_defvec=bfd_elf32_m68k_vec
413    targ_selvecs="m68kcoff_vec ieee_vec"
414    ;;
415  m68*-*-rtemscoff*)
416    # same as m68k-coff with some extra targets
417    targ_defvec=m68kcoff_vec
418    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
419    ;;
420  m68*-*-rtems* | m68*-*-rtemself*)
421    # same as m68k-elf with some extra targets
422    targ_defvec=bfd_elf32_m68k_vec
423    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
424    ;;
425  m68*-*-coff* | m68*-*-sysv*)
426    targ_defvec=m68kcoff_vec
427    targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
428    ;;
429  m68*-*-hpux*)
430    targ_defvec=hp300hpux_vec
431    targ_underscore=yes
432    ;;
433  m68*-*-linux*aout*)
434    targ_defvec=m68klinux_vec
435    targ_selvecs=bfd_elf32_m68k_vec
436    targ_underscore=yes
437    ;;
438  m68*-*-linux-gnu*)
439    targ_defvec=bfd_elf32_m68k_vec
440    targ_selvecs=m68klinux_vec
441    ;;
442  m68*-*-gnu*)
443    targ_defvec=bfd_elf32_m68k_vec
444    # targ_selvecs=m68kmach3_vec
445    # targ_cflags=-DSTAT_FOR_EXEC
446    ;;
447  m68*-*-lynxos*)
448    targ_defvec=m68klynx_coff_vec
449    targ_selvecs=m68klynx_aout_vec
450    ;;
451  m68*-hp*-netbsd*)
452    targ_defvec=m68k4knetbsd_vec
453    targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
454    targ_underscore=yes
455    ;;
456  m68*-*-netbsd* | m68*-*-openbsd*)
457    targ_defvec=m68knetbsd_vec
458    targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
459    targ_underscore=yes
460    ;;
461  m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
462  m68*-*-bsd* | m68*-*-vsta*)
463    targ_defvec=sunos_big_vec
464    targ_underscore=yes
465    ;;
466  m68*-ericsson-*)
467    targ_defvec=sunos_big_vec
468    targ_selvecs="m68kcoff_vec versados_vec tekhex_vec"
469    targ_underscore=yes
470    ;;
471  m68*-cbm-*)
472    targ_defvec=bfd_elf32_m68k_vec
473    targ_selvecs=m68kcoff_vec
474    ;;
475  m68*-apple-aux*)
476    targ_defvec=m68kaux_coff_vec
477    ;;
478  m68*-*-psos*)
479    targ_defvec=bfd_elf32_m68k_vec
480    targ_selvecs=ieee_vec
481    targ_underscore=yes
482    ;;
483
484  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
485    targ_defvec=bfd_elf32_m88k_vec
486    targ_selvecs=m88kbcs_vec
487    ;;
488  m88*-*-mach3*)
489    targ_defvec=m88kmach3_vec
490    targ_cflags=-DSTAT_FOR_EXEC
491    ;;
492  m88*-*-*)
493    targ_defvec=m88kbcs_vec
494    targ_underscore=yes
495    ;;
496
497  mcore-*-elf)
498    targ_defvec=bfd_elf32_mcore_big_vec
499    targ_selvecs="bfd_elf32_mcore_big_vec bfd_elf32_mcore_little_vec"
500    ;;
501  mcore-*-pe)
502    targ_defvec=mcore_pe_big_vec
503    targ_selvecs="mcore_pe_big_vec mcore_pe_little_vec mcore_pei_big_vec mcore_pei_little_vec"
504    ;;
505
506  mips*-big-*)
507    targ_defvec=ecoff_big_vec
508    targ_selvecs=ecoff_little_vec
509    ;;
510  mips-dec-netbsd* | mips*el*-*-netbsd*)
511    targ_defvec=bfd_elf32_littlemips_vec
512    targ_selvecs="bfd_elf32_bigmips_vec ecoff_little_vec ecoff_big_vec"
513    ;;
514 mips*-*-netbsd*)
515    targ_defvec=bfd_elf32_bigmips_vec
516    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
517    ;;
518  mips*-dec-bsd*)
519    targ_defvec=aout_mips_little_vec
520    targ_underscore=yes
521    ;;
522  mips*-dec-mach3*)
523    targ_defvec=aout_mips_little_vec
524    targ_cflags=-DSTAT_FOR_EXEC
525    ;;
526  mips*-dec-* | mips*el-*-ecoff*)
527    targ_defvec=ecoff_little_vec
528    targ_selvecs=ecoff_big_vec
529    ;;
530  mips*-*-ecoff*)
531    targ_defvec=ecoff_big_vec
532    targ_selvecs=ecoff_little_vec
533    ;;
534  mips*-*-irix6*)
535    targ_defvec=bfd_elf32_bigmips_vec
536    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
537    ;;
538  mips*-*-irix5*)
539    targ_defvec=bfd_elf32_bigmips_vec
540    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
541    ;;
542  mips*-sgi-* | mips*-*-bsd*)
543    targ_defvec=ecoff_big_vec
544    targ_selvecs=ecoff_little_vec
545    ;;
546  mips*-*-lnews*)
547    targ_defvec=ecoff_biglittle_vec
548    targ_selvecs="ecoff_little_vec ecoff_big_vec"
549    ;;
550  mips*-*-mach3*)
551    targ_defvec=aout_mips_little_vec
552    targ_cflags=-DSTAT_FOR_EXEC
553    ;;
554  mips*-*-pe*)
555    targ_defvec=mipslpe_vec
556    targ_selvecs="mipslpei_vec mipslpei_vec ecoff_little_vec ecoff_big_vec"
557    targ_underscore=yes
558    ;;
559  mips*-*-sysv4*)
560    targ_defvec=bfd_elf32_bigmips_vec
561    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
562    ;;
563  mips*-*-sysv* | mips*-*-riscos*)
564    targ_defvec=ecoff_big_vec
565    targ_selvecs=ecoff_little_vec
566    ;;
567  mips*el-*-elf* | mips*el-*-rtems* | mips*el-*-vxworks*)
568    targ_defvec=bfd_elf32_littlemips_vec
569    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
570    ;;
571  mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks*)
572    targ_defvec=bfd_elf32_bigmips_vec
573    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
574    ;;
575  mips*-*-none)
576    targ_defvec=bfd_elf32_bigmips_vec
577    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
578    ;;
579  mips*el*-*-linux-gnu* | mips*el*-*-openbsd*)
580    targ_defvec=bfd_elf32_littlemips_vec
581    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
582    ;;
583  mips*-*-linux-gnu* | mips*-*-openbsd*)
584    targ_defvec=bfd_elf32_bigmips_vec
585    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
586    ;;
587
588  mn10200-*-*)
589    targ_defvec=bfd_elf32_mn10200_vec
590    ;;
591
592  mn10300-*-*)
593    targ_defvec=bfd_elf32_mn10300_vec
594    ;;
595
596  ns32k-pc532-mach* | ns32k-pc532-ux*)
597    targ_defvec=pc532machaout_vec
598    targ_underscore=yes
599    ;;
600  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
601    targ_defvec=pc532netbsd_vec
602    targ_underscore=yes
603    ;;
604
605  pj-*-*)
606    targ_defvec=bfd_elf32_pj_vec
607    targ_selvecs="bfd_elf32_pj_vec bfd_elf32_pjl_vec"
608    ;;
609
610  pjl-*-*)
611    targ_defvec=bfd_elf32_pjl_vec
612    targ_selvecs="bfd_elf32_pjl_vec bfd_elf32_pj_vec bfd_elf32_i386_vec"
613    ;;
614
615  powerpc-*-aix* | powerpc-*-beos*)
616    targ_defvec=rs6000coff_vec
617    ;;
618  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
619  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
620  powerpc-*-vxworks*)
621    targ_defvec=bfd_elf32_powerpc_vec
622    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
623    ;;
624  powerpc-*-macos* | powerpc-*-mpw*)
625    targ_defvec=pmac_xcoff_vec
626    ;;
627  powerpc-*-netware*)
628    targ_defvec=bfd_elf32_powerpc_vec
629    targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
630    ;;
631  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
632  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
633  powerpcle-*-rtems*)
634    targ_defvec=bfd_elf32_powerpcle_vec
635    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
636    ;;
637
638  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
639    targ_defvec=bfd_powerpcle_pe_vec
640    targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
641    ;;
642
643  rs6000-*-*)
644    targ_defvec=rs6000coff_vec
645    ;;
646
647  sh-*-elf* | sh-*-rtemself*)
648    targ_defvec=bfd_elf32_sh_vec
649    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
650    targ_underscore=yes
651    ;;
652  sh-*-pe)
653    targ_defvec=shlpe_vec
654    targ_selvecs="shlpe_vec shlpei_vec"
655    targ_underscore=yes
656    ;;
657  sh-*-* | sh-*-rtemscoff* | sh-*-rtems*)
658    targ_defvec=shcoff_vec
659    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
660    targ_underscore=yes
661    ;;
662
663  sparclet-*-aout*)
664    targ_defvec=sunos_big_vec
665    targ_selvecs=sparcle_aout_vec
666    targ_underscore=yes
667    ;;
668  sparc86x-*-aout*)
669    targ_defvec=sunos_big_vec
670    targ_underscore=yes
671    ;;
672  sparclite-*-elf* | sparc86x-*-elf*)
673    targ_defvec=bfd_elf32_sparc_vec
674    ;;
675  sparc-*-linux*aout*)
676    targ_defvec=sparclinux_vec
677    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
678    targ_underscore=yes
679    ;;
680  sparc-*-linux-gnu*)
681    targ_defvec=bfd_elf32_sparc_vec
682    targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
683    ;;
684  sparc-*-lynxos*)
685    targ_defvec=sparclynx_coff_vec
686    targ_selvecs=sparclynx_aout_vec
687    ;;
688  sparc-*-netbsdelf*)
689    targ_defvec=bfd_elf32_sparc_vec
690    targ_selvecs=sparcnetbsd_vec
691    ;;
692  sparc-*-netbsdaout* | sparc-*-netbsd*)
693    targ_defvec=sparcnetbsd_vec
694    targ_selvecs=bfd_elf32_sparc_vec
695    targ_underscore=yes
696    ;;
697  sparc-*-openbsd*)
698    targ_defvec=sparcnetbsd_vec
699    targ_underscore=yes
700    ;;
701  sparc-*-elf* | sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
702    targ_defvec=bfd_elf32_sparc_vec
703    targ_selvecs=sunos_big_vec
704    ;;
705#ifdef BFD64
706  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
707    targ_defvec=bfd_elf32_sparc_vec
708    targ_selvecs="bfd_elf64_sparc_vec sunos_big_vec"
709    ;;
710#endif
711  sparc-*-sysv4*)
712    targ_defvec=bfd_elf32_sparc_vec
713    ;;
714  sparc-*-netware*)
715    targ_defvec=bfd_elf32_sparc_vec
716    targ_selvecs="nlm32_sparc_vec sunos_big_vec"
717    ;;
718#ifdef BFD64
719  sparc64-*-aout*)
720    targ_defvec=sunos_big_vec
721    targ_underscore=yes
722    ;;
723  sparc64-*-linux-gnu*)
724    targ_defvec=bfd_elf64_sparc_vec
725    targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
726    ;;
727  sparc64-*-elf*)
728    targ_defvec=bfd_elf64_sparc_vec
729    targ_selvecs=bfd_elf32_sparc_vec
730    ;;    
731#endif /* BFD64 */
732  sparc*-*-coff*)
733    targ_defvec=sparccoff_vec
734    ;;
735  sparc*-*-rtemsaout*)
736    targ_defvec=sunos_big_vec
737    targ_selvecs="bfd_elf32_sparc_vec sparccoff_vec"
738    targ_underscore=yes
739    ;;
740  sparc*-*-rtems* | sparc*-*-rtemself*)
741    targ_defvec=bfd_elf32_sparc_vec
742    targ_selvecs="sunos_big_vec sparccoff_vec"
743    ;;
744  sparc*-*-*)
745    targ_defvec=sunos_big_vec
746    targ_underscore=yes
747    ;;
748
749#if HAVE_host_aout_vec
750  tahoe-*-*)
751    targ_defvec=host_aout_vec
752    targ_underscore=yes
753    ;;
754#endif
755
756  tic80*-*-*)
757    targ_defvec=tic80coff_vec
758    targ_underscore=yes
759    ;;
760
761
762  v850-*-*)
763    targ_defvec=bfd_elf32_v850_vec
764    ;;
765  v850e-*-*)
766    targ_defvec=bfd_elf32_v850_vec
767    ;;
768  v850ea-*-*)
769    targ_defvec=bfd_elf32_v850_vec
770    ;;
771#if HAVE_host_aout_vec
772  vax-*-bsd* | vax-*-ultrix*)
773    targ_defvec=host_aout_vec
774    targ_underscore=yes
775    ;;
776#endif
777
778  vax*-*-*vms*)
779    targ_defvec=vms_vax_vec
780    ;;
781
782  we32k-*-*)
783    targ_defvec=we32kcoff_vec
784    ;;
785
786  w65-*-*)
787    targ_defvec=w65_vec
788    ;;
789
790  z8k*-*-*)
791    targ_defvec=z8kcoff_vec
792    targ_underscore=yes
793    ;;
794
795  *-*-ieee*)
796    targ_defvec=ieee_vec
797    ;;
798
799  *-adobe-*)
800    targ_defvec=a_out_adobe_vec
801    targ_underscore=yes
802    ;;
803
804  *-sony-*)
805    targ_defvec=newsos3_vec
806    targ_underscore=yes
807    ;;
808
809  *-tandem-*)
810    targ_defvec=m68kcoff_vec
811    targ_selvecs=ieee_vec
812    ;;
813# END OF targmatch.h
814  *)
815    echo 1>&2 "*** BFD does not support target ${targ}."
816    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
817    exit 1
818    ;;
819esac
820
821# If we support any ELF target, then automatically add support for the
822# generic ELF targets.  This permits an objdump with some ELF support
823# to be used on an arbitrary ELF file for anything other than
824# relocation information.
825case "${targ_defvec} ${targ_selvecs}" in
826  *bfd_elf64*)
827    targ_selvecs="${targ_selvecs} bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
828    ;;
829  *bfd_elf32*)
830    targ_selvecs="${targ_selvecs} bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
831    ;;
832esac
833