config.bfd revision 33965
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
31arm*)	targ_archs=bfd_arm_arch ;;
32hppa*)	targ_archs=bfd_hppa_arch ;;
33i[3456]86) targ_archs=bfd_i386_arch ;;
34m68*)	targ_archs=bfd_m68k_arch ;;
35m88*)	targ_archs=bfd_m88k_arch ;;
36mips*)	targ_archs=bfd_mips_arch ;;
37powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
38rs6000)	targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
39sparc*)	targ_archs=bfd_sparc_arch ;;
40z8k*)	targ_archs=bfd_z8k_arch ;;
41*)	targ_archs=bfd_${targ_cpu}_arch ;;
42esac
43
44# WHEN ADDING ENTRIES TO THIS MATRIX:
45#  Make sure that the left side always has two dashes.  Otherwise you
46#  can get spurious matches.  Even for unambiguous cases, do this as a
47#  convention, else the table becomes a real mess to understand and maintain.
48
49case "${targ}" in
50# START OF targmatch.h
51#ifdef BFD64
52  alpha-*-netware*)
53    targ_defvec=ecoffalpha_little_vec
54    targ_selvecs=nlm32_alpha_vec
55    ;;
56  alpha-*-linuxecoff*)
57    targ_defvec=ecoffalpha_little_vec
58    targ_selvecs=bfd_elf64_alpha_vec
59    ;;
60  alpha-*-linux* | alpha-*-elf*)
61    targ_defvec=bfd_elf64_alpha_vec
62    targ_selvecs=ecoffalpha_little_vec
63    ;;
64  alpha-*-*vms*)
65    targ_defvec=evax_alpha_vec
66    ;;
67  alpha-*-*)
68    targ_defvec=ecoffalpha_little_vec
69    ;;
70#endif /* BFD64 */
71
72  arm-*-riscix*)
73    targ_defvec=riscix_vec
74    ;;
75  arm-*-pe*)
76    targ_defvec=armpe_little_vec
77    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
78    targ_underscore=yes
79    ;;
80  arm-*-aout | armel-*-aout)	
81    targ_defvec=aout_arm_little_vec
82    targ_selvecs=aout_arm_big_vec
83    ;;
84  armeb-*-aout)
85    targ_defvec=aout_arm_big_vec
86    targ_selvecs=aout_arm_little_vec
87    ;;
88  arm-*-coff)
89    targ_defvec=armcoff_little_vec
90    targ_selvecs=armcoff_big_vec
91    targ_underscore=yes
92    ;;
93
94  a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
95  a29k-*-vxworks* | a29k-*-sysv*)
96    targ_defvec=a29kcoff_big_vec
97    targ_selvecs=sunos_big_vec
98    targ_underscore=yes
99    ;;
100  a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*)
101    targ_defvec=sunos_big_vec
102    targ_underscore=yes
103    ;;
104
105  d10v-*-*)
106    targ_defvec=bfd_elf32_d10v_vec
107    ;;
108
109
110  h8300*-*-*)
111    targ_defvec=h8300coff_vec
112    targ_underscore=yes
113    ;;
114
115  h8500-*-*)
116    targ_defvec=h8500coff_vec
117    targ_underscore=yes
118    ;;
119
120  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
121    targ_defvec=bfd_elf32_hppa_vec
122    ;;
123#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF)
124  hppa*-*-bsd*)
125    targ_defvec=som_vec
126    targ_selvecs=bfd_elf32_hppa_vec
127    ;;
128  hppa*-*-hpux* | hppa*-*-hiux*)
129    targ_defvec=som_vec
130    ;;
131  hppa*-*-osf*)
132    targ_defvec=som_vec
133    targ_selvecs=bfd_elf32_hppa_vec
134    ;;
135#endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */
136
137  i[3456]86-*-sysv4* | i[3456]86-*-unixware | i[3456]86-*-solaris2* | \
138  i[3456]86-*-elf | i[3456]86-*-sco*elf* | i[3456]86-*-freebsdelf* | \
139  i[3456]86-*-dgux*)
140    targ_defvec=bfd_elf32_i386_vec
141    targ_selvecs=i386coff_vec
142    ;;
143  i[3456]86-*-sysv* | i[3456]86-*-isc* | i[3456]86-*-sco* | i[3456]86-*-coff | \
144  i[3456]86-*-aix* | i[3456]86-*-go32* | i[3456]86*-*-rtems*)
145    targ_defvec=i386coff_vec
146    ;;
147  i[3456]86-sequent-bsd*)
148    targ_defvec=i386dynix_vec
149    targ_underscore=yes
150    ;;
151  i[3456]86-*-bsd*)
152    targ_defvec=i386bsd_vec
153    targ_underscore=yes
154    ;;
155  i[3456]86-*-freebsd*)
156    targ_defvec=i386freebsd_vec
157    targ_selvecs=i386bsd_vec
158    targ_underscore=yes
159    ;;
160  i[3456]86-*-netbsd* | i[3456]86-*-openbsd*)
161    targ_defvec=i386netbsd_vec
162    targ_selvecs=i386bsd_vec
163    targ_underscore=yes
164    ;;
165  i[3456]86-*-netware*)
166    targ_defvec=bfd_elf32_i386_vec
167    targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
168    ;;
169  i[3456]86-*-linux*aout*)
170    targ_defvec=i386linux_vec
171    targ_selvecs=bfd_elf32_i386_vec
172    targ_underscore=yes
173    ;;
174  i[3456]86-*-linux*)
175    targ_defvec=bfd_elf32_i386_vec
176    targ_selvecs=i386linux_vec
177    ;;
178  i[3456]86-*-lynxos*)
179    targ_defvec=i386lynx_coff_vec
180    targ_selvecs=i386lynx_aout_vec
181    ;;
182  i[3456]86-*-gnu*)
183    targ_defvec=bfd_elf32_i386_vec
184    targ_selvecs=i386mach3_vec
185    targ_cflags=-DSTAT_FOR_EXEC
186    ;;
187  i[3456]86-*-mach* | i[3456]86-*-osf1mk*)
188    targ_defvec=i386mach3_vec
189    targ_cflags=-DSTAT_FOR_EXEC
190    targ_underscore=yes
191    ;;
192  i[3456]86-*-os9k)
193    targ_defvec=i386os9k_vec
194    ;;
195  i[3456]86-*-msdos*)
196    targ_defvec=i386aout_vec
197    targ_selvecs=i386msdos_vec
198    ;;
199  i[3456]86-*-moss*)
200    targ_defvec=bfd_elf32_i386_vec
201    targ_selvecs="i386msdos_vec i386aout_vec"
202    ;;
203  i[3456]86-*-cygwin32 | i[3456]86-*-winnt | i[3456]86-*-pe)
204    targ_defvec=i386pe_vec
205    targ_selvecs="i386pe_vec i386pei_vec"
206    ;;
207  i[3456]86-none-*)
208    targ_defvec=i386coff_vec
209    ;;
210  i[3456]86-*-aout* | i[3456]86*-*-vsta*)
211    targ_defvec=i386aout_vec
212    ;;
213
214  i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
215    targ_defvec=i860coff_vec
216    ;;
217  i860-*-sysv4* | i860-*-elf*)
218    targ_defvec=bfd_elf32_i860_vec
219    ;;
220
221  i960-*-vxworks4* | i960-*-vxworks5.0)
222    targ_defvec=b_out_vec_little_host
223    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
224    targ_underscore=yes
225    ;;
226  i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*)
227    targ_defvec=icoff_little_vec
228    targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
229    targ_underscore=yes
230    ;;
231  i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
232    targ_defvec=b_out_vec_little_host
233    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
234    targ_underscore=yes
235    ;;
236
237  m32r-*-*)
238    targ_defvec=bfd_elf32_m32r_vec
239    ;;
240
241  m68*-apollo-*)
242    targ_defvec=apollocoff_vec
243    ;;
244  m68*-bull-sysv*)
245    targ_defvec=m68kcoffun_vec
246    targ_underscore=yes
247    ;;
248  m68*-motorola-sysv*)
249    targ_defvec=m68ksysvcoff_vec
250    ;;
251  m68*-hp-bsd*)
252    targ_defvec=hp300bsd_vec
253    targ_underscore=yes
254    ;;
255  m68*-*-aout*)
256    targ_defvec=aout0_big_vec
257    # We include cisco_core_vec here, rather than making a separate cisco
258    # configuration, so that cisco-core.c gets routinely tested at
259    # least for compilation.
260    targ_selvecs="cisco_core_vec ieee_vec"
261    targ_underscore=yes
262    ;;
263  m68*-*-elf* | m68*-*-sysv4*)
264    targ_defvec=bfd_elf32_m68k_vec
265    targ_selvecs="m68kcoff_vec ieee_vec"
266    ;;
267  m68*-*-coff* | m68*-*-sysv* | m68*-*-rtems*)
268    targ_defvec=m68kcoff_vec
269    targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
270    ;;
271  m68*-*-hpux*)
272    targ_defvec=hp300hpux_vec
273    targ_underscore=yes
274    ;;
275  m68*-*-linux*aout*)
276    targ_defvec=m68klinux_vec
277    targ_selvecs=bfd_elf32_m68k_vec
278    targ_underscore=yes
279    ;;
280  m68*-*-linux*)
281    targ_defvec=bfd_elf32_m68k_vec
282    targ_selvecs=m68klinux_vec
283    ;;
284  m68*-*-lynxos*)
285    targ_defvec=m68klynx_coff_vec
286    targ_selvecs=m68klynx_aout_vec
287    ;;
288  m68*-hp*-netbsd*)
289    targ_defvec=m68k4knetbsd_vec
290    targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
291    targ_underscore=yes
292    ;;
293  m68*-*-netbsd* | m68*-*-openbsd*)
294    targ_defvec=m68knetbsd_vec
295    targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
296    targ_underscore=yes
297    ;;
298  m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
299  m68*-*-bsd* | m68*-*-vsta*)
300    targ_defvec=sunos_big_vec
301    targ_underscore=yes
302    ;;
303  m68*-ericsson-*)
304    targ_defvec=sunos_big_vec
305    targ_selvecs="m68kcoff_vec versados_vec tekhex_vec"
306    targ_underscore=yes
307    ;;
308  m68*-cbm-*)
309    targ_defvec=bfd_elf32_m68k_vec
310    targ_selvecs=m68kcoff_vec
311    ;;
312  m68*-apple-aux*)
313    targ_defvec=m68kaux_coff_vec
314    ;;
315  m68*-*-psos*)
316    targ_defvec=bfd_elf32_m68k_vec
317    targ_selvecs=ieee_vec
318    targ_underscore=yes
319    ;;
320
321  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
322    targ_defvec=bfd_elf32_m88k_vec
323    targ_selvecs=m88kbcs_vec
324    ;;
325  m88*-*-mach3*)
326    targ_defvec=m88kmach3_vec
327    targ_cflags=-DSTAT_FOR_EXEC
328    ;;
329  m88*-*-*)
330    targ_defvec=m88kbcs_vec
331    targ_underscore=yes
332    ;;
333
334  mips*-big-*)
335    targ_defvec=ecoff_big_vec
336    targ_selvecs=ecoff_little_vec
337    ;;
338  mips-dec-netbsd*)
339    targ_defvec=bfd_elf32_littlemips_vec
340    targ_selvecs=bfd_elf32_bigmips_vec
341    ;;
342  mips*-dec-bsd*)
343    targ_defvec=aout_mips_little_vec
344    targ_underscore=yes
345    ;;
346  mips*-dec-mach3*)
347    targ_defvec=aout_mips_little_vec
348    targ_cflags=-DSTAT_FOR_EXEC
349    ;;
350  mips*-dec-* | mips*el-*-ecoff*)
351    targ_defvec=ecoff_little_vec
352    targ_selvecs=ecoff_big_vec
353    ;;
354  mips*-*-ecoff*)
355    targ_defvec=ecoff_big_vec
356    targ_selvecs=ecoff_little_vec
357    ;;
358  mips*-*-irix6*)
359    targ_defvec=bfd_elf32_bigmips_vec
360    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
361    ;;
362  mips*-*-irix5*)
363    targ_defvec=bfd_elf32_bigmips_vec
364    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
365    ;;
366  mips*-sgi-* | mips*-*-bsd*)
367    targ_defvec=ecoff_big_vec
368    targ_selvecs=ecoff_little_vec
369    ;;
370  mips*-*-lnews*)
371    targ_defvec=ecoff_biglittle_vec
372    targ_selvecs="ecoff_little_vec ecoff_big_vec"
373    ;;
374  mips*-*-mach3*)
375    targ_defvec=aout_mips_little_vec
376    targ_cflags=-DSTAT_FOR_EXEC
377    ;;
378  mips*-*-sysv4*)
379    targ_defvec=bfd_elf32_bigmips_vec
380    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
381    ;;
382  mips*-*-sysv* | mips*-*-riscos*)
383    targ_defvec=ecoff_big_vec
384    targ_selvecs=ecoff_little_vec
385    ;;
386  mips*el-*-elf*)
387    targ_defvec=bfd_elf32_littlemips_vec
388    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
389    ;;
390  mips*-*-elf* | mips*-*-rtems*)
391    targ_defvec=bfd_elf32_bigmips_vec
392    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
393    ;;
394  mips*-*-none)
395    targ_defvec=bfd_elf32_bigmips_vec
396    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
397    ;;
398  mips*el*-*-linux* | mips*el*-*-openbsd*)
399    targ_defvec=bfd_elf32_littlemips_vec
400    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
401    ;;
402  mips*-*-linux* | mips*-*-openbsd*)
403    targ_defvec=bfd_elf32_bigmips_vec
404    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
405    ;;
406
407  mn10200-*-*)
408    targ_defvec=bfd_elf32_mn10200_vec
409    ;;
410
411  mn10300-*-*)
412    targ_defvec=bfd_elf32_mn10300_vec
413    ;;
414
415  ns32k-pc532-mach* | ns32k-pc532-ux*)
416    targ_defvec=pc532machaout_vec
417    targ_underscore=yes
418    ;;
419  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
420    targ_defvec=pc532netbsd_vec
421    targ_underscore=yes
422    ;;
423
424  powerpc-*-aix* | powerpc-*-beos*)
425    targ_defvec=rs6000coff_vec
426    ;;
427  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
428  powerpc-*-solaris2* | powerpc-*-linux* | powerpc-*-rtems*)
429    targ_defvec=bfd_elf32_powerpc_vec
430    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
431    ;;
432  powerpc-*-macos* | powerpc-*-mpw*)
433    targ_defvec=pmac_xcoff_vec
434    ;;
435  powerpc-*-netware*)
436    targ_defvec=bfd_elf32_powerpc_vec
437    targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
438    ;;
439  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
440  powerpcle-*-solaris2* | powerpcle-*-linux*)
441    targ_defvec=bfd_elf32_powerpcle_vec
442    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
443    ;;
444
445  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin32)
446    targ_defvec=bfd_powerpcle_pe_vec
447    targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
448    ;;
449
450  rs6000-*-*)
451    targ_defvec=rs6000coff_vec
452    ;;
453
454  sh-*-elf*)
455    targ_defvec=bfd_elf32_sh_vec
456    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec"
457    targ_underscore=yes
458    ;;
459  sh-*-*)
460    targ_defvec=shcoff_vec
461    targ_selvecs="shcoff_vec shlcoff_vec"
462    targ_underscore=yes
463    ;;
464
465  sparclet-*-aout*)
466    targ_defvec=sunos_big_vec
467    targ_selvecs=sparcle_aout_vec
468    targ_underscore=yes
469    ;;
470  sparc-*-linux*aout*)
471    targ_defvec=sparclinux_vec
472    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
473    targ_underscore=yes
474    ;;
475  sparc-*-linux*)
476    targ_defvec=bfd_elf32_sparc_vec
477    targ_selvecs="sparclinux_vec sunos_big_vec"
478    ;;
479  sparc-*-lynxos*)
480    targ_defvec=sparclynx_coff_vec
481    targ_selvecs=sparclynx_aout_vec
482    ;;
483  sparc-*-netbsd* | sparc-*-openbsd*)
484    targ_defvec=sparcnetbsd_vec
485    targ_underscore=yes
486    ;;
487  sparc-*-elf* | sparc-*-solaris2*)
488    targ_defvec=bfd_elf32_sparc_vec
489    targ_selvecs=sunos_big_vec
490    ;;
491  sparc-*-sysv4*)
492    targ_defvec=bfd_elf32_sparc_vec
493    ;;
494  sparc64-*-aout*)
495    targ_defvec=sunos_big_vec
496    targ_underscore=yes
497    ;;
498#ifdef BFD64
499  sparc64-*-elf*)
500    targ_defvec=bfd_elf64_sparc_vec
501    targ_selvecs=bfd_elf32_sparc_vec
502    ;;    
503#endif /* BFD64 */
504  sparc-*-netware*)
505    targ_defvec=bfd_elf32_sparc_vec
506    targ_selvecs="nlm32_sparc_vec sunos_big_vec"
507    ;;
508  sparc*-*-coff*)
509    targ_defvec=sparccoff_vec
510    ;;
511  sparc*-*-* | sparc*-*-rtems*)
512    targ_defvec=sunos_big_vec
513    targ_underscore=yes
514    ;;
515
516#if HAVE_host_aout_vec
517  tahoe-*-*)
518    targ_defvec=host_aout_vec
519    targ_underscore=yes
520    ;;
521#endif
522
523#if HAVE_host_aout_vec
524  vax-*-bsd* | vax-*-ultrix*)
525    targ_defvec=host_aout_vec
526    targ_underscore=yes
527    ;;
528#endif
529
530  we32k-*-*)
531    targ_defvec=we32kcoff_vec
532    ;;
533
534  w65-*-*)
535    targ_defvec=w65_vec
536    ;;
537
538  z8k*-*-*)
539    targ_defvec=z8kcoff_vec
540    targ_underscore=yes
541    ;;
542
543  *-*-ieee*)
544    targ_defvec=ieee_vec
545    ;;
546
547  *-adobe-*)
548    targ_defvec=a_out_adobe_vec
549    targ_underscore=yes
550    ;;
551
552  *-sony-*)
553    targ_defvec=newsos3_vec
554    targ_underscore=yes
555    ;;
556
557  *-tandem-*)
558    targ_defvec=m68kcoff_vec
559    targ_selvecs=ieee_vec
560    ;;
561# END OF targmatch.h
562  *)
563    echo 1>&2 "*** BFD does not support target ${targ}."
564    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
565    exit 1
566    ;;
567esac
568