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