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