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