* configure.tgt: New.
authorIan Lance Taylor <ian@airs.com>
Wed, 22 Dec 2004 15:29:25 +0000 (15:29 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 22 Dec 2004 15:29:25 +0000 (15:29 +0000)
* configure.in: Move setting of cpu_type, fmt, etc., to
configure.tgt.
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add
$(srcdir)/configure.tgt.
* configure, Makefile.in: Rebuild.

gas/ChangeLog
gas/Makefile.am
gas/Makefile.in
gas/configure
gas/configure.in
gas/configure.tgt [new file with mode: 0644]

index 47e0ecf..f978372 100644 (file)
@@ -1,3 +1,12 @@
+2004-12-22  Ian Lance Taylor  <ian@airs.com>
+
+       * configure.tgt: New.
+       * configure.in: Move setting of cpu_type, fmt, etc., to
+       configure.tgt.
+       * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add
+       $(srcdir)/configure.tgt.
+       * configure, Makefile.in: Rebuild.
+
 2004-12-22  Klaus Rudolph  <lts-rudolph@gmx.de>
     
        * config/tc-avr.c: Add support for the new R_AVR_LDI, R_AVR_6 and
index f91d15a..58dfb4e 100644 (file)
@@ -796,7 +796,7 @@ de-stage3:
 DEP_FILE_DEPS =  $(CFILES) $(HFILES) $(TARGET_CPU_CFILES) \
        $(TARGET_CPU_HFILES) $(OBJ_FORMAT_CFILES) $(OBJ_FORMAT_HFILES)
 
-CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/configure.in
+CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/configure.in $(srcdir)/configure.tgt
 
 # Automatic dependency computation.  This is a real pain, because the
 # dependencies change based on target_cpu_type and obj_format.
index 4f1612a..28c4038 100644 (file)
@@ -754,7 +754,7 @@ against = stage2
 DEP_FILE_DEPS = $(CFILES) $(HFILES) $(TARGET_CPU_CFILES) \
        $(TARGET_CPU_HFILES) $(OBJ_FORMAT_CFILES) $(OBJ_FORMAT_HFILES)
 
-CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/configure.in
+CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/configure.in $(srcdir)/configure.tgt
 AMKDEP = #DO NOT PUT ANYTHING BETWEEN THIS LINE AND THE MATCHING WARNING BELOW.
 DEPTC_a29k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \
   $(srcdir)/config/tc-a29k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \
index dc07df9..5dc5646 100755 (executable)
@@ -4169,66 +4169,17 @@ emulations=""
 
 for this_target in $target $canon_targets ; do
 
-    eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
-
-    # Check for architecture variants.
-    # Note: This table is alpha-sorted, please try to keep it that way.
-    arch=
-    endian=
-    case ${cpu} in
-      am33_2.0)                cpu_type=mn10300 endian=little ;;
-      alpha*)          cpu_type=alpha ;;
-      arm*be|xscale*be|strongarm*be | \
-      arm*b|xscale*b|strongarm*b) cpu_type=arm endian=big ;;
-      arm*|xscale*|strongarm*)    cpu_type=arm endian=little ;;
-      c4x*)            cpu_type=tic4x ;;
-      crisv32)         cpu_type=cris arch=crisv32
+    targ=${this_target}
+    . ${srcdir}/configure.tgt
+
+    case ${target_cpu} in
+      crisv32)
 
 cat >>confdefs.h <<_ACEOF
 #define DEFAULT_CRIS_ARCH $arch
 _ACEOF
 
-                       ;;
-      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 target_cpu=m32r endian=big ;;
-      m32rle)           cpu_type=m32r target_cpu=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.
-      v850*)           cpu_type=v850 ;;
-      x86_64)          cpu_type=i386 arch=x86_64;;
-      xtensa*)         cpu_type=xtensa arch=xtensa ;;
-      *)               cpu_type=${cpu} ;;
+       ;;
     esac
 
     if test ${this_target} = $target ; then
@@ -4237,389 +4188,78 @@ _ACEOF
       continue
     fi
 
-    generic_target=${cpu_type}-$vendor-$os
-    dev=no
-    bfd_gas=no
-    em=generic
-
-    # Assign object format.
-    # Note: This table is alpha-sorted, please try to keep it that way.
+    generic_target=${cpu_type}-${target_vendor}-${target_os}
     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 ;;
-      x86_64-*-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
-         if test ${this_target} = $target; then
+      i386-*-sco3.2v5*)
+       if test ${this_target} = $target; then
 
 cat >>confdefs.h <<\_ACEOF
 #define SCO_ELF 1
 _ACEOF
 
-         fi ;;
-      i386-*-sco3.2*)                  fmt=coff ;;
-      i386-*-vsta)                     fmt=aout ;;
+       fi
+       ;;
+
       i386-*-msdosdjgpp* \
       | i386-*-go32* \
-      | i386-go32-rtems*)              fmt=coff em=go32
+      | i386-go32-rtems*)
 
 cat >>confdefs.h <<\_ACEOF
 #define STRICTCOFF 1
 _ACEOF
- ;;
-      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
-               { echo "$as_me:$LINENO: WARNING: GAS support for ${generic_target} is preliminary and a work in progress" >&5
-echo "$as_me: WARNING: GAS support for ${generic_target} is preliminary and a work in progress" >&2;} ;;
-      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-*-lynxos*)                  fmt=coff em=lynx ;;
-      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 ;;
+
+       ;;
+
+      i860-*-*)
+       { echo "$as_me:$LINENO: WARNING: GAS support for ${generic_target} is preliminary and a work in progress" >&5
+echo "$as_me: WARNING: GAS support for ${generic_target} is preliminary and a work in progress" >&2;}
+       ;;
+
+      mips-sony-bsd*)
+       ;;
       mips-*-bsd*)
-           { { echo "$as_me:$LINENO: error: Unknown vendor for mips-bsd configuration." >&5
+       { { echo "$as_me:$LINENO: error: Unknown vendor for mips-bsd configuration." >&5
 echo "$as_me: error: Unknown vendor for mips-bsd configuration." >&2;}
-   { (exit 1); exit 1; }; } ;;
-      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
+   { (exit 1); exit 1; }; }
+       ;;
+
+      ppc-*-aix5.*)
 
 cat >>confdefs.h <<\_ACEOF
 #define AIX_WEAK_SUPPORT 1
 _ACEOF
 
-      ;;
-      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
-           case "$endian" in
-               big)  ;;
-               *)    { { echo "$as_me:$LINENO: error: GNU/Linux must be configured big endian" >&5
+       ;;
+      ppc-*-linux-gnu*)
+       case "$endian" in
+         big)  ;;
+         *)    { { echo "$as_me:$LINENO: error: GNU/Linux must be configured big endian" >&5
 echo "$as_me: error: GNU/Linux must be configured big endian" >&2;}
    { (exit 1); exit 1; }; } ;;
-           esac ;;
-      ppc-*-solaris*)                  fmt=elf
-           if test ${this_target} = $target; then
+       esac
+       ;;
+      ppc-*-solaris*)
+       if test ${this_target} = $target; then
 
 cat >>confdefs.h <<\_ACEOF
 #define TARGET_SOLARIS_COMMENT 1
 _ACEOF
 
-           fi
-           if test x${endian} = xbig; then
-               { { echo "$as_me:$LINENO: error: Solaris must be configured little endian" >&5
+       fi
+       if test x${endian} = xbig; then
+         { { echo "$as_me:$LINENO: error: Solaris must be configured little endian" >&5
 echo "$as_me: error: Solaris must be configured little endian" >&2;}
    { (exit 1); exit 1; }; }
-           fi ;;
-      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 ;;
-
-      s390x-*-linux-gnu*)              fmt=elf em=linux ;;
-      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
+       fi
+       ;;
+
+      sh*-*-symbianelf*)
 
 cat >>confdefs.h <<\_ACEOF
 #define TARGET_SYMBIAN 1
 _ACEOF
 
-               ;;
-      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-*-lynxos*)                 fmt=coff em=lynx ;;
-      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 ;;
-      vax-*-vms)                       fmt=vms ;;
-
-      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 dev=yes ;;
-      *-*-aros*)                       fmt=elf em=linux bfd_gas=yes ;;
-      *-*-vxworks | *-*-windiss)       fmt=elf ;;
-      *-*-netware)                     fmt=elf em=netware ;;
+       ;;
     esac
 
     if test ${this_target} = $target ; then
@@ -4638,13 +4278,6 @@ _ACEOF
       fi
     fi
 
-    case ${cpu_type}-${fmt} in
-       alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
-               | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
-               | *-elf | *-ecoff | *-som)
-           bfd_gas=yes ;;
-    esac
-
 # Other random stuff.
 
     case ${cpu_type} in
index 50dcfd5..3296f8c 100644 (file)
@@ -114,67 +114,14 @@ emulations=""
 
 for this_target in $target $canon_targets ; do
 
-changequote(,)dnl
-    eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
-changequote([,])dnl
+    targ=${this_target}
+    . ${srcdir}/configure.tgt
 
-    # Check for architecture variants.
-    # Note: This table is alpha-sorted, please try to keep it that way.
-    arch=
-    endian=
-    case ${cpu} in
-      am33_2.0)                cpu_type=mn10300 endian=little ;;
-      alpha*)          cpu_type=alpha ;;
-      arm*be|xscale*be|strongarm*be | \
-      arm*b|xscale*b|strongarm*b) cpu_type=arm endian=big ;;
-      arm*|xscale*|strongarm*)    cpu_type=arm endian=little ;;
-      c4x*)            cpu_type=tic4x ;;
-      crisv32)         cpu_type=cris arch=crisv32
-                       AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
-                                          [Default CRIS architecture.])
-                       ;;
-      crx*)            cpu_type=crx endian=little ;;
-      hppa*)           cpu_type=hppa ;;
-changequote(,)dnl
-      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 target_cpu=m32r endian=big ;;
-      m32rle)           cpu_type=m32r target_cpu=m32r endian=little ;;
-      m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
-      m680[012346]0)   cpu_type=m68k ;;
-changequote([,])dnl
-      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.
-      v850*)           cpu_type=v850 ;;
-      x86_64)          cpu_type=i386 arch=x86_64;;
-      xtensa*)         cpu_type=xtensa arch=xtensa ;;
-      *)               cpu_type=${cpu} ;;
+    case ${target_cpu} in
+      crisv32)
+       AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
+                          [Default CRIS architecture.])
+       ;;
     esac
 
     if test ${this_target} = $target ; then
@@ -183,368 +130,53 @@ changequote([,])dnl
       continue
     fi
 
-    generic_target=${cpu_type}-$vendor-$os
-    dev=no
-    bfd_gas=no
-    em=generic
-
-    # Assign object format.
-    # Note: This table is alpha-sorted, please try to keep it that way.
+    generic_target=${cpu_type}-${target_vendor}-${target_os}
     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 ;;
-      x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
-      i386-*-lynxos*)                  fmt=elf em=lynx bfd_gas=yes ;;
-changequote(,)dnl
-      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 ;;
-changequote([,])dnl
-      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
-         if test ${this_target} = $target; then
-           AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
-         fi ;;
-      i386-*-sco3.2*)                  fmt=coff ;;
-      i386-*-vsta)                     fmt=aout ;;
+      i386-*-sco3.2v5*)
+       if test ${this_target} = $target; then
+         AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
+       fi
+       ;;
+
       i386-*-msdosdjgpp* \
       | i386-*-go32* \
-      | i386-go32-rtems*)              fmt=coff em=go32
-           AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?]) ;;
-      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
-               AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
-      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-*-lynxos*)                  fmt=coff em=lynx ;;
-      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 ;;
+      | i386-go32-rtems*)
+       AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
+       ;;
+
+      i860-*-*)
+       AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
+       ;;
+
+      mips-sony-bsd*)
+       ;;
       mips-*-bsd*)
-           AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
-      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 ;;
-changequote(,)dnl
-      ppc-*-aix5.[01])                 fmt=coff em=aix5 ;;
-changequote([,])dnl
-      ppc-*-aix5.*)                    fmt=coff em=aix5
-       AC_DEFINE(AIX_WEAK_SUPPORT, 1,
+       AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.)
+       ;;
+
+      ppc-*-aix5.*)
+       AC_DEFINE(AIX_WEAK_SUPPORT, 1,
                  [Define if using AIX 5.2 value for C_WEAKEXT.])
-      ;;
-      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
-           case "$endian" in
-               big)  ;;
-               *)    AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
-           esac ;;
-      ppc-*-solaris*)                  fmt=elf
-           if test ${this_target} = $target; then
-               AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
-                         [Define if default target is PowerPC Solaris.])
-           fi
-           if test x${endian} = xbig; then
-               AC_MSG_ERROR(Solaris must be configured little endian)
-           fi ;;
-      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 ;;
-
-      s390x-*-linux-gnu*)              fmt=elf em=linux ;;
-      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
-               AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
-               ;;
-      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-*-lynxos*)                 fmt=coff em=lynx ;;
-      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 ;;
-      vax-*-vms)                       fmt=vms ;;
-
-      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 dev=yes ;;
-      *-*-aros*)                       fmt=elf em=linux bfd_gas=yes ;;
-      *-*-vxworks | *-*-windiss)       fmt=elf ;;
-      *-*-netware)                     fmt=elf em=netware ;;
+       ;;
+      ppc-*-linux-gnu*)
+       case "$endian" in
+         big)  ;;
+         *)    AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
+       esac
+       ;;
+      ppc-*-solaris*)
+       if test ${this_target} = $target; then
+         AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
+                   [Define if default target is PowerPC Solaris.])
+       fi
+       if test x${endian} = xbig; then
+         AC_MSG_ERROR(Solaris must be configured little endian)
+       fi
+       ;;
+
+      sh*-*-symbianelf*)
+       AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
+       ;;
     esac
 
     if test ${this_target} = $target ; then
@@ -560,13 +192,6 @@ changequote([,])dnl
       fi
     fi
 
-    case ${cpu_type}-${fmt} in
-       alpha*-* | arm-* | i386-* | ia64*-* | mips-* | ns32k-* \
-               | pdp11-* | ppc-* | sparc-* | strongarm-* | xscale-* \
-               | *-elf | *-ecoff | *-som)
-           bfd_gas=yes ;;
-    esac
-
 # Other random stuff.
 
     case ${cpu_type} in
diff --git a/gas/configure.tgt b/gas/configure.tgt
new file mode 100644 (file)
index 0000000..085e3e1
--- /dev/null
@@ -0,0 +1,439 @@
+# 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-*-lynxos*)                      fmt=coff em=lynx ;;
+  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-*-lynxos*)                     fmt=coff em=lynx ;;
+  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 ;;
+  vax-*-vms)                           fmt=vms ;;
+
+  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 ;;
+  *-*-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