config.bfd revision 60484
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-*-rtemself*)
250    targ_defvec=bfd_elf32_i386_vec
251    targ_selvecs="i386coff_vec i386aout_vec"
252    ;;
253  i[3456]86-*-msdosdjgpp* | i[3456]*-*-go32* | i[3456]86-go32-rtems* )
254    targ_defvec=go32coff_vec
255    targ_selvecs="go32stubbedcoff_vec i386aout_vec"
256    ;;
257  i[3456]86-*-sysv* | i[3456]86-*-isc* | i[3456]86-*-sco* | i[3456]86-*-coff | \
258  i[3456]86-*-aix*)
259    targ_defvec=i386coff_vec
260    ;;
261  i[3456]86*-*-rtems*)
262    targ_defvec=i386coff_vec
263    targ_selvecs="bfd_elf32_i386_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-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*)
366    targ_defvec=icoff_little_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-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
371    targ_defvec=b_out_vec_little_host
372    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
373    targ_underscore=yes
374    ;;
375  i960-*-elf*)
376    targ_defvec=bfd_elf32_i960_vec
377    targ_selvecs="icoff_little_vec icoff_big_vec"
378    ;;
379
380  m32r-*-*)
381    targ_defvec=bfd_elf32_m32r_vec
382    ;;
383
384  m68*-apollo-*)
385    targ_defvec=apollocoff_vec
386    ;;
387  m68*-bull-sysv*)
388    targ_defvec=m68kcoffun_vec
389    targ_underscore=yes
390    ;;
391  m68*-motorola-sysv*)
392    targ_defvec=m68ksysvcoff_vec
393    ;;
394  m68*-hp-bsd*)
395    targ_defvec=hp300bsd_vec
396    targ_underscore=yes
397    ;;
398  m68*-*-aout*)
399    targ_defvec=aout0_big_vec
400    # We include cisco_core_big_vec here, rather than making a separate cisco
401    # configuration, so that cisco-core.c gets routinely tested at
402    # least for compilation.
403    targ_selvecs="cisco_core_big_vec ieee_vec"
404    targ_underscore=yes
405    ;;
406  m68*-*-elf* | m68*-*-sysv4*)
407    targ_defvec=bfd_elf32_m68k_vec
408    targ_selvecs="m68kcoff_vec ieee_vec"
409    ;;
410  m68*-*-rtems*)
411    targ_defvec=m68kcoff_vec
412    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
413    ;;
414  m68*-*-coff* | m68*-*-sysv*)
415    targ_defvec=m68kcoff_vec
416    targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
417    ;;
418  m68*-*-hpux*)
419    targ_defvec=hp300hpux_vec
420    targ_underscore=yes
421    ;;
422  m68*-*-linux*aout*)
423    targ_defvec=m68klinux_vec
424    targ_selvecs=bfd_elf32_m68k_vec
425    targ_underscore=yes
426    ;;
427  m68*-*-linux-gnu*)
428    targ_defvec=bfd_elf32_m68k_vec
429    targ_selvecs=m68klinux_vec
430    ;;
431  m68*-*-gnu*)
432    targ_defvec=bfd_elf32_m68k_vec
433    # targ_selvecs=m68kmach3_vec
434    # targ_cflags=-DSTAT_FOR_EXEC
435    ;;
436  m68*-*-lynxos*)
437    targ_defvec=m68klynx_coff_vec
438    targ_selvecs=m68klynx_aout_vec
439    ;;
440  m68*-hp*-netbsd*)
441    targ_defvec=m68k4knetbsd_vec
442    targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
443    targ_underscore=yes
444    ;;
445  m68*-*-netbsd* | m68*-*-openbsd*)
446    targ_defvec=m68knetbsd_vec
447    targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
448    targ_underscore=yes
449    ;;
450  m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
451  m68*-*-bsd* | m68*-*-vsta*)
452    targ_defvec=sunos_big_vec
453    targ_underscore=yes
454    ;;
455  m68*-ericsson-*)
456    targ_defvec=sunos_big_vec
457    targ_selvecs="m68kcoff_vec versados_vec tekhex_vec"
458    targ_underscore=yes
459    ;;
460  m68*-cbm-*)
461    targ_defvec=bfd_elf32_m68k_vec
462    targ_selvecs=m68kcoff_vec
463    ;;
464  m68*-apple-aux*)
465    targ_defvec=m68kaux_coff_vec
466    ;;
467  m68*-*-psos*)
468    targ_defvec=bfd_elf32_m68k_vec
469    targ_selvecs=ieee_vec
470    targ_underscore=yes
471    ;;
472
473  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
474    targ_defvec=bfd_elf32_m88k_vec
475    targ_selvecs=m88kbcs_vec
476    ;;
477  m88*-*-mach3*)
478    targ_defvec=m88kmach3_vec
479    targ_cflags=-DSTAT_FOR_EXEC
480    ;;
481  m88*-*-*)
482    targ_defvec=m88kbcs_vec
483    targ_underscore=yes
484    ;;
485
486  mcore-*-elf)
487    targ_defvec=bfd_elf32_mcore_big_vec
488    targ_selvecs="bfd_elf32_mcore_big_vec bfd_elf32_mcore_little_vec"
489    ;;
490  mcore-*-pe)
491    targ_defvec=mcore_pe_big_vec
492    targ_selvecs="mcore_pe_big_vec mcore_pe_little_vec mcore_pei_big_vec mcore_pei_little_vec"
493    ;;
494
495  mips*-big-*)
496    targ_defvec=ecoff_big_vec
497    targ_selvecs=ecoff_little_vec
498    ;;
499  mips-dec-netbsd* | mips*el*-*-netbsd*)
500    targ_defvec=bfd_elf32_littlemips_vec
501    targ_selvecs="bfd_elf32_bigmips_vec ecoff_little_vec ecoff_big_vec"
502    ;;
503 mips*-*-netbsd*)
504    targ_defvec=bfd_elf32_bigmips_vec
505    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
506    ;;
507  mips*-dec-bsd*)
508    targ_defvec=aout_mips_little_vec
509    targ_underscore=yes
510    ;;
511  mips*-dec-mach3*)
512    targ_defvec=aout_mips_little_vec
513    targ_cflags=-DSTAT_FOR_EXEC
514    ;;
515  mips*-dec-* | mips*el-*-ecoff*)
516    targ_defvec=ecoff_little_vec
517    targ_selvecs=ecoff_big_vec
518    ;;
519  mips*-*-ecoff*)
520    targ_defvec=ecoff_big_vec
521    targ_selvecs=ecoff_little_vec
522    ;;
523  mips*-*-irix6*)
524    targ_defvec=bfd_elf32_bigmips_vec
525    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
526    ;;
527  mips*-*-irix5*)
528    targ_defvec=bfd_elf32_bigmips_vec
529    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
530    ;;
531  mips*-sgi-* | mips*-*-bsd*)
532    targ_defvec=ecoff_big_vec
533    targ_selvecs=ecoff_little_vec
534    ;;
535  mips*-*-lnews*)
536    targ_defvec=ecoff_biglittle_vec
537    targ_selvecs="ecoff_little_vec ecoff_big_vec"
538    ;;
539  mips*-*-mach3*)
540    targ_defvec=aout_mips_little_vec
541    targ_cflags=-DSTAT_FOR_EXEC
542    ;;
543  mips*-*-pe*)
544    targ_defvec=mipslpe_vec
545    targ_selvecs="mipslpei_vec mipslpei_vec ecoff_little_vec ecoff_big_vec"
546    targ_underscore=yes
547    ;;
548  mips*-*-sysv4*)
549    targ_defvec=bfd_elf32_bigmips_vec
550    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
551    ;;
552  mips*-*-sysv* | mips*-*-riscos*)
553    targ_defvec=ecoff_big_vec
554    targ_selvecs=ecoff_little_vec
555    ;;
556  mips*el-*-elf* | mips*el-*-rtems* | mips*el-*-vxworks*)
557    targ_defvec=bfd_elf32_littlemips_vec
558    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
559    ;;
560  mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks*)
561    targ_defvec=bfd_elf32_bigmips_vec
562    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
563    ;;
564  mips*-*-none)
565    targ_defvec=bfd_elf32_bigmips_vec
566    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
567    ;;
568  mips*el*-*-linux-gnu* | mips*el*-*-openbsd*)
569    targ_defvec=bfd_elf32_littlemips_vec
570    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
571    ;;
572  mips*-*-linux-gnu* | mips*-*-openbsd*)
573    targ_defvec=bfd_elf32_bigmips_vec
574    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
575    ;;
576
577  mn10200-*-*)
578    targ_defvec=bfd_elf32_mn10200_vec
579    ;;
580
581  mn10300-*-*)
582    targ_defvec=bfd_elf32_mn10300_vec
583    ;;
584
585  ns32k-pc532-mach* | ns32k-pc532-ux*)
586    targ_defvec=pc532machaout_vec
587    targ_underscore=yes
588    ;;
589  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
590    targ_defvec=pc532netbsd_vec
591    targ_underscore=yes
592    ;;
593
594  pj-*-*)
595    targ_defvec=bfd_elf32_pj_vec
596    targ_selvecs="bfd_elf32_pj_vec bfd_elf32_pjl_vec"
597    ;;
598
599  pjl-*-*)
600    targ_defvec=bfd_elf32_pjl_vec
601    targ_selvecs="bfd_elf32_pjl_vec bfd_elf32_pj_vec bfd_elf32_i386_vec"
602    ;;
603
604  powerpc-*-aix* | powerpc-*-beos*)
605    targ_defvec=rs6000coff_vec
606    ;;
607  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
608  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
609  powerpc-*-vxworks*)
610    targ_defvec=bfd_elf32_powerpc_vec
611    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
612    ;;
613  powerpc-*-macos* | powerpc-*-mpw*)
614    targ_defvec=pmac_xcoff_vec
615    ;;
616  powerpc-*-netware*)
617    targ_defvec=bfd_elf32_powerpc_vec
618    targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
619    ;;
620  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
621  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
622  powerpcle-*-rtems*)
623    targ_defvec=bfd_elf32_powerpcle_vec
624    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
625    ;;
626
627  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
628    targ_defvec=bfd_powerpcle_pe_vec
629    targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
630    ;;
631
632  rs6000-*-*)
633    targ_defvec=rs6000coff_vec
634    ;;
635
636  sh-*-elf* | sh-*-rtemself*)
637    targ_defvec=bfd_elf32_sh_vec
638    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
639    targ_underscore=yes
640    ;;
641  sh-*-pe)
642    targ_defvec=shlpe_vec
643    targ_selvecs="shlpe_vec shlpei_vec"
644    targ_underscore=yes
645    ;;
646  sh-*-* | sh-*-rtems*)
647    targ_defvec=shcoff_vec
648    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
649    targ_underscore=yes
650    ;;
651
652  sparclet-*-aout*)
653    targ_defvec=sunos_big_vec
654    targ_selvecs=sparcle_aout_vec
655    targ_underscore=yes
656    ;;
657  sparc86x-*-aout*)
658    targ_defvec=sunos_big_vec
659    targ_underscore=yes
660    ;;
661  sparclite-*-elf* | sparc86x-*-elf*)
662    targ_defvec=bfd_elf32_sparc_vec
663    ;;
664  sparc-*-linux*aout*)
665    targ_defvec=sparclinux_vec
666    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
667    targ_underscore=yes
668    ;;
669  sparc-*-linux-gnu*)
670    targ_defvec=bfd_elf32_sparc_vec
671    targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
672    ;;
673  sparc-*-lynxos*)
674    targ_defvec=sparclynx_coff_vec
675    targ_selvecs=sparclynx_aout_vec
676    ;;
677  sparc-*-netbsdelf*)
678    targ_defvec=bfd_elf32_sparc_vec
679    targ_selvecs=sparcnetbsd_vec
680    ;;
681  sparc-*-netbsdaout* | sparc-*-netbsd*)
682    targ_defvec=sparcnetbsd_vec
683    targ_selvecs=bfd_elf32_sparc_vec
684    targ_underscore=yes
685    ;;
686  sparc-*-openbsd*)
687    targ_defvec=sparcnetbsd_vec
688    targ_underscore=yes
689    ;;
690  sparc-*-elf* | sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
691    targ_defvec=bfd_elf32_sparc_vec
692    targ_selvecs=sunos_big_vec
693    ;;
694#ifdef BFD64
695  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
696    targ_defvec=bfd_elf32_sparc_vec
697    targ_selvecs="bfd_elf64_sparc_vec sunos_big_vec"
698    ;;
699#endif
700  sparc-*-sysv4*)
701    targ_defvec=bfd_elf32_sparc_vec
702    ;;
703  sparc-*-netware*)
704    targ_defvec=bfd_elf32_sparc_vec
705    targ_selvecs="nlm32_sparc_vec sunos_big_vec"
706    ;;
707#ifdef BFD64
708  sparc64-*-aout*)
709    targ_defvec=sunos_big_vec
710    targ_underscore=yes
711    ;;
712  sparc64-*-linux-gnu*)
713    targ_defvec=bfd_elf64_sparc_vec
714    targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
715    ;;
716  sparc64-*-elf*)
717    targ_defvec=bfd_elf64_sparc_vec
718    targ_selvecs=bfd_elf32_sparc_vec
719    ;;    
720#endif /* BFD64 */
721  sparc*-*-coff*)
722    targ_defvec=sparccoff_vec
723    ;;
724  sparc*-*-* | sparc*-*-rtems*)
725    targ_defvec=sunos_big_vec
726    targ_underscore=yes
727    ;;
728
729#if HAVE_host_aout_vec
730  tahoe-*-*)
731    targ_defvec=host_aout_vec
732    targ_underscore=yes
733    ;;
734#endif
735
736  tic80*-*-*)
737    targ_defvec=tic80coff_vec
738    targ_underscore=yes
739    ;;
740
741
742  v850-*-*)
743    targ_defvec=bfd_elf32_v850_vec
744    ;;
745  v850e-*-*)
746    targ_defvec=bfd_elf32_v850_vec
747    ;;
748  v850ea-*-*)
749    targ_defvec=bfd_elf32_v850_vec
750    ;;
751#if HAVE_host_aout_vec
752  vax-*-bsd* | vax-*-ultrix*)
753    targ_defvec=host_aout_vec
754    targ_underscore=yes
755    ;;
756#endif
757
758  vax*-*-*vms*)
759    targ_defvec=vms_vax_vec
760    ;;
761
762  we32k-*-*)
763    targ_defvec=we32kcoff_vec
764    ;;
765
766  w65-*-*)
767    targ_defvec=w65_vec
768    ;;
769
770  z8k*-*-*)
771    targ_defvec=z8kcoff_vec
772    targ_underscore=yes
773    ;;
774
775  *-*-ieee*)
776    targ_defvec=ieee_vec
777    ;;
778
779  *-adobe-*)
780    targ_defvec=a_out_adobe_vec
781    targ_underscore=yes
782    ;;
783
784  *-sony-*)
785    targ_defvec=newsos3_vec
786    targ_underscore=yes
787    ;;
788
789  *-tandem-*)
790    targ_defvec=m68kcoff_vec
791    targ_selvecs=ieee_vec
792    ;;
793# END OF targmatch.h
794  *)
795    echo 1>&2 "*** BFD does not support target ${targ}."
796    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
797    exit 1
798    ;;
799esac
800
801# If we support any ELF target, then automatically add support for the
802# generic ELF targets.  This permits an objdump with some ELF support
803# to be used on an arbitrary ELF file for anything other than
804# relocation information.
805case "${targ_defvec} ${targ_selvecs}" in
806  *bfd_elf64*)
807    targ_selvecs="${targ_selvecs} bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
808    ;;
809  *bfd_elf32*)
810    targ_selvecs="${targ_selvecs} bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
811    ;;
812esac
813