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