# gas target specific configuration file. This is a -*- sh -*- file. # This is invoked by configure. Putting it in a separate shell file # lets us skip running autoconf when modifying target specific # information. # Input shell variables: # targ a configuration target name, such as i686-pc-linux-gnu. # Output shell variables: # cpu_type canonical gas cpu type; identifies the config/tc-* files # fmt output format; identifies the config/obj-* files # em emulation; identifies the config/te-* files # bfd_gas set to "yes" if BFD_ASSEMBLER is required # Optional output shell variables; these are not always set: # arch the default architecture; sets DEFAULT_ARCH on some systems # endian "big" or "little"; used on bi-endian systems cpu_type= fmt= em= bfd_gas= arch= endian= eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'` # Check for architecture variants. Set cpu_type and, optionally, # endian and arch. # Note: This table is alpha-sorted, please try to keep it that way. case ${cpu} in am33_2.0) cpu_type=mn10300 endian=little ;; alpha*) cpu_type=alpha ;; arm*be|arm*b) cpu_type=arm endian=big ;; arm*) cpu_type=arm endian=little ;; c4x*) cpu_type=tic4x ;; crisv32) cpu_type=cris arch=crisv32 ;; crx*) cpu_type=crx endian=little ;; hppa*) cpu_type=hppa ;; i[3-7]86) cpu_type=i386 arch=i386;; ia64) cpu_type=ia64 ;; ip2k) cpu_type=ip2k endian=big ;; iq2000) cpu_type=iq2000 endian=big ;; m32r) cpu_type=m32r endian=big ;; m32rle) cpu_type=m32r endian=little ;; m6811|m6812|m68hc12) cpu_type=m68hc11 ;; m680[012346]0) cpu_type=m68k ;; m68008) cpu_type=m68k ;; m683??) cpu_type=m68k ;; m5200) cpu_type=m68k ;; m8*) cpu_type=m88k ;; maxq) cpu_type=maxq ;; mips*el) cpu_type=mips endian=little ;; mips*) cpu_type=mips endian=big ;; or32*) cpu_type=or32 endian=big ;; pjl*) cpu_type=pj endian=little ;; pj*) cpu_type=pj endian=big ;; powerpc*le*) cpu_type=ppc endian=little ;; powerpc*) cpu_type=ppc endian=big ;; rs6000*) cpu_type=ppc ;; s390x*) cpu_type=s390 arch=s390x ;; s390*) cpu_type=s390 arch=s390 ;; sh5*) cpu_type=sh64 endian=big ;; sh5le*) cpu_type=sh64 endian=little ;; sh64*) cpu_type=sh64 endian=big ;; sh64le*) cpu_type=sh64 endian=little ;; sh*le) cpu_type=sh endian=little ;; sh*) cpu_type=sh endian=big ;; sparclite*) cpu_type=sparc arch=sparclite ;; sparclet*) cpu_type=sparc arch=sparclet ;; sparc64*) cpu_type=sparc arch=v9-64 ;; sparc86x*) cpu_type=sparc arch=sparc86x ;; sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c. strongarm*be) cpu_type=arm endian=big ;; strongarm*b) cpu_type=arm endian=big ;; strongarm*) cpu_type=arm endian=little ;; v850*) cpu_type=v850 ;; x86_64) cpu_type=i386 arch=x86_64;; xscale*be|xscale*b) cpu_type=arm endian=big ;; xscale*) cpu_type=arm endian=little ;; xtensa*) cpu_type=xtensa arch=xtensa ;; *) cpu_type=${cpu} ;; esac # Assign object format. Set fmt, em, and bfd_gas. generic_target=${cpu_type}-$vendor-$os bfd_gas=no em=generic # Note: This table is alpha-sorted, please try to keep it that way. case ${generic_target} in a29k-*-coff) fmt=coff ;; a29k-amd-udi) fmt=coff ;; a29k-amd-ebmon) fmt=coff ;; a29k-nyu-sym1) fmt=coff ;; a29k-*-rtems*) fmt=coff ;; a29k-*-vxworks*) fmt=coff ;; alpha-*-*vms*) fmt=evax ;; alpha-*-osf*) fmt=ecoff ;; alpha-*-linuxecoff*) fmt=ecoff ;; alpha-*-linux-gnu*) fmt=elf em=linux ;; alpha-*-netbsd*) fmt=elf em=nbsd ;; alpha-*-openbsd*) fmt=elf em=obsd ;; arc-*-elf*) fmt=elf ;; arm-*-aout) fmt=aout ;; arm-*-coff | thumb-*-coff) fmt=coff ;; arm-*-rtems* | thumb-*-rtems*) fmt=elf ;; arm-*-elf | thumb-*-elf) fmt=elf ;; arm-*-eabi*) fmt=elf ;; arm-*-symbianelf*) fmt=elf em=symbian ;; arm-*-kaos*) fmt=elf ;; arm-*-conix*) fmt=elf ;; arm-*-linux*aout*) fmt=aout em=linux ;; arm-*-linux-gnueabi*) fmt=elf em=armlinuxeabi ;; arm-*-linux-gnu*) fmt=elf em=linux ;; arm-*-uclinux*) fmt=elf em=linux ;; arm-*-netbsdelf*) fmt=elf em=nbsd ;; arm-*-*n*bsd*) fmt=aout em=nbsd ;; arm-*-nto*) fmt=elf ;; arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;; arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;; arm-*-pe | thumb-*-pe) fmt=coff em=pe ;; arm-*-riscix*) fmt=aout em=riscix ;; avr-*-*) fmt=elf ;; cris-*-linux-gnu* | crisv32-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;; cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;; crx-*-elf*) fmt=elf ;; d10v-*-*) fmt=elf ;; d30v-*-*) fmt=elf ;; dlx-*-*) fmt=elf ;; fr30-*-*) fmt=elf ;; frv-*-*linux*) fmt=elf em=linux;; frv-*-*) fmt=elf ;; hppa-*-linux*) case ${cpu} in hppa*64*) fmt=elf em=hppalinux64 ;; hppa*) fmt=elf em=linux ;; esac ;; hppa-*-*elf*) fmt=elf em=hppa ;; hppa-*-lites*) fmt=elf em=hppa ;; hppa-*-netbsd*) fmt=elf em=nbsd ;; hppa-*-openbsd*) fmt=elf em=hppa ;; hppa-*-osf*) fmt=som em=hppa ;; hppa-*-rtems*) fmt=elf em=hppa ;; hppa-*-hpux11*) case ${cpu} in hppa*64*) fmt=elf em=hppa64 ;; hppa*) fmt=som em=hppa ;; esac ;; hppa-*-hpux*) fmt=som em=hppa ;; hppa-*-mpeix*) fmt=som em=hppa ;; hppa-*-bsd*) fmt=som em=hppa ;; hppa-*-hiux*) fmt=som em=hppa ;; h8300-*-rtems*) fmt=coff ;; h8300-*-coff) fmt=coff ;; h8300-*-elf) fmt=elf ;; h8500-*-rtems*) fmt=coff ;; h8500-*-coff) fmt=coff ;; i370-*-elf* | i370-*-linux*) fmt=elf ;; i386-ibm-aix*) fmt=coff em=i386aix ;; i386-sequent-bsd*) fmt=aout em=dynix ;; i386-*-beospe*) fmt=coff em=pe ;; i386-*-beos*) fmt=elf ;; i386-*-coff) fmt=coff ;; i386-*-elf) fmt=elf ;; i386-*-kaos*) fmt=elf ;; i386-*-bsd*) fmt=aout em=386bsd ;; i386-*-netbsd0.8) fmt=aout em=386bsd ;; i386-*-netbsdpe*) fmt=coff em=pe ;; i386-*-netbsd*-gnu* | \ i386-*-knetbsd*-gnu | \ i386-*-netbsdelf*) fmt=elf em=nbsd ;; i386-*-*n*bsd*) case ${cpu} in x86_64) fmt=elf em=nbsd ;; *) fmt=aout em=nbsd ;; esac ;; i386-*-linux*aout*) fmt=aout em=linux ;; i386-*-linux*oldld) fmt=aout em=linux ;; i386-*-linux*coff*) fmt=coff em=linux ;; i386-*-linux-gnu*) fmt=elf em=linux ;; i386-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; i386-*-sysv[45]*) fmt=elf ;; i386-*-solaris*) fmt=elf ;; i386-*-freebsdaout*) fmt=aout em=386bsd ;; i386-*-freebsd[12].*) fmt=aout em=386bsd ;; i386-*-freebsd[12]) fmt=aout em=386bsd ;; i386-*-freebsd* | i386-*-kfreebsd*-gnu) fmt=elf em=freebsd ;; i386-*-sysv*) fmt=coff ;; i386-*-sco3.2v5*coff) fmt=coff ;; i386-*-isc*) fmt=coff ;; i386-*-sco3.2v5*) fmt=elf ;; i386-*-sco3.2*) fmt=coff ;; i386-*-vsta) fmt=aout ;; i386-*-msdosdjgpp* \ | i386-*-go32* \ | i386-go32-rtems*) fmt=coff em=go32 ;; i386-*-rtemself*) fmt=elf ;; i386-*-rtemscoff*) fmt=coff ;; i386-*-rtems*) fmt=elf ;; i386-*-gnu*) fmt=elf ;; i386-*-mach*) fmt=aout em=mach ;; i386-*-msdos*) fmt=aout ;; i386-*-moss*) fmt=elf ;; i386-*-pe) fmt=coff em=pe ;; i386-*-cygwin*) fmt=coff em=pe ;; i386-*-interix*) fmt=coff em=interix ;; i386-*-mingw32*) fmt=coff em=pe ;; i386-*-nto-qnx*) fmt=elf ;; i386-*-*nt*) fmt=coff em=pe ;; i386-*-chaos) fmt=elf ;; i860-*-*) fmt=elf endian=little ;; i960-*-bout) fmt=bout ;; i960-*-coff) fmt=coff em=ic960 ;; i960-*-rtems*) fmt=coff em=ic960 ;; i960-*-nindy*) fmt=bout ;; i960-*-vxworks5.0) fmt=bout ;; i960-*-vxworks5.*) fmt=coff em=ic960 ;; i960-*-vxworks*) fmt=bout ;; i960-*-elf*) fmt=elf ;; ia64-*-elf*) fmt=elf ;; ia64-*-aix*) fmt=elf em=ia64aix ;; ia64-*-linux-gnu*) fmt=elf em=linux ;; ia64-*-hpux*) fmt=elf em=hpux ;; ia64-*-netbsd*) fmt=elf em=nbsd ;; ip2k-*-*) fmt=elf ;; iq2000-*-elf) fmt=elf bfd_gas=yes ;; m32r-*-elf*) fmt=elf ;; m32r-*-linux*) fmt=elf em=linux;; m68hc11-*-* | m6811-*-*) fmt=elf ;; m68hc12-*-* | m6812-*-*) fmt=elf ;; m68k-*-vxworks*) fmt=aout em=sun3 ;; m68k-ericsson-ose) fmt=aout em=sun3 ;; m68k-*-sunos*) fmt=aout em=sun3 ;; m68k-motorola-sysv*) fmt=coff em=delta ;; m68k-bull-sysv3*) fmt=coff em=dpx2 ;; m68k-apollo-*) fmt=coff em=apollo ;; m68k-*-elf*) fmt=elf ;; m68k-*-sysv4*) fmt=elf em=svr4 ;; m68k-*-sysv*) fmt=coff ;; m68k-*-coff | m68k-*-rtemscoff*) fmt=coff ;; m68k-*-rtems*) fmt=elf ;; m68k-*-hpux*) fmt=hp300 em=hp300 ;; m68k-*-linux*aout*) fmt=aout em=linux ;; m68k-*-linux-gnu*) fmt=elf em=linux ;; m68k-*-uclinux*) fmt=elf ;; m68k-*-gnu*) fmt=elf ;; m68k-*-netbsdelf*) fmt=elf em=nbsd ;; m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;; m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;; m68k-apple-aux*) fmt=coff em=aux ;; m68k-*-psos*) fmt=elf em=psos;; m88k-motorola-sysv3*) fmt=coff em=delt88 ;; m88k-*-coff*) fmt=coff ;; maxq-*-coff) fmt=coff bfd_gas=yes ;; mcore-*-elf) fmt=elf ;; mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;; # don't change em like *-*-bsd does mips-dec-openbsd*) fmt=elf endian=little ;; mips-sony-bsd*) fmt=ecoff ;; mips-*-ultrix*) fmt=ecoff endian=little ;; mips-*-osf*) fmt=ecoff endian=little ;; mips-*-ecoff*) fmt=ecoff ;; mips-*-pe*) fmt=coff endian=little em=pe ;; mips-*-irix6*) fmt=elf em=irix ;; mips-*-irix5*) fmt=elf em=irix ;; mips-*-irix*) fmt=ecoff em=irix ;; mips-*-lnews*) fmt=ecoff em=lnews ;; mips-*-riscos*) fmt=ecoff ;; mips*-*-linux*) fmt=elf em=tmips ;; mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;; mips-*-sysv*) fmt=ecoff ;; mips-*-elf* | mips-*-rtems*) fmt=elf ;; mips-*-netbsd*) fmt=elf ;; mips-*-openbsd*) fmt=elf ;; mmix-*-*) fmt=elf ;; mn10200-*-*) fmt=elf ;; # cpu_type for am33_2.0 is set to mn10300 mn10300-*-linux*) fmt=elf bfd_gas=yes em=linux ;; mn10300-*-*) fmt=elf ;; msp430-*-*) fmt=elf ;; ns32k-pc532-mach*) fmt=aout em=pc532mach ;; ns32k-pc532-ux*) fmt=aout em=pc532mach ;; ns32k-pc532-lites*) fmt=aout em=nbsd532 ;; ns32k-*-*n*bsd*) fmt=aout em=nbsd532 ;; openrisc-*-*) fmt=elf ;; or32-*-rtems*) fmt=elf ;; or32-*-coff) fmt=coff ;; or32-*-elf) fmt=elf ;; pj*) fmt=elf ;; ppc-*-pe | ppc-*-cygwin*) fmt=coff em=pe ;; ppc-*-winnt*) fmt=coff em=pe ;; ppc-*-aix5.[01]) fmt=coff em=aix5 ;; ppc-*-aix5.*) fmt=coff em=aix5 ;; ppc-*-aix*) fmt=coff ;; ppc-*-beos*) fmt=coff ;; ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; ppc-*-linux-gnu*) fmt=elf em=linux ;; ppc-*-solaris*) fmt=elf ;; ppc-*-rtems*) fmt=elf ;; ppc-*-macos*) fmt=coff em=macos ;; ppc-*-nto*) fmt=elf ;; ppc-*-kaos*) fmt=elf ;; ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; s390-*-linux-gnu*) fmt=elf em=linux ;; s390-*-tpf*) fmt=elf ;; sh*-*-linux*) fmt=elf em=linux case ${cpu} in sh*eb) endian=big ;; *) endian=little ;; esac ;; sh5*-*-netbsd*) fmt=elf em=nbsd ;; sh64*-*-netbsd*) fmt=elf em=nbsd ;; sh*-*-netbsdelf*) fmt=elf em=nbsd ;; sh*-*-symbianelf*) fmt=elf endian=little ;; sh-*-elf*) fmt=elf ;; sh-*-coff*) fmt=coff ;; sh-*-nto*) fmt=elf ;; sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;; sh-*-rtemscoff*) fmt=coff ;; sh-*-rtems*) fmt=elf ;; sh-*-kaos*) fmt=elf ;; shle*-*-kaos*) fmt=elf ;; sh64-*-elf*) fmt=elf ;; sparc-*-rtemsaout*) fmt=aout ;; sparc-*-rtemself*) fmt=elf ;; sparc-*-rtems*) fmt=elf ;; sparc-*-sunos4*) fmt=aout em=sun3 ;; sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;; sparc-*-coff) fmt=coff ;; sparc-*-linux*aout*) fmt=aout em=linux ;; sparc-*-linux-gnu*) fmt=elf em=linux ;; sparc-fujitsu-none) fmt=aout ;; sparc-*-elf) fmt=elf ;; sparc-*-sysv4*) fmt=elf ;; sparc-*-solaris*) fmt=elf ;; sparc-*-netbsdelf*) fmt=elf em=nbsd ;; sparc-*-*n*bsd*) case ${cpu} in sparc64) fmt=elf em=nbsd ;; *) fmt=aout em=nbsd ;; esac ;; strongarm-*-coff) fmt=coff ;; strongarm-*-elf) fmt=elf ;; strongarm-*-kaos*) fmt=elf ;; tic30-*-*aout*) fmt=aout bfd_gas=yes ;; tic30-*-*coff*) fmt=coff bfd_gas=yes ;; tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;; tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;; tic80-*-*) fmt=coff ;; v850-*-*) fmt=elf ;; v850e-*-*) fmt=elf ;; v850ea-*-*) fmt=elf ;; vax-*-netbsdelf*) fmt=elf em=nbsd ;; vax-*-netbsd*) fmt=aout em=nbsd ;; vax-*-bsd* | vax-*-ultrix*) fmt=aout ;; vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;; w65-*-*) fmt=coff ;; xscale-*-coff) fmt=coff ;; xscale-*-elf) fmt=elf ;; xstormy16-*-*) fmt=elf ;; xtensa-*-*) fmt=elf ;; z8k-*-coff | z8k-*-sim) fmt=coff ;; *-*-aout | *-*-scout) fmt=aout ;; *-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;; *-*-nindy*) fmt=bout ;; *-*-bsd*) fmt=aout em=sun3 ;; *-*-generic) fmt=generic ;; *-*-xray | *-*-hms) fmt=coff ;; *-*-sim) fmt=coff ;; *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf ;; *-*-aros*) fmt=elf em=linux bfd_gas=yes ;; *-*-vxworks | *-*-windiss) fmt=elf em=vxworks ;; *-*-netware) fmt=elf em=netware ;; esac case ${cpu_type} in alpha | arm | i386 | ia64 | mips | ns32k | pdp11 | ppc | sparc) bfd_gas=yes ;; esac case ${fmt} in elf | ecoff | som) bfd_gas=yes ;; esac