configure.tgt revision 1.7
1# gas target specific configuration file.  This is a -*- sh -*- file.
2
3# This is invoked by configure.  Putting it in a separate shell file
4# lets us skip running autoconf when modifying target specific
5# information.
6
7# Input shell variables:
8#   targ	a configuration target name, such as i686-pc-linux-gnu.
9
10# Output shell variables:
11#   cpu_type	canonical gas cpu type; identifies the config/tc-* files
12#   fmt		output format; identifies the config/obj-* files
13#   em		emulation; identifies the config/te-* files
14
15# Optional output shell variables; these are not always set:
16#   arch	the default architecture; sets DEFAULT_ARCH on some systems
17#   endian	"big" or "little"; used on bi-endian systems
18
19cpu_type=
20fmt=
21em=generic
22bfd_gas=no
23arch=
24endian=
25
26eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
27
28# Check for architecture variants.  Set cpu_type and, optionally,
29# endian and arch.
30# Note: This table is alpha-sorted, please try to keep it that way.
31case ${cpu} in
32  aarch64)		cpu_type=aarch64 endian=little ;;
33  aarch64_be)		cpu_type=aarch64 endian=big ;;
34  alpha*)		cpu_type=alpha ;;
35  am33_2.0)		cpu_type=mn10300 endian=little ;;
36  arm*be|arm*b)		cpu_type=arm endian=big ;;
37  arm*)			cpu_type=arm endian=little ;;
38  bfin*)		cpu_type=bfin endian=little ;;
39  c4x*)			cpu_type=tic4x ;;
40  cr16*)		cpu_type=cr16 endian=little ;;
41  crisv32)		cpu_type=cris arch=crisv32 ;;
42  crx*)			cpu_type=crx endian=little ;;
43  epiphany*)		cpu_type=epiphany endian=little ;;
44  fido)			cpu_type=m68k ;;
45  hppa*)		cpu_type=hppa ;;
46  i[3-7]86)		cpu_type=i386 arch=i386;;
47  ia64)			cpu_type=ia64 ;;
48  ip2k)			cpu_type=ip2k endian=big ;;
49  iq2000)		cpu_type=iq2000 endian=big ;;
50  lm32)			cpu_type=lm32 ;;
51  m32c)			cpu_type=m32c endian=little ;;
52  m32r)			cpu_type=m32r endian=big ;;
53  m32rle)		cpu_type=m32r endian=little ;;
54  m5200|m5407)		cpu_type=m68k ;;
55  m68008)		cpu_type=m68k ;;
56  m680[012346]0)	cpu_type=m68k ;;
57  m6811|m6812|m68hc12)	cpu_type=m68hc11 ;;
58  m683??)		cpu_type=m68k ;;
59  mep)			cpu_type=mep endian=little ;;
60  microblaze*)		cpu_type=microblaze ;;
61  mips*el)		cpu_type=mips endian=little ;;
62  mips*)		cpu_type=mips endian=big ;;
63  mt)			cpu_type=mt endian=big ;;
64  or32*)		cpu_type=or32 endian=big ;;
65  pjl*)			cpu_type=pj endian=little ;;
66  pj*)			cpu_type=pj endian=big ;;
67  powerpc*le*)		cpu_type=ppc endian=little ;;
68  powerpc*)		cpu_type=ppc endian=big ;;
69  rs6000*)		cpu_type=ppc ;;
70  rl78*)		cpu_type=rl78 ;;
71  rx)			cpu_type=rx ;;
72  s390x*)		cpu_type=s390 arch=s390x ;;
73  s390*)		cpu_type=s390 arch=s390 ;;
74  score*l)		cpu_type=score endian=little ;;
75  score*)		cpu_type=score endian=big ;;
76  sh5le*)		cpu_type=sh64 endian=little ;;
77  sh5*)			cpu_type=sh64 endian=big ;;
78  sh64le*)		cpu_type=sh64 endian=little ;;
79  sh64*)		cpu_type=sh64 endian=big ;;
80  sh*le)		cpu_type=sh endian=little ;;
81  sh*)			cpu_type=sh endian=big ;;
82  sparc64*)		cpu_type=sparc arch=v9-64 ;;
83  sparc86x*)		cpu_type=sparc arch=sparc86x  ;;
84  sparclet*)		cpu_type=sparc arch=sparclet ;;
85  sparclite*)		cpu_type=sparc arch=sparclite ;;
86  sparc*)		cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
87  tilegx*be)		cpu_type=tilegx endian=big ;;
88  tilegx*)		cpu_type=tilegx endian=little ;;
89  v850*)		cpu_type=v850 ;;
90  x86_64*)		cpu_type=i386 arch=x86_64;;
91  xgate)		cpu_type=xgate ;;
92  xtensa*)		cpu_type=xtensa arch=xtensa ;;
93  *)			cpu_type=${cpu} ;;
94esac
95
96
97# Assign object format.  Set fmt, em, and bfd_gas.
98generic_target=${cpu_type}-$vendor-$os
99# Note: This table is alpha-sorted, please try to keep it that way.
100case ${generic_target} in
101  aarch64*-*-elf)			fmt=elf;;
102  aarch64*-*-linux*)			fmt=elf em=linux ;;
103  aarch64*-*-netbsd*)			fmt=elf em=nbsd ;;
104
105  alpha-*-*vms*)			fmt=evax ;;
106  alpha-*-osf*)				fmt=ecoff ;;
107  alpha-*-linuxecoff*)			fmt=ecoff ;;
108  alpha-*-linux-*)			fmt=elf em=linux ;;
109  alpha-*-netbsd*)			fmt=elf em=nbsd ;;
110  alpha-*-openbsd*)			fmt=elf em=obsd ;;
111
112  arc-*-elf*)				fmt=elf ;;
113
114  arm-*-aout)				fmt=aout ;;
115  arm-*-coff | thumb-*-coff)		fmt=coff ;;
116  arm-*-rtems* | thumb-*-rtems*)	fmt=elf ;;
117  arm-*-elf | thumb-*-elf)		fmt=elf ;;
118  arm-*-netbsdelf*-*eabihf*)		fmt=elf em=armnbsdeabihf ;;
119  arm-*-netbsdelf*-*eabi*)		fmt=elf em=armnbsdeabi ;;
120  arm-*-eabi*)				fmt=elf em=armeabi ;;
121  arm-*-symbianelf*)			fmt=elf em=symbian ;;
122  arm-*-kaos*)				fmt=elf ;;
123  arm-*-conix*)				fmt=elf ;;
124  arm-*-linux*aout*)			fmt=aout em=linux ;;
125  arm-*-linux-*eabi*)			fmt=elf  em=armlinuxeabi ;;
126  arm-*-linux-*)			fmt=elf  em=linux ;;
127  arm-*-uclinux*eabi*)			fmt=elf  em=armlinuxeabi ;;
128  arm-*-uclinux*)			fmt=elf  em=linux ;;
129  arm-*-nacl*)				fmt=elf  em=nacl ;;
130  arm-*-netbsdelf*)			fmt=elf  em=armnbsd ;;
131  arm-*-*n*bsd*)			fmt=aout em=armnbsd ;;
132  arm-*-nto*)				fmt=elf ;;
133  arm-epoc-pe)				fmt=coff em=epoc-pe ;;
134  arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
135					fmt=coff em=wince-pe ;;
136  arm-*-pe)				fmt=coff em=pe ;;
137  arm-*-riscix*)			fmt=aout em=riscix ;;
138
139  avr-*-*)				fmt=elf bfd_gas=yes ;;
140
141  bfin-*-linux-uclibc)			fmt=fdpicelf em=linux ;;
142  bfin-*-uclinux*)			fmt=elf em=linux ;;
143  bfin-*-rtems*)			fmt=elf ;;
144  bfin-*elf)				fmt=elf ;;
145
146  cr16-*-elf*)				fmt=elf ;;
147
148  cris-*-linux-* | crisv32-*-linux-*)
149					fmt=multi em=linux ;;
150  cris-*-* | crisv32-*-*)		fmt=multi ;;
151
152  crx-*-elf*)				fmt=elf ;;
153
154  d10v-*-*)				fmt=elf ;;
155  d30v-*-*)				fmt=elf ;;
156  dlx-*-*)				fmt=elf ;;
157
158  epiphany-*-*)				fmt=elf ;;
159
160  fr30-*-*)				fmt=elf ;;
161  frv-*-*linux*)			fmt=elf em=linux;;
162  frv-*-*)				fmt=elf ;;
163
164  hppa-*-linux*)
165    case ${cpu} in
166      hppa*64*)				fmt=elf em=hppalinux64 ;;
167      hppa*)				fmt=elf em=linux ;;
168    esac ;;
169  hppa-*-*elf*)				fmt=elf em=hppa ;;
170  hppa-*-lites*)			fmt=elf em=hppa ;;
171  hppa-*-netbsd*)			fmt=elf em=nbsd ;;
172  hppa-*-openbsd*)			fmt=elf em=hppa ;;
173  hppa-*-osf*)				fmt=som em=hppa ;;
174  hppa-*-hpux11*)
175    case ${cpu} in
176      hppa*64*)				fmt=elf em=hppa64 ;;
177      hppa*)				fmt=som em=hppa ;;
178    esac ;;
179  hppa-*-hpux*)				fmt=som em=hppa ;;
180  hppa-*-mpeix*)			fmt=som em=hppa ;;
181  hppa-*-bsd*)				fmt=som em=hppa ;;
182  hppa-*-hiux*)				fmt=som em=hppa ;;
183
184  h8300-*-elf | h8300-*-rtems*)		fmt=elf ;;
185
186  i370-*-elf* | i370-*-linux*)		fmt=elf ;;
187
188  i386-ibm-aix*)			fmt=coff em=i386aix ;;
189  i386-sequent-bsd*)			fmt=aout em=dynix ;;
190  i386-*-beospe*)			fmt=coff em=pe ;;
191  i386-*-beos*)				fmt=elf ;;
192  i386-*-coff)				fmt=coff ;;
193  i386-*-elf)				fmt=elf ;;
194  i386-*-kaos*)				fmt=elf ;;
195  i386-*-bsd*)				fmt=aout em=386bsd ;;
196  i386-*-nacl*)				fmt=elf em=nacl
197    case ${cpu} in
198      x86_64*)				arch=x86_64:32 ;;
199    esac ;;
200  i386-*-netbsd0.8)			fmt=aout em=386bsd ;;
201  i386-*-netbsdpe*)			fmt=coff em=pe ;;
202  i386-*-netbsd*-gnu* | \
203  i386-*-knetbsd*-gnu | \
204  i386-*-netbsdelf*)			fmt=elf em=nbsd ;;
205  i386-*-netbsd*)
206    case ${cpu} in
207      x86_64)				fmt=elf em=nbsd ;;
208      *)				fmt=aout em=nbsd ;;
209    esac ;;
210  i386-*-openbsd[0-2].* | \
211  i386-*-openbsd3.[0-2])		fmt=aout em=nbsd ;;
212  i386-*-openbsd*)			fmt=elf em=nbsd ;;
213  i386-*-linux*aout*)			fmt=aout em=linux ;;
214  i386-*-linux*oldld)			fmt=aout em=linux ;;
215  i386-*-linux*coff*)			fmt=coff em=linux ;;
216  i386-*-linux-*)			fmt=elf em=linux
217    case ${cpu}-${os} in
218      x86_64*-linux-gnux32)		arch=x86_64:32 ;;
219    esac ;;
220  i386-*-lynxos*)			fmt=elf em=lynx ;;
221  i386-*-sysv[45]*)			fmt=elf ;;
222  i386-*-solaris*)			fmt=elf em=solaris ;;
223  i386-*-freebsdaout*)			fmt=aout em=386bsd ;;
224  i386-*-freebsd[12].*)			fmt=aout em=386bsd ;;
225  i386-*-freebsd[12])			fmt=aout em=386bsd ;;
226  i386-*-freebsd* \
227  | i386-*-kfreebsd*-gnu)		fmt=elf em=freebsd ;;
228  i386-*-sysv*)				fmt=coff ;;
229  i386-*-sco3.2v5*coff)			fmt=coff ;;
230  i386-*-isc*)				fmt=coff ;;
231  i386-*-sco3.2v5*)			fmt=elf ;;
232  i386-*-sco3.2*)			fmt=coff ;;
233  i386-*-vsta)				fmt=aout ;;
234  i386-*-msdosdjgpp* \
235  | i386-*-go32*)			fmt=coff em=go32 ;;
236  i386-*-rtems*)			fmt=elf ;;
237  i386-*-gnu*)				fmt=elf em=gnu ;;
238  i386-*-mach*)				fmt=aout em=mach ;;
239  i386-*-msdos*)			fmt=aout ;;
240  i386-*-moss*)				fmt=elf ;;
241  i386-*-pe)				fmt=coff em=pe ;;
242  i386-*-cygwin*)			fmt=coff em=pe ;;
243  i386-*-interix*)			fmt=coff em=interix ;;
244  i386-*-mingw*)
245    case ${cpu} in
246      x86_64*)				fmt=coff em=pep ;;
247      i*)				fmt=coff em=pe ;;
248    esac ;;
249  i386-*-nto-qnx*)			fmt=elf ;;
250  i386-*-*nt*)				fmt=coff em=pe ;;
251  i386-*-chaos)				fmt=elf ;;
252  i386-*-rdos*)				fmt=elf ;;
253  i386-*-darwin*)			fmt=macho ;;
254
255  i860-*-*)				fmt=elf endian=little ;;
256
257  i960-*-elf*)				fmt=elf ;;
258
259  ia64-*-elf*)				fmt=elf ;;
260  ia64-*-*vms*)				fmt=elf em=vms ;;
261  ia64-*-aix*)				fmt=elf em=ia64aix ;;
262  ia64-*-linux-*)			fmt=elf em=linux ;;
263  ia64-*-hpux*)				fmt=elf em=hpux ;;
264  ia64-*-netbsd*)			fmt=elf em=nbsd ;;
265
266  ip2k-*-*)				fmt=elf ;;
267
268  iq2000-*-elf)				fmt=elf ;;
269
270  lm32-*-*)				fmt=elf ;;
271
272  m32c-*-elf | m32c-*-rtems*)		fmt=elf ;;
273
274  m32r-*-elf* | m32r-*-rtems*)		fmt=elf ;;
275  m32r-*-linux*)			fmt=elf em=linux;;
276
277  m68hc11-*-* | m6811-*-*)		fmt=elf ;;
278  m68hc12-*-* | m6812-*-*)		fmt=elf ;;
279
280  m68k-*-aout)				fmt=aout bfd_gas=yes ;;
281  m68k-*-elf*)				fmt=elf ;;
282  m68k-*-sysv4*)			fmt=elf em=svr4 ;;
283  m68k-*-rtems*)			fmt=elf ;;
284  m68k-*-linux-*)			fmt=elf em=linux ;;
285  m68k-*-uclinux*)			fmt=elf em=uclinux ;;
286  m68k-*-gnu*)				fmt=elf ;;
287  m68k-*-netbsdelf*)			fmt=elf em=nbsd ;;
288  m68k-*-netbsd*)			fmt=aout em=nbsd bfd_gas=yes ;;
289  m68k-*-openbsd*)			fmt=aout em=nbsd bfd_gas=yes ;;
290  m68k-*-psos*)				fmt=elf em=psos;;
291
292  mep-*-elf)				fmt=elf ;;
293
294  mcore-*-elf)				fmt=elf ;;
295  mcore-*-pe)				fmt=coff em=pe bfd_gas=yes ;;
296
297  microblaze-*-*)			fmt=elf ;;
298
299  # don't change em like *-*-bsd does
300  mips-sony-bsd*)			fmt=ecoff ;;
301  mips-*-ultrix*)			fmt=ecoff endian=little ;;
302  mips-*-osf*)				fmt=ecoff endian=little ;;
303  mips-*-ecoff*)			fmt=ecoff ;;
304  mips-*-pe*)				fmt=coff endian=little em=pe ;;
305  mips-*-irix6*)			fmt=elf em=irix ;;
306  mips-*-irix5*)			fmt=elf em=irix ;;
307  mips-*-irix*)				fmt=ecoff em=irix ;;
308  mips-*-lnews*)			fmt=ecoff em=lnews ;;
309  mips-*-riscos*)			fmt=ecoff ;;
310  mips*-*-linux*)			fmt=elf em=tmips ;;
311  mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
312					fmt=elf em=freebsd ;;
313  mips-*-sysv4*MP* | mips-*-gnu*)	fmt=elf em=tmips ;;
314  mips*-sde-elf*)			fmt=elf em=tmips ;;
315  mips-*-sysv*)				fmt=ecoff ;;
316  mips-*-elf* | mips-*-rtems*)		fmt=elf ;;
317  mips-*-netbsd*)			fmt=elf em=tmips ;;
318  mips-*-openbsd*)			fmt=elf em=tmips ;;
319
320  mmix-*-*)				fmt=elf ;;
321
322  mn10200-*-*)				fmt=elf ;;
323
324  # cpu_type for am33_2.0 is set to mn10300
325  mn10300-*-linux*)			fmt=elf em=linux ;;
326  mn10300-*-*)				fmt=elf ;;
327
328  moxie-*-uclinux)			fmt=elf em=linux;;
329  moxie-*-*)				fmt=elf ;;
330
331  mt-*-elf)				fmt=elf bfd_gas=yes ;;
332
333  msp430-*-*)				fmt=elf ;;
334
335  ns32k-pc532-mach*)			fmt=aout em=pc532mach ;;
336  ns32k-pc532-ux*)			fmt=aout em=pc532mach ;;
337  ns32k-pc532-lites*)			fmt=aout em=nbsd532 ;;
338  ns32k-*-*n*bsd*)			fmt=aout em=nbsd532 ;;
339
340  openrisc-*-*)				fmt=elf ;;
341
342  or32-*-rtems*)			fmt=elf ;;
343  or32-*-elf)				fmt=elf ;;
344
345  pj*)					fmt=elf ;;
346
347  ppc-*-pe | ppc-*-cygwin*)		fmt=coff em=pe ;;
348  ppc-*-winnt*)				fmt=coff em=pe ;;
349  ppc-*-aix5.[01])			fmt=coff em=aix5 ;;
350  ppc-*-aix[5-9].*)			fmt=coff em=aix5 ;;
351  ppc-*-aix*)				fmt=coff ;;
352  ppc-*-beos*)				fmt=coff ;;
353  ppc-*-*n*bsd* | ppc-*-elf*)		fmt=elf ;;
354  ppc-*-eabi* | ppc-*-sysv4*)		fmt=elf ;;
355  ppc-*-linux-*)			fmt=elf em=linux ;;
356  ppc-*-solaris*)			fmt=elf em=solaris ;;
357  ppc-*-rtems*)				fmt=elf ;;
358  ppc-*-macos*)				fmt=coff em=macos ;;
359  ppc-*-nto*)				fmt=elf ;;
360  ppc-*-kaos*)				fmt=elf ;;
361  ppc-*-lynxos*)			fmt=elf em=lynx ;;
362
363  s390-*-linux-*)			fmt=elf em=linux ;;
364  s390-*-tpf*)				fmt=elf ;;
365
366  score-*-elf)				fmt=elf ;;
367
368  sh*-*-linux*)				fmt=elf em=linux
369    case ${cpu} in
370      sh*eb)	endian=big ;;
371      *)	endian=little ;;
372    esac ;;
373  sh5*-*-netbsd*)			fmt=elf em=nbsd ;;
374  sh64*-*-netbsd*)			fmt=elf em=nbsd ;;
375  sh*-*-netbsdelf*)			fmt=elf em=nbsd
376    case ${cpu} in
377      sh*l*)	endian=little ;;
378      *)	endian=big ;;
379    esac ;;
380  sh*-*-symbianelf*)			fmt=elf endian=little ;;
381  sh-*-elf*)				fmt=elf ;;
382  sh-*-uclinux* | sh[12]-*-uclinux*)	fmt=elf em=uclinux ;;
383  sh-*-coff*)				fmt=coff ;;
384  sh-*-nto*)				fmt=elf ;;
385  sh-*-pe*)				fmt=coff em=pe bfd_gas=yes endian=little ;;
386  sh-*-rtemscoff*)			fmt=coff ;;
387  sh-*-rtems*)				fmt=elf ;;
388  sh-*-kaos*)				fmt=elf ;;
389  shle*-*-kaos*)			fmt=elf ;;
390  sh64-*-elf*)				fmt=elf ;;
391
392  sparc64-*-rtems*)			fmt=elf ;;
393  sparc-*-rtems*)			fmt=elf ;;
394  sparc-*-sunos4*)			fmt=aout em=sun3 ;;
395  sparc-*-aout)				fmt=aout em=sparcaout ;;
396  sparc-*-coff)				fmt=coff ;;
397  sparc-*-linux*aout*)			fmt=aout em=linux ;;
398  sparc-*-linux-*)			fmt=elf em=linux ;;
399  sparc-fujitsu-none)			fmt=aout ;;
400  sparc-*-elf)				fmt=elf ;;
401  sparc-*-sysv4*)			fmt=elf ;;
402  sparc-*-solaris*)			fmt=elf em=solaris ;;
403  sparc-*-netbsdelf*)			fmt=elf em=nbsd ;;
404  sparc-*-netbsd*)
405    case ${cpu} in
406      sparc64)				fmt=elf em=nbsd ;;
407      *)				fmt=aout em=nbsd ;;
408    esac ;;
409  sparc-*-openbsd[0-2].* | \
410  sparc-*-openbsd3.[0-1])
411    case ${cpu} in
412      sparc64)				fmt=elf em=nbsd ;;
413      *)				fmt=aout em=nbsd ;;
414    esac ;;
415  sparc-*-openbsd*)			fmt=elf em=nbsd ;;
416
417  spu-*-elf)				fmt=elf ;;
418
419  tic30-*-*aout*)			fmt=aout bfd_gas=yes ;;
420  tic30-*-*coff*)			fmt=coff bfd_gas=yes ;;
421  tic4x-*-* | c4x-*-*)			fmt=coff bfd_gas=yes ;;
422  tic54x-*-* | c54x*-*-*)		fmt=coff bfd_gas=yes need_libm=yes;;
423  tic6x-*-*)				fmt=elf ;;
424
425  tilepro-*-* | tilegx*-*-*)		fmt=elf ;;
426
427  v850*-*-*)				fmt=elf ;;
428
429  vax-*-netbsdelf*)			fmt=elf em=nbsd ;;
430  vax-*-linux-*)			fmt=elf em=linux ;;
431
432  xstormy16-*-*)			fmt=elf ;;
433  
434  xgate-*-*)    			fmt=elf ;;
435
436  xtensa*-*-*)				fmt=elf ;;
437
438  z80-*-coff)				fmt=coff ;;
439
440  z8k-*-coff | z8k-*-sim)		fmt=coff ;;
441
442  *-*-aout | *-*-scout)			fmt=aout ;;
443  *-*-dragonfly*)			fmt=elf em=dragonfly ;;
444  *-*-freebsd* | *-*-kfreebsd*-gnu)	fmt=elf em=freebsd ;;
445  *-*-bsd*)				fmt=aout em=sun3 ;;
446  *-*-generic)				fmt=generic ;;
447  *-*-xray | *-*-hms)			fmt=coff ;;
448  *-*-sim)				fmt=coff ;;
449  *-*-elf | *-*-sysv4*)			fmt=elf ;;
450  *-*-solaris*)				fmt=elf em=solaris ;;
451  *-*-aros*)				fmt=elf em=linux ;;
452  *-*-vxworks* | *-*-windiss)		fmt=elf em=vxworks ;;
453  *-*-netware)				fmt=elf em=netware ;;
454esac
455
456case ${cpu_type} in
457  aarch64 | alpha | arm | i386 | ia64 | microblaze | mips | ns32k | pdp11 | ppc | sparc | z80 | z8k)
458    bfd_gas=yes
459    ;;
460esac
461case ${fmt} in
462  elf | ecoff | fdpicelf | multi | som)
463    bfd_gas=yes
464    ;;
465esac
466
467if test $bfd_gas != yes; then
468  echo This target is no longer supported in gas
469  exit 1
470fi
471