configure.tgt revision 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