config.bfd revision 91041
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
32targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
33case "${targ_cpu}" in
34alpha*)          targ_archs=bfd_alpha_arch ;;
35arm*)	         targ_archs=bfd_arm_arch ;;
36c30*)	         targ_archs=bfd_tic30_arch ;;
37c54x*)	         targ_archs=bfd_tic54x_arch ;;
38hppa*)	         targ_archs=bfd_hppa_arch ;;
39i[3456]86)       targ_archs=bfd_i386_arch ;;
40i370)            targ_archs=bfd_i370_arch ;;
41m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch" ;;
42m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch" ;;
43m68*)	         targ_archs=bfd_m68k_arch ;;
44m88*)	         targ_archs=bfd_m88k_arch ;;
45mips*)	         targ_archs=bfd_mips_arch ;;
46or32*)		 targ_archs=bfd_or32_arch ;;
47pdp11*)	         targ_archs=bfd_pdp11_arch ;;
48pj*)	         targ_archs="bfd_pj_arch bfd_i386_arch";;
49powerpc*)        targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
50rs6000)	         targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
51s390*)           targ_archs=bfd_s390_arch ;;
52sh*)             targ_archs=bfd_sh_arch ;;
53sparc*)          targ_archs=bfd_sparc_arch ;;
54strongarm*)      targ_archs=bfd_arm_arch ;;
55thumb*)	         targ_archs=bfd_arm_arch ;;
56v850*)	         targ_archs=bfd_v850_arch ;;
57x86_64)          targ_archs=bfd_i386_arch ;;
58xscale*)         targ_archs=bfd_arm_arch ;;
59z8k*)	         targ_archs=bfd_z8k_arch ;;
60sh*)	         targ_archs=bfd_sh_arch ;;
61*)	         targ_archs=bfd_${targ_cpu}_arch ;;
62esac
63
64
65# WHEN ADDING ENTRIES TO THIS MATRIX:
66#  Make sure that the left side always has two dashes.  Otherwise you
67#  can get spurious matches.  Even for unambiguous cases, do this as a
68#  convention, else the table becomes a real mess to understand and maintain.
69
70case "${targ}" in
71# START OF targmatch.h
72#ifdef BFD64
73  alpha*-*-netbsd* | alpha*-*-freebsd*)
74    targ_defvec=bfd_elf64_alpha_vec
75    targ_selvecs=ecoffalpha_little_vec
76    ;;
77  alpha*-*-netware*)
78    targ_defvec=ecoffalpha_little_vec
79    targ_selvecs=nlm32_alpha_vec
80    ;;
81  alpha*-*-linuxecoff*)
82    targ_defvec=ecoffalpha_little_vec
83    targ_selvecs=bfd_elf64_alpha_vec
84    ;;
85  alpha*-*-linux-gnu* | alpha*-*-elf*)
86    targ_defvec=bfd_elf64_alpha_vec
87    targ_selvecs=ecoffalpha_little_vec
88    ;;
89  alpha*-*-*vms*)
90    targ_defvec=vms_alpha_vec
91    ;;
92  alpha*-*-*)
93    targ_defvec=ecoffalpha_little_vec
94    ;;
95  ia64*-*-aix*)
96    targ_defvec=bfd_elf64_ia64_aix_little_vec
97    targ_selvecs="bfd_elf64_ia64_aix_big_vec bfd_efi_app_ia64_vec"
98    ;;
99  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
100    targ_defvec=bfd_elf64_ia64_little_vec
101    targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
102    ;;
103  ia64*-*-hpux*)
104    targ_defvec=bfd_elf32_ia64_hpux_big_vec
105    targ_selvecs="bfd_elf64_ia64_hpux_big_vec"
106    ;;
107  sparc64-*-freebsd* | sparc64-*-netbsd*)
108    targ_defvec=bfd_elf64_sparc_vec
109    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
110    ;;
111#endif /* BFD64 */
112
113  arc-*-elf*)
114    targ_defvec=bfd_elf32_littlearc_vec
115    targ_selvecs=bfd_elf32_bigarc_vec
116    ;;
117
118  arm-*-netbsdelf*)
119    targ_defvec=bfd_elf32_littlearm_vec
120    targ_selvecs="bfd_elf32_bigarm_vec armnetbsd_vec"
121    ;;
122  arm-*-netbsd* | arm-*-openbsd*)
123    targ_defvec=armnetbsd_vec
124    targ_underscore=yes
125    ;;
126  arm-*-riscix*)
127    targ_defvec=riscix_vec
128    ;;
129  arm-epoc-pe*)
130    targ_defvec=arm_epoc_pe_little_vec
131    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
132    targ_underscore=no
133    targ_cflags=-DARM_COFF_BUGFIX
134    ;;
135  arm-wince-pe | arm-*-wince)
136    targ_defvec=armpe_little_vec
137    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
138    targ_underscore=no
139    targ_cflags=-DARM_WINCE
140    ;;
141  arm-*-pe*)
142    targ_defvec=armpe_little_vec
143    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
144    targ_underscore=yes
145    ;;
146  arm-*-aout | armel-*-aout)
147    targ_defvec=aout_arm_little_vec
148    targ_selvecs=aout_arm_big_vec
149    ;;
150  armeb-*-aout)
151    targ_defvec=aout_arm_big_vec
152    targ_selvecs=aout_arm_little_vec
153    ;;
154  arm-*-vxworks*)
155    targ_defvec=armcoff_little_vec
156    targ_selvecs=armcoff_big_vec
157    targ_underscore=yes
158    targ_cflags=-DARM_COFF_BUGFIX
159    ;;
160  arm-*-coff)
161    targ_defvec=armcoff_little_vec
162    targ_selvecs=armcoff_big_vec
163    targ_underscore=yes
164    ;;
165  arm-*-rtems*)
166    targ_defvec=bfd_elf32_littlearm_vec
167    targ_selvecs=bfd_elf32_bigarm_vec
168    ;;
169  armeb-*-elf | arm*b-*-linux-gnu*)
170    targ_defvec=bfd_elf32_bigarm_vec
171    targ_selvecs=bfd_elf32_littlearm_vec
172    ;;
173  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux*)
174    targ_defvec=bfd_elf32_littlearm_vec
175    targ_selvecs=bfd_elf32_bigarm_vec
176    ;;
177  arm9e-*-elf)
178    targ_defvec=bfd_elf32_littlearm_vec
179    targ_selvecs=bfd_elf32_bigarm_vec
180    ;;
181  arm-*-oabi)
182    targ_defvec=bfd_elf32_littlearm_oabi_vec
183    targ_selvecs=bfd_elf32_bigarm_oabi_vec
184    ;;
185
186  thumb-*-coff)
187    targ_defvec=armcoff_little_vec
188    targ_selvecs=armcoff_big_vec
189    targ_underscore=yes
190    ;;
191  thumb-*-oabi)
192    targ_defvec=bfd_elf32_littlearm_oabi_vec
193    targ_selvecs=bfd_elf32_bigarm_oabi_vec
194    ;;
195  thumb-*-elf)
196    targ_defvec=bfd_elf32_littlearm_vec
197    targ_selvecs=bfd_elf32_bigarm_vec
198    ;;
199  thumb-epoc-pe*)
200    targ_defvec=arm_epoc_pe_little_vec
201    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
202    targ_underscore=no
203    ;;
204  thumb-*-pe*)
205    targ_defvec=armpe_little_vec
206    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
207    targ_underscore=yes
208    ;;
209  strongarm-*-elf)
210    targ_defvec=bfd_elf32_littlearm_vec
211    targ_selvecs=bfd_elf32_bigarm_vec
212    ;;
213  strongarm-*-coff)
214    targ_defvec=armcoff_little_vec
215    targ_selvecs=armcoff_big_vec
216    targ_underscore=yes
217    ;;
218  xscale-*-elf)
219    targ_defvec=bfd_elf32_littlearm_vec
220    targ_selvecs=bfd_elf32_bigarm_vec
221    ;;
222  xscale-*-coff)
223    targ_defvec=armcoff_little_vec
224    targ_selvecs=armcoff_big_vec
225    targ_underscore=yes
226    ;;
227
228  a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
229  a29k-*-vxworks* | a29k-*-sysv* | a29k-*rtems*)
230    targ_defvec=a29kcoff_big_vec
231    targ_selvecs=sunos_big_vec
232    targ_underscore=yes
233    ;;
234  a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*)
235    targ_defvec=sunos_big_vec
236    targ_underscore=yes
237    ;;
238
239  avr-*-*)
240    targ_defvec=bfd_elf32_avr_vec
241    ;;
242
243  c30-*-*aout* | tic30-*-*aout*)
244    targ_defvec=tic30_aout_vec
245    ;;
246  c30-*-*coff* | tic30-*-*coff*)
247    targ_defvec=tic30_coff_vec
248    ;;
249
250  c54x*-*-*coff* | tic54x-*-*coff*)
251    targ_defvec=tic54x_coff1_vec
252    targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec"
253    targ_underscore=yes
254    ;;
255
256  cris-*-*)
257    targ_defvec=cris_aout_vec
258    targ_selvecs="bfd_elf32_us_cris_vec bfd_elf32_cris_vec ieee_vec"
259    targ_underscore=yes # Note: not true for bfd_elf32_cris_vec.
260    ;;
261
262  d10v-*-*)
263    targ_defvec=bfd_elf32_d10v_vec
264    ;;
265
266  d30v-*-*)
267    targ_defvec=bfd_elf32_d30v_vec
268    ;;
269
270  fr30-*-elf)
271    targ_defvec=bfd_elf32_fr30_vec
272    ;;
273
274
275  h8300*-*-elf)
276    targ_defvec=bfd_elf32_h8300_vec
277    targ_underscore=yes
278    ;;
279
280  h8300*-*-*)
281    targ_defvec=h8300coff_vec
282    targ_underscore=yes
283    ;;
284
285  h8500-*-*)
286    targ_defvec=h8500coff_vec
287    targ_underscore=yes
288    ;;
289
290#ifdef BFD64
291  hppa*64*-*-linux-gnu*)
292    targ_defvec=bfd_elf64_hppa_linux_vec
293    targ_selvecs=bfd_elf64_hppa_vec
294    ;;
295  hppa*64*-*-hpux11*)
296    targ_defvec=bfd_elf64_hppa_vec
297    targ_selvecs=bfd_elf64_hppa_linux_vec
298    targ_cflags=-DHPUX_LARGE_AR_IDS
299    ;;
300#endif
301
302  hppa*-*-linux-gnu*)
303    targ_defvec=bfd_elf32_hppa_linux_vec
304    targ_selvecs=bfd_elf32_hppa_vec
305    ;;
306  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-netbsd* | hppa*-*-sysv4* | hppa*-*-rtems*)
307    targ_defvec=bfd_elf32_hppa_vec
308    targ_selvecs=bfd_elf32_hppa_linux_vec
309    ;;
310
311#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) || defined (HOST_HPPAMPEIX)
312  hppa*-*-bsd*)
313    targ_defvec=som_vec
314    targ_selvecs=bfd_elf32_hppa_vec
315    ;;
316  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
317    targ_defvec=som_vec
318    ;;
319  hppa*-*-osf*)
320    targ_defvec=som_vec
321    targ_selvecs=bfd_elf32_hppa_vec
322    ;;
323#endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */
324
325  i370-*-*) 
326    targ_defvec=bfd_elf32_i370_vec
327    targ_selvecs="bfd_elf32_i370_vec"
328    ;;
329  i[3456]86-*-sco3.2v5*coff)
330    targ_defvec=i386coff_vec
331    targ_selvecs=bfd_elf32_i386_vec
332    ;;
333  i[3456]86-*-sysv4* | i[3456]86-*-unixware* | i[3456]86-*-solaris2* | \
334  i[3456]86-*-elf | i[3456]86-*-sco3.2v5* | \
335  i[3456]86-*-dgux* | i[3456]86-*-sysv5*)
336    targ_defvec=bfd_elf32_i386_vec
337    targ_selvecs=i386coff_vec
338    ;;
339  i[3456]86-*-chorus*)
340    targ_defvec=bfd_elf32_i386_vec
341    ;;
342  i[3456]86-*-msdosdjgpp* | i[3456]*-*-go32* | i[3456]86-go32-rtems* )
343    targ_defvec=go32coff_vec
344    targ_selvecs="go32stubbedcoff_vec i386aout_vec"
345    ;;
346  i[3456]86-*-sysv* | i[3456]86-*-isc* | i[3456]86-*-sco* | i[3456]86-*-coff | \
347  i[3456]86-*-aix*)
348    targ_defvec=i386coff_vec
349    ;;
350  i[3456]86*-*-rtemscoff*)
351    targ_defvec=i386coff_vec
352    targ_selvecs="bfd_elf32_i386_vec i386aout_vec"
353    ;;
354  i[3456]86-*-rtemself* | i[3456]86-*-rtems*)
355    targ_defvec=bfd_elf32_i386_vec
356    targ_selvecs="i386coff_vec i386aout_vec"
357    ;;
358 i[3456]86-sequent-bsd*)
359    targ_defvec=i386dynix_vec
360    targ_underscore=yes
361    ;;
362  i[3456]86-*-bsd*)
363    targ_defvec=i386bsd_vec
364    targ_underscore=yes
365    ;;
366  i[3456]86-*-freebsdaout* | i[3456]86-*-freebsd[12].* | \
367  i[3456]86-*-freebsd[12])
368    targ_defvec=i386freebsd_vec
369    targ_selvecs=i386bsd_vec
370    targ_underscore=yes
371    ;;
372  i[3456]86-*-freebsd*)
373    targ_defvec=bfd_elf32_i386_vec
374    targ_selvecs=i386coff_vec
375    ;;
376  i[3456]86-*-netbsdelf*) 
377    targ_defvec=bfd_elf32_i386_vec
378    targ_selvecs=i386netbsd_vec
379    ;;
380  i[3456]86-*-netbsdaout* | i[3456]86-*-netbsd* | i[3456]86-*-openbsd*)
381    targ_defvec=i386netbsd_vec
382    targ_selvecs="bfd_elf32_i386_vec i386bsd_vec"
383    targ_underscore=yes
384    ;;
385  i[3456]86-*-netware*)
386    targ_defvec=bfd_elf32_i386_vec
387    targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
388    ;;
389  i[3456]86-*-linux*aout*)
390    targ_defvec=i386linux_vec
391    targ_selvecs=bfd_elf32_i386_vec
392    targ_underscore=yes
393    ;;
394  i[3456]86-*-linux-gnu*)
395    targ_defvec=bfd_elf32_i386_vec
396    targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
397    ;;
398#ifdef BFD64
399  x86_64-*-freebsd*)
400    targ_defvec=bfd_elf64_x86_64_vec
401    targ_selvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec"
402    ;;
403  x86_64-*-netbsd*)
404    targ_defvec=bfd_elf64_x86_64_vec
405    targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
406    ;;
407  x86_64-*-linux-gnu*)
408    targ_defvec=bfd_elf64_x86_64_vec
409    targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
410    ;;
411#endif
412  i[3456]86-*-lynxos*)
413    targ_defvec=i386lynx_coff_vec
414    targ_selvecs=i386lynx_aout_vec
415    ;;
416  i[3456]86-*-gnu*)
417    targ_defvec=bfd_elf32_i386_vec
418    ;;
419  i[3456]86-*-mach* | i[3456]86-*-osf1mk*)
420    targ_defvec=i386mach3_vec
421    targ_cflags=-DSTAT_FOR_EXEC
422    targ_underscore=yes
423    ;;
424  i[3456]86-*-os9k)
425    targ_defvec=i386os9k_vec
426    ;;
427  i[3456]86-*-msdos*)
428    targ_defvec=i386aout_vec
429    targ_selvecs=i386msdos_vec
430    ;;
431  i[3456]86-*-moss*)
432    targ_defvec=bfd_elf32_i386_vec
433    targ_selvecs="i386msdos_vec i386aout_vec"
434    ;;
435  i[3456]86-*-beospe*)
436    targ_defvec=i386pe_vec
437    targ_selvecs="i386pe_vec i386pei_vec"
438    ;;
439  i[3456]86-*-beoself* | i[3456]86-*-beos*)
440    targ_defvec=bfd_elf32_i386_vec
441    targ_selvecs="i386pe_vec i386pei_vec"
442    ;;
443  i[3456]86-*-interix*)
444    targ_defvec=i386pei_vec
445    targ_selvecs="i386pe_vec"
446    # FIXME: This should eventually be checked at runtime.
447    targ_cflags=-DSTRICT_PE_FORMAT
448    ;;
449  i[3456]86-*-mingw32* | i[3456]86-*-cygwin* | i[3456]86-*-winnt | i[3456]86-*-pe)
450    targ_defvec=i386pe_vec
451    targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec"
452    ;;
453  i[3456]86-none-*)
454    targ_defvec=i386coff_vec
455    ;;
456  i[3456]86-*-aout* | i[3456]86*-*-vsta*)
457    targ_defvec=i386aout_vec
458    ;;
459  i[3456]86-*-vxworks*)
460    targ_defvec=i386aout_vec
461    targ_underscore=yes
462    ;;
463  i[3456]86-*-chaos)
464    targ_defvec=bfd_elf32_i386_vec
465    targ_selfvecs=i386chaos_vec
466    ;;
467
468  i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
469    targ_defvec=i860coff_vec
470    ;;
471  i860-stardent-sysv4* | i860-stardent-elf*)
472    targ_defvec=bfd_elf32_i860_little_vec
473    targ_selvecs="bfd_elf32_i860_vec bfd_elf32_i860_little_vec"
474    ;;
475  i860-*-sysv4* | i860-*-elf*)
476    targ_defvec=bfd_elf32_i860_vec
477    ;;
478
479  i960-*-vxworks4* | i960-*-vxworks5.0)
480    targ_defvec=b_out_vec_little_host
481    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
482    targ_underscore=yes
483    ;;
484  i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*)
485    targ_defvec=icoff_little_vec
486    targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
487    targ_underscore=yes
488    ;;
489  i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
490    targ_defvec=b_out_vec_little_host
491    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
492    targ_underscore=yes
493    ;;
494  i960-*-elf*)
495    targ_defvec=bfd_elf32_i960_vec
496    targ_selvecs="icoff_little_vec icoff_big_vec"
497    ;;
498
499  m32r-*-*)
500    targ_defvec=bfd_elf32_m32r_vec
501    ;;
502
503  m68hc11-*-* | m6811-*-*)
504    targ_defvec=bfd_elf32_m68hc11_vec
505    targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
506    ;;
507  m68hc12-*-* | m6812-*-*)
508    targ_defvec=bfd_elf32_m68hc12_vec
509    targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
510    ;;
511
512  m68*-apollo-*)
513    targ_defvec=apollocoff_vec
514    ;;
515  m68*-bull-sysv*)
516    targ_defvec=m68kcoffun_vec
517    targ_underscore=yes
518    ;;
519  m68*-motorola-sysv*)
520    targ_defvec=m68ksysvcoff_vec
521    ;;
522  m68*-hp-bsd*)
523    targ_defvec=hp300bsd_vec
524    targ_underscore=yes
525    ;;
526  m68*-*-aout*)
527    targ_defvec=aout0_big_vec
528    # We include cisco_core_big_vec here, rather than making a separate cisco
529    # configuration, so that cisco-core.c gets routinely tested at
530    # least for compilation.
531    targ_selvecs="cisco_core_big_vec ieee_vec"
532    targ_underscore=yes
533    ;;
534  m68*-*-rtemscoff*)
535    targ_defvec=m68kcoff_vec
536    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
537    ;;
538  m68*-*-elf* | m68*-*-sysv4*)
539    targ_defvec=bfd_elf32_m68k_vec
540    targ_selvecs="m68kcoff_vec ieee_vec"
541    ;;
542  m68*-*-rtems*)
543    targ_defvec=bfd_elf32_m68k_vec
544    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
545    ;;
546  m68*-*-coff* | m68*-*-sysv*)
547    targ_defvec=m68kcoff_vec
548    targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
549    ;;
550  m68*-*-hpux*)
551    targ_defvec=hp300hpux_vec
552    targ_underscore=yes
553    ;;
554  m68*-*-linux*aout*)
555    targ_defvec=m68klinux_vec
556    targ_selvecs=bfd_elf32_m68k_vec
557    targ_underscore=yes
558    ;;
559  m68*-*-linux-gnu*)
560    targ_defvec=bfd_elf32_m68k_vec
561    targ_selvecs=m68klinux_vec
562    ;;
563  m68*-*-gnu*)
564    targ_defvec=bfd_elf32_m68k_vec
565    # targ_selvecs=m68kmach3_vec
566    # targ_cflags=-DSTAT_FOR_EXEC
567    ;;
568  m68*-*-lynxos*)
569    targ_defvec=m68klynx_coff_vec
570    targ_selvecs=m68klynx_aout_vec
571    ;;
572  m68*-hp*-netbsd*)
573    targ_defvec=m68k4knetbsd_vec
574    targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
575    targ_underscore=yes
576    ;;
577  m68*-*-netbsdelf*) 
578    targ_defvec=bfd_elf32_m68k_vec
579    targ_selvecs="m68knetbsd_vec m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
580    ;;
581  m68*-*-netbsdaout* | m68*-*-netbsd*)
582    targ_defvec=m68knetbsd_vec
583    targ_selvecs="m68k4knetbsd_vec bfd_elf32_m68k_vec hp300bsd_vec sunos_big_vec"
584    targ_underscore=yes
585    ;;
586  m68*-*-openbsd*)
587    targ_defvec=m68knetbsd_vec
588    targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
589    targ_underscore=yes
590    ;;
591  m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
592  m68*-*-bsd* | m68*-*-vsta*)
593    targ_defvec=sunos_big_vec
594    targ_underscore=yes
595    ;;
596  m68*-ericsson-*)
597    targ_defvec=sunos_big_vec
598    targ_selvecs="m68kcoff_vec versados_vec tekhex_vec"
599    targ_underscore=yes
600    ;;
601  m68*-cbm-*)
602    targ_defvec=bfd_elf32_m68k_vec
603    targ_selvecs=m68kcoff_vec
604    ;;
605  m68*-apple-aux*)
606    targ_defvec=m68kaux_coff_vec
607    ;;
608  m68*-*-psos*)
609    targ_defvec=bfd_elf32_m68k_vec
610    targ_selvecs=ieee_vec
611    targ_underscore=yes
612    ;;
613
614  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
615    targ_defvec=bfd_elf32_m88k_vec
616    targ_selvecs=m88kbcs_vec
617    ;;
618  m88*-*-mach3*)
619    targ_defvec=m88kmach3_vec
620    targ_cflags=-DSTAT_FOR_EXEC
621    ;;
622  m88*-*-*)
623    targ_defvec=m88kbcs_vec
624    targ_underscore=yes
625    ;;
626
627  mcore-*-elf)
628    targ_defvec=bfd_elf32_mcore_big_vec
629    targ_selvecs="bfd_elf32_mcore_big_vec bfd_elf32_mcore_little_vec"
630    ;;
631  mcore-*-pe)
632    targ_defvec=mcore_pe_big_vec
633    targ_selvecs="mcore_pe_big_vec mcore_pe_little_vec mcore_pei_big_vec mcore_pei_little_vec"
634    ;;
635
636  mips*-big-*)
637    targ_defvec=ecoff_big_vec
638    targ_selvecs=ecoff_little_vec
639    ;;
640  mips*el-*-netbsd*)
641    targ_defvec=bfd_elf32_littlemips_vec
642    targ_selvecs="bfd_elf32_bigmips_vec ecoff_little_vec ecoff_big_vec"
643    ;;
644  mips*-*-netbsd*)
645    targ_defvec=bfd_elf32_bigmips_vec
646    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
647    ;;
648  mips*-dec-bsd*)
649    targ_defvec=aout_mips_little_vec
650    targ_underscore=yes
651    ;;
652  mips*-dec-mach3*)
653    targ_defvec=aout_mips_little_vec
654    targ_cflags=-DSTAT_FOR_EXEC
655    ;;
656  mips*-dec-* | mips*el-*-ecoff*)
657    targ_defvec=ecoff_little_vec
658    targ_selvecs=ecoff_big_vec
659    ;;
660  mips*-*-ecoff*)
661    targ_defvec=ecoff_big_vec
662    targ_selvecs=ecoff_little_vec
663    ;;
664#ifdef BFD64
665  mips*-*-irix6*)
666    targ_defvec=bfd_elf32_bigmips_vec
667    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
668    ;;
669#endif
670  mips*-*-irix5*)
671    targ_defvec=bfd_elf32_bigmips_vec
672    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
673    ;;
674  mips*-sgi-* | mips*-*-bsd*)
675    targ_defvec=ecoff_big_vec
676    targ_selvecs=ecoff_little_vec
677    ;;
678  mips*-*-lnews*)
679    targ_defvec=ecoff_biglittle_vec
680    targ_selvecs="ecoff_little_vec ecoff_big_vec"
681    ;;
682  mips*-*-mach3*)
683    targ_defvec=aout_mips_little_vec
684    targ_cflags=-DSTAT_FOR_EXEC
685    ;;
686  mips*-*-pe*)
687    targ_defvec=mipslpe_vec
688    targ_selvecs="mipslpei_vec mipslpei_vec ecoff_little_vec ecoff_big_vec"
689    targ_underscore=yes
690    ;;
691  mips*-*-sysv4*)
692    targ_defvec=bfd_elf32_tradbigmips_vec
693    targ_selvecs="bfd_elf32_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"
694    ;;
695  mips*-*-sysv* | mips*-*-riscos*)
696    targ_defvec=ecoff_big_vec
697    targ_selvecs=ecoff_little_vec
698    ;;
699  mips*el-*-elf* | mips*el-*-rtems* | mips*el-*-vxworks* | mips*-*-chorus*)
700    targ_defvec=bfd_elf32_littlemips_vec
701    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
702    ;;
703  mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks*)
704    targ_defvec=bfd_elf32_bigmips_vec
705    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
706    ;;
707  mips*-*-none)
708    targ_defvec=bfd_elf32_bigmips_vec
709    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
710    ;;
711  mips*el-*-openbsd*)
712    targ_defvec=bfd_elf32_littlemips_vec
713    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
714    ;;
715  mips*-*-openbsd*)
716    targ_defvec=bfd_elf32_bigmips_vec
717    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
718    ;;
719#ifdef BFD64
720  mips64*el-*-linux*)
721    targ_defvec=bfd_elf32_tradlittlemips_vec
722    targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec"
723    ;;
724  mips64*-*-linux*)
725    targ_defvec=bfd_elf32_tradbigmips_vec
726    targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
727    ;;
728#endif
729  mips*el-*-linux*)
730    targ_defvec=bfd_elf32_tradlittlemips_vec
731    targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec ecoff_little_vec ecoff_big_vec"
732    ;;
733  mips*-*-linux*)
734    targ_defvec=bfd_elf32_tradbigmips_vec
735    targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"
736    ;;
737#ifdef BFD64
738  mmix-*-*)
739    targ_defvec=bfd_elf64_mmix_vec
740    targ_selvecs=bfd_mmo_vec
741    ;;
742#endif
743  mn10200-*-*)
744    targ_defvec=bfd_elf32_mn10200_vec
745    ;;
746
747  mn10300-*-*)
748    targ_defvec=bfd_elf32_mn10300_vec
749    ;;
750
751  ns32k-pc532-mach* | ns32k-pc532-ux*)
752    targ_defvec=pc532machaout_vec
753    targ_underscore=yes
754    ;;
755  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
756    targ_defvec=pc532netbsd_vec
757    targ_underscore=yes
758    ;;
759
760  openrisc-*-elf)
761    targ_defvec=bfd_elf32_openrisc_vec
762    ;;
763
764  or32-*-coff | or32-*-rtems*)
765    targ_defvec=or32coff_big_vec
766    targ_underscore=yes
767    ;;
768
769  or32-*-elf)
770    targ_defvec=bfd_elf32_or32_big_vec
771    ;;
772
773  pdp11-*-*)
774    targ_defvec=pdp11_aout_vec
775    targ_underscore=yes
776    ;;
777
778  pj-*-*)
779    targ_defvec=bfd_elf32_pj_vec
780    targ_selvecs="bfd_elf32_pj_vec bfd_elf32_pjl_vec"
781    ;;
782
783  pjl-*-*)
784    targ_defvec=bfd_elf32_pjl_vec
785    targ_selvecs="bfd_elf32_pjl_vec bfd_elf32_pj_vec bfd_elf32_i386_vec"
786    ;;
787
788  powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*)
789    targ_defvec=rs6000coff_vec
790    targ64_selvecs=rs6000coff64_vec
791    case "${targ}" in
792      *-*-aix4.[3456789]* | *-*-aix[56789]*)
793	want64=true;;
794	
795	*)
796	targ_cflags=-DSMALL_ARCHIVE;;
797    esac
798    ;;
799#ifdef BFD64
800  powerpc64-*-aix*)
801    targ_defvec=rs6000coff64_vec
802    targ_selvecs=rs6000coff_vec
803    ;;
804  powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux*)
805    targ_defvec=bfd_elf64_powerpc_vec
806    targ_selvecs="bfd_elf64_powerpcle_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec"
807    ;;
808  powerpc64le-*-elf* | powerpcle-*-elf64*)
809    targ_defvec=bfd_elf64_powerpcle_vec
810    targ_selvecs="bfd_elf64_powerpc_vec bfd_elf32_powerpcle_vec bfd_elf32_powerpc_vec rs6000coff_vec rs6000coff64_vec"
811    ;;
812#endif
813  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
814  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
815  powerpc-*-chorus* | powerpc-*-vxworks*)
816    targ_defvec=bfd_elf32_powerpc_vec
817    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
818    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
819    ;;
820  powerpc-*-macos* | powerpc-*-mpw*)
821    targ_defvec=pmac_xcoff_vec
822    ;;
823  powerpc-*-netware*)
824    targ_defvec=bfd_elf32_powerpc_vec
825    targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
826    ;;
827  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
828  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
829  powerpcle-*-rtems*)
830    targ_defvec=bfd_elf32_powerpcle_vec
831    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
832    targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
833    ;;
834
835  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
836    targ_defvec=bfd_powerpcle_pe_vec
837    targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
838    ;;
839
840  s390-*-linux*)
841    targ_defvec=bfd_elf32_s390_vec
842    ;;
843#ifdef BFD64
844  s390x-*-linux*)
845    targ_defvec=bfd_elf64_s390_vec
846    ;;
847#endif
848
849#ifdef BFD64
850  sh64-*-elf*)
851    targ_defvec=bfd_elf32_sh64_vec
852    targ_selvecs="bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec bfd_elf32_sh_vec bfd_elf32_shl_vec"
853    targ_underscore=yes
854    ;;
855#endif /* BFD64 */
856
857  sh-*-linux*)
858    targ_defvec=bfd_elf32_shblin_vec
859    targ_selvecs=bfd_elf32_shlin_vec
860#ifdef BFD64
861    targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
862#endif
863    ;;
864  sh*eb-*-linux*)
865    targ_defvec=bfd_elf32_shblin_vec
866    ;;
867  sh*-*-linux*)
868    targ_defvec=bfd_elf32_shlin_vec
869    ;;
870
871  sh*le-*-netbsdelf*)
872    targ_defvec=bfd_elf32_shlnbsd_vec
873    targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec"
874    ;;
875  sh-*-netbsdelf*)
876    targ_defvec=bfd_elf32_shnbsd_vec
877    targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
878#ifdef BFD64
879    targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
880#endif
881    ;;
882  sh*-*-netbsdelf*)
883    targ_defvec=bfd_elf32_shnbsd_vec
884    targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
885    ;;
886
887  sh-*-elf* | sh-*-rtemself*)
888    targ_defvec=bfd_elf32_sh_vec
889    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
890#ifdef BFD64
891    targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
892#endif
893    targ_underscore=yes
894    ;;
895  sh-*-pe)
896    targ_defvec=shlpe_vec
897    targ_selvecs="shlpe_vec shlpei_vec"
898    targ_underscore=yes
899    ;;
900  sh-*-* | sh-*-rtems*)
901    targ_defvec=shcoff_vec
902    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
903    targ_underscore=yes
904    ;;
905
906  sparclet-*-aout*)
907    targ_defvec=sunos_big_vec
908    targ_selvecs=sparcle_aout_vec
909    targ_underscore=yes
910    ;;
911  sparc86x-*-aout*)
912    targ_defvec=sunos_big_vec
913    targ_underscore=yes
914    ;;
915  sparclite-*-elf* | sparc86x-*-elf*)
916    targ_defvec=bfd_elf32_sparc_vec
917    ;;
918  sparc*-*-chorus*)
919    targ_defvec=bfd_elf32_sparc_vec
920    ;;
921  sparc-*-linux*aout*)
922    targ_defvec=sparclinux_vec
923    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
924    targ_underscore=yes
925    ;;
926  sparc-*-linux-gnu*)
927    targ_defvec=bfd_elf32_sparc_vec
928    targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
929    ;;
930  sparc-*-lynxos*)
931    targ_defvec=sparclynx_coff_vec
932    targ_selvecs=sparclynx_aout_vec
933    ;;
934  sparc-*-netbsdelf*)
935    targ_defvec=bfd_elf32_sparc_vec
936    targ_selvecs=sparcnetbsd_vec
937    ;;
938  sparc-*-netbsdaout* | sparc-*-netbsd*)
939    targ_defvec=sparcnetbsd_vec
940    targ_selvecs=bfd_elf32_sparc_vec
941    targ_underscore=yes
942    ;;
943  sparc-*-openbsd*)
944    targ_defvec=sparcnetbsd_vec
945    targ_underscore=yes
946    ;;
947  sparc-*-elf* | sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
948    targ_defvec=bfd_elf32_sparc_vec
949    targ_selvecs=sunos_big_vec
950    ;;
951#ifdef BFD64
952  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
953    targ_defvec=bfd_elf32_sparc_vec
954    targ_selvecs="bfd_elf64_sparc_vec sunos_big_vec"
955    ;;
956#endif
957  sparc-*-sysv4*)
958    targ_defvec=bfd_elf32_sparc_vec
959    ;;
960  sparc-*-netware*)
961    targ_defvec=bfd_elf32_sparc_vec
962    targ_selvecs="nlm32_sparc_vec sunos_big_vec"
963    ;;
964#ifdef BFD64
965  sparc64-*-aout*)
966    targ_defvec=sunos_big_vec
967    targ_underscore=yes
968    ;;
969  sparc64-*-linux-gnu*)
970    targ_defvec=bfd_elf64_sparc_vec
971    targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
972    ;;
973  sparc64-*-elf*)
974    targ_defvec=bfd_elf64_sparc_vec
975    targ_selvecs=bfd_elf32_sparc_vec
976    ;;
977#endif /* BFD64 */
978  sparc*-*-coff*)
979    targ_defvec=sparccoff_vec
980    ;;
981  sparc*-*-rtemsaout*)
982    targ_defvec=sunos_big_vec
983    targ_selvecs="bfd_elf32_sparc_vec sparccoff_vec"
984    targ_underscore=yes
985    ;;
986  sparc*-*-rtems* | sparc*-*-rtemself*)
987    targ_defvec=bfd_elf32_sparc_vec
988    targ_selvecs="sunos_big_vec sparccoff_vec"
989    ;;
990  sparc*-*-* | sparc*-*-rtems*)
991    targ_defvec=sunos_big_vec
992    targ_underscore=yes
993    ;;
994
995#if HAVE_host_aout_vec
996  tahoe-*-*)
997    targ_defvec=host_aout_vec
998    targ_underscore=yes
999    ;;
1000#endif
1001
1002  tic80*-*-*)
1003    targ_defvec=tic80coff_vec
1004    targ_underscore=yes
1005    ;;
1006
1007
1008  v850-*-*)
1009    targ_defvec=bfd_elf32_v850_vec
1010    ;;
1011  v850e-*-*)
1012    targ_defvec=bfd_elf32_v850_vec
1013    ;;
1014  v850ea-*-*)
1015    targ_defvec=bfd_elf32_v850_vec
1016    ;;
1017#if HAVE_host_aout_vec
1018  vax-*-bsd* | vax-*-ultrix*)
1019    targ_defvec=host_aout_vec
1020    targ_underscore=yes
1021    ;;
1022#endif
1023
1024  vax*-*-*vms*)
1025    targ_defvec=vms_vax_vec
1026    ;;
1027
1028  we32k-*-*)
1029    targ_defvec=we32kcoff_vec
1030    ;;
1031
1032  w65-*-*)
1033    targ_defvec=w65_vec
1034    ;;
1035
1036  xstormy16-*-elf)
1037    targ_defvec=bfd_elf32_xstormy16_vec
1038    ;;
1039
1040  z8k*-*-*)
1041    targ_defvec=z8kcoff_vec
1042    targ_underscore=yes
1043    ;;
1044
1045  *-*-ieee*)
1046    targ_defvec=ieee_vec
1047    ;;
1048
1049  *-adobe-*)
1050    targ_defvec=a_out_adobe_vec
1051    targ_underscore=yes
1052    ;;
1053
1054  *-sony-*)
1055    targ_defvec=newsos3_vec
1056    targ_underscore=yes
1057    ;;
1058
1059  *-tandem-*)
1060    targ_defvec=m68kcoff_vec
1061    targ_selvecs=ieee_vec
1062    ;;
1063# END OF targmatch.h
1064  *)
1065    echo 1>&2 "*** BFD does not support target ${targ}."
1066    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
1067    exit 1
1068    ;;
1069esac
1070
1071case "${host64}${want64}" in
1072  *true*)
1073    targ_selvecs="${targ_selvecs} ${targ64_selvecs}"
1074    ;;
1075esac
1076
1077# If we support any ELF target, then automatically add support for the
1078# generic ELF targets.  This permits an objdump with some ELF support
1079# to be used on an arbitrary ELF file for anything other than
1080# relocation information.
1081case "${targ_defvec} ${targ_selvecs}" in
1082  *bfd_elf64*)
1083    targ_selvecs="${targ_selvecs} bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
1084    ;;
1085  *bfd_elf32*)
1086    targ_selvecs="${targ_selvecs} bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
1087    ;;
1088esac
1089