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