1 # gas target specific configuration file. This is a -*- sh -*- file.
3 # Copyright (C) 2012-2016 Free Software Foundation, Inc.
5 # This file is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; see the file COPYING3. If not see
17 # <http://www.gnu.org/licenses/>.
20 # This is invoked by configure. Putting it in a separate shell file
21 # lets us skip running autoconf when modifying target specific
24 # Input shell variables:
25 # targ a configuration target name, such as i686-pc-linux-gnu.
27 # Output shell variables:
28 # cpu_type canonical gas cpu type; identifies the config/tc-* files
29 # fmt output format; identifies the config/obj-* files
30 # em emulation; identifies the config/te-* files
32 # Optional output shell variables; these are not always set:
33 # arch the default architecture; sets DEFAULT_ARCH on some systems
34 # endian "big" or "little"; used on bi-endian systems
43 eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
45 # Check for architecture variants. Set cpu_type and, optionally,
47 # Note: This table is alpha-sorted, please try to keep it that way.
49 aarch64) cpu_type=aarch64 endian=little ;;
50 aarch64_be) cpu_type=aarch64 endian=big ;;
51 alpha*) cpu_type=alpha ;;
52 am33_2.0) cpu_type=mn10300 endian=little ;;
53 arc*eb) cpu_type=arc endian=big ;;
54 arm*be|arm*b) cpu_type=arm endian=big ;;
55 arm*) cpu_type=arm endian=little ;;
56 bfin*) cpu_type=bfin endian=little ;;
57 c4x*) cpu_type=tic4x ;;
58 cr16*) cpu_type=cr16 endian=little ;;
59 crisv32) cpu_type=cris arch=crisv32 ;;
60 crx*) cpu_type=crx endian=little ;;
61 epiphany*) cpu_type=epiphany endian=little ;;
62 fido) cpu_type=m68k ;;
63 hppa*) cpu_type=hppa ;;
64 i[3-7]86) cpu_type=i386 arch=i386;;
65 ia64) cpu_type=ia64 ;;
66 ip2k) cpu_type=ip2k endian=big ;;
67 iq2000) cpu_type=iq2000 endian=big ;;
68 lm32) cpu_type=lm32 ;;
69 m32c) cpu_type=m32c endian=little ;;
70 m32r) cpu_type=m32r endian=big ;;
71 m32rle) cpu_type=m32r endian=little ;;
72 m5200) cpu_type=m68k ;;
73 m68008) cpu_type=m68k ;;
74 m680[012346]0) cpu_type=m68k ;;
75 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
76 m683??) cpu_type=m68k ;;
77 mep) cpu_type=mep endian=little ;;
78 microblazeel*) cpu_type=microblaze endian=little;;
79 microblaze*) cpu_type=microblaze endian=big;;
80 mips*el) cpu_type=mips endian=little ;;
81 mips*) cpu_type=mips endian=big ;;
82 mt) cpu_type=mt endian=big ;;
83 nds32be) cpu_type=nds32 endian=big ;;
84 nds32le) cpu_type=nds32 endian=little ;;
85 or1k* | or1knd*) cpu_type=or1k endian=big ;;
86 pjl*) cpu_type=pj endian=little ;;
87 pj*) cpu_type=pj endian=big ;;
88 powerpc*le*) cpu_type=ppc endian=little ;;
89 powerpc*) cpu_type=ppc endian=big ;;
90 rs6000*) cpu_type=ppc ;;
91 rl78*) cpu_type=rl78 ;;
93 s390x*) cpu_type=s390 arch=s390x ;;
94 s390*) cpu_type=s390 arch=s390 ;;
95 score*l) cpu_type=score endian=little ;;
96 score*) cpu_type=score endian=big ;;
97 sh5le*) cpu_type=sh64 endian=little ;;
98 sh5*) cpu_type=sh64 endian=big ;;
99 sh64le*) cpu_type=sh64 endian=little ;;
100 sh64*) cpu_type=sh64 endian=big ;;
101 sh*le) cpu_type=sh endian=little ;;
102 sh*) cpu_type=sh endian=big ;;
103 sparc64*) cpu_type=sparc arch=v9-64 ;;
104 sparc86x*) cpu_type=sparc arch=sparc86x ;;
105 sparclet*) cpu_type=sparc arch=sparclet ;;
106 sparclite*) cpu_type=sparc arch=sparclite ;;
107 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
108 tilegx*be) cpu_type=tilegx endian=big ;;
109 tilegx*) cpu_type=tilegx endian=little ;;
110 v850*) cpu_type=v850 ;;
111 visium) cpu_type=visium endian=big ;;
112 x86_64*) cpu_type=i386 arch=x86_64;;
113 xgate) cpu_type=xgate ;;
114 xtensa*) cpu_type=xtensa arch=xtensa ;;
115 *) cpu_type=${cpu} ;;
119 # Assign object format. Set fmt, em, and bfd_gas.
120 generic_target=${cpu_type}-$vendor-$os
121 # Note: This table is alpha-sorted, please try to keep it that way.
122 case ${generic_target} in
123 aarch64*-*-elf | aarch64*-*-rtems*) fmt=elf;;
124 aarch64*-*-linux*) fmt=elf em=linux ;;
126 alpha-*-*vms*) fmt=evax ;;
127 alpha-*-osf*) fmt=ecoff ;;
128 alpha-*-linux*ecoff*) fmt=ecoff ;;
129 alpha-*-linux-*) fmt=elf em=linux ;;
130 alpha-*-netbsd* | alpha-*-openbsd*) fmt=elf em=nbsd ;;
132 arc-*-elf*) fmt=elf ;;
133 arc*-*-linux*) fmt=elf bfd_gas=yes ;;
135 arm-*-aout) fmt=aout ;;
136 arm-*-coff) fmt=coff ;;
137 arm-*-phoenix*) fmt=elf ;;
138 arm-*-rtems*) fmt=elf ;;
139 arm-*-elf) fmt=elf ;;
140 arm-*-eabi*) fmt=elf em=armeabi ;;
141 arm-*-symbianelf*) fmt=elf em=symbian ;;
142 arm-*-kaos*) fmt=elf ;;
143 arm-*-conix*) fmt=elf ;;
144 arm-*-freebsd[89].* | armeb-*-freebsd[89].*)
145 fmt=elf em=freebsd ;;
146 arm-*-freebsd* | armeb-*-freebsd*) fmt=elf em=armfbsdeabi ;;
147 arm*-*-freebsd*) fmt=elf em=armfbsdvfp ;;
148 arm-*-linux*aout*) fmt=aout em=linux ;;
149 arm-*-linux-*eabi*) fmt=elf em=armlinuxeabi ;;
150 arm-*-linux-*) fmt=elf em=linux ;;
151 arm-*-uclinux*eabi*) fmt=elf em=armlinuxeabi ;;
152 arm-*-uclinux*) fmt=elf em=linux ;;
153 arm-*-nacl*) fmt=elf em=nacl ;;
154 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
155 arm-*-*n*bsd*) fmt=aout em=nbsd ;;
156 arm-*-nto*) fmt=elf ;;
157 arm-epoc-pe) fmt=coff em=epoc-pe ;;
158 arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
159 fmt=coff em=wince-pe ;;
160 arm-*-pe) fmt=coff em=pe ;;
161 arm-*-riscix*) fmt=aout em=riscix ;;
163 avr-*-*) fmt=elf bfd_gas=yes ;;
165 bfin-*-linux-uclibc) fmt=fdpicelf em=linux ;;
166 bfin-*-uclinux*) fmt=elf em=linux ;;
167 bfin-*-rtems*) fmt=elf ;;
168 bfin-*elf) fmt=elf ;;
170 cr16-*-elf*) fmt=elf ;;
172 cris-*-linux-* | crisv32-*-linux-*)
173 fmt=multi em=linux ;;
174 cris-*-* | crisv32-*-*) fmt=multi ;;
176 crx-*-elf*) fmt=elf ;;
182 epiphany-*-*) fmt=elf ;;
185 frv-*-*linux*) fmt=elf em=linux;;
192 hppa*64*) fmt=elf em=hppalinux64 ;;
193 hppa*) fmt=elf em=linux ;;
195 hppa-*-*elf*) fmt=elf em=hppa ;;
196 hppa-*-lites*) fmt=elf em=hppa ;;
197 hppa-*-netbsd*) fmt=elf em=nbsd ;;
198 hppa-*-openbsd*) fmt=elf em=hppa ;;
199 hppa-*-osf*) fmt=som em=hppa ;;
202 hppa*64*) fmt=elf em=hppa64 ;;
203 hppa*) fmt=som em=hppa ;;
205 hppa-*-hpux*) fmt=som em=hppa ;;
206 hppa-*-mpeix*) fmt=som em=hppa ;;
207 hppa-*-bsd*) fmt=som em=hppa ;;
208 hppa-*-hiux*) fmt=som em=hppa ;;
210 h8300-*-elf | h8300-*-rtems*) fmt=elf ;;
211 h8300-*-linux*) fmt=elf em=linux ;;
213 i370-*-elf* | i370-*-linux*) fmt=elf ;;
215 i386-ibm-aix*) fmt=coff em=i386aix ;;
216 i386-sequent-bsd*) fmt=aout em=dynix ;;
217 i386-*-beospe*) fmt=coff em=pe ;;
218 i386-*-beos*) fmt=elf ;;
219 i386-*-coff) fmt=coff ;;
220 i386-*-elfiamcu) fmt=elf arch=iamcu ;;
221 i386-*-elf*) fmt=elf ;;
222 i386-*-kaos*) fmt=elf ;;
223 i386-*-bsd*) fmt=aout em=386bsd ;;
224 i386-*-nacl*) fmt=elf em=nacl
226 x86_64*) arch=x86_64:32 ;;
228 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
229 i386-*-netbsdpe*) fmt=coff em=pe ;;
230 i386-*-netbsd*-gnu* | \
231 i386-*-knetbsd*-gnu | \
232 i386-*-netbsdelf*) fmt=elf em=nbsd ;;
235 x86_64) fmt=elf em=nbsd ;;
236 *) fmt=aout em=nbsd ;;
238 i386-*-openbsd[0-2].* | \
239 i386-*-openbsd3.[0-2]) fmt=aout em=nbsd ;;
240 i386-*-openbsd*) fmt=elf em=nbsd ;;
241 i386-*-linux*aout*) fmt=aout em=linux ;;
242 i386-*-linux*oldld) fmt=aout em=linux ;;
243 i386-*-linux*coff*) fmt=coff em=linux ;;
244 i386-*-linux-*) fmt=elf em=linux
246 x86_64*-linux-gnux32) arch=x86_64:32 ;;
248 i386-*-lynxos*) fmt=elf em=lynx ;;
249 i386-*-sysv[45]*) fmt=elf ;;
250 i386-*-solaris*) fmt=elf em=solaris ;;
251 i386-*-freebsdaout*) fmt=aout em=386bsd ;;
252 i386-*-freebsd[12].*) fmt=aout em=386bsd ;;
253 i386-*-freebsd[12]) fmt=aout em=386bsd ;;
255 | i386-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
256 i386-*-sysv*) fmt=coff ;;
257 i386-*-sco3.2v5*coff) fmt=coff ;;
258 i386-*-isc*) fmt=coff ;;
259 i386-*-sco3.2v5*) fmt=elf ;;
260 i386-*-sco3.2*) fmt=coff ;;
261 i386-*-vsta) fmt=aout ;;
263 | i386-*-go32*) fmt=coff em=go32 ;;
264 i386-*-rtems*) fmt=elf ;;
265 i386-*-gnu*) fmt=elf em=gnu ;;
266 i386-*-mach*) fmt=aout em=mach ;;
267 i386-*-msdos*) fmt=aout ;;
268 i386-*-moss*) fmt=elf ;;
269 i386-*-pe) fmt=coff em=pe ;;
272 x86_64*) fmt=coff em=pep ;;
273 i*) fmt=coff em=pe ;;
275 i386-*-interix*) fmt=coff em=interix ;;
278 x86_64*) fmt=coff em=pep ;;
279 i*) fmt=coff em=pe ;;
281 i386-*-nto-qnx*) fmt=elf ;;
282 i386-*-*nt*) fmt=coff em=pe ;;
283 i386-*-chaos) fmt=elf ;;
284 i386-*-rdos*) fmt=elf ;;
285 i386-*-darwin*) fmt=macho ;;
287 i860-*-*) fmt=elf endian=little ;;
289 i960-*-elf*) fmt=elf ;;
291 ia64-*-elf*) fmt=elf ;;
292 ia64-*-*vms*) fmt=elf em=vms ;;
293 ia64-*-aix*) fmt=elf em=ia64aix ;;
294 ia64-*-linux-*) fmt=elf em=linux ;;
295 ia64-*-hpux*) fmt=elf em=hpux ;;
296 ia64-*-netbsd*) fmt=elf em=nbsd ;;
300 iq2000-*-elf) fmt=elf ;;
304 m32c-*-elf | m32c-*-rtems*) fmt=elf ;;
306 m32r-*-elf* | m32r-*-rtems*) fmt=elf ;;
307 m32r-*-linux*) fmt=elf em=linux;;
309 m68hc11-*-* | m6811-*-*) fmt=elf ;;
310 m68hc12-*-* | m6812-*-*) fmt=elf ;;
312 m68k-*-aout) fmt=aout bfd_gas=yes ;;
313 m68k-*-elf*) fmt=elf ;;
314 m68k-*-sysv4*) fmt=elf em=svr4 ;;
315 m68k-*-rtems*) fmt=elf ;;
316 m68k-*-linux-*) fmt=elf em=linux ;;
317 m68k-*-uclinux*) fmt=elf em=uclinux ;;
318 m68k-*-gnu*) fmt=elf ;;
319 m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
320 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
321 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
322 m68k-*-psos*) fmt=elf em=psos;;
324 mep-*-elf) fmt=elf ;;
326 metag-*-elf) fmt=elf ;;
327 metag-*-linux*) fmt=elf em=linux ;;
329 mcore-*-elf) fmt=elf ;;
330 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
332 microblaze-*-*) fmt=elf ;;
334 mips-*-irix6*) fmt=elf em=irix ;;
335 mips-*-irix5*) fmt=elf em=irix ;;
336 mips*-*-linux*) fmt=elf em=tmips ;;
337 mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
338 fmt=elf em=freebsd ;;
339 mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;;
340 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
342 mips-*-elf* | mips-*-rtems*) fmt=elf ;;
343 mips-*-netbsd*) fmt=elf em=tmips ;;
344 mips-*-openbsd*) fmt=elf em=tmips ;;
348 mn10200-*-*) fmt=elf ;;
350 # cpu_type for am33_2.0 is set to mn10300
351 mn10300-*-linux*) fmt=elf em=linux ;;
352 mn10300-*-*) fmt=elf ;;
354 moxie-*-uclinux) fmt=elf em=linux ;;
355 moxie-*-moxiebox*) fmt=elf endian=little ;;
356 moxie-*-*) fmt=elf ;;
358 mt-*-elf) fmt=elf bfd_gas=yes ;;
360 msp430-*-*) fmt=elf ;;
362 nds32-*-elf*) fmt=elf ;;
363 nds32-*-linux*) fmt=elf em=linux ;;
365 nios2-*-rtems*) fmt=elf ;;
366 nios2*-linux*) fmt=elf em=linux ;;
368 ns32k-pc532-mach*) fmt=aout em=pc532mach ;;
369 ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
370 ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
371 ns32k-*-*n*bsd*) fmt=aout em=nbsd532 ;;
373 or1k*-*-elf | or1k*-*-rtems*) fmt=elf endian=big ;;
374 or1k*-*-linux*) fmt=elf em=linux endian=big ;;
378 ppc-*-pe | ppc-*-cygwin*) fmt=coff em=pe ;;
379 ppc-*-winnt*) fmt=coff em=pe ;;
380 ppc-*-aix5.[01]) fmt=coff em=aix5 ;;
381 ppc-*-aix[5-9].*) fmt=coff em=aix5 ;;
382 ppc-*-aix*) fmt=coff em=aix ;;
383 ppc-*-beos*) fmt=coff ;;
384 ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
385 ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
386 ppc-*-linux-*) fmt=elf em=linux ;;
387 ppc-*-solaris*) fmt=elf em=solaris ;;
388 ppc-*-rtems*) fmt=elf ;;
389 ppc-*-macos*) fmt=coff em=macos ;;
390 ppc-*-nto*) fmt=elf ;;
391 ppc-*-kaos*) fmt=elf ;;
392 ppc-*-lynxos*) fmt=elf em=lynx ;;
394 s390-*-linux-*) fmt=elf em=linux ;;
395 s390-*-tpf*) fmt=elf ;;
397 score-*-elf) fmt=elf ;;
399 sh*-*-linux*) fmt=elf em=linux
404 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
405 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
406 sh*-*-netbsdelf*) fmt=elf em=nbsd
408 sh*l*) endian=little ;;
411 sh*-*-symbianelf*) fmt=elf endian=little ;;
412 sh-*-elf*) fmt=elf ;;
413 sh-*-uclinux* | sh[12]-*-uclinux*) fmt=elf em=uclinux ;;
414 sh-*-coff*) fmt=coff ;;
415 sh-*-nto*) fmt=elf ;;
416 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
417 sh-*-rtemscoff*) fmt=coff ;;
418 sh-*-rtems*) fmt=elf ;;
419 sh-*-kaos*) fmt=elf ;;
420 shle*-*-kaos*) fmt=elf ;;
421 sh64-*-elf*) fmt=elf ;;
423 sparc64-*-rtems*) fmt=elf ;;
424 sparc-*-rtems*) fmt=elf ;;
425 sparc-*-sunos4*) fmt=aout em=sun3 ;;
426 sparc-*-aout) fmt=aout em=sparcaout ;;
427 sparc-*-coff) fmt=coff ;;
428 sparc-*-linux*aout*) fmt=aout em=linux ;;
429 sparc-*-linux-*) fmt=elf em=linux ;;
430 sparc-fujitsu-none) fmt=aout ;;
431 sparc-*-elf) fmt=elf ;;
432 sparc-*-sysv4*) fmt=elf ;;
433 sparc-*-solaris*) fmt=elf em=solaris ;;
434 sparc-*-netbsdelf*) fmt=elf em=nbsd ;;
437 sparc64) fmt=elf em=nbsd ;;
438 *) fmt=aout em=nbsd ;;
440 sparc-*-openbsd[0-2].* | \
441 sparc-*-openbsd3.[0-1])
443 sparc64) fmt=elf em=nbsd ;;
444 *) fmt=aout em=nbsd ;;
446 sparc-*-openbsd*) fmt=elf em=nbsd ;;
448 spu-*-elf) fmt=elf ;;
450 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
451 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
452 tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;;
453 tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
454 tic6x-*-*) fmt=elf ;;
456 tilepro-*-* | tilegx*-*-*) fmt=elf ;;
458 v850*-*-*) fmt=elf ;;
460 vax-*-netbsdelf*) fmt=elf em=nbsd ;;
461 vax-*-linux-*) fmt=elf em=linux ;;
463 visium-*-elf) fmt=elf ;;
465 xstormy16-*-*) fmt=elf ;;
467 xgate-*-*) fmt=elf ;;
469 xtensa*-*-*) fmt=elf ;;
471 z80-*-coff) fmt=coff ;;
473 z8k-*-coff | z8k-*-sim) fmt=coff ;;
475 *-*-aout | *-*-scout) fmt=aout ;;
476 *-*-cloudabi*) fmt=elf ;;
477 *-*-dragonfly*) fmt=elf em=dragonfly ;;
478 *-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
479 *-*-bsd*) fmt=aout em=sun3 ;;
480 *-*-generic) fmt=generic ;;
481 *-*-xray | *-*-hms) fmt=coff ;;
483 *-*-elf | *-*-sysv4*) fmt=elf ;;
484 *-*-solaris*) fmt=elf em=solaris ;;
485 *-*-aros*) fmt=elf em=linux ;;
486 *-*-vxworks* | *-*-windiss) fmt=elf em=vxworks ;;
487 *-*-netware) fmt=elf em=netware ;;
491 aarch64 | alpha | arm | i386 | ia64 | microblaze | mips | ns32k | or1k | or1knd | pdp11 | ppc | sparc | z80 | z8k)
496 elf | ecoff | fdpicelf | multi | som)
501 if test $bfd_gas != yes; then
502 echo This target is no longer supported in gas
506 case ${cpu_type}-${fmt}-${os} in
508 # Default to compress DWARF debug sections for Linux/x86.
509 if test ${ac_default_compressed_debug_sections} = unset; then
510 ac_default_compressed_debug_sections=yes