]> code.bitgloo.com Git - clyne/stmos.git/commitdiff
base cross compiler files
authorClyne Sullivan <tullivan99@gmail.com>
Fri, 30 Nov 2018 03:19:40 +0000 (22:19 -0500)
committerClyne Sullivan <tullivan99@gmail.com>
Fri, 30 Nov 2018 03:19:40 +0000 (22:19 -0500)
12 files changed:
arm-stmos/binutils-files/bfd/config.bfd [new file with mode: 0644]
arm-stmos/binutils-files/config.sub [new file with mode: 0755]
arm-stmos/binutils-files/gas/configure.tgt [new file with mode: 0644]
arm-stmos/binutils-files/ld/Makefile.am [new file with mode: 0644]
arm-stmos/binutils-files/ld/configure.tgt [new file with mode: 0644]
arm-stmos/binutils-files/ld/emulparams/armelf_stmos.sh [new file with mode: 0644]
arm-stmos/create-toolchain.sh [new file with mode: 0755]
arm-stmos/gcc-files/config.sub [new file with mode: 0755]
arm-stmos/gcc-files/fixincludes/mkfixinc.sh [new file with mode: 0755]
arm-stmos/gcc-files/gcc/config.gcc [new file with mode: 0644]
arm-stmos/gcc-files/libgcc/config.host [new file with mode: 0644]
arm-stmos/gcc-files/libstdc++-v3/crossconfig.m4 [new file with mode: 0644]

diff --git a/arm-stmos/binutils-files/bfd/config.bfd b/arm-stmos/binutils-files/bfd/config.bfd
new file mode 100644 (file)
index 0000000..fe37250
--- /dev/null
@@ -0,0 +1,1477 @@
+# config.bfd
+#
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+#
+# Convert a canonical host type into a BFD host type.
+# Set shell variable targ to canonical target name, and run
+# using ``. config.bfd''.
+# Sets the following shell variables:
+#  targ_defvec         Default vector for this target
+#  targ_selvecs                Vectors to build for this target
+#  targ64_selvecs      Vectors to build if --enable-64-bit-bfd is given
+#                      or if host is 64 bit.
+#  targ_archs          Architectures for this target
+#  targ_cflags         $(CFLAGS) for this target (FIXME: pretty bogus)
+#  targ_underscore     Whether underscores are used: yes or no
+
+# Part of this file is processed by targmatch.sed to generate the
+# targmatch.h file.  The #ifdef and #endif lines that appear below are
+# copied directly into targmatch.h.
+
+# The binutils c++filt program wants to know whether underscores are
+# stripped or not.  That is why we set targ_underscore.  c++filt uses
+# this information to choose a default.  This information is
+# duplicated in the symbol_leading_char field of the BFD target
+# vector, but c++filt does not deal with object files and is not
+# linked against libbfd.a.  It is not terribly important that c++filt
+# get this right; it is just convenient.
+
+targ_defvec=
+targ_selvecs=
+targ64_selvecs=
+targ_cflags=
+targ_underscore=no
+
+# Catch obsolete configurations.
+case $targ in
+ openrisc-*-* | or32-*-*)
+    echo "*** Configuration $targ is obsolete." >&2
+    echo "*** Use or1k-*-elf or or1k-*-linux as the target instead" >&2
+    exit 1
+    ;;
+ powerpc-*-lynxos* | powerpc-*-windiss* | \
+ null)
+    if test "x$enable_obsolete" != xyes; then
+      echo "*** Configuration $targ is obsolete." >&2
+      echo "*** Specify --enable-obsolete to build it anyway." >&2
+      echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2
+      echo "*** unless a maintainer comes forward." >&2
+      exit 1
+    fi;;
+esac
+
+case $targ in
+ *-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu | \
+ mips*-*-irix5* | mips*-*-irix6*)
+    # Not obsolete
+    ;;
+ *-adobe-* | \
+ *-go32-rtems* | \
+ *-sony-* | \
+ *-tandem-* | \
+ *-*-ieee* | \
+ *-*-netware* | \
+ *-*-rtemsaout* | \
+ *-*-rtemscoff* | \
+ a29k-* | \
+ arm*-*-aout | \
+ arm-*-coff | \
+ arm-*-netbsd* | \
+ arm-*-openbsd* | \
+ arm-*-oabi | \
+ arm-*-riscix* | \
+ arm-epoc-pe* | \
+ h8300*-*-coff | \
+ h8500*-*-coff | \
+ hppa*-*-rtems* | \
+ i[3-7]86-*-unixware* | \
+ i[3-7]86-*-dgux* | \
+ i[3-7]86-*-chorus* | \
+ i[3-7]86-*-sysv* | \
+ i[3-7]86-*-isc* | \
+ i[3-7]86-*-sco* | \
+ i[3-7]86-*-coff | \
+ i[3-7]86-*-aix* | \
+ i[3-7]86-sequent-bsd* | \
+ i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12] | \
+ i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \
+ i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3] | \
+ i[3-7]86-*-linux*aout* | \
+ i[3-7]86-*-mach* | i[3-7]86-*-osf1mk* | \
+ i[3-7]86-*-os9k | \
+ i[3-7]86-none-* | \
+ i[3-7]86-*-aout* | i[3-7]86*-*-vsta* | \
+ i370-* | \
+ i860-*-* | \
+ i960-*-* | \
+ m68*-*-*bsd* | \
+ m68*-*-aout* | \
+ m68*-*-coff* | \
+ m68*-*-hpux* | \
+ m68*-*-linux*aout* | \
+ m68*-*-lynxos* | \
+ m68*-*-os68k* | \
+ m68*-*-psos* | \
+ m68*-*-sunos* | \
+ m68*-*-sysv* | \
+ m68*-*-vsta* | \
+ m68*-*-vxworks* | \
+ m68*-apollo-* | \
+ m68*-apple-aux* | \
+ m68*-bull-sysv* | \
+ m68*-ericsson-* | \
+ m68*-motorola-sysv* | \
+ m68*-netx-* | \
+ m88*-*-* | \
+ maxq-*-coff | \
+ mips*-*-bsd* | \
+ mips*-*-ecoff* | \
+ mips*-*-lnews* | \
+ mips*-*-mach3* | \
+ mips*-*-pe* | \
+ mips*-*-riscos* | \
+ mips*-*-sysv* | \
+ mips*-big-* | \
+ mips*-dec-* | \
+ mips*-sgi-* | \
+ mips*el-*-rtems* | \
+ sh*-*-symbianelf* | sh5*-*-* | sh64*-*-* | \
+ sparc*-*-*aout* | \
+ sparc*-*-chorus* | \
+ sparc*-*-coff* | \
+ sparc-*-lynxos* | \
+ sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1] | \
+ tahoe-*-* | \
+ vax-*-bsd* | vax-*-ultrix* | vax-*-vms* | \
+ w65-*-* | \
+ we32k-*-* | \
+ null)
+    echo "*** Configuration $targ is obsolete." >&2
+    echo "*** Support has been REMOVED." >&2
+    exit 1
+    ;;
+esac
+
+targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+case "${targ_cpu}" in
+aarch64*)       targ_archs="bfd_aarch64_arch bfd_arm_arch";;
+alpha*)                 targ_archs=bfd_alpha_arch ;;
+am33_2.0*)      targ_archs=bfd_mn10300_arch ;;
+arc*)           targ_archs=bfd_arc_arch ;;
+arm*)           targ_archs=bfd_arm_arch ;;
+bfin*)          targ_archs=bfd_bfin_arch ;;
+c30*)           targ_archs=bfd_tic30_arch ;;
+c4x*)           targ_archs=bfd_tic4x_arch ;;
+c54x*)          targ_archs=bfd_tic54x_arch ;;
+cr16*)          targ_archs=bfd_cr16_arch ;;
+crisv32)        targ_archs=bfd_cris_arch ;;
+crx*)           targ_archs=bfd_crx_arch ;;
+dlx*)           targ_archs=bfd_dlx_arch ;;
+fido*)          targ_archs=bfd_m68k_arch ;;
+hppa*)          targ_archs=bfd_hppa_arch ;;
+i[3-7]86)       targ_archs=bfd_i386_arch ;;
+ia16)           targ_archs=bfd_i386_arch ;;
+lm32)           targ_archs=bfd_lm32_arch ;;
+m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
+m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
+m68*)           targ_archs=bfd_m68k_arch ;;
+s12z*)         targ_archs=bfd_s12z_arch ;;
+microblaze*)    targ_archs=bfd_microblaze_arch ;;
+mips*)          targ_archs=bfd_mips_arch ;;
+nds32*)                 targ_archs=bfd_nds32_arch ;;
+nfp)            targ_archs=bfd_nfp_arch ;;
+nios2*)          targ_archs=bfd_nios2_arch ;;
+or1k*|or1knd*)  targ_archs=bfd_or1k_arch ;;
+pdp11*)                 targ_archs=bfd_pdp11_arch ;;
+pj*)            targ_archs="bfd_pj_arch bfd_i386_arch";;
+powerpc*)       targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
+pru*)           targ_archs=bfd_pru_arch ;;
+riscv*)                 targ_archs=bfd_riscv_arch ;;
+rs6000)                 targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
+s390*)          targ_archs=bfd_s390_arch ;;
+sh*)            targ_archs=bfd_sh_arch ;;
+sparc*)                 targ_archs=bfd_sparc_arch ;;
+spu*)            targ_archs=bfd_spu_arch ;;
+tilegx*)        targ_archs=bfd_tilegx_arch ;;
+tilepro*)       targ_archs=bfd_tilepro_arch ;;
+v850*)          targ_archs="bfd_v850_arch bfd_v850_rh850_arch" ;;
+visium*)        targ_archs=bfd_visium_arch ;;
+wasm32)                 targ_archs=bfd_wasm32_arch ;;
+x86_64*)        targ_archs=bfd_i386_arch ;;
+xtensa*)        targ_archs=bfd_xtensa_arch ;;
+xgate)          targ_archs=bfd_xgate_arch ;;
+z80|r800)       targ_archs=bfd_z80_arch ;;
+z8k*)           targ_archs=bfd_z8k_arch ;;
+*)              targ_archs=bfd_${targ_cpu}_arch ;;
+esac
+
+
+# WHEN ADDING ENTRIES TO THIS MATRIX:
+#  Make sure that the left side always has two dashes.  Otherwise you
+#  can get spurious matches.  Even for unambiguous cases, do this as a
+#  convention, else the table becomes a real mess to understand and maintain.
+
+case "${targ}" in
+  plugin)
+    targ_defvec=plugin_vec
+    targ_selvecs="plugin_vec"
+    ;;
+
+# START OF targmatch.h
+#ifdef BFD64
+  aarch64-*-darwin*)
+    targ_defvec=aarch64_mach_o_vec
+    targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
+    targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
+    want64=true
+    ;;
+  aarch64-*-elf | aarch64-*-rtems*)
+    targ_defvec=aarch64_elf64_le_vec
+    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
+    want64=true
+    ;;
+  aarch64_be-*-elf)
+    targ_defvec=aarch64_elf64_be_vec
+    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
+    want64=true
+    ;;
+  aarch64-*-freebsd*)
+    targ_defvec=aarch64_elf64_le_vec
+    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
+    want64=true
+    ;;
+  aarch64-*-fuchsia*)
+    targ_defvec=aarch64_elf64_le_vec
+    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
+    want64=true
+    ;;
+  aarch64-*-cloudabi*)
+    targ_defvec=aarch64_elf64_le_cloudabi_vec
+    targ_selvecs=aarch64_elf64_be_cloudabi_vec
+    want64=true
+    ;;
+  aarch64-*-linux*)
+    targ_defvec=aarch64_elf64_le_vec
+    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
+    want64=true
+    ;;
+  aarch64_be-*-linux*)
+    targ_defvec=aarch64_elf64_be_vec
+    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
+    want64=true
+    ;;
+  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
+    targ_defvec=alpha_elf64_fbsd_vec
+    targ_selvecs="alpha_elf64_vec alpha_ecoff_le_vec"
+    want64=true
+    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
+    case "${targ}" in
+      alpha*-*-freebsd3* | alpha*-*-freebsd4 | alpha*-*-freebsd4.0*)
+       targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
+    esac
+    ;;
+  alpha*-*-netbsd* | alpha*-*-openbsd*)
+    targ_defvec=alpha_elf64_vec
+    targ_selvecs=alpha_ecoff_le_vec
+    want64=true
+    ;;
+  alpha*-*-linux*ecoff*)
+    targ_defvec=alpha_ecoff_le_vec
+    targ_selvecs=alpha_elf64_vec
+    want64=true
+    ;;
+  alpha*-*-linux-* | alpha*-*-elf*)
+    targ_defvec=alpha_elf64_vec
+    targ_selvecs=alpha_ecoff_le_vec
+    want64=true
+    ;;
+  alpha*-*-*vms*)
+    targ_defvec=alpha_vms_vec
+    targ_selvecs=alpha_vms_lib_txt_vec
+    want64=true
+    ;;
+  alpha*-*-*)
+    targ_defvec=alpha_ecoff_le_vec
+    want64=true
+    ;;
+  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
+    targ_defvec=ia64_elf64_le_vec
+    targ_selvecs="ia64_elf64_be_vec ia64_pei_vec"
+    want64=true
+    ;;
+  ia64*-*-hpux*)
+    targ_defvec=ia64_elf32_hpux_be_vec
+    targ_selvecs="ia64_elf64_hpux_be_vec"
+    want64=true
+    ;;
+  ia64*-*-*vms*)
+    targ_defvec=ia64_elf64_vms_vec
+    targ_selvecs=alpha_vms_lib_txt_vec
+    want64=true
+    ;;
+#endif /* BFD64 */
+
+  am33_2.0-*-linux*)
+    targ_defvec=am33_elf32_linux_vec
+    ;;
+
+  arc*eb-*-elf* | arc*eb-*-linux*)
+    targ_defvec=arc_elf32_be_vec
+    targ_selvecs=arc_elf32_le_vec
+    ;;
+
+  arc*-*-elf* | arc*-*-linux*)
+    targ_defvec=arc_elf32_le_vec
+    targ_selvecs=arc_elf32_be_vec
+    ;;
+
+  arm-*-darwin*)
+    targ_defvec=arm_mach_o_vec
+    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
+    targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
+    ;;
+  arm-*-fuchsia*)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs="arm_elf32_be_vec"
+    ;;
+  arm-*-nacl*)
+    targ_defvec=arm_elf32_nacl_le_vec
+    targ_selvecs="arm_elf32_nacl_be_vec i386_elf32_nacl_vec"
+    targ64_selvecs="x86_64_elf32_nacl_vec x86_64_elf64_nacl_vec"
+    targ_archs="$targ_archs bfd_i386_arch"
+    ;;
+  armeb-*-nacl*)
+    targ_defvec=arm_elf32_nacl_be_vec
+    targ_selvecs="arm_elf32_nacl_le_vec i386_elf32_nacl_vec"
+    targ64_selvecs="x86_64_elf32_nacl_vec x86_64_elf64_nacl_vec"
+    targ_archs="$targ_archs bfd_i386_arch"
+    ;;
+  armeb-*-netbsdelf*)
+    targ_defvec=arm_elf32_be_vec
+    targ_selvecs="arm_elf32_le_vec"
+    ;;
+  arm-*-netbsdelf*)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs="arm_elf32_be_vec"
+    ;;
+  arm-*-nto* | nto*arm*)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs=arm_elf32_be_vec
+    targ_cflags=-D__QNXTARGET__
+    ;;
+  arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
+    targ_defvec=arm_pe_wince_le_vec
+    targ_selvecs="arm_pe_wince_le_vec arm_pe_wince_be_vec arm_pei_wince_le_vec arm_pei_wince_be_vec"
+    targ_underscore=no
+    targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
+    ;;
+  arm-*-pe*)
+    targ_defvec=arm_pe_le_vec
+    targ_selvecs="arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec"
+    targ_underscore=yes
+    ;;
+  arm-*-phoenix*)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs=arm_elf32_be_vec
+    ;;
+  armeb-*-elf | arm*b-*-freebsd* | arm*b-*-linux-* | armeb-*-eabi*)
+    targ_defvec=arm_elf32_be_vec
+    targ_selvecs=arm_elf32_le_vec
+    ;;
+  arm-*-kaos*)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs=arm_elf32_be_vec
+    ;;
+  arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
+  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
+  arm*-*-eabi* | arm-*-rtems* | arm*-*-uclinuxfdpiceabi)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_be_vec arm_elf32_fdpic_be_vec"
+    ;;
+  arm-*-stmos*)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_be_vec arm_elf32_fdpic_be_vec"
+    ;;
+  arm*-*-vxworks | arm*-*-windiss)
+    targ_defvec=arm_elf32_vxworks_le_vec
+    targ_selvecs=arm_elf32_vxworks_be_vec
+    ;;
+  arm*-*-symbianelf*)
+    targ_defvec=arm_elf32_symbian_le_vec
+    targ_selvecs=arm_elf32_symbian_be_vec
+    ;;
+  arm9e-*-elf)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs=arm_elf32_be_vec
+    ;;
+
+  avr-*-*)
+    targ_defvec=avr_elf32_vec
+    ;;
+
+  bfin-*-*)
+    targ_defvec=bfin_elf32_vec
+    targ_selvecs=bfin_elf32_fdpic_vec
+    targ_underscore=yes
+    ;;
+
+  c30-*-*aout* | tic30-*-*aout*)
+    targ_defvec=tic30_aout_vec
+    ;;
+  c30-*-*coff* | tic30-*-*coff*)
+    targ_defvec=tic30_coff_vec
+    ;;
+
+  c4x-*-*coff* | tic4x-*-*coff*)
+    targ_defvec=tic4x_coff1_vec
+    targ_selvecs="tic4x_coff1_beh_vec tic4x_coff2_vec tic4x_coff2_beh_vec tic4x_coff0_vec tic4x_coff0_beh_vec"
+    targ_underscore=yes
+    ;;
+
+  c54x*-*-*coff* | tic54x-*-*coff*)
+    targ_defvec=tic54x_coff1_vec
+    targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec"
+    targ_underscore=yes
+    ;;
+
+  cr16-*-elf* | cr16*-*-uclinux*)
+    targ_defvec=cr16_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  cr16c-*-elf*)
+    targ_defvec=cr16c_elf32_vec
+    targ_underscore=yes
+    ;;
+
+#ifdef BFD64
+  cris-*-* | crisv32-*-*)
+    targ_defvec=cris_aout_vec
+    targ_selvecs="cris_elf32_us_vec cris_elf32_vec"
+    case "${targ}" in
+       *-*-linux*) ;;
+       *) targ_underscore=yes ;;
+    esac
+    want64=true
+    ;;
+#endif
+
+  crx-*-elf*)
+    targ_defvec=crx_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  d10v-*-*)
+    targ_defvec=d10v_elf32_vec
+    ;;
+
+  dlx-*-elf*)
+    targ_defvec=dlx_elf32_be_vec
+    targ_selvecs="dlx_elf32_be_vec"
+    ;;
+
+  d30v-*-*)
+    targ_defvec=d30v_elf32_vec
+    ;;
+
+  epiphany-*-*)
+    targ_defvec=epiphany_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  fido-*-elf* )
+    targ_defvec=m68k_elf32_vec
+    ;;
+
+  fr30-*-elf)
+    targ_defvec=fr30_elf32_vec
+    ;;
+
+  frv-*-elf)
+    targ_defvec=frv_elf32_vec
+    targ_selvecs=frv_elf32_fdpic_vec
+    ;;
+
+  frv-*-*linux*)
+    targ_defvec=frv_elf32_fdpic_vec
+    targ_selvecs=frv_elf32_vec
+    ;;
+
+  moxie-*-elf | moxie-*-rtems* | moxie-*-uclinux)
+    targ_defvec=moxie_elf32_be_vec
+    targ_selvecs=moxie_elf32_le_vec
+    ;;
+
+  moxie-*-moxiebox*)
+    targ_defvec=moxie_elf32_le_vec
+    ;;
+
+  h8300*-*-elf | h8300*-*-rtems*)
+    targ_defvec=h8300_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  h8300*-*-linux*)
+    targ_defvec=h8300_elf32_linux_vec
+    ;;
+
+#ifdef BFD64
+  hppa*64*-*-linux-*)
+    targ_defvec=hppa_elf64_linux_vec
+    targ_selvecs=hppa_elf64_vec
+    want64=true
+    ;;
+  hppa*64*-*-hpux11*)
+    targ_defvec=hppa_elf64_vec
+    targ_selvecs=hppa_elf64_linux_vec
+    targ_cflags=-DHPUX_LARGE_AR_IDS
+    want64=true
+    ;;
+#endif
+
+  hppa*-*-linux-*)
+    targ_defvec=hppa_elf32_linux_vec
+    targ_selvecs=hppa_elf32_vec
+    ;;
+  hppa*-*-netbsd*)
+    targ_defvec=hppa_elf32_nbsd_vec
+    targ_selvecs="hppa_elf32_vec hppa_elf32_linux_vec"
+    ;;
+  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-openbsd*)
+    targ_defvec=hppa_elf32_vec
+    targ_selvecs=hppa_elf32_linux_vec
+    ;;
+
+  hppa*-*-bsd*)
+    targ_defvec=hppa_som_vec
+    targ_selvecs=hppa_elf32_vec
+    ;;
+  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
+    targ_defvec=hppa_som_vec
+    ;;
+  hppa*-*-osf*)
+    targ_defvec=hppa_som_vec
+    targ_selvecs=hppa_elf32_vec
+    ;;
+
+  i[3-7]86-*-elf* | i[3-7]86-*-rtems*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
+    ;;
+  i[3-7]86-*-solaris2*)
+    targ_defvec=i386_elf32_sol2_vec
+    targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec"
+    targ64_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec x86_64_pei_vec"
+    want64=true
+    ;;
+#ifdef BFD64
+  x86_64-*-solaris2*)
+    targ_defvec=i386_elf32_sol2_vec
+    targ_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec"
+    want64=true
+    ;;
+#endif
+  i[3-7]86-*-kaos*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs=i386_elf32_vec
+    ;;
+  i[3-7]86-*-nto*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
+    ;;
+  i[3-7]86-*-aros*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs=iamcu_elf32_vec
+    ;;
+  i[3-7]86-*-dicos*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs=iamcu_elf32_vec
+    targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
+    ;;
+  *-*-msdosdjgpp* | *-*-go32* )
+    targ_defvec=i386_coff_go32_vec
+    targ_selvecs="i386_coff_go32stubbed_vec i386_aout_vec"
+    ;;
+  i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
+    targ_defvec=i386_mach_o_vec
+    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
+    targ64_selvecs=x86_64_mach_o_vec
+    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
+    ;;
+  i[3-7]86-*-bsd*)
+    targ_defvec=i386_aout_bsd_vec
+    targ_underscore=yes
+    ;;
+  i[3-7]86-*-dragonfly*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs=iamcu_elf32_vec
+    targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
+    ;;
+  i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
+    targ_defvec=i386_elf32_fbsd_vec
+    targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_pei_vec i386_coff_vec"
+    targ64_selvecs="x86_64_elf64_fbsd_vec x86_64_elf64_vec x86_64_pei_vec l1om_elf64_vec l1om_elf64_fbsd_vec k1om_elf64_vec k1om_elf64_fbsd_vec"
+    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
+    case "${targ}" in
+      i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*)
+       targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
+    esac
+    ;;
+  i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec"
+    targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
+    ;;
+  i[3-7]86-*-netbsdpe*)
+    targ_defvec=i386_pe_vec
+    targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
+    ;;
+  i[3-7]86-*-openbsd*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec"
+    ;;
+  i[3-7]86-*-linux-*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec i386_pei_vec"
+    targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
+    ;;
+  i[3-7]86-*-nacl*)
+    targ_defvec=i386_elf32_nacl_vec
+    targ_selvecs="arm_elf32_nacl_be_vec arm_elf32_nacl_le_vec"
+    targ64_selvecs="x86_64_elf64_nacl_vec x86_64_elf32_nacl_vec"
+    targ_archs="$targ_archs bfd_arm_arch"
+    ;;
+  i[3-7]86-*-redox*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs=
+    targ64_selvecs=x86_64_elf64_vec
+    ;;
+#ifdef BFD64
+  x86_64-*-cloudabi*)
+    targ_defvec=x86_64_elf64_cloudabi_vec
+    want64=true
+    ;;
+  x86_64-*-darwin*)
+    targ_defvec=x86_64_mach_o_vec
+    targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
+    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
+    want64=true
+    ;;
+  x86_64-*-dicos*)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
+    want64=true
+    ;;
+  x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec"
+    case "${targ}" in
+      x86_64-*-rtems*)
+    targ_selvecs="${targ_selvecs} x86_64_pei_vec"
+    esac
+    want64=true
+    ;;
+  x86_64-*-dragonfly*)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
+    want64=true
+    ;;
+  x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
+    targ_defvec=x86_64_elf64_fbsd_vec
+    targ_selvecs="i386_elf32_fbsd_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec i386_elf32_vec x86_64_elf64_vec l1om_elf64_vec l1om_elf64_fbsd_vec k1om_elf64_vec k1om_elf64_fbsd_vec"
+    want64=true
+    ;;
+  x86_64-*-netbsd* | x86_64-*-openbsd*)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
+    want64=true
+    ;;
+  x86_64-*-linux-*)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
+    want64=true
+    ;;
+  x86_64-*-nacl*)
+    targ_defvec=x86_64_elf32_nacl_vec
+    targ_selvecs="i386_elf32_nacl_vec x86_64_elf64_nacl_vec arm_elf32_nacl_be_vec arm_elf32_nacl_le_vec"
+    targ_archs="$targ_archs bfd_arm_arch"
+    want64=true
+    ;;
+  x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin)
+    targ_defvec=x86_64_pe_vec
+    targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_be_vec x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
+    want64=true
+    targ_underscore=no
+    ;;
+  x86_64-*-rdos*)
+    targ_defvec=x86_64_elf64_vec
+    want64=true
+    ;;
+  x86_64-*-redox*)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs=i386_elf32_vec
+    want64=true
+    ;;
+#endif
+  i[3-7]86-*-lynxos*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec i386_coff_lynx_vec i386_aout_lynx_vec"
+    ;;
+  i[3-7]86-*-gnu*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs=iamcu_elf32_vec
+    ;;
+  i[3-7]86-*-msdos*)
+    targ_defvec=i386_aout_vec
+    targ_selvecs=i386_msdos_vec
+    ;;
+  i[3-7]86-*-moss*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec i386_msdos_vec i386_aout_vec"
+    ;;
+  i[3-7]86-*-beospe*)
+    targ_defvec=i386_pe_vec
+    targ_selvecs="i386_pe_vec i386_pei_vec"
+    ;;
+  i[3-7]86-*-beoself* | i[3-7]86-*-beos*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec"
+    ;;
+  i[3-7]86-*-interix*)
+    targ_defvec=i386_pei_vec
+    targ_selvecs="i386_pe_vec"
+    # FIXME: This should eventually be checked at runtime.
+    targ_cflags=-DSTRICT_PE_FORMAT
+    ;;
+  i[3-7]86-*-rdos*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
+    ;;
+  i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe)
+    targ_defvec=i386_pe_vec
+    targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
+    targ_underscore=yes
+    ;;
+  i[3-7]86-*-vxworks*)
+    targ_defvec=i386_elf32_vxworks_vec
+    targ_underscore=yes
+    ;;
+  i[3-7]86-*-chaos)
+    targ_defvec=i386_elf32_vec
+    targ_selfvecs="iamcu_elf32_vec i386chaos_vec"
+    ;;
+
+  ia16-*-elf)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs="i386_msdos_vec i386_aout_vec"
+    ;;
+
+  ip2k-*-elf)
+    targ_defvec=ip2k_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  iq2000-*-elf)
+    targ_defvec=iq2000_elf32_vec
+    ;;
+
+  lm32-*-elf | lm32-*-rtems*)
+    targ_defvec=lm32_elf32_vec
+    targ_selvecs=lm32_elf32_fdpic_vec
+    ;;
+
+  lm32-*-*linux*)
+    targ_defvec=lm32_elf32_fdpic_vec
+    targ_selvecs=lm32_elf32_vec
+    ;;
+
+  m32c-*-elf | m32c-*-rtems*)
+    targ_defvec=m32c_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  m32r*le-*-linux*)
+    targ_defvec=m32r_elf32_linux_le_vec
+    targ_selvecs="m32r_elf32_linux_vec  m32r_elf32_linux_le_vec"
+    ;;
+  m32r*-*-linux*)
+    targ_defvec=m32r_elf32_linux_vec
+    targ_selvecs="m32r_elf32_linux_vec  m32r_elf32_linux_le_vec"
+    ;;
+  m32r*le-*-*)
+    targ_defvec=m32r_elf32_le_vec
+    targ_selvecs="m32r_elf32_vec m32r_elf32_le_vec"
+    ;;
+  m32r-*-*)
+    targ_defvec=m32r_elf32_vec
+    ;;
+
+  m68hc11-*-* | m6811-*-*)
+    targ_defvec=m68hc11_elf32_vec
+    targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec"
+    ;;
+  m68hc12-*-* | m6812-*-*)
+    targ_defvec=m68hc12_elf32_vec
+    targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec"
+    ;;
+
+  m68*-*-*)
+    targ_defvec=m68k_elf32_vec
+    ;;
+
+  s12z-*-*)
+    targ_defvec=s12z_elf32_vec
+    ;;
+  mcore-*-elf)
+    targ_defvec=mcore_elf32_be_vec
+    targ_selvecs="mcore_elf32_be_vec mcore_elf32_le_vec"
+    ;;
+  mcore-*-pe)
+    targ_defvec=mcore_pe_be_vec
+    targ_selvecs="mcore_pe_be_vec mcore_pe_le_vec mcore_pei_be_vec mcore_pei_le_vec"
+    ;;
+
+  mep-*-elf)
+    targ_defvec=mep_elf32_vec
+    targ_selvecs=mep_elf32_le_vec
+    ;;
+
+  metag-*-*)
+    targ_defvec=metag_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  microblazeel*-*)
+    targ_defvec=microblaze_elf32_le_vec
+    targ_selvecs=microblaze_elf32_vec
+    ;;
+
+  microblaze*-*)
+    targ_defvec=microblaze_elf32_vec
+    targ_selvecs=microblaze_elf32_le_vec
+    ;;
+
+#ifdef BFD64
+  mips*el-*-netbsd*)
+    targ_defvec=mips_elf32_trad_le_vec
+    targ_selvecs="mips_elf32_trad_be_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
+    ;;
+  mips*-*-netbsd*)
+    targ_defvec=mips_elf32_trad_be_vec
+    targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
+    ;;
+  mips*-*-irix6*)
+    targ_defvec=mips_elf32_n_be_vec
+    targ_selvecs="mips_elf32_n_le_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
+    ;;
+  mips64*-ps2-elf*)
+    targ_defvec=mips_elf32_n_le_vec
+    targ_selvecs="mips_elf32_n_le_vec mips_elf32_n_be_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
+    ;;
+  mips*-ps2-elf*)
+    targ_defvec=mips_elf32_le_vec
+    targ_selvecs="mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
+    ;;
+  mips*-*-irix5*)
+    targ_defvec=mips_elf32_be_vec
+    targ_selvecs="mips_elf32_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
+    ;;
+  mips*el-*-vxworks*)
+    targ_defvec=mips_elf32_vxworks_le_vec
+    targ_selvecs="mips_elf32_le_vec mips_elf32_vxworks_be_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
+    ;;
+  mips*-*-vxworks*)
+    targ_defvec=mips_elf32_vxworks_be_vec
+    targ_selvecs="mips_elf32_be_vec mips_elf32_vxworks_le_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
+    ;;
+  mips*el-sde-elf*)
+    targ_defvec=mips_elf32_trad_le_vec
+    targ_selvecs="mips_elf32_trad_be_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+    ;;
+  mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
+    targ_defvec=mips_elf32_trad_be_vec
+    targ_selvecs="mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+    ;;
+  mips*el-*-elf* | mips*-*-chorus*)
+    targ_defvec=mips_elf32_le_vec
+    targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
+    ;;
+  mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none)
+    targ_defvec=mips_elf32_be_vec
+    targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
+    ;;
+  mips64*-*-openbsd*)
+    targ_defvec=mips_elf64_trad_be_vec
+    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec"
+    ;;
+  mips*el-*-openbsd*)
+    targ_defvec=mips_elf32_le_vec
+    targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
+    ;;
+  mips*-*-openbsd*)
+    targ_defvec=mips_elf32_be_vec
+    targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
+    ;;
+  mips64*el-*-linux*)
+    targ_defvec=mips_elf32_ntrad_le_vec
+    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
+    ;;
+  mips64*-*-linux*)
+    targ_defvec=mips_elf32_ntrad_be_vec
+    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+    ;;
+  mips*el-*-linux*)
+    targ_defvec=mips_elf32_trad_le_vec
+    targ_selvecs="mips_elf32_trad_be_vec mips_ecoff_le_vec mips_ecoff_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec"
+    ;;
+  mips*-*-linux*)
+    targ_defvec=mips_elf32_trad_be_vec
+    targ_selvecs="mips_elf32_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec"
+    ;;
+  mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
+    # FreeBSD vectors
+    targ_defvec=mips_elf32_ntradfbsd_le_vec
+    targ_selvecs="mips_elf32_ntradfbsd_be_vec mips_elf32_tradfbsd_le_vec mips_elf32_tradfbsd_be_vec mips_elf64_tradfbsd_le_vec mips_elf64_tradfbsd_be_vec"
+    # Generic vectors
+    targ_selvecs="${targ_selvecs} mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
+    ;;
+  mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
+    # FreeBSD vectors
+    targ_defvec=mips_elf32_ntradfbsd_be_vec
+    targ_selvecs="mips_elf32_ntradfbsd_le_vec mips_elf32_tradfbsd_be_vec mips_elf32_tradfbsd_le_vec mips_elf64_tradfbsd_be_vec mips_elf64_tradfbsd_le_vec"
+    # Generic vectors
+    targ_selvecs="${targ_selvecs} mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+    ;;
+  mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
+    # FreeBSD vectors
+    targ_defvec=mips_elf32_tradfbsd_le_vec
+    targ_selvecs="mips_elf32_tradfbsd_be_vec mips_elf32_ntradfbsd_le_vec mips_elf64_tradfbsd_le_vec mips_elf32_ntradfbsd_be_vec mips_elf64_tradfbsd_be_vec"
+    # Generic vectors
+    targ_selvecs="${targ_selvecs} mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec"
+    ;;
+  mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
+    # FreeBSD vectors
+    targ_defvec=mips_elf32_tradfbsd_be_vec
+    targ_selvecs="mips_elf32_tradfbsd_le_vec mips_elf32_ntradfbsd_be_vec mips_elf64_tradfbsd_be_vec mips_elf32_ntradfbsd_le_vec mips_elf64_tradfbsd_le_vec"
+    # Generic vectors
+    targ_selvecs="${targ_selvecs} mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec"
+    ;;
+  mmix-*-*)
+    targ_defvec=mmix_elf64_vec
+    targ_selvecs=mmix_mmo_vec
+    want64=true
+    ;;
+#endif
+  mn10200-*-*)
+    targ_defvec=mn10200_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  mn10300-*-*)
+    targ_defvec=mn10300_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  mt-*-elf)
+    targ_defvec=mt_elf32_vec
+    ;;
+
+  msp430-*-*)
+    targ_defvec=msp430_elf32_vec
+    targ_selvecs=msp430_elf32_ti_vec
+    ;;
+
+  nds32*le-*-linux*)
+    targ_defvec=nds32_elf32_linux_le_vec
+    targ_selvecs=nds32_elf32_linux_be_vec
+    ;;
+
+  nds32*be-*-linux*)
+    targ_defvec=nds32_elf32_linux_be_vec
+    targ_selvecs=nds32_elf32_linux_le_vec
+    ;;
+
+  nds32*le-*-*)
+    targ_defvec=nds32_elf32_le_vec
+    targ_selvecs=nds32_elf32_be_vec
+    ;;
+
+  nds32*be-*-*)
+    targ_defvec=nds32_elf32_be_vec
+    targ_selvecs=nds32_elf32_le_vec
+    ;;
+
+#ifdef BFD64
+  nfp-*-*)
+    targ_defvec=nfp_elf64_vec
+    ;;
+#endif
+
+  ns32k-pc532-mach* | ns32k-pc532-ux*)
+    targ_defvec=ns32k_aout_pc532mach_vec
+    targ_underscore=yes
+    ;;
+  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
+    targ_defvec=ns32k_aout_pc532nbsd_vec
+    targ_underscore=yes
+    ;;
+
+  nios2eb-*-*)
+    targ_defvec=nios2_elf32_be_vec
+    targ_selvecs=nios2_elf32_le_vec
+    ;;
+
+  nios2el-*-*)
+    targ_defvec=nios2_elf32_le_vec
+    targ_selvecs=nios2_elf32_be_vec
+    ;;
+
+  nios2-*-*)
+    targ_defvec=nios2_elf32_le_vec
+    targ_selvecs=nios2_elf32_be_vec
+    ;;
+
+  or1k-*-elf | or1k-*-linux* | or1k-*-rtems*)
+    targ_defvec=or1k_elf32_vec
+    ;;
+
+  or1knd-*-elf | or1knd-*-linux* | or1knd-*-rtems*)
+    targ_defvec=or1k_elf32_vec
+    ;;
+
+  pdp11-*-*)
+    targ_defvec=pdp11_aout_vec
+    targ_underscore=yes
+    ;;
+
+  pj-*-*)
+    targ_defvec=pj_elf32_vec
+    targ_selvecs="pj_elf32_vec pj_elf32_le_vec"
+    ;;
+
+  pjl-*-*)
+    targ_defvec=pj_elf32_le_vec
+    targ_selvecs="pj_elf32_le_vec pj_elf32_vec i386_elf32_vec iamcu_elf32_vec"
+    ;;
+
+  powerpc-*-aix5.[01] | rs6000-*-aix5.[01])
+    targ_defvec=rs6000_xcoff_vec
+    targ_selvecs="rs6000_xcoff64_aix_vec"
+    want64=true
+    ;;
+#ifdef BFD64
+  powerpc64-*-aix5.[01] | rs6000-*-aix5.[01])
+    targ_defvec=rs6000_xcoff64_aix_vec
+    targ_selvecs="rs6000_xcoff_vec"
+    want64=true
+    ;;
+#endif
+  powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
+    targ_cflags=-DAIX_WEAK_SUPPORT
+    targ_defvec=rs6000_xcoff_vec
+    targ_selvecs="rs6000_xcoff64_aix_vec"
+    want64=true
+    ;;
+#ifdef BFD64
+  powerpc64-*-aix[5-9]* | rs6000-*-aix[5-9]*)
+    targ_cflags=-DAIX_WEAK_SUPPORT
+    targ_defvec=rs6000_xcoff64_aix_vec
+    targ_selvecs="rs6000_xcoff_vec"
+    want64=true
+    ;;
+#endif
+
+  powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*)
+    targ_defvec=rs6000_xcoff_vec
+    targ64_selvecs=rs6000_xcoff64_vec
+    case "${targ}" in
+       *-*-aix4.[3456789]* | *-*-aix[56789]*)
+       want64=true;;
+       *)
+       targ_cflags=-DSMALL_ARCHIVE;;
+    esac
+    ;;
+#ifdef BFD64
+  powerpc64-*-aix*)
+    targ_defvec=rs6000_xcoff64_vec
+    targ_selvecs=rs6000_xcoff_vec
+    want64=true
+    ;;
+  powerpc64-*-freebsd*)
+    targ_defvec=powerpc_elf64_fbsd_vec
+    targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
+    want64=true
+    ;;
+  powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
+  powerpc64-*-*bsd*)
+    targ_defvec=powerpc_elf64_vec
+    targ_selvecs="powerpc_elf64_le_vec powerpc_elf32_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
+    want64=true
+    ;;
+  powerpc64le-*-elf* | powerpcle-*-elf64* | powerpc64le-*-linux* | \
+  powerpc64le-*-*bsd*)
+    targ_defvec=powerpc_elf64_le_vec
+    targ_selvecs="powerpc_elf64_vec powerpc_elf32_le_vec powerpc_elf32_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
+    want64=true
+    ;;
+#endif
+  powerpc-*-*freebsd*)
+    targ_defvec=powerpc_elf32_fbsd_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec"
+    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec powerpc_elf64_fbsd_vec"
+    ;;
+  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
+  powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
+  powerpc-*-chorus*)
+    targ_defvec=powerpc_elf32_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
+    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
+    ;;
+  powerpc-*-kaos*)
+    targ_defvec=powerpc_elf32_vec
+    targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
+    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
+    ;;
+  powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*)
+    targ_defvec=mach_o_be_vec
+    targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
+    targ_archs="$targ_archs bfd_i386_arch"
+    ;;
+  powerpc-*-macos*)
+    targ_defvec=powerpc_xcoff_vec
+    ;;
+  powerpc-*-lynxos*)
+    targ_defvec=powerpc_elf32_vec
+    targ_selvecs="rs6000_xcoff_vec"
+    targ_cflags=-DSMALL_ARCHIVE
+    ;;
+  powerpc-*-nto*)
+    targ_defvec=powerpc_elf32_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
+    ;;
+  powerpc-*-vxworks* | powerpc-*-windiss*)
+    targ_defvec=powerpc_elf32_vxworks_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec"
+    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
+    ;;
+  powerpcle-*-nto*)
+    targ_defvec=powerpc_elf32_le_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
+    ;;
+  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
+  powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks*)
+    targ_defvec=powerpc_elf32_le_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
+    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
+    ;;
+  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
+    targ_defvec=powerpc_pe_le_vec
+    targ_selvecs="powerpc_pei_le_vec powerpc_pei_vec powerpc_pe_le_vec powerpc_pe_vec"
+    ;;
+
+  pru-*-*)
+    targ_defvec=pru_elf32_vec
+    ;;
+
+#ifdef BFD64
+  riscv-*-* | riscv32*-*-*)
+    targ_defvec=riscv_elf32_vec
+    targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
+    want64=true
+    ;;
+  riscv64*-*-*)
+    targ_defvec=riscv_elf64_vec
+    targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
+    want64=true
+    ;;
+#endif
+
+  rl78-*-elf)
+    targ_defvec=rl78_elf32_vec
+    targ_underscore=yes
+    ;;
+
+  rx-*-elf)
+    targ_defvec=rx_elf32_le_vec
+    targ_selvecs="rx_elf32_be_vec rx_elf32_le_vec rx_elf32_be_ns_vec"
+    targ_underscore=yes
+    ;;
+
+  s390-*-linux*)
+    targ_defvec=s390_elf32_vec
+    targ64_selvecs=s390_elf64_vec
+    want64=true
+    ;;
+#ifdef BFD64
+  s390x-*-linux*)
+    targ_defvec=s390_elf64_vec
+    targ_selvecs=s390_elf32_vec
+    want64=true
+    ;;
+  s390x-*-tpf*)
+    targ_defvec=s390_elf64_vec
+    want64=true
+    ;;
+
+  score*-*-elf*)
+    targ_defvec=score_elf32_be_vec
+    targ_selvecs=score_elf32_le_vec
+    ;;
+#endif /* BFD64 */
+
+  sh*eb-*-linux*)
+    targ_defvec=sh_elf32_linux_be_vec
+    targ_selvecs=sh_elf32_linux_vec
+    targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
+    ;;
+  sh*-*-linux*)
+    targ_defvec=sh_elf32_linux_vec
+    targ_selvecs=sh_elf32_linux_be_vec
+    targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
+    ;;
+
+  sh-*-uclinux* | sh[12]-*-uclinux*)
+    targ_defvec=sh_elf32_vec
+    targ_selvecs="sh_elf32_le_vec sh_elf32_linux_be_vec sh_elf32_linux_vec sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
+    ;;
+
+  sh*l*-*-netbsdelf*)
+    targ_defvec=sh_elf32_nbsd_le_vec
+    targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec"
+    ;;
+  sh*-*-netbsdelf*)
+    targ_defvec=sh_elf32_nbsd_vec
+    targ_selvecs="sh_elf32_nbsd_le_vec sh_coff_vec sh_coff_le_vec"
+    ;;
+
+  shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*)
+    targ_defvec=sh_elf32_le_vec
+    targ_selvecs="sh_elf32_vec sh_coff_le_vec sh_coff_vec sh_coff_small_le_vec sh_coff_small_vec"
+    targ_underscore=yes
+    ;;
+
+  sh-*-elf* | sh[1234]*-elf* | sh-*-rtems* | sh-*-kaos*)
+    targ_defvec=sh_elf32_vec
+    targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
+    targ_underscore=yes
+    ;;
+
+  sh-*-nto*)
+    targ_defvec=sh_elf32_vec
+    targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
+    targ_underscore=yes
+    ;;
+  sh*-*-openbsd*)
+    targ_defvec=sh_elf32_nbsd_le_vec
+    targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec"
+    ;;
+  sh-*-pe)
+    targ_defvec=sh_pe_le_vec
+    targ_selvecs="sh_pe_le_vec sh_pei_le_vec"
+    targ_underscore=yes
+    ;;
+  sh-*-vxworks)
+    targ_defvec=sh_elf32_vxworks_vec
+    targ_selvecs="sh_elf32_vxworks_le_vec"
+    # FIXME None of the following are actually used on this target, but
+    # they're necessary for coff-sh.c (which is unconditionally used) to be
+    # compiled correctly.
+    targ_selvecs="$targ_selvecs sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
+    targ_underscore=yes
+    ;;
+  sh-*-*)
+    targ_defvec=sh_coff_vec
+    targ_selvecs="sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
+    targ_underscore=yes
+    ;;
+
+  sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
+    targ_defvec=sparc_elf32_sol2_vec
+    ;;
+#ifdef BFD64
+  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
+    targ_defvec=sparc_elf32_sol2_vec
+    targ_selvecs="sparc_elf64_sol2_vec"
+    want64=true
+    ;;
+  sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu)
+    targ_defvec=sparc_elf64_fbsd_vec
+    targ_selvecs="sparc_elf64_vec sparc_elf32_vec"
+    ;;
+  sparc64*-*-*)
+    targ_defvec=sparc_elf64_vec
+    targ_selvecs="sparc_elf32_vec"
+    want64=true
+    ;;
+#endif
+  sparc-*-linux-* | sparcv*-*-linux-*)
+    targ_defvec=sparc_elf32_vec
+    targ_selvecs="sparc_elf64_vec"
+    ;;
+  sparc-*-vxworks*)
+    targ_defvec=sparc_elf32_vxworks_vec
+    targ_selvecs="sparc_elf32_vec"
+    ;;
+  sparc*-*-*)
+    targ_defvec=sparc_elf32_vec
+    ;;
+
+  spu-*-elf)
+    targ_defvec=spu_elf32_vec
+    want64=true
+    ;;
+
+  tic6x-*-elf)
+    targ_defvec=tic6x_elf32_c6000_le_vec
+    targ_selvecs="tic6x_elf32_c6000_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec"
+    ;;
+
+  tic6x-*-uclinux)
+    targ_defvec=tic6x_elf32_linux_le_vec
+    targ_selvecs="tic6x_elf32_linux_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec"
+    ;;
+
+  tic80*-*-*)
+    targ_defvec=tic80_coff_vec
+    targ_underscore=yes
+    ;;
+
+#ifdef BFD64
+  tilegx-*-*)
+    targ_defvec=tilegx_elf64_le_vec
+    targ_selvecs="tilegx_elf64_be_vec tilegx_elf32_be_vec tilegx_elf32_le_vec"
+    ;;
+  tilegxbe-*-*)
+    targ_defvec=tilegx_elf64_be_vec
+    targ_selvecs="tilegx_elf64_le_vec tilegx_elf32_be_vec tilegx_elf32_le_vec"
+    ;;
+#endif
+
+  tilepro-*-*)
+    targ_defvec=tilepro_elf32_vec
+    ;;
+
+  ft32*-*-*)
+    targ_defvec=ft32_elf32_vec
+    ;;
+
+  v850*-*-*)
+    targ_defvec=v850_elf32_vec
+    targ_selvecs="v800_elf32_vec"
+    targ_underscore=yes
+    ;;
+
+  vax-*-netbsdelf*)
+    targ_defvec=vax_elf32_vec
+    targ_selvecs="vax_aout_nbsd_vec vax_aout_1knbsd_vec"
+    ;;
+
+  vax-*-netbsdaout* | vax-*-netbsd*)
+    targ_defvec=vax_aout_nbsd_vec
+    targ_selvecs="vax_elf32_vec vax_aout_1knbsd_vec"
+    targ_underscore=yes
+    ;;
+
+  vax-*-openbsd*)
+    targ_defvec=vax_aout_nbsd_vec
+    targ_underscore=yes
+    ;;
+
+  vax-*-linux-*)
+    targ_defvec=vax_elf32_vec
+    ;;
+
+  visium-*-elf)
+    targ_defvec=visium_elf32_vec
+    ;;
+
+  wasm32-*-*)
+    targ_defvec=wasm32_elf32_vec
+    targ_selvecs="wasm_vec"
+    ;;
+
+  xgate-*-*)
+    targ_defvec=xgate_elf32_vec
+    targ_selvecs="xgate_elf32_vec"
+    ;;
+
+  xstormy16-*-elf)
+    targ_defvec=xstormy16_elf32_vec
+    ;;
+
+  xtensa*-*-*)
+    targ_defvec=xtensa_elf32_le_vec
+    targ_selvecs=xtensa_elf32_be_vec
+    ;;
+ xc16x-*-elf)
+    targ_defvec=xc16x_elf32_vec
+    ;;
+
+  z80-*-*)
+    targ_defvec=z80_coff_vec
+    targ_underscore=no
+    ;;
+
+  z8k*-*-*)
+    targ_defvec=z8k_coff_vec
+    targ_underscore=yes
+    ;;
+
+# END OF targmatch.h
+  *)
+    echo 1>&2 "*** BFD does not support target ${targ}."
+    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
+    exit 1
+    ;;
+esac
+
+# All MIPS ELF targets need a 64-bit bfd_vma.
+case "${targ_defvec} ${targ_selvecs}" in
+  *mips_elf*)
+    want64=true
+    ;;
+esac
+
+case "${host64}${want64}" in
+  *true*)
+    targ_selvecs="${targ_selvecs} ${targ64_selvecs}"
+    ;;
+esac
+
+# If we support any ELF target, then automatically add support for the
+# generic ELF targets.  This permits an objdump with some ELF support
+# to be used on an arbitrary ELF file for anything other than
+# relocation information.
+case "${targ_defvec} ${targ_selvecs}" in
+  *elf64* | *mips_elf32_n*)
+    targ_selvecs="${targ_selvecs} elf64_le_vec elf64_be_vec elf32_le_vec elf32_be_vec"
+    ;;
+  *elf32*)
+    targ_selvecs="${targ_selvecs} elf32_le_vec elf32_be_vec"
+    ;;
+esac
+
+# If we support Intel MCU target, then add support for bfd_iamcu_arch.
+case "${targ_defvec} ${targ_selvecs}" in
+  *iamcu_elf32*)
+    targ_archs="$targ_archs bfd_iamcu_arch"
+    ;;
+esac
+
+# If we support Intel L1OM target, then add support for bfd_l1om_arch.
+case "${targ_defvec} ${targ_selvecs}" in
+  *l1om_elf64*)
+    targ_archs="$targ_archs bfd_l1om_arch"
+    ;;
+esac
+
+# If we support Intel K1OM target, then add support for bfd_k1om_arch.
+case "${targ_defvec} ${targ_selvecs}" in
+  *k1om_elf64*)
+    targ_archs="$targ_archs bfd_k1om_arch"
+    ;;
+esac
diff --git a/arm-stmos/binutils-files/config.sub b/arm-stmos/binutils-files/config.sub
new file mode 100755 (executable)
index 0000000..20707f7
--- /dev/null
@@ -0,0 +1,1811 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
+
+timestamp='2018-07-03'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches@gnu.org>.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+Canonicalize a configuration name.
+
+Options:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2018 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo "$1"
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Split fields of configuration type
+IFS="-" read -r field1 field2 field3 field4 <<EOF
+$1
+EOF
+
+# Separate into logical components for further validation
+case $1 in
+       *-*-*-*-*)
+               echo Invalid configuration \`"$1"\': more than four components >&2
+               exit 1
+               ;;
+       *-*-*-*)
+               basic_machine=$field1-$field2
+               os=$field3-$field4
+               ;;
+       *-*-*)
+               # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+               # parts
+               maybe_os=$field2-$field3
+               case $maybe_os in
+                       nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+                       | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+                       | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+                       | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+                       | storm-chaos* | os2-emx* | rtmk-nova*)
+                               basic_machine=$field1
+                               os=$maybe_os
+                               ;;
+                       android-linux)
+                               basic_machine=$field1-unknown
+                               os=linux-android
+                               ;;
+                       *)
+                               basic_machine=$field1-$field2
+                               os=$field3
+                               ;;
+               esac
+               ;;
+       *-*)
+               # Second component is usually, but not always the OS
+               case $field2 in
+                       # Prevent following clause from handling this valid os
+                       sun*os*)
+                               basic_machine=$field1
+                               os=$field2
+                               ;;
+                       # Manufacturers
+                       dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* \
+                       | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+                       | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+                       | convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* \
+                       | c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* \
+                       | harris | dolphin | highlevel | gould | cbm | ns | masscomp \
+                       | apple | axis | knuth | cray | microblaze* \
+                       | sim | cisco | oki | wec | wrs | winbond)
+                               basic_machine=$field1-$field2
+                               os=
+                               ;;
+                       *)
+                               basic_machine=$field1
+                               os=$field2
+                               ;;
+               esac
+               ;;
+       *)
+               # Convert single-component short-hands not valid as part of
+               # multi-component configurations.
+               case $field1 in
+                       386bsd)
+                               basic_machine=i386-pc
+                               os=bsd
+                               ;;
+                       a29khif)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       adobe68k)
+                               basic_machine=m68010-adobe
+                               os=scout
+                               ;;
+                       am29k)
+                               basic_machine=a29k-none
+                               os=bsd
+                               ;;
+                       amdahl)
+                               basic_machine=580-amdahl
+                               os=sysv
+                               ;;
+                       amigaos | amigados)
+                               basic_machine=m68k-unknown
+                               os=amigaos
+                               ;;
+                       amigaunix | amix)
+                               basic_machine=m68k-unknown
+                               os=sysv4
+                               ;;
+                       apollo68)
+                               basic_machine=m68k-apollo
+                               os=sysv
+                               ;;
+                       apollo68bsd)
+                               basic_machine=m68k-apollo
+                               os=bsd
+                               ;;
+                       aros)
+                               basic_machine=i386-pc
+                               os=aros
+                               ;;
+                       aux)
+                               basic_machine=m68k-apple
+                               os=aux
+                               ;;
+                       balance)
+                               basic_machine=ns32k-sequent
+                               os=dynix
+                               ;;
+                       blackfin)
+                               basic_machine=bfin-unknown
+                               os=linux
+                               ;;
+                       cegcc)
+                               basic_machine=arm-unknown
+                               os=cegcc
+                               ;;
+                       cray)
+                               basic_machine=j90-cray
+                               os=unicos
+                               ;;
+                       craynv)
+                               basic_machine=craynv-cray
+                               os=unicosmp
+                               ;;
+                       delta88)
+                               basic_machine=m88k-motorola
+                               os=sysv3
+                               ;;
+                       dicos)
+                               basic_machine=i686-pc
+                               os=dicos
+                               ;;
+                       djgpp)
+                               basic_machine=i586-pc
+                               os=msdosdjgpp
+                               ;;
+                       ebmon29k)
+                               basic_machine=a29k-amd
+                               os=ebmon
+                               ;;
+                       es1800 | OSE68k | ose68k | ose | OSE)
+                               basic_machine=m68k-ericsson
+                               os=ose
+                               ;;
+                       gmicro)
+                               basic_machine=tron-gmicro
+                               os=sysv
+                               ;;
+                       go32)
+                               basic_machine=i386-pc
+                               os=go32
+                               ;;
+                       h8300hms)
+                               basic_machine=h8300-hitachi
+                               os=hms
+                               ;;
+                       h8300xray)
+                               basic_machine=h8300-hitachi
+                               os=xray
+                               ;;
+                       h8500hms)
+                               basic_machine=h8500-hitachi
+                               os=hms
+                               ;;
+                       harris)
+                               basic_machine=m88k-harris
+                               os=sysv3
+                               ;;
+                       hp300bsd)
+                               basic_machine=m68k-hp
+                               os=bsd
+                               ;;
+                       hp300hpux)
+                               basic_machine=m68k-hp
+                               os=hpux
+                               ;;
+                       hppaosf)
+                               basic_machine=hppa1.1-hp
+                               os=osf
+                               ;;
+                       hppro)
+                               basic_machine=hppa1.1-hp
+                               os=proelf
+                               ;;
+                       i386mach)
+                               basic_machine=i386-mach
+                               os=mach
+                               ;;
+                       vsta)
+                               basic_machine=i386-unknown
+                               os=vsta
+                               ;;
+                       isi68 | isi)
+                               basic_machine=m68k-isi
+                               os=sysv
+                               ;;
+                       m68knommu)
+                               basic_machine=m68k-unknown
+                               os=linux
+                               ;;
+                       magnum | m3230)
+                               basic_machine=mips-mips
+                               os=sysv
+                               ;;
+                       merlin)
+                               basic_machine=ns32k-utek
+                               os=sysv
+                               ;;
+                       mingw64)
+                               basic_machine=x86_64-pc
+                               os=mingw64
+                               ;;
+                       mingw32)
+                               basic_machine=i686-pc
+                               os=mingw32
+                               ;;
+                       mingw32ce)
+                               basic_machine=arm-unknown
+                               os=mingw32ce
+                               ;;
+                       monitor)
+                               basic_machine=m68k-rom68k
+                               os=coff
+                               ;;
+                       morphos)
+                               basic_machine=powerpc-unknown
+                               os=morphos
+                               ;;
+                       moxiebox)
+                               basic_machine=moxie-unknown
+                               os=moxiebox
+                               ;;
+                       msdos)
+                               basic_machine=i386-pc
+                               os=msdos
+                               ;;
+                       msys)
+                               basic_machine=i686-pc
+                               os=msys
+                               ;;
+                       mvs)
+                               basic_machine=i370-ibm
+                               os=mvs
+                               ;;
+                       nacl)
+                               basic_machine=le32-unknown
+                               os=nacl
+                               ;;
+                       ncr3000)
+                               basic_machine=i486-ncr
+                               os=sysv4
+                               ;;
+                       netbsd386)
+                               basic_machine=i386-unknown
+                               os=netbsd
+                               ;;
+                       netwinder)
+                               basic_machine=armv4l-rebel
+                               os=linux
+                               ;;
+                       news | news700 | news800 | news900)
+                               basic_machine=m68k-sony
+                               os=newsos
+                               ;;
+                       news1000)
+                               basic_machine=m68030-sony
+                               os=newsos
+                               ;;
+                       necv70)
+                               basic_machine=v70-nec
+                               os=sysv
+                               ;;
+                       nh3000)
+                               basic_machine=m68k-harris
+                               os=cxux
+                               ;;
+                       nh[45]000)
+                               basic_machine=m88k-harris
+                               os=cxux
+                               ;;
+                       nindy960)
+                               basic_machine=i960-intel
+                               os=nindy
+                               ;;
+                       mon960)
+                               basic_machine=i960-intel
+                               os=mon960
+                               ;;
+                       nonstopux)
+                               basic_machine=mips-compaq
+                               os=nonstopux
+                               ;;
+                       os400)
+                               basic_machine=powerpc-ibm
+                               os=os400
+                               ;;
+                       OSE68000 | ose68000)
+                               basic_machine=m68000-ericsson
+                               os=ose
+                               ;;
+                       os68k)
+                               basic_machine=m68k-none
+                               os=os68k
+                               ;;
+                       paragon)
+                               basic_machine=i860-intel
+                               os=osf
+                               ;;
+                       parisc)
+                               basic_machine=hppa-unknown
+                               os=linux
+                               ;;
+                       pw32)
+                               basic_machine=i586-unknown
+                               os=pw32
+                               ;;
+                       rdos | rdos64)
+                               basic_machine=x86_64-pc
+                               os=rdos
+                               ;;
+                       rdos32)
+                               basic_machine=i386-pc
+                               os=rdos
+                               ;;
+                       rom68k)
+                               basic_machine=m68k-rom68k
+                               os=coff
+                               ;;
+                       sa29200)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       sei)
+                               basic_machine=mips-sei
+                               os=seiux
+                               ;;
+                       sps7)
+                               basic_machine=m68k-bull
+                               os=sysv2
+                               ;;
+                       stratus)
+                               basic_machine=i860-stratus
+                               os=sysv4
+                               ;;
+                       sun2os3)
+                               basic_machine=m68000-sun
+                               os=sunos3
+                               ;;
+                       sun2os4)
+                               basic_machine=m68000-sun
+                               os=sunos4
+                               ;;
+                       sun3os3)
+                               basic_machine=m68k-sun
+                               os=sunos3
+                               ;;
+                       sun3os4)
+                               basic_machine=m68k-sun
+                               os=sunos4
+                               ;;
+                       sun4os3)
+                               basic_machine=sparc-sun
+                               os=sunos3
+                               ;;
+                       sun4os4)
+                               basic_machine=sparc-sun
+                               os=sunos4
+                               ;;
+                       sun4sol2)
+                               basic_machine=sparc-sun
+                               os=solaris2
+                               ;;
+                       sv1)
+                               basic_machine=sv1-cray
+                               os=unicos
+                               ;;
+                       symmetry)
+                               basic_machine=i386-sequent
+                               os=dynix
+                               ;;
+                       t3e)
+                               basic_machine=alphaev5-cray
+                               os=unicos
+                               ;;
+                       t90)
+                               basic_machine=t90-cray
+                               os=unicos
+                               ;;
+                       toad1)
+                               basic_machine=pdp10-xkl
+                               os=tops20
+                               ;;
+                       tpf)
+                               basic_machine=s390x-ibm
+                               os=tpf
+                               ;;
+                       udi29k)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       ultra3)
+                               basic_machine=a29k-nyu
+                               os=sym1
+                               ;;
+                       v810 | necv810)
+                               basic_machine=v810-nec
+                               os=none
+                               ;;
+                       vaxv)
+                               basic_machine=vax-dec
+                               os=sysv
+                               ;;
+                       vms)
+                               basic_machine=vax-dec
+                               os=vms
+                               ;;
+                       vxworks960)
+                               basic_machine=i960-wrs
+                               os=vxworks
+                               ;;
+                       vxworks68)
+                               basic_machine=m68k-wrs
+                               os=vxworks
+                               ;;
+                       vxworks29k)
+                               basic_machine=a29k-wrs
+                               os=vxworks
+                               ;;
+                       xbox)
+                               basic_machine=i686-pc
+                               os=mingw32
+                               ;;
+                       ymp)
+                               basic_machine=ymp-cray
+                               os=unicos
+                               ;;
+                       *)
+                               basic_machine=$1
+                               os=
+                               ;;
+               esac
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
+       | aarch64 | aarch64_be \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | am33_2.0 \
+       | arc | arceb \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
+       | avr | avr32 \
+       | ba \
+       | be32 | be64 \
+       | bfin \
+       | c4x | c8051 | clipper | csky \
+       | d10v | d30v | dlx | dsp16xx \
+       | e2k | epiphany \
+       | fido | fr30 | frv | ft32 \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | hexagon \
+       | i370 | i860 | i960 | ia16 | ia64 \
+       | ip2k | iq2000 \
+       | k1om \
+       | le32 | le64 \
+       | lm32 \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64octeon | mips64octeonel \
+       | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa32r6 | mipsisa32r6el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64r6 | mipsisa64r6el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | moxie \
+       | mt \
+       | msp430 \
+       | nds32 | nds32le | nds32be \
+       | nfp \
+       | nios | nios2 | nios2eb | nios2el \
+       | ns16k | ns32k \
+       | open8 | or1k | or1knd | or32 \
+       | pdp10 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle \
+       | pru \
+       | pyramid \
+       | riscv | riscv32 | riscv64 \
+       | rl78 | rx \
+       | score \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+       | spu \
+       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+       | ubicom32 \
+       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | visium \
+       | wasm32 \
+       | x86 | xc16x | xstormy16 | xtensa \
+       | z8k | z80)
+               basic_machine=$basic_machine-unknown
+               ;;
+       c54x)
+               basic_machine=tic54x-unknown
+               ;;
+       c55x)
+               basic_machine=tic55x-unknown
+               ;;
+       c6x)
+               basic_machine=tic6x-unknown
+               ;;
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+               basic_machine=$basic_machine-unknown
+               os=${os:-none}
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
+               ;;
+       m9s12z | m68hcs12z | hcs12z | s12z)
+               basic_machine=s12z-unknown
+               os=${os:-none}
+               ;;
+       ms1)
+               basic_machine=mt-unknown
+               ;;
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
+               ;;
+       xgate)
+               basic_machine=$basic_machine-unknown
+               os=${os:-none}
+               ;;
+       xscaleeb)
+               basic_machine=armeb-unknown
+               ;;
+
+       xscaleel)
+               basic_machine=armel-unknown
+               ;;
+
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
+       | aarch64-* | aarch64_be-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* | avr32-* \
+       | ba-* \
+       | be32-* | be64-* \
+       | bfin-* | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* \
+       | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | e2k-* | elxsi-* \
+       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | hexagon-* \
+       | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
+       | ip2k-* | iq2000-* \
+       | k1om-* \
+       | le32-* | le64-* \
+       | lm32-* \
+       | m32c-* | m32r-* | m32rle-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | microblaze-* | microblazeel-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64octeon-* | mips64octeonel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa32r6-* | mipsisa32r6el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64r6-* | mipsisa64r6el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
+       | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | mt-* \
+       | msp430-* \
+       | nds32-* | nds32le-* | nds32be-* \
+       | nfp-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | open8-* \
+       | or1k*-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+       | pru-* \
+       | pyramid-* \
+       | riscv-* | riscv32-* | riscv64-* \
+       | rl78-* | romp-* | rs6000-* | rx-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
+       | tahoe-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tile*-* \
+       | tron-* \
+       | ubicom32-* \
+       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+       | vax-* \
+       | visium-* \
+       | wasm32-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* \
+       | xstormy16-* | xtensa*-* \
+       | ymp-* \
+       | z8k-* | z80-*)
+               ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+               basic_machine=$basic_machine-unknown
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+               basic_machine=m68000-att
+               ;;
+       3b*)
+               basic_machine=we32k-att
+               ;;
+       abacus)
+               basic_machine=abacus-unknown
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       amd64)
+               basic_machine=x86_64-pc
+               ;;
+       amd64-*)
+               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-unknown
+               ;;
+       asmjs)
+               basic_machine=asmjs-unknown
+               ;;
+       blackfin-*)
+               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
+               ;;
+       bluegene*)
+               basic_machine=powerpc-ibm
+               os=cnk
+               ;;
+       c54x-*)
+               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       c55x-*)
+               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       c6x-*)
+               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       c90)
+               basic_machine=c90-cray
+               os=${os:-unicos}
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=bsd
+               ;;
+       cr16 | cr16-*)
+               basic_machine=cr16-unknown
+               os=${os:-elf}
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
+       crx)
+               basic_machine=crx-unknown
+               os=${os:-elf}
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=tops20
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=${os:-bosx}
+               ;;
+       dpx2*)
+               basic_machine=m68k-bull
+               os=sysv3
+               ;;
+       e500v[12])
+               basic_machine=powerpc-unknown
+               os=$os"spe"
+               ;;
+       e500v[12]-*)
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=$os"spe"
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=${os:-bsd}
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=hiuxwe2
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k2[0-9][0-9] | hp9k31[0-9])
+               basic_machine=m68000-hp
+               ;;
+       hp9k3[2-9][0-9])
+               basic_machine=m68k-hp
+               ;;
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+       i*86v32)
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv32
+               ;;
+       i*86v4*)
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv4
+               ;;
+       i*86v)
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv
+               ;;
+       i*86sol2)
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=solaris2
+               ;;
+       j90 | j90-cray)
+               basic_machine=j90-cray
+               os=${os:-unicos}
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   irix*)
+                       ;;
+                   *)
+                       os=irix4
+                       ;;
+               esac
+               ;;
+       leon-*|leon[3-9]-*)
+               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
+               ;;
+       m68knommu-*)
+               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
+               ;;
+       microblaze*)
+               basic_machine=microblaze-xilinx
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=mint
+               ;;
+       mips3*-*)
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       ms1-*)
+               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=newsos
+               ;;
+       next | m*-next)
+               basic_machine=m68k-next
+               case $os in
+                   nextstep* )
+                       ;;
+                   ns2*)
+                     os=nextstep2
+                       ;;
+                   *)
+                     os=nextstep3
+                       ;;
+               esac
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       neo-tandem)
+               basic_machine=neo-tandem
+               ;;
+       nse-tandem)
+               basic_machine=nse-tandem
+               ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       nsv-tandem)
+               basic_machine=nsv-tandem
+               ;;
+       nsx-tandem)
+               basic_machine=nsx-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=proelf
+               ;;
+       openrisc | openrisc-*)
+               basic_machine=or32-unknown
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=hiuxwe2
+               ;;
+       parisc-*)
+               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+       pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pc98)
+               basic_machine=i386-pc
+               ;;
+       pc98-*)
+               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2 | pentiumiii | pentium3)
+               basic_machine=i686-pc
+               ;;
+       pentium4)
+               basic_machine=i786-pc
+               ;;
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       pentium4-*)
+               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+       ppc | ppcbe)    basic_machine=powerpc-unknown
+               ;;
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
+       sde)
+               basic_machine=mipsisa32-sde
+               os=${os:-elf}
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh5el)
+               basic_machine=sh5le-unknown
+               ;;
+       simso-wrs)
+               basic_machine=sparclite-wrs
+               os=vxworks
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       tile*)
+               basic_machine=$basic_machine-unknown
+               os=linux-gnu
+               ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=proelf
+               ;;
+       x64)
+               basic_machine=x86_64-pc
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       xscale-* | xscalee[bl]-*)
+               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
+               ;;
+       none)
+               basic_machine=none-none
+               os=${os:-none}
+               ;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+       mmix)
+               basic_machine=mmix-knuth
+               ;;
+       rs6000)
+               basic_machine=rs6000-ibm
+               ;;
+       vax)
+               basic_machine=vax-dec
+               ;;
+       pdp11)
+               basic_machine=pdp11-dec
+               ;;
+       we32k)
+               basic_machine=we32k-att
+               ;;
+       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
+       cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+               basic_machine=orion-highlevel
+               ;;
+       orion105)
+               basic_machine=clipper-highlevel
+               ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
+       *)
+               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
+               ;;
+       *-commodore*)
+               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
+               ;;
+       *)
+               ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x$os != x ]
+then
+case $os in
+       # First match some system type aliases that might get confused
+       # with valid system types.
+       # solaris* is a basic system type, with this one exception.
+       auroraux)
+               os=auroraux
+               ;;
+       bluegene*)
+               os=cnk
+               ;;
+       solaris1 | solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+       solaris)
+               os=solaris2
+               ;;
+       unixware*)
+               os=sysv4.2uw
+               ;;
+       gnu/linux*)
+               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+               ;;
+       # es1800 is here to avoid being matched by es* (a different OS)
+       es1800*)
+               os=ose
+               ;;
+       # Some version numbers need modification
+       chorusos*)
+               os=chorusos
+               ;;
+       isc)
+               os=isc2.2
+               ;;
+       sco6)
+               os=sco5v6
+               ;;
+       sco5)
+               os=sco3.2v5
+               ;;
+       sco4)
+               os=sco3.2v4
+               ;;
+       sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               ;;
+       sco3.2v[4-9]* | sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               ;;
+       scout)
+               # Don't match below
+               ;;
+       sco*)
+               os=sco3.2v2
+               ;;
+       psos*)
+               os=psos
+               ;;
+       # Now accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST end in a * to match a version number.
+       # sysv* is not here because it comes later, after sysvr4.
+       gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+            | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+            | sym* | kopensolaris* | plan9* \
+            | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+            | aos* | aros* | cloudabi* | sortix* \
+            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+            | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
+            | knetbsd* | mirbsd* | netbsd* \
+            | bitrig* | openbsd* | solidbsd* | libertybsd* \
+            | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+            | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+            | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+            | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+            | chorusrdb* | cegcc* | glidix* \
+            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+            | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+            | linux-newlib* | linux-musl* | linux-uclibc* \
+            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+            | interix* | uwin* | mks* | rhapsody* | darwin* \
+            | openstep* | oskit* | conix* | pw32* | nonstopux* \
+            | storm-chaos* | tops10* | tenex* | tops20* | its* \
+            | os2* | vos* | palmos* | uclinux* | nucleus* \
+            | morphos* | superux* | rtmk* | windiss* \
+            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+            | midnightbsd*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
+                       ;;
+                   *)
+                       os=nto-$os
+                       ;;
+               esac
+               ;;
+       hiux*)
+               os=hiuxwe2
+               ;;
+       nto-qnx*)
+               ;;
+       nto*)
+               os=`echo $os | sed -e 's|nto|nto-qnx|'`
+               ;;
+       sim | xray | os68k* | v88r* \
+           | windows* | osx | abug | netware* | os9* \
+           | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
+               ;;
+       linux-dietlibc)
+               os=linux-dietlibc
+               ;;
+       linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+               ;;
+       lynx*178)
+               os=lynxos178
+               ;;
+       lynx*5)
+               os=lynxos5
+               ;;
+       lynx*)
+               os=lynxos
+               ;;
+       mac*)
+               os=`echo "$os" | sed -e 's|mac|macos|'`
+               ;;
+       opened*)
+               os=openedition
+               ;;
+       os400*)
+               os=os400
+               ;;
+       sunos5*)
+               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+               ;;
+       sunos6*)
+               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+               ;;
+       wince*)
+               os=wince
+               ;;
+       utek*)
+               os=bsd
+               ;;
+       dynix*)
+               os=bsd
+               ;;
+       acis*)
+               os=aos
+               ;;
+       atheos*)
+               os=atheos
+               ;;
+       syllable*)
+               os=syllable
+               ;;
+       386bsd)
+               os=bsd
+               ;;
+       ctix* | uts*)
+               os=sysv
+               ;;
+       nova*)
+               os=rtmk-nova
+               ;;
+       ns2)
+               os=nextstep2
+               ;;
+       nsk*)
+               os=nsk
+               ;;
+       # Preserve the version number of sinix5.
+       sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+               ;;
+       sinix*)
+               os=sysv4
+               ;;
+       tpf*)
+               os=tpf
+               ;;
+       triton*)
+               os=sysv3
+               ;;
+       oss*)
+               os=sysv3
+               ;;
+       svr4*)
+               os=sysv4
+               ;;
+       svr3)
+               os=sysv3
+               ;;
+       sysvr4)
+               os=sysv4
+               ;;
+       # This must come after sysvr4.
+       sysv*)
+               ;;
+       ose*)
+               os=ose
+               ;;
+       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+               os=mint
+               ;;
+       zvmoe)
+               os=zvmoe
+               ;;
+       dicos*)
+               os=dicos
+               ;;
+       pikeos*)
+               # Until real need of OS specific support for
+               # particular features comes up, bare metal
+               # configurations are quite functional.
+               case $basic_machine in
+                   arm*)
+                       os=eabi
+                       ;;
+                   *)
+                       os=elf
+                       ;;
+               esac
+               ;;
+       nacl*)
+               ;;
+       ios)
+               ;;
+       none)
+               ;;
+       stmos)
+               os=stmos
+               ;;
+       *-eabi)
+               ;;
+       *)
+               echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+       score-*)
+               os=elf
+               ;;
+       spu-*)
+               os=elf
+               ;;
+       *-acorn)
+               os=riscix1.2
+               ;;
+       arm*-rebel)
+               os=linux
+               ;;
+       arm*-semi)
+               os=aout
+               ;;
+       c4x-* | tic4x-*)
+               os=coff
+               ;;
+       c8051-*)
+               os=elf
+               ;;
+       clipper-intergraph)
+               os=clix
+               ;;
+       hexagon-*)
+               os=elf
+               ;;
+       tic54x-*)
+               os=coff
+               ;;
+       tic55x-*)
+               os=coff
+               ;;
+       tic6x-*)
+               os=coff
+               ;;
+       # This must come before the *-dec entry.
+       pdp10-*)
+               os=tops20
+               ;;
+       pdp11-*)
+               os=none
+               ;;
+       *-dec | vax-*)
+               os=ultrix4.2
+               ;;
+       m68*-apollo)
+               os=domain
+               ;;
+       i386-sun)
+               os=sunos4.0.2
+               ;;
+       m68000-sun)
+               os=sunos3
+               ;;
+       m68*-cisco)
+               os=aout
+               ;;
+       mep-*)
+               os=elf
+               ;;
+       mips*-cisco)
+               os=elf
+               ;;
+       mips*-*)
+               os=elf
+               ;;
+       or32-*)
+               os=coff
+               ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=sysv3
+               ;;
+       sparc-* | *-sun)
+               os=sunos4.1.1
+               ;;
+       pru-*)
+               os=elf
+               ;;
+       *-be)
+               os=beos
+               ;;
+       *-ibm)
+               os=aix
+               ;;
+       *-knuth)
+               os=mmixware
+               ;;
+       *-wec)
+               os=proelf
+               ;;
+       *-winbond)
+               os=proelf
+               ;;
+       *-oki)
+               os=proelf
+               ;;
+       *-hp)
+               os=hpux
+               ;;
+       *-hitachi)
+               os=hiux
+               ;;
+       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+               os=sysv
+               ;;
+       *-cbm)
+               os=amigaos
+               ;;
+       *-dg)
+               os=dgux
+               ;;
+       *-dolphin)
+               os=sysv3
+               ;;
+       m68k-ccur)
+               os=rtu
+               ;;
+       m88k-omron*)
+               os=luna
+               ;;
+       *-next)
+               os=nextstep
+               ;;
+       *-sequent)
+               os=ptx
+               ;;
+       *-crds)
+               os=unos
+               ;;
+       *-ns)
+               os=genix
+               ;;
+       i370-*)
+               os=mvs
+               ;;
+       *-gould)
+               os=sysv
+               ;;
+       *-highlevel)
+               os=bsd
+               ;;
+       *-encore)
+               os=bsd
+               ;;
+       *-sgi)
+               os=irix
+               ;;
+       *-siemens)
+               os=sysv4
+               ;;
+       *-masscomp)
+               os=rtu
+               ;;
+       f30[01]-fujitsu | f700-fujitsu)
+               os=uxpv
+               ;;
+       *-rom68k)
+               os=coff
+               ;;
+       *-*bug)
+               os=coff
+               ;;
+       *-apple)
+               os=macos
+               ;;
+       *-atari*)
+               os=mint
+               ;;
+       *-wrs)
+               os=vxworks
+               ;;
+       *)
+               os=none
+               ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+       *-unknown)
+               case $os in
+                       riscix*)
+                               vendor=acorn
+                               ;;
+                       sunos*)
+                               vendor=sun
+                               ;;
+                       cnk*|-aix*)
+                               vendor=ibm
+                               ;;
+                       beos*)
+                               vendor=be
+                               ;;
+                       hpux*)
+                               vendor=hp
+                               ;;
+                       mpeix*)
+                               vendor=hp
+                               ;;
+                       hiux*)
+                               vendor=hitachi
+                               ;;
+                       unos*)
+                               vendor=crds
+                               ;;
+                       dgux*)
+                               vendor=dg
+                               ;;
+                       luna*)
+                               vendor=omron
+                               ;;
+                       genix*)
+                               vendor=ns
+                               ;;
+                       clix*)
+                               vendor=intergraph
+                               ;;
+                       mvs* | opened*)
+                               vendor=ibm
+                               ;;
+                       os400*)
+                               vendor=ibm
+                               ;;
+                       ptx*)
+                               vendor=sequent
+                               ;;
+                       tpf*)
+                               vendor=ibm
+                               ;;
+                       vxsim* | vxworks* | windiss*)
+                               vendor=wrs
+                               ;;
+                       aux*)
+                               vendor=apple
+                               ;;
+                       hms*)
+                               vendor=hitachi
+                               ;;
+                       mpw* | macos*)
+                               vendor=apple
+                               ;;
+                       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+                               vendor=atari
+                               ;;
+                       vos*)
+                               vendor=stratus
+                               ;;
+               esac
+               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
+               ;;
+esac
+
+echo "$basic_machine-$os"
+exit
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/arm-stmos/binutils-files/gas/configure.tgt b/arm-stmos/binutils-files/gas/configure.tgt
new file mode 100644 (file)
index 0000000..9907129
--- /dev/null
@@ -0,0 +1,457 @@
+# gas target specific configuration file.  This is a -*- sh -*- file.
+#
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+#
+
+# 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
+
+# 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=generic
+bfd_gas=no
+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
+  aarch64)             cpu_type=aarch64 endian=little arch=aarch64;;
+  aarch64_be)          cpu_type=aarch64 endian=big arch=aarch64;;
+  alpha*)              cpu_type=alpha ;;
+  am33_2.0)            cpu_type=mn10300 endian=little ;;
+  arc*eb)              cpu_type=arc endian=big ;;
+  arm*be|arm*b)                cpu_type=arm endian=big ;;
+  arm*)                        cpu_type=arm endian=little ;;
+  bfin*)               cpu_type=bfin endian=little ;;
+  c4x*)                        cpu_type=tic4x ;;
+  cr16*)               cpu_type=cr16 endian=little ;;
+  crisv32)             cpu_type=cris arch=crisv32 ;;
+  crx*)                        cpu_type=crx endian=little ;;
+  epiphany*)           cpu_type=epiphany endian=little ;;
+  fido)                        cpu_type=m68k ;;
+  hppa*)               cpu_type=hppa ;;
+  i[3-7]86)            cpu_type=i386 arch=i386;;
+  ia16)                        cpu_type=i386 arch=i386;;
+  ia64)                        cpu_type=ia64 ;;
+  ip2k)                        cpu_type=ip2k endian=big ;;
+  iq2000)              cpu_type=iq2000 endian=big ;;
+  lm32)                        cpu_type=lm32 ;;
+  m32c)                        cpu_type=m32c endian=little ;;
+  m32r)                        cpu_type=m32r endian=big ;;
+  m32rle)              cpu_type=m32r endian=little ;;
+  m5200)               cpu_type=m68k ;;
+  m68008)              cpu_type=m68k ;;
+  m680[012346]0)       cpu_type=m68k ;;
+  m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
+  m683??)              cpu_type=m68k ;;
+  s12z)               cpu_type=s12z ;;
+  mep)                 cpu_type=mep endian=little ;;
+  microblazeel*)       cpu_type=microblaze endian=little;;
+  microblaze*)         cpu_type=microblaze endian=big;;
+  mips*el)             cpu_type=mips endian=little ;;
+  mips*)               cpu_type=mips endian=big ;;
+  mt)                  cpu_type=mt endian=big ;;
+  nds32be)             cpu_type=nds32 endian=big ;;
+  nds32le)             cpu_type=nds32 endian=little ;;
+  or1k* | or1knd*)     cpu_type=or1k 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 ;;
+  riscv32*)            cpu_type=riscv endian=little arch=riscv32 ;;
+  riscv64*)            cpu_type=riscv endian=little arch=riscv64 ;;
+  rs6000*)             cpu_type=ppc ;;
+  rl78*)               cpu_type=rl78 ;;
+  rx)                  cpu_type=rx ;;
+  s390x*)              cpu_type=s390 arch=s390x ;;
+  s390*)               cpu_type=s390 arch=s390 ;;
+  score*l)             cpu_type=score endian=little ;;
+  score*)              cpu_type=score endian=big ;;
+  sh*le)               cpu_type=sh endian=little ;;
+  sh*)                 cpu_type=sh endian=big ;;
+  sparc64* | sparcv9*) cpu_type=sparc arch=v9-64 ;;
+  sparc86x*)           cpu_type=sparc arch=sparc86x  ;;
+  sparclet*)           cpu_type=sparc arch=sparclet ;;
+  sparclite*)          cpu_type=sparc arch=sparclite ;;
+  sparc*)              cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
+  tilegx*be)           cpu_type=tilegx endian=big ;;
+  tilegx*)             cpu_type=tilegx endian=little ;;
+  v850*)               cpu_type=v850 ;;
+  visium)              cpu_type=visium endian=big ;;
+  wasm32)               cpu_type=wasm32 endian=little ;;
+  x86_64*)             cpu_type=i386 arch=x86_64;;
+  xgate)               cpu_type=xgate ;;
+  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
+# Note: This table is alpha-sorted, please try to keep it that way.
+case ${generic_target} in
+  aarch64*-*-elf*)                     fmt=elf;;
+  aarch64*-*-fuchsia*)                 fmt=elf;;
+  aarch64*-*-linux*)                   fmt=elf em=linux
+    case ${cpu}-${os} in
+      aarch64*-linux-gnu_ilp32)                arch=aarch64:32 ;;
+    esac ;;
+
+  alpha-*-*vms*)                       fmt=evax ;;
+  alpha-*-osf*)                                fmt=ecoff ;;
+  alpha-*-linux*ecoff*)                        fmt=ecoff ;;
+  alpha-*-linux-*)                     fmt=elf em=linux ;;
+  alpha-*-netbsd* | alpha-*-openbsd*)  fmt=elf em=nbsd ;;
+
+  arc-*-elf*)                          fmt=elf ;;
+  arc*-*-linux*)                       fmt=elf bfd_gas=yes ;;
+
+  arm-*-phoenix*)                      fmt=elf ;;
+  arm-*-elf)                           fmt=elf ;;
+  arm-*-eabi* | arm-*-rtems*)          fmt=elf em=armeabi ;;
+  arm-*-symbianelf*)                   fmt=elf em=symbian ;;
+  arm-*-kaos*)                         fmt=elf ;;
+  arm-*-conix*)                                fmt=elf ;;
+  arm-*-stmos*)                         fmt=elf ;;
+  arm-*-freebsd[89].* | armeb-*-freebsd[89].*)
+                                       fmt=elf  em=freebsd ;;
+  arm-*-freebsd* | armeb-*-freebsd*)   fmt=elf  em=armfbsdeabi ;;
+  arm*-*-freebsd*)                     fmt=elf  em=armfbsdvfp ;;
+  arm-*-linux-*eabi*)                  fmt=elf  em=armlinuxeabi ;;
+  arm-*-linux-*)                       fmt=elf  em=linux ;;
+  arm-*-uclinux*eabi*)                 fmt=elf  em=armlinuxeabi ;;
+  arm-*-uclinux*)                      fmt=elf  em=linux ;;
+  arm-*-nacl*)                         fmt=elf  em=nacl ;;
+  arm-*-netbsdelf*)                    fmt=elf  em=nbsd ;;
+  arm-*-nto*)                          fmt=elf ;;
+  arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
+                                       fmt=coff em=wince-pe ;;
+  arm-*-pe)                            fmt=coff em=pe ;;
+  arm-*-fuchsia*)                      fmt=elf ;;
+
+  avr-*-*)                             fmt=elf bfd_gas=yes ;;
+
+  bfin-*-linux-uclibc)                 fmt=fdpicelf em=linux ;;
+  bfin-*-uclinux*)                     fmt=elf em=linux ;;
+  bfin-*elf)                           fmt=elf ;;
+
+  cr16-*-elf*)                         fmt=elf ;;
+
+  cris-*-linux-* | crisv32-*-linux-*)
+                                       fmt=multi em=linux ;;
+  cris-*-* | crisv32-*-*)              fmt=multi ;;
+
+  crx-*-elf*)                          fmt=elf ;;
+
+  d10v-*-*)                            fmt=elf ;;
+  d30v-*-*)                            fmt=elf ;;
+  dlx-*-*)                             fmt=elf ;;
+
+  epiphany-*-*)                                fmt=elf ;;
+
+  fr30-*-*)                            fmt=elf ;;
+  frv-*-*linux*)                       fmt=elf em=linux;;
+  frv-*-*)                             fmt=elf ;;
+
+  ft32-*-*)                            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-*-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-*-elf)                         fmt=elf ;;
+  h8300-*-linux*)                      fmt=elf em=linux ;;
+
+  i386-*-beospe*)                      fmt=coff em=pe ;;
+  i386-*-beos*)                                fmt=elf ;;
+  i386-*-elfiamcu)                     fmt=elf arch=iamcu ;;
+  i386-*-elf*)                         fmt=elf ;;
+  i386-*-fuchsia*)                     fmt=elf ;;
+  i386-*-kaos*)                                fmt=elf ;;
+  i386-*-bsd*)                         fmt=aout em=386bsd ;;
+  i386-*-nacl*)                                fmt=elf em=nacl
+    case ${cpu} in
+      x86_64*)                         arch=x86_64:32 ;;
+    esac ;;
+  i386-*-netbsdpe*)                    fmt=coff em=pe ;;
+  i386-*-netbsd*-gnu* | \
+  i386-*-knetbsd*-gnu | \
+  i386-*-netbsd* | \
+  i386-*-openbsd*)                     fmt=elf em=nbsd ;;
+  i386-*-linux-*)                      fmt=elf em=linux
+    case ${cpu}-${os} in
+      x86_64*-linux-gnux32)            arch=x86_64:32 ;;
+    esac ;;
+  i386-*-lynxos*)                      fmt=elf em=lynx ;;
+  i386-*-redox*)                       fmt=elf ;;
+  i386-*-solaris*)                     fmt=elf em=solaris ;;
+  i386-*-freebsd* \
+  | i386-*-kfreebsd*-gnu)              fmt=elf em=freebsd ;;
+  i386-*-msdosdjgpp* \
+  | i386-*-go32*)                      fmt=coff em=go32 ;;
+  i386-*-gnu*)                         fmt=elf em=gnu ;;
+  i386-*-msdos*)                       fmt=aout ;;
+  i386-*-moss*)                                fmt=elf ;;
+  i386-*-pe)                           fmt=coff em=pe ;;
+  i386-*-cygwin*)
+   case ${cpu} in
+     x86_64*)                          fmt=coff em=pep ;;
+     i*)                               fmt=coff em=pe ;;
+   esac ;;
+  i386-*-interix*)                     fmt=coff em=interix ;;
+  i386-*-mingw*)
+    case ${cpu} in
+      x86_64*)                         fmt=coff em=pep ;;
+      i*)                              fmt=coff em=pe ;;
+    esac ;;
+  i386-*-nto-qnx*)                     fmt=elf ;;
+  i386-*-*nt*)                         fmt=coff em=pe ;;
+  i386-*-chaos)                                fmt=elf ;;
+  i386-*-rdos*)                                fmt=elf ;;
+  i386-*-darwin*)                      fmt=macho ;;
+
+  ia16-*-elf*)                         fmt=elf ;;
+
+  ia64-*-elf*)                         fmt=elf ;;
+  ia64-*-*vms*)                                fmt=elf em=vms ;;
+  ia64-*-aix*)                         fmt=elf em=ia64aix ;;
+  ia64-*-linux-*)                      fmt=elf em=linux ;;
+  ia64-*-hpux*)                                fmt=elf em=hpux ;;
+  ia64-*-netbsd*)                      fmt=elf em=nbsd ;;
+
+  ip2k-*-*)                            fmt=elf ;;
+
+  iq2000-*-elf)                                fmt=elf ;;
+
+  lm32-*-*)                            fmt=elf ;;
+
+  m32c-*-elf)                          fmt=elf ;;
+
+  m32r-*-elf*)                         fmt=elf ;;
+  m32r-*-linux*)                       fmt=elf em=linux;;
+
+  m68hc11-*-* | m6811-*-*)             fmt=elf ;;
+  m68hc12-*-* | m6812-*-*)             fmt=elf ;;
+
+  m68k-*-elf*)                         fmt=elf ;;
+  m68k-*-sysv4*)                       fmt=elf em=svr4 ;;
+  m68k-*-linux-*)                      fmt=elf em=linux ;;
+  m68k-*-uclinux*)                     fmt=elf em=uclinux ;;
+  m68k-*-gnu*)                         fmt=elf ;;
+  m68k-*-netbsdelf*)                   fmt=elf em=nbsd ;;
+
+  s12z-*-*)                            fmt=elf ;;
+
+  mep-*-elf)                           fmt=elf ;;
+
+  metag-*-elf)                         fmt=elf ;;
+  metag-*-linux*)                      fmt=elf em=linux ;;
+
+  mcore-*-elf)                         fmt=elf ;;
+  mcore-*-pe)                          fmt=coff em=pe bfd_gas=yes ;;
+
+  microblaze-*-*)                      fmt=elf ;;
+
+  mips-*-irix6*)                       fmt=elf em=irix ;;
+  mips-*-irix5*)                       fmt=elf em=irix ;;
+  mips*-*-linux*)                      fmt=elf em=tmips ;;
+  mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
+                                       fmt=elf em=freebsd ;;
+  mips-*-sysv4* | mips-*-gnu*)         fmt=elf em=tmips ;;
+  mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
+                                       fmt=elf em=tmips ;;
+  mips-*-elf*)                         fmt=elf ;;
+  mips-*-netbsd*)                      fmt=elf em=tmips ;;
+  mips-*-openbsd*)                     fmt=elf em=tmips ;;
+  mips-*-windiss)                      fmt=elf ;;
+
+  mmix-*-*)                            fmt=elf ;;
+
+  mn10200-*-*)                         fmt=elf ;;
+
+  # cpu_type for am33_2.0 is set to mn10300
+  mn10300-*-linux*)                    fmt=elf em=linux ;;
+  mn10300-*-*)                         fmt=elf ;;
+
+  moxie-*-uclinux)                     fmt=elf em=linux ;;
+  moxie-*-moxiebox*)                    fmt=elf endian=little ;;
+  moxie-*-*)                           fmt=elf ;;
+    
+  mt-*-elf)                            fmt=elf bfd_gas=yes ;;
+
+  msp430-*-*)                          fmt=elf ;;
+
+  nds32-*-elf*)                                fmt=elf ;;
+  nds32-*-linux*)                      fmt=elf em=linux ;;
+
+  nios2*-linux*)                       fmt=elf em=linux ;;
+
+  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 ;;
+
+  or1k*-*-elf | or1k*-*-rtems*)        fmt=elf endian=big ;;
+  or1k*-*-linux*)                      fmt=elf em=linux endian=big ;;
+
+  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-*-aix[5-9].*)                    fmt=coff em=aix5 ;;
+  ppc-*-aix*)                          fmt=coff em=aix ;;
+  ppc-*-beos*)                         fmt=coff ;;
+  ppc-*-*n*bsd* | ppc-*-elf*)          fmt=elf ;;
+  ppc-*-eabi* | ppc-*-sysv4*)          fmt=elf ;;
+  ppc-*-linux-*)                       fmt=elf em=linux ;;
+  ppc-*-solaris*)                      fmt=elf em=solaris ;;
+  ppc-*-macos*)                                fmt=coff em=macos ;;
+  ppc-*-nto*)                          fmt=elf ;;
+  ppc-*-kaos*)                         fmt=elf ;;
+  ppc-*-lynxos*)                       fmt=elf em=lynx ;;
+
+  pru-*-*)                             fmt=elf ;;
+
+  riscv*-*-*)                          fmt=elf endian=little ;;
+
+  s390-*-linux-*)                      fmt=elf em=linux ;;
+  s390-*-tpf*)                         fmt=elf ;;
+
+  score-*-elf)                         fmt=elf ;;
+
+  sh*-*-linux*)                                fmt=elf em=linux
+    case ${cpu} in
+      sh*eb)   endian=big ;;
+      *)       endian=little ;;
+    esac ;;
+  sh*-*-netbsdelf*)                    fmt=elf em=nbsd
+    case ${cpu} in
+      sh*l*)   endian=little ;;
+      *)       endian=big ;;
+    esac ;;
+  sh-*-elf*)                           fmt=elf ;;
+  sh-*-uclinux* | sh[12]-*-uclinux*)   fmt=elf em=uclinux ;;
+  sh-*-coff*)                          fmt=coff ;;
+  sh-*-nto*)                           fmt=elf ;;
+  sh-*-pe*)                            fmt=coff em=pe bfd_gas=yes endian=little ;;
+  sh-*-kaos*)                          fmt=elf ;;
+  shle*-*-kaos*)                       fmt=elf ;;
+
+  sparc-*-linux-*)                     fmt=elf em=linux ;;
+  sparc-*-solaris*)                    fmt=elf em=solaris ;;
+  sparc-*-*bsd*)                       fmt=elf em=nbsd ;;
+
+  spu-*-elf)                           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;;
+  tic6x-*-*)                           fmt=elf ;;
+
+  tilepro-*-* | tilegx*-*-*)           fmt=elf ;;
+
+  v850*-*-*)                           fmt=elf ;;
+
+  vax-*-netbsdelf*)                    fmt=elf em=nbsd ;;
+  vax-*-linux-*)                       fmt=elf em=linux ;;
+
+  visium-*-elf)                                fmt=elf ;;
+
+  wasm32-*-*)                           fmt=elf ;;
+
+  xstormy16-*-*)                       fmt=elf ;;
+  
+  xgate-*-*)                           fmt=elf ;;
+
+  xtensa*-*-*)                         fmt=elf ;;
+
+  z80-*-coff)                          fmt=coff ;;
+
+  z8k-*-coff | z8k-*-sim)              fmt=coff ;;
+
+  *-*-aout | *-*-scout)                        fmt=aout ;;
+  *-*-cloudabi*)                       fmt=elf ;;
+  *-*-dragonfly*)                      fmt=elf em=dragonfly ;;
+  *-*-freebsd* | *-*-kfreebsd*-gnu)    fmt=elf em=freebsd ;;
+  *-*-generic)                         fmt=generic ;;
+  *-*-xray | *-*-hms)                  fmt=coff ;;
+  *-*-sim)                             fmt=coff ;;
+  *-*-elf | *-*-rtems* | *-*-sysv4*)   fmt=elf ;;
+  *-*-solaris*)                                fmt=elf em=solaris ;;
+  *-*-aros*)                           fmt=elf em=linux ;;
+  *-*-vxworks* | *-*-windiss)          fmt=elf em=vxworks ;;
+esac
+
+case ${cpu_type} in
+  aarch64 | alpha | arm | i386 | ia64 | microblaze | mips | ns32k | or1k | or1knd | pdp11 | ppc | riscv | sparc | z80 | z8k)
+    bfd_gas=yes
+    ;;
+esac
+case ${fmt} in
+  elf | ecoff | fdpicelf | multi | som)
+    bfd_gas=yes
+    ;;
+esac
+
+if test $bfd_gas != yes; then
+  echo This target is no longer supported in gas
+  exit 1
+fi
+
+case ${cpu_type}-${fmt}-${os} in
+i386-elf-linux*)
+  # Default to compress DWARF debug sections for Linux/x86.
+  if test ${ac_default_compressed_debug_sections} = unset; then
+    ac_default_compressed_debug_sections=yes
+  fi
+  ;;
+esac
diff --git a/arm-stmos/binutils-files/ld/Makefile.am b/arm-stmos/binutils-files/ld/Makefile.am
new file mode 100644 (file)
index 0000000..414f948
--- /dev/null
@@ -0,0 +1,2001 @@
+## Process this file with automake to generate Makefile.in
+#
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+#
+
+AUTOMAKE_OPTIONS = dejagnu no-texinfo.tex no-dist foreign info-in-builddir
+ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
+TEXINFO_TEX = ../texinfo/texinfo.tex
+
+SUBDIRS = po
+
+tooldir = $(exec_prefix)/$(target_alias)
+
+YACC = `if [ -f ../bison/bison ]; then echo ../bison/bison -y -L$(srcdir)/../bison/; else echo @YACC@; fi`
+YFLAGS = -d
+LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi`
+
+# Automake 1.10+ disables lex and yacc output file regeneration if
+# maintainer mode is disabled.  Avoid this.
+am__skiplex =
+am__skipyacc =
+
+ELF_CLFAGS=-DELF_LIST_OPTIONS=@elf_list_options@ \
+          -DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
+          -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@
+WARN_CFLAGS = @WARN_CFLAGS@
+NO_WERROR = @NO_WERROR@
+AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+
+# Conditionally enable the plugin interface.
+if ENABLE_PLUGINS
+PLUGIN_C = plugin.c
+PLUGIN_H = plugin.h
+PLUGIN_OBJECT = plugin.@OBJEXT@
+PLUGIN_CFLAGS = -DENABLE_PLUGINS
+else
+PLUGIN_C =
+PLUGIN_H =
+PLUGIN_OBJECT =
+PLUGIN_CFLAGS =
+endif
+
+# We put the scripts in the directory $(scriptdir)/ldscripts.
+# We can't put the scripts in $(datadir) because the SEARCH_DIR
+# directives need to be different for native and cross linkers.
+scriptdir = $(tooldir)/lib
+
+EMUL = @EMUL@
+EMULATION_OFILES = @EMULATION_OFILES@
+EMUL_EXTRA_OFILES = @EMUL_EXTRA_OFILES@
+
+
+# Search path to override the default search path for -lfoo libraries.
+# If LIB_PATH is empty, the ones in the script (if any) are left alone.
+# (The default is usually /lib:/usr/lib:/usr/local/lib, unless building
+# a cross-linker, in which case the default is empty.  See genscripts.sh.)
+# Otherwise, they are replaced with the ones given in LIB_PATH,
+# which may have the form: LIB_PATH=/lib:/usr/local/lib.  This can be set
+# when the linker is configured via the --with-lib-path configure switch.
+LIB_PATH = @LIB_PATH@
+
+BASEDIR = $(srcdir)/..
+BFDDIR = $(BASEDIR)/bfd
+INCDIR = $(BASEDIR)/include
+
+# What version of the manual to build
+DOCVER = gen
+
+# Options to extract the man page from ld.texi
+MANCONF = -Dman
+
+TEXI2POD = perl $(BASEDIR)/etc/texi2pod.pl $(AM_MAKEINFOFLAGS)
+
+POD2MAN = pod2man --center="GNU Development Tools" \
+       --release="binutils-$(VERSION)" --section=1
+
+# Setup the testing framework, if you have one
+EXPECT = expect
+RUNTEST = runtest
+RUNTESTFLAGS =
+
+CC_FOR_TARGET = ` \
+  if [ -f $$r/../gcc/xgcc ] ; then \
+    if [ -f $$r/../newlib/Makefile ] ; then \
+      echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
+    else \
+      echo $$r/../gcc/xgcc -B$$r/../gcc/; \
+    fi; \
+  else \
+    if [ "@host@" = "@target@" ] ; then \
+      echo $(CC); \
+    else \
+      echo gcc | sed '$(transform)'; \
+    fi; \
+  fi`
+
+CXX_FOR_TARGET = ` \
+  if [ -f $$r/../gcc/g++ ] ; then \
+    if [ -f $$r/../newlib/Makefile ] ; then \
+      echo $$r/../gcc/g++ -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
+    else \
+      echo $$r/../gcc/g++ -B$$r/../gcc/; \
+    fi; \
+  elif [ -f $$r/../gcc/xg++ ] ; then \
+    if [ -f $$r/../newlib/Makefile ] ; then \
+      echo $$r/../gcc/xg++ -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
+    else \
+      echo $$r/../gcc/xg++ -B$$r/../gcc/; \
+    fi; \
+  else \
+    if [ "@host@" = "@target@" ] ; then \
+      echo $(CXX); \
+    else \
+      echo g++ | sed '$(transform)'; \
+    fi; \
+  fi`
+
+# Strip out sanitization options as we want to test building binaries without any extra paraphernalia
+CFLAGS_FOR_TARGET = `echo $(CFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
+CXXFLAGS_FOR_TARGET = `echo $(CXXFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
+
+transform = s/^ld-new$$/$(installed_linker)/;@program_transform_name@
+bin_PROGRAMS = ld-new
+info_TEXINFOS = ld.texi
+ld_TEXINFOS = configdoc.texi
+noinst_TEXINFOS = ldint.texi
+man_MANS = ld.1
+
+AM_MAKEINFOFLAGS = -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \
+                  -I $(top_srcdir)/../libiberty
+TEXI2DVI = texi2dvi -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \
+                   -I $(top_srcdir)/../libiberty
+
+AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \
+       @INCINTL@ $(HDEFINES) $(CFLAGS) $(PLUGIN_CFLAGS) \
+       -DLOCALEDIR="\"$(datadir)/locale\""
+
+BFDLIB = ../bfd/libbfd.la
+LIBIBERTY = ../libiberty/libiberty.a
+
+ALL_EMULATION_SOURCES = \
+       eaix5ppc.c \
+       eaix5rs6.c \
+       eaixppc.c \
+       eaixrs6.c \
+       ealpha.c \
+       ealphavms.c \
+       earcv2elf.c \
+       earcv2elfx.c \
+       earcelf.c \
+       earcelf_prof.c \
+       earclinux.c \
+       earclinux_nps.c \
+       earclinux_prof.c \
+       earm_wince_pe.c \
+       earmelf.c \
+       earmelf_stmos.c \
+       earmelf_fbsd.c \
+       earmelf_fuchsia.c \
+       earmelf_linux.c \
+       earmelf_linux_eabi.c \
+       earmelf_linux_fdpiceabi.c \
+       earmelf_nacl.c \
+       earmelf_nbsd.c \
+       earmelf_phoenix.c \
+       earmelf_vxworks.c \
+       earmelfb.c \
+       earmelfb_fbsd.c \
+       earmelfb_fuchsia.c \
+       earmelfb_linux.c \
+       earmelfb_linux_eabi.c \
+       earmelfb_linux_fdpiceabi.c \
+       earmelfb_nacl.c \
+       earmelfb_nbsd.c \
+       earmnto.c \
+       earmpe.c \
+       earmsymbian.c \
+       eavr1.c \
+       eavr2.c \
+       eavr25.c \
+       eavr3.c \
+       eavr31.c \
+       eavr35.c \
+       eavr4.c \
+       eavr5.c \
+       eavr51.c \
+       eavr6.c \
+       eavrxmega1.c \
+       eavrxmega2.c \
+       eavrxmega3.c \
+       eavrxmega4.c \
+       eavrxmega5.c \
+       eavrxmega6.c \
+       eavrxmega7.c \
+       eavrtiny.c   \
+       ecrisaout.c \
+       ecriself.c \
+       ecrislinux.c \
+       ed10velf.c \
+       ed30v_e.c \
+       ed30v_o.c \
+       ed30velf.c \
+       eelf32_dlx.c \
+       eelf32_sparc.c \
+       eelf32_sparc_sol2.c \
+       eelf32_sparc_vxworks.c \
+       eelf32_spu.c \
+       eelf32_tic6x_be.c \
+       eelf32_tic6x_le.c \
+       eelf32_tic6x_linux_be.c \
+       eelf32_tic6x_linux_le.c \
+       eelf32_tic6x_elf_be.c \
+       eelf32_tic6x_elf_le.c \
+       eelf32am33lin.c \
+       eelf32bfin.c \
+       eelf32bfinfd.c \
+       eelf32cr16.c \
+       eelf32cr16c.c \
+       eelf32crx.c \
+       eelf32epiphany.c \
+       eelf32epiphany_4x4.c \
+       eelf32fr30.c \
+       eelf32frv.c \
+       eelf32frvfd.c \
+       eelf32ft32.c \
+       eelf32ip2k.c \
+       eelf32iq10.c \
+       eelf32iq2000.c \
+       eelf32lm32.c \
+       eelf32lm32fd.c \
+       eelf32lppc.c \
+       eelf32lppclinux.c \
+       eelf32lppcnto.c \
+       eelf32lppcsim.c \
+       eelf32m32c.c \
+       eelf32mb_linux.c \
+       eelf32mbel_linux.c \
+       eelf32mcore.c \
+       eelf32mep.c \
+       eelf32metag.c \
+       eelf32microblazeel.c \
+       eelf32microblaze.c \
+       eelf32moxie.c \
+       emoxiebox.c \
+       eelf32mt.c \
+       eelf32or1k.c \
+       eelf32or1k_linux.c \
+       eelf32ppc.c \
+       eelf32ppc_fbsd.c \
+       eelf32ppclinux.c \
+       eelf32ppcnto.c \
+       eelf32ppcsim.c \
+       eelf32ppcvxworks.c \
+       eelf32ppcwindiss.c \
+       eelf32lriscv.c \
+       eelf32lriscv_ilp32f.c \
+       eelf32lriscv_ilp32.c \
+       eelf32rl78.c \
+       eelf32rx.c \
+       eelf32tilegx.c \
+       eelf32tilegx_be.c \
+       eelf32tilepro.c \
+       eelf32vax.c \
+       eelf32visium.c \
+       eelf32xc16x.c \
+       eelf32xc16xl.c \
+       eelf32xc16xs.c \
+       eelf32xstormy16.c \
+       eelf32xtensa.c \
+       eelf_i386.c \
+       eelf_i386_be.c \
+       eelf_i386_chaos.c \
+       eelf_i386_fbsd.c \
+       eelf_i386_ldso.c \
+       eelf_i386_nacl.c \
+       eelf_i386_sol2.c \
+       eelf_i386_vxworks.c \
+       eelf_iamcu.c \
+       eelf_s390.c \
+       eh8300elf.c \
+       eh8300elf_linux.c \
+       eh8300helf.c \
+       eh8300helf_linux.c \
+       eh8300hnelf.c \
+       eh8300self.c \
+       eh8300self_linux.c \
+       eh8300snelf.c \
+       eh8300sxelf.c \
+       eh8300sxelf_linux.c \
+       eh8300sxnelf.c \
+       ehppaelf.c \
+       ehppalinux.c \
+       ehppanbsd.c \
+       ehppaobsd.c \
+       ei386beos.c \
+       ei386bsd.c \
+       ei386go32.c \
+       ei386lynx.c \
+       ei386moss.c \
+       ei386msdos.c \
+       ei386nto.c \
+       ei386pe.c \
+       ei386pe_posix.c \
+       em32relf.c \
+       em32relf_linux.c \
+       em32rlelf.c \
+       em32rlelf_linux.c \
+       em68hc11elf.c \
+       em68hc11elfb.c \
+       em68hc12elf.c \
+       em68hc12elfb.c \
+       em68kelf.c \
+       em68kelfnbsd.c \
+       em9s12zelf.c \
+       emcorepe.c \
+       emn10200.c \
+       emn10300.c \
+       emsp430elf.c \
+       emsp430X.c \
+       ends32elf.c \
+       ends32elf16m.c \
+       ends32elf_linux.c \
+       ends32belf.c \
+       ends32belf16m.c \
+       ends32belf_linux.c \
+       ens32knbsd.c \
+       enios2elf.c \
+       enios2linux.c \
+       epc532macha.c \
+       epdp11.c \
+       epjelf.c \
+       epjlelf.c \
+       eppclynx.c \
+       eppcmacos.c \
+       eppcpe.c \
+       epruelf.c \
+       escore3_elf.c \
+       escore7_elf.c \
+       esh.c \
+       eshelf.c \
+       eshelf_fd.c \
+       eshelf_linux.c \
+       eshelf_nbsd.c \
+       eshelf_nto.c \
+       eshelf_uclinux.c \
+       eshelf_vxworks.c \
+       eshl.c \
+       eshlelf.c \
+       eshlelf_fd.c \
+       eshlelf_linux.c \
+       eshlelf_nbsd.c \
+       eshlelf_nto.c \
+       eshlelf_vxworks.c \
+       eshpe.c \
+       etic30aout.c \
+       etic30coff.c \
+       etic3xcoff.c \
+       etic3xcoff_onchip.c \
+       etic4xcoff.c \
+       etic54xcoff.c \
+       etic80coff.c \
+       ev850.c \
+       ev850_rh850.c \
+       evanilla.c \
+       evaxnbsd.c \
+       exgateelf.c \
+       ez80.c \
+       ez8001.c \
+       ez8002.c
+
+ALL_EMULATIONS = $(ALL_EMULATION_SOURCES:.c=.@OBJEXT@)
+
+ALL_64_EMULATION_SOURCES = \
+       eaarch64elf.c \
+       eaarch64elf32.c \
+       eaarch64elfb.c \
+       eaarch64elf32b.c \
+       eaarch64cloudabi.c \
+       eaarch64cloudabib.c \
+       eaarch64fbsd.c \
+       eaarch64fbsdb.c \
+       eaarch64linux.c \
+       eaarch64linuxb.c \
+       eaarch64linux32.c \
+       eaarch64linux32b.c \
+       eelf32_x86_64.c \
+       eelf32_x86_64_nacl.c \
+       eelf32b4300.c \
+       eelf32bmip.c \
+       eelf32bmipn32.c \
+       eelf32bsmip.c \
+       eelf32btsmip.c \
+       eelf32btsmip_fbsd.c \
+       eelf32btsmipn32.c \
+       eelf32btsmipn32_fbsd.c \
+       eelf32ebmip.c \
+       eelf32ebmipvxworks.c \
+       eelf32elmip.c \
+       eelf32elmipvxworks.c \
+       eelf32l4300.c \
+       eelf32lmip.c \
+       eelf32lr5900.c \
+       eelf32lr5900n32.c \
+       eelf32lsmip.c \
+       eelf32ltsmip.c \
+       eelf32ltsmip_fbsd.c \
+       eelf32ltsmipn32.c \
+       eelf32ltsmipn32_fbsd.c \
+       eelf32mipswindiss.c \
+       eelf64_aix.c \
+       eelf64_ia64.c \
+       eelf64_ia64_fbsd.c \
+       eelf64_ia64_vms.c \
+       eelf64_s390.c \
+       eelf64_sparc.c \
+       eelf64_sparc_fbsd.c \
+       eelf64_sparc_sol2.c \
+       eelf64alpha.c \
+       eelf64alpha_fbsd.c \
+       eelf64alpha_nbsd.c \
+       eelf64bmip.c \
+       eelf64btsmip.c \
+       eelf64btsmip_fbsd.c \
+       eelf64hppa.c \
+       eelf64lppc.c \
+       eelf64lriscv.c \
+       eelf64lriscv_lp64f.c \
+       eelf64lriscv_lp64.c \
+       eelf64ltsmip.c \
+       eelf64ltsmip_fbsd.c \
+       eelf64mmix.c \
+       eelf64ppc.c \
+       eelf64ppc_fbsd.c \
+       eelf64rdos.c \
+       eelf64tilegx.c \
+       eelf64tilegx_be.c \
+       eelf_l1om.c \
+       eelf_l1om_fbsd.c \
+       eelf_k1om.c \
+       eelf_k1om_fbsd.c \
+       eelf_x86_64.c \
+       eelf_x86_64_cloudabi.c \
+       eelf_x86_64_fbsd.c \
+       eelf_x86_64_nacl.c \
+       eelf_x86_64_sol2.c \
+       ehppa64linux.c \
+       ei386pep.c \
+       emmo.c
+
+ALL_64_EMULATIONS = $(ALL_64_EMULATION_SOURCES:.c=.@OBJEXT@)
+
+ALL_EMUL_EXTRA_OFILES = \
+       deffilep.@OBJEXT@ \
+       pe-dll.@OBJEXT@
+
+ALL_64_EMUL_EXTRA_OFILES = \
+       pep-dll.@OBJEXT@
+
+CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
+       ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
+       mri.c ldcref.c pe-dll.c pep-dll.c ldlex-wrapper.c \
+       $(PLUGIN_C) ldbuildid.c
+
+HFILES = ld.h ldctor.h ldemul.h ldexp.h ldfile.h \
+       ldlang.h ldlex.h ldmain.h ldmisc.h ldver.h \
+       ldwrite.h mri.h deffile.h pe-dll.h pep-dll.h \
+       elf-hints-local.h $(PLUGIN_H) ldbuildid.h
+
+GENERATED_CFILES = ldgram.c ldlex.c deffilep.c
+GENERATED_HFILES = ldgram.h ldemul-list.h deffilep.h
+
+# Require an early dependency on the generated headers, as the dependency
+# tracking will not cause them to be built beforehand.
+BUILT_SOURCES = $(GENERATED_HFILES)
+
+OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ \
+       mri.@OBJEXT@ ldctor.@OBJEXT@ ldmain.@OBJEXT@ $(PLUGIN_OBJECT) \
+       ldwrite.@OBJEXT@ ldexp.@OBJEXT@  ldemul.@OBJEXT@ ldver.@OBJEXT@ ldmisc.@OBJEXT@ \
+       ldfile.@OBJEXT@ ldcref.@OBJEXT@ ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES} \
+       ldbuildid.@OBJEXT@
+
+STAGESTUFF = *.@OBJEXT@ ldscripts/* e*.c
+
+# Disable -Werror, if it has been enabled, since old versions of bison/
+# yacc will produce working code which contain compile time warnings.
+ldgram.@OBJEXT@: ldgram.c
+if am__fastdepCC
+       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `test -f ldgram.c || echo $(srcdir)/`ldgram.c $(NO_WERROR)
+       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+else
+if AMDEP
+       source='ldgram.c' object='$@' libtool=no @AMDEPBACKSLASH@
+       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif
+       $(COMPILE) -c `test -f ldgram.c || echo $(srcdir)/`ldgram.c $(NO_WERROR)
+endif
+
+ldlex-wrapper.@OBJEXT@: ldlex-wrapper.c ldlex.c
+if am__fastdepCC
+       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $(srcdir)/ldlex-wrapper.c $(NO_WERROR)
+       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+else
+if AMDEP
+       source='ldlex-wrapper.c' object='$@' libtool=no @AMDEPBACKSLASH@
+       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif
+       $(COMPILE) -c $(srcdir)/ldlex-wrapper.c $(NO_WERROR)
+endif
+
+deffilep.@OBJEXT@: deffilep.c
+if am__fastdepCC
+       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `test -f deffilep.c || echo $(srcdir)/`deffilep.c $(NO_WERROR)
+       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+else
+if AMDEP
+       source='deffilep.c' object='$@' libtool=no @AMDEPBACKSLASH@
+       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif
+       $(COMPILE) -c `test -f deffilep.c || echo $(srcdir)/`deffilep.c $(NO_WERROR)
+endif
+
+SRC_POTFILES = $(CFILES) $(HFILES)
+BLD_POTFILES = $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES)
+
+po/SRC-POTFILES.in: @MAINT@ Makefile
+       for f in $(SRC_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \
+         && mv $@-tmp $(srcdir)/po/SRC-POTFILES.in
+
+po/BLD-POTFILES.in: @MAINT@ Makefile $(BLD_POTFILES)
+       for f in $(BLD_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \
+         && mv $@-tmp $(srcdir)/po/BLD-POTFILES.in
+
+ldmain.@OBJEXT@: ldmain.c config.status
+if am__fastdepCC
+       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ \
+         -DDEFAULT_EMULATION='"$(EMUL)"' \
+         -DBINDIR='"$(bindir)"' -DTOOLBINDIR='"$(tooldir)/bin"' \
+         -DTARGET='"@target@"' @TARGET_SYSTEM_ROOT_DEFINE@ \
+         $(srcdir)/ldmain.c
+       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+else
+if AMDEP
+       source='ldmain.c' object='$@' libtool=no @AMDEPBACKSLASH@
+       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif
+       $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' \
+         -DBINDIR='"$(bindir)"' -DTOOLBINDIR='"$(tooldir)/bin"' \
+         -DTARGET='"@target@"' @TARGET_SYSTEM_ROOT_DEFINE@ \
+         $(srcdir)/ldmain.c
+endif
+
+ldfile.@OBJEXT@: ldfile.c config.status
+if am__fastdepCC
+       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ \
+       -DSCRIPTDIR='"$(scriptdir)"' -DBINDIR='"$(bindir)"' -DTOOLBINDIR='"$(tooldir)/bin"' \
+        $(srcdir)/ldfile.c
+       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+else
+if AMDEP
+       source='ldfile.c' object='$@' libtool=no @AMDEPBACKSLASH@
+       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif
+       $(COMPILE) -c -DSCRIPTDIR='"$(scriptdir)"' -DBINDIR='"$(bindir)"' \
+         -DTOOLBINDIR='"$(tooldir)/bin"' \
+         $(srcdir)/ldfile.c
+endif
+
+eelf32_spu.@OBJEXT@: eelf32_spu.c
+if am__fastdepCC
+       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ \
+         -DEMBEDSPU="\"`echo embedspu | sed '$(transform)'`\"" eelf32_spu.c
+       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+else
+if AMDEP
+       source='eelf32_spu.c' object='$@' libtool=no @AMDEPBACKSLASH@
+       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+endif
+       $(COMPILE) -c -DEMBEDSPU="\"`echo embedspu | sed '$(transform)'`\"" \
+         eelf32_spu.c
+endif
+
+ldemul-list.h: Makefile
+       (echo "/* This file is automatically generated.  DO NOT EDIT! */";\
+       for f in `echo " " ${EMULATION_OFILES} "" \
+        | sed -e 's/ e/ ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
+           echo "extern ld_emulation_xfer_type ld_$${f}_emulation;"; \
+       done;\
+       echo "";\
+       echo "#define EMULATION_LIST \\";\
+       for f in `echo " " ${EMULATION_OFILES} "" \
+        | sed -e 's/ e/ ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
+           echo "  &ld_$${f}_emulation, \\"; \
+       done;\
+       echo "  0") >ldemul-tmp.h
+       mv ldemul-tmp.h ldemul-list.h
+
+stringify.sed: ${srcdir}/emultempl/$(STRINGIFY)
+         cp ${srcdir}/emultempl/$(STRINGIFY) stringify.sed
+
+# These all start with e so 'make clean' can find them.
+
+GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@
+GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed
+ELF_DEPS = $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/elf-generic.em $(srcdir)/scripttempl/DWARF.sc
+ELF_GEN_DEPS = $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em $(srcdir)/emultempl/genelf.em $(srcdir)/scripttempl/DWARF.sc
+ELF_X86_DEPS = $(ELF_DEPS) $(srcdir)/emulparams/plt_unwind.sh \
+              $(srcdir)/emulparams/extern_protected_data.sh \
+              $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+              $(srcdir)/emulparams/reloc_overflow.sh \
+              $(srcdir)/emulparams/call_nop.sh \
+              $(srcdir)/emulparams/cet.sh
+
+@TDIRS@
+
+# We can't use pattern rules as we don't want to depend on GNU
+# make, or else these rules could have been expressed in one
+# two-liner: 'e%.c:' and '     ${GENSCRIPTS} $* "$(tdir_$*)"'.
+# (The recursive variable expansion is portable.)
+
+run-genscripts:
+       ${GENSCRIPTS} $(script_target) "$($(script_tdirname))"
+
+.PHONY: run-genscripts
+
+$(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES):
+       base=`echo $@ | sed -e 's,e\(.*\).c,\1,'`; \
+       $(MAKE) run-genscripts "script_target=$$base" "script_tdirname=tdir_$$base"
+
+eaix5ppc.c: $(srcdir)/emulparams/aix5ppc.sh \
+  $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS}
+
+eaix5rs6.c: $(srcdir)/emulparams/aix5rs6.sh \
+  $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS}
+
+eaixppc.c: $(srcdir)/emulparams/aixppc.sh \
+  $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS}
+
+eaixrs6.c: $(srcdir)/emulparams/aixrs6.sh \
+  $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS}
+
+ealpha.c: $(srcdir)/emulparams/alpha.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/alpha.sc ${GEN_DEPENDS}
+
+ealphavms.c: $(srcdir)/emulparams/alphavms.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/vms.em \
+  $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/alphavms.sc ${GEN_DEPENDS}
+
+earcv2elf.c: $(srcdir)/emulparams/arcv2elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elfarcv2.sc ${GEN_DEPENDS}
+
+earcv2elfx.c: $(srcdir)/emulparams/arcv2elfx.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elfarcv2.sc ${GEN_DEPENDS}
+
+earcelf.c: $(srcdir)/emulparams/arcelf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elfarc.sc ${GEN_DEPENDS}
+
+earcelf_prof.c: $(srcdir)/emulparams/arcelf_prof.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elfarc.sc ${GEN_DEPENDS}
+
+#for linux on arc
+earclinux.c: $(srcdir)/emulparams/arclinux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/arclinux.em \
+  $(srcdir)/scripttempl/arclinux.sc ${GEN_DEPENDS}
+
+earclinux_nps.c: $(srcdir)/emulparams/arclinux_nps.sh \
+  $(srcdir)/emulparams/arc-nps.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/arclinux.em \
+  $(srcdir)/scripttempl/arclinux.sc ${GEN_DEPENDS}
+
+earclinux_prof.c: $(srcdir)/emulparams/arclinux_prof.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/arclinux.em \
+  $(srcdir)/scripttempl/arclinux.sc ${GEN_DEPENDS}
+
+earm_wince_pe.c: $(srcdir)/emulparams/arm_wince_pe.sh \
+  $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+
+earmelf.c: $(srcdir)/emulparams/armelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_stmos.c: $(srcdir)/emulparams/armelf_stmos.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \
+  $(srcdir)/emulparams/armelf.sh $(srcdir)/emulparams/elf_fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_fuchsia.c: $(srcdir)/emulparams/armelf_fuchsia.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_linux_eabi.c: $(srcdir)/emulparams/armelf_linux_eabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_linux_fdpiceabi.c: $(srcdir)/emulparams/armelf_linux_fdpiceabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_nacl.c: $(srcdir)/emulparams/armelf_nacl.sh \
+  $(srcdir)/emulparams/armelf_linux_eabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(srcdir)/emulparams/elf_nacl.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \
+  $(srcdir)/emulparams/armelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_phoenix.c: $(srcdir)/emulparams/armelf_phoenix.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \
+  $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \
+  $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+earmelfb.c: $(srcdir)/emulparams/armelfb.sh $(srcdir)/emulparams/armelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelfb_fbsd.c: $(srcdir)/emulparams/armelfb_fbsd.sh \
+  $(srcdir)/emulparams/armelf_fbsd.sh \
+  $(srcdir)/emulparams/armelf.sh $(srcdir)/emulparams/elf_fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelfb_fuchsia.c: $(srcdir)/emulparams/armelfb_fuchsia.sh \
+  $(srcdir)/emulparams/armelf_fuchsia.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelfb_linux_eabi.c: $(srcdir)/emulparams/armelfb_linux_eabi.sh \
+  $(srcdir)/emulparams/armelf_linux_eabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelfb_linux_fdpiceabi.c: $(srcdir)/emulparams/armelfb_linux_fdpiceabi.sh \
+  $(srcdir)/emulparams/armelf_linux_fdpiceabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelfb_nacl.c: $(srcdir)/emulparams/armelfb_nacl.sh \
+  $(srcdir)/emulparams/armelf_nacl.sh \
+  $(srcdir)/emulparams/armelf_linux_eabi.sh \
+  $(srcdir)/emulparams/armelf_linux.sh \
+  $(srcdir)/emulparams/elf_nacl.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmelfb_nbsd.c: $(srcdir)/emulparams/armelfb_nbsd.sh \
+  $(srcdir)/emulparams/armelf_nbsd.sh \
+  $(srcdir)/emulparams/armelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmnto.c: $(srcdir)/emulparams/armnto.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+earmpe.c: $(srcdir)/emulparams/armpe.sh \
+  $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+
+earmsymbian.c: $(srcdir)/emulparams/armsymbian.sh \
+  $(srcdir)/emulparams/armelf.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/armbpabi.sc \
+  ${GEN_DEPENDS}
+
+eavr1.c: $(srcdir)/emulparams/avr1.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr2.c: $(srcdir)/emulparams/avr2.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr25.c: $(srcdir)/emulparams/avr25.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr3.c: $(srcdir)/emulparams/avr3.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr31.c: $(srcdir)/emulparams/avr31.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr35.c: $(srcdir)/emulparams/avr35.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr4.c: $(srcdir)/emulparams/avr4.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr5.c: $(srcdir)/emulparams/avr5.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr51.c: $(srcdir)/emulparams/avr51.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavr6.c: $(srcdir)/emulparams/avr6.sh $(srcdir)/emultempl/avrelf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrxmega2.c: $(srcdir)/emulparams/avrxmega2.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrxmega3.c: $(srcdir)/emulparams/avrxmega3.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrxmega4.c: $(srcdir)/emulparams/avrxmega4.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrxmega5.c: $(srcdir)/emulparams/avrxmega5.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrxmega6.c: $(srcdir)/emulparams/avrxmega6.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrxmega7.c: $(srcdir)/emulparams/avrxmega7.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+eavrtiny.c: $(srcdir)/emulparams/avrtiny.sh \
+  $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+  ${GEN_DEPENDS}
+
+ecrisaout.c: $(srcdir)/emulparams/crisaout.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/crisaout.sc ${GEN_DEPENDS}
+
+ecriself.c: $(srcdir)/emulparams/criself.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ed10velf.c: $(srcdir)/emulparams/d10velf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS}
+
+ed30v_e.c: $(srcdir)/emulparams/d30v_e.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS}
+
+ed30v_o.c: $(srcdir)/emulparams/d30v_o.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS}
+
+ed30velf.c: $(srcdir)/emulparams/d30velf.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS}
+
+eelf32_dlx.c: $(srcdir)/emulparams/elf32_dlx.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/dlx.sc ${GEN_DEPENDS}
+
+eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32_sparc_sol2.c: $(srcdir)/emulparams/elf32_sparc_sol2.sh \
+  $(srcdir)/emulparams/elf32_sparc.sh \
+  $(srcdir)/emulparams/solaris2.sh \
+  $(srcdir)/emultempl/solaris2.em $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \
+  $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \
+  $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32_spu.c: $(srcdir)/emulparams/elf32_spu.sh $(srcdir)/emultempl/spuelf.em \
+  $(srcdir)/emultempl/spu_ovl.@OBJEXT@_c $(srcdir)/emultempl/spu_icache.@OBJEXT@_c \
+  ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+$(srcdir)/emultempl/spu_ovl.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_ovl.S
+       if ../gas/as-new --version \
+               | grep 'target.*spu' >/dev/null 2>/dev/null; then \
+         cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_ovl.S spu_ovl.s; \
+         ../gas/as-new -o spu_ovl.@OBJEXT@ spu_ovl.s; \
+         ../binutils/bin2c <spu_ovl.@OBJEXT@ >$@; \
+       fi
+$(srcdir)/emultempl/spu_icache.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_icache.S
+       if ../gas/as-new --version \
+               | grep 'target.*spu' >/dev/null 2>/dev/null; then \
+         cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_icache.S spu_icache.s; \
+         ../gas/as-new -o spu_icache.@OBJEXT@ spu_icache.s; \
+         ../binutils/bin2c <spu_icache.@OBJEXT@ >$@; \
+       fi
+eelf32_tic6x_be.c: $(srcdir)/emulparams/elf32_tic6x_be.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
+  ${GEN_DEPENDS}
+
+eelf32_tic6x_elf_be.c: $(srcdir)/emulparams/elf32_tic6x_elf_be.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc  $(srcdir)/emultempl/tic6xdsbt.em \
+  ${GEN_DEPENDS}
+
+eelf32_tic6x_elf_le.c: $(srcdir)/emulparams/elf32_tic6x_elf_le.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc  $(srcdir)/emultempl/tic6xdsbt.em \
+  ${GEN_DEPENDS}
+
+eelf32_tic6x_le.c: $(srcdir)/emulparams/elf32_tic6x_le.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
+  ${GEN_DEPENDS}
+
+eelf32_tic6x_linux_be.c: $(srcdir)/emulparams/elf32_tic6x_linux_be.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc  $(srcdir)/emultempl/tic6xdsbt.em \
+  ${GEN_DEPENDS}
+
+eelf32_tic6x_linux_le.c: $(srcdir)/emulparams/elf32_tic6x_linux_le.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc  $(srcdir)/emultempl/tic6xdsbt.em \
+  ${GEN_DEPENDS}
+
+eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \
+  $(srcdir)/emulparams/elf32am33lin.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32bfin.c: $(srcdir)/emulparams/elf32bfin.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/bfin.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32bfinfd.c: $(srcdir)/emulparams/elf32bfinfd.sh \
+  $(srcdir)/emulparams/elf32bfin.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/bfin.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32bmipn32.c: $(srcdir)/emulparams/elf32bmipn32.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) $(srcdir)/emultempl/irix.em \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32btsmip_fbsd.c: $(srcdir)/emulparams/elf32btsmip_fbsd.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32btsmipn32_fbsd.c: $(srcdir)/emulparams/elf32btsmipn32_fbsd.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32cr16.c: $(srcdir)/emulparams/elf32cr16.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/cr16elf.em \
+  $(srcdir)/scripttempl/elf32cr16.sc ${GEN_DEPENDS}
+
+eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS}
+
+eelf32crx.c: $(srcdir)/emulparams/elf32crx.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \
+  $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS}
+
+eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ebmipvxworks.c: $(srcdir)/emulparams/elf32ebmipvxworks.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emulparams/vxworks.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mipself.em \
+  $(srcdir)/emultempl/vxworks.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32elmip.c: $(srcdir)/emulparams/elf32elmip.sh \
+  $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32elmipvxworks.c: $(srcdir)/emulparams/elf32elmipvxworks.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emulparams/vxworks.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mipself.em \
+  $(srcdir)/emultempl/vxworks.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lr5900.c: $(srcdir)/emulparams/elf32lr5900.sh \
+  $(srcdir)/emulparams/elf32bmip.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32lr5900n32.c: $(srcdir)/emulparams/elf32lr5900n32.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32epiphany.c: $(srcdir)/emulparams/elf32epiphany.sh \
+  $(ELF_DEPS) ${GEN_DEPENDS}
+
+eelf32epiphany_4x4.c: $(srcdir)/emulparams/elf32epiphany_4x4.sh \
+  $(srcdir)/emultempl/elf32.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/epiphany_4x4.sc ${GEN_DEPENDS}
+
+eelf32fr30.c: $(srcdir)/emulparams/elf32fr30.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32frvfd.c: $(srcdir)/emulparams/elf32frvfd.sh \
+  $(srcdir)/emulparams/elf32frv.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ft32.c: $(srcdir)/emulparams/elf32ft32.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS}
+
+eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS}
+
+eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \
+  $(srcdir)/emulparams/elf32b4300.sh $(srcdir)/emulparams/elf32bmip.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32lm32.c: $(srcdir)/emulparams/elf32lm32.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lm32fd.c: $(srcdir)/emulparams/elf32lm32fd.sh \
+  $(srcdir)/emulparams/elf32lm32.sh $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \
+  $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \
+  $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/elf32ppc.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lppclinux.c: $(srcdir)/emulparams/elf32lppclinux.sh \
+  $(srcdir)/emulparams/elf32lppc.sh $(srcdir)/emulparams/elf32ppc.sh \
+  $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lppcnto.c: $(srcdir)/emulparams/elf32lppcnto.sh \
+  $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lppcsim.c: $(srcdir)/emulparams/elf32lppcsim.sh \
+  $(srcdir)/emulparams/elf32lppc.sh $(srcdir)/emulparams/elf32ppc.sh \
+  $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32lriscv.c: $(srcdir)/emulparams/elf32lriscv.sh \
+  $(srcdir)/emulparams/elf32lriscv-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/riscvelf.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32lriscv_ilp32f.c: $(srcdir)/emulparams/elf32lriscv_ilp32f.sh \
+  $(srcdir)/emulparams/elf32lriscv-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/riscvelf.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32lriscv_ilp32.c: $(srcdir)/emulparams/elf32lriscv_ilp32.sh \
+  $(srcdir)/emulparams/elf32lriscv-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/riscvelf.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \
+  $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \
+  $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32ltsmip_fbsd.c: $(srcdir)/emulparams/elf32ltsmip_fbsd.sh \
+  $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \
+  $(srcdir)/emulparams/elf32btsmipn32.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ltsmipn32_fbsd.c: $(srcdir)/emulparams/elf32ltsmipn32_fbsd.sh \
+  $(srcdir)/emulparams/elf32btsmipn32.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32m32c.c: $(srcdir)/emulparams/elf32m32c.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32mbel_linux.c: $(srcdir)/emulparams/elf32mbel_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32mb_linux.c: $(srcdir)/emulparams/elf32mb_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32mep.c: $(srcdir)/emulparams/elf32mep.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/mep.sc ${GEN_DEPENDS}
+
+eelf32metag.c: $(srcdir)/emulparams/elf32metag.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/metagelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32microblazeel.c: $(srcdir)/emulparams/elf32microblazeel.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS}
+
+eelf32microblaze.c: $(srcdir)/emulparams/elf32microblaze.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS}
+
+eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32moxie.c: $(srcdir)/emulparams/elf32moxie.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+emoxiebox.c: $(srcdir)/emulparams/moxiebox.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32mt.c: $(srcdir)/emulparams/elf32mt.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32or1k.c: $(srcdir)/emulparams/elf32or1k.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32or1k_linux.c: $(srcdir)/emulparams/elf32or1k_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \
+  $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \
+  $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ppclinux.c: $(srcdir)/emulparams/elf32ppclinux.sh \
+  $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ppcnto.c: $(srcdir)/emulparams/elf32ppcnto.sh \
+  $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \
+  $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ppcvxworks.c: $(srcdir)/emulparams/elf32ppcvxworks.sh \
+  $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emulparams/vxworks.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc32elf.em ldemul-list.h \
+  $(srcdir)/emultempl/vxworks.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32rl78.c: $(srcdir)/emulparams/elf32rl78.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32rx.c: $(srcdir)/emulparams/elf32rx.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32tilegx.c: $(srcdir)/emulparams/elf32tilegx.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32tilegx_be.c: $(srcdir)/emulparams/elf32tilegx_be.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32tilepro.c: $(srcdir)/emulparams/elf32tilepro.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32visium.c: $(srcdir)/emulparams/elf32visium.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/visium.sc ${GEN_DEPENDS}
+
+eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32xc16xl.c: $(srcdir)/emulparams/elf32xc16xl.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32xc16xs.c: $(srcdir)/emulparams/elf32xc16xs.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS}
+
+eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/xtensaelf.em $(INCDIR)/xtensa-config.h \
+  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/xtensa.h \
+  $(srcdir)/scripttempl/elfxtensa.sc ${GEN_DEPENDS}
+
+eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS}
+
+eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
+  $(srcdir)/emulparams/elf_i386.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_i386_nacl.c: $(srcdir)/emulparams/elf_i386_nacl.sh \
+  $(srcdir)/emulparams/elf_i386.sh \
+  $(srcdir)/emulparams/elf_nacl.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_i386_sol2.c: $(srcdir)/emulparams/elf_i386_sol2.sh \
+  $(srcdir)/emulparams/solaris2.sh \
+  $(srcdir)/emultempl/solaris2.em \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_i386_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \
+  $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_iamcu.c: $(srcdir)/emulparams/elf_iamcu.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_s390.c: $(srcdir)/emulparams/elf_s390.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300elf.c: $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300elf_linux.c: $(srcdir)/emulparams/h8300elf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300helf_linux.c: $(srcdir)/emulparams/h8300helf_linux.sh \
+  $(srcdir)/emulparams/h8300elf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300hnelf.c: $(srcdir)/emulparams/h8300hnelf.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300self.c: $(srcdir)/emulparams/h8300self.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300self_linux.c: $(srcdir)/emulparams/h8300self_linux.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300snelf.c: $(srcdir)/emulparams/h8300snelf.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300sxelf.c: $(srcdir)/emulparams/h8300sxelf.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300sxelf_linux.c: $(srcdir)/emulparams/h8300sxelf_linux.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eh8300sxnelf.c: $(srcdir)/emulparams/h8300sxnelf.sh \
+  $(srcdir)/emulparams/h8300elf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ehppaelf.c: $(srcdir)/emulparams/hppaelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \
+  $(srcdir)/scripttempl/hppaelf.sc ${GEN_DEPENDS}
+
+ehppalinux.c: $(srcdir)/emulparams/hppalinux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ehppanbsd.c: $(srcdir)/emulparams/hppanbsd.sh \
+  $(srcdir)/emulparams/hppaelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ehppaobsd.c: $(srcdir)/emulparams/hppaobsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ei386beos.c: $(srcdir)/emulparams/i386beos.sh \
+  $(srcdir)/emultempl/beos.em $(srcdir)/scripttempl/i386beos.sc ${GEN_DEPENDS}
+
+ei386bsd.c: $(srcdir)/emulparams/i386bsd.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
+
+ei386go32.c: $(srcdir)/emulparams/i386go32.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386go32.sc ${GEN_DEPENDS}
+
+ei386lynx.c: $(srcdir)/emulparams/i386lynx.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ei386moss.c: $(srcdir)/emulparams/i386moss.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ei386msdos.c: $(srcdir)/emulparams/i386msdos.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386msdos.sc ${GEN_DEPENDS}
+
+ei386nto.c:    $(srcdir)/emulparams/i386nto.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ei386pe.c: $(srcdir)/emulparams/i386pe.sh \
+  $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+
+ei386pe_posix.c: $(srcdir)/emulparams/i386pe_posix.sh \
+  $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+
+ei386pep.c: $(srcdir)/emulparams/i386pep.sh \
+  $(srcdir)/emultempl/pep.em $(srcdir)/scripttempl/pep.sc ${GEN_DEPENDS}
+
+em32relf.c: $(srcdir)/emulparams/m32relf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+em32relf_linux.c: $(srcdir)/emulparams/m32relf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+em32rlelf.c: $(srcdir)/emulparams/m32rlelf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+em68hc11elf.c: $(srcdir)/emulparams/m68hc11elf.sh \
+  $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS}
+
+em68hc11elfb.c: $(srcdir)/emulparams/m68hc11elfb.sh \
+  $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS}
+
+em68hc12elf.c: $(srcdir)/emulparams/m68hc12elf.sh \
+  $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS}
+
+em68hc12elfb.c: $(srcdir)/emulparams/m68hc12elfb.sh \
+  $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS}
+
+em68kelf.c: $(srcdir)/emulparams/m68kelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/m68kelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+em68kelfnbsd.c: $(srcdir)/emulparams/m68kelfnbsd.sh \
+  $(srcdir)/emulparams/m68kelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/m68kelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+em9s12zelf.c: $(srcdir)/emulparams/m9s12zelf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/generic.em \
+  $(srcdir)/scripttempl/elfm9s12z.sc ${GEN_DEPENDS}
+
+emcorepe.c: $(srcdir)/emulparams/mcorepe.sh \
+  $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+
+emn10200.c: $(srcdir)/emulparams/mn10200.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+emn10300.c: $(srcdir)/emulparams/mn10300.sh \
+  $(srcdir)/emulparams/mn10200.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+emsp430elf.c: $(srcdir)/emulparams/msp430elf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/msp430.em \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc ${GEN_DEPENDS}
+
+emsp430X.c: $(srcdir)/emulparams/msp430elf.sh $(srcdir)/emulparams/msp430X.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/msp430.em \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc ${GEN_DEPENDS}
+
+ends32elf.c: $(srcdir)/emulparams/nds32elf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/nds32elf.em \
+  $(srcdir)/scripttempl/nds32elf.sc ${GEN_DEPENDS}
+
+ends32elf16m.c: $(srcdir)/emulparams/nds32elf16m.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/nds32elf.em \
+  $(srcdir)/scripttempl/nds32elf.sc ${GEN_DEPENDS}
+
+ends32belf.c: $(srcdir)/emulparams/nds32belf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/nds32elf.em \
+  $(srcdir)/scripttempl/nds32elf.sc ${GEN_DEPENDS}
+
+ends32belf16m.c: $(srcdir)/emulparams/nds32belf16m.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/nds32elf.em \
+  $(srcdir)/scripttempl/nds32elf.sc ${GEN_DEPENDS}
+
+ends32elf_linux.c: $(srcdir)/emulparams/nds32elf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/nds32elf.em \
+  $(srcdir)/scripttempl/nds32elf.sc ${GEN_DEPENDS}
+
+ends32belf_linux.c: $(srcdir)/emulparams/nds32belf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/nds32elf.em \
+  $(srcdir)/scripttempl/nds32elf.sc ${GEN_DEPENDS}
+
+enios2elf.c: $(srcdir)/emulparams/nios2elf.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/nios2elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+enios2linux.c: $(srcdir)/emulparams/nios2linux.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/nios2elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ens32knbsd.c:  $(srcdir)/emulparams/ns32knbsd.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/netbsd.em \
+  $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
+
+eaarch64elf.c: $(srcdir)/emulparams/aarch64elf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64elf32.c: $(srcdir)/emulparams/aarch64elf32.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64elfb.c: $(srcdir)/emulparams/aarch64elfb.sh $(srcdir)/emulparams/aarch64elf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aarch64elf32.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64cloudabi.c: $(srcdir)/emulparams/aarch64cloudabi.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64cloudabib.c: $(srcdir)/emulparams/aarch64cloudabib.sh $(srcdir)/emulparams/aarch64cloudabi.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64fbsd.c: $(srcdir)/emulparams/aarch64fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64fbsdb.c: $(srcdir)/emulparams/aarch64fbsdb.sh $(srcdir)/emulparams/aarch64fbsd.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64linuxb.c: $(srcdir)/emulparams/aarch64linuxb.sh $(srcdir)/emulparams/aarch64linux.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64linux32.c: $(srcdir)/emulparams/aarch64linux32.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eaarch64linux32b.c: $(srcdir)/emulparams/aarch64linux32b.sh $(srcdir)/emulparams/aarch64linux32.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
+
+epdp11.c: $(srcdir)/emulparams/pdp11.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
+
+epjelf.c: $(srcdir)/emulparams/pjelf.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+epjlelf.c: $(srcdir)/emulparams/pjlelf.sh $(srcdir)/emulparams/pjelf.sh \
+  $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eppclynx.c: $(srcdir)/emulparams/ppclynx.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eppcmacos.c:   $(srcdir)/emulparams/ppcmacos.sh \
+  $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS}
+
+eppcpe.c: $(srcdir)/emulparams/ppcpe.sh \
+  $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/ppcpe.sc ${GEN_DEPENDS}
+
+epruelf.c: $(srcdir)/emulparams/pruelf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/pru.sc \
+  $(srcdir)/emultempl/pruelf.em ${GEN_DEPENDS}
+
+escore3_elf.c: $(srcdir)/emulparams/score3_elf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/scoreelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+escore7_elf.c: $(srcdir)/emulparams/score3_elf.sh \
+  $(srcdir)/emulparams/score7_elf.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/scoreelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+esh.c: $(srcdir)/emulparams/sh.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS}
+
+eshelf.c: $(srcdir)/emulparams/shelf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshelf_fd.c: $(srcdir)/emulparams/shelf_fd.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshelf_linux.c: $(srcdir)/emulparams/shelf_linux.sh \
+  $(srcdir)/emulparams/shlelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshelf_nbsd.c: $(srcdir)/emulparams/shelf_nbsd.sh \
+  $(srcdir)/emulparams/shelf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshelf_uclinux.c: $(srcdir)/emulparams/shelf_uclinux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshelf_vxworks.c: $(srcdir)/emulparams/shelf_vxworks.sh \
+  $(srcdir)/emulparams/vxworks.sh $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc \
+  $(srcdir)/emultempl/vxworks.em ${GEN_DEPENDS}
+
+eshl.c: $(srcdir)/emulparams/shl.sh \
+  $(srcdir)/emulparams/sh.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS}
+
+eshlelf.c: $(srcdir)/emulparams/shlelf.sh \
+  $(srcdir)/emulparams/shelf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshlelf_fd.c: $(srcdir)/emulparams/shlelf_fd.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshlelf_linux.c: $(srcdir)/emulparams/shlelf_linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \
+  $(srcdir)/emulparams/shelf_nbsd.sh \
+  $(srcdir)/emulparams/shelf.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eshlelf_vxworks.c: $(srcdir)/emulparams/shlelf_vxworks.sh \
+  $(srcdir)/emulparams/shelf_vxworks.sh $(srcdir)/emulparams/vxworks.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/vxworks.em \
+  ${GEN_DEPENDS}
+
+eshpe.c: $(srcdir)/emulparams/shpe.sh \
+  $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+
+etic30aout.c: $(srcdir)/emulparams/tic30aout.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic30aout.sc ${GEN_DEPENDS}
+
+etic30coff.c: $(srcdir)/emulparams/tic30coff.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic30coff.sc ${GEN_DEPENDS}
+
+etic3xcoff.c: $(srcdir)/emulparams/tic3xcoff.sh \
+  $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS}
+
+etic3xcoff_onchip.c: $(srcdir)/emulparams/tic3xcoff_onchip.sh \
+  $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS}
+
+etic4xcoff.c: $(srcdir)/emulparams/tic4xcoff.sh \
+  $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS}
+
+etic54xcoff.c: $(srcdir)/emulparams/tic54xcoff.sh \
+  $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic54xcoff.sc ${GEN_DEPENDS}
+
+etic80coff.c: $(srcdir)/emulparams/tic80coff.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic80coff.sc ${GEN_DEPENDS}
+
+ev850.c: $(srcdir)/emulparams/v850.sh $(srcdir)/emultempl/v850elf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS}
+
+ev850_rh850.c: $(srcdir)/emulparams/v850_rh850.sh $(srcdir)/emultempl/v850elf.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/v850_rh850.sc ${GEN_DEPENDS}
+
+evanilla.c: $(srcdir)/emulparams/vanilla.sh \
+  $(srcdir)/emultempl/vanilla.em $(srcdir)/scripttempl/vanilla.sc ${GEN_DEPENDS}
+
+evaxnbsd.c: $(srcdir)/emulparams/vaxnbsd.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
+
+exgateelf.c: $(srcdir)/emulparams/xgateelf.sh \
+  $(srcdir)/emultempl/generic.em $(ELF_DEPS) \
+  $(srcdir)/scripttempl/elfxgate.sc ${GEN_DEPENDS}
+
+ez80.c: $(srcdir)/emulparams/z80.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/z80.em \
+  $(srcdir)/scripttempl/z80.sc ${GEN_DEPENDS}
+
+ez8001.c: $(srcdir)/emulparams/z8001.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/z8000.sc ${GEN_DEPENDS}
+
+ez8002.c: $(srcdir)/emulparams/z8002.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/z8000.sc ${GEN_DEPENDS}
+
+eelf32_x86_64.c: $(srcdir)/emulparams/elf32_x86_64.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf32_x86_64_nacl.c: $(srcdir)/emulparams/elf32_x86_64_nacl.sh \
+  $(srcdir)/emulparams/elf32_x86_64.sh \
+  $(srcdir)/emulparams/elf_nacl.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \
+  $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64_ia64_fbsd.c: $(srcdir)/emulparams/elf64_ia64_fbsd.sh \
+  $(srcdir)/emulparams/elf64_ia64.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \
+  $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64_ia64_vms.c: $(srcdir)/emulparams/elf64_ia64_vms.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/vms.em \
+  $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/ia64vms.sc ${GEN_DEPENDS}
+
+eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \
+  $(srcdir)/emultempl/s390.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \
+  $(srcdir)/emulparams/elf64_sparc.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64_sparc_sol2.c: $(srcdir)/emulparams/elf64_sparc_sol2.sh \
+  $(srcdir)/emulparams/elf64_sparc.sh \
+  $(srcdir)/emulparams/solaris2.sh \
+  $(srcdir)/emultempl/solaris2.em \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64alpha_fbsd.c: $(srcdir)/emulparams/elf64alpha_fbsd.sh \
+  $(srcdir)/emulparams/elf64alpha.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \
+  $(srcdir)/emulparams/elf64alpha.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \
+  $(srcdir)/emulparams/elf64bmip-defs.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \
+  $(srcdir)/emulparams/elf64bmip-defs.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64btsmip_fbsd.c: $(srcdir)/emulparams/elf64btsmip_fbsd.sh \
+  $(srcdir)/emulparams/elf64bmip-defs.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf64hppa.sc ${GEN_DEPENDS}
+
+eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \
+  $(srcdir)/emulparams/elf64ppc.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc64elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64lriscv.c: $(srcdir)/emulparams/elf64lriscv.sh \
+  $(srcdir)/emulparams/elf64lriscv-defs.sh \
+  $(srcdir)/emulparams/elf32lriscv-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/riscvelf.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf64lriscv_lp64f.c: $(srcdir)/emulparams/elf64lriscv_lp64f.sh \
+  $(srcdir)/emulparams/elf64lriscv-defs.sh \
+  $(srcdir)/emulparams/elf32lriscv-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/riscvelf.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf64lriscv_lp64.c: $(srcdir)/emulparams/elf64lriscv_lp64.sh \
+  $(srcdir)/emulparams/elf64lriscv-defs.sh \
+  $(srcdir)/emulparams/elf32lriscv-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/riscvelf.em $(srcdir)/scripttempl/elf.sc \
+  ${GEN_DEPENDS}
+
+eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \
+  $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64ltsmip_fbsd.c: $(srcdir)/emulparams/elf64ltsmip_fbsd.sh \
+  $(srcdir)/emulparams/elf64btsmip_fbsd.sh $(srcdir)/emulparams/elf64bmip-defs.sh \
+  $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
+  $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/mmix-elfnmmo.em \
+  $(srcdir)/emultempl/mmixelf.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc64elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64ppc_fbsd.c: $(srcdir)/emulparams/elf64ppc_fbsd.sh \
+  $(srcdir)/emulparams/dynamic_undefined_weak.sh \
+  $(srcdir)/emultempl/ppc64elf.em ldemul-list.h \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64rdos.c: $(srcdir)/emulparams/elf64rdos.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64tilegx.c: $(srcdir)/emulparams/elf64tilegx.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf64tilegx_be.c: $(srcdir)/emulparams/elf64tilegx_be.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_l1om.c: $(srcdir)/emulparams/elf_l1om.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_l1om_fbsd.c: $(srcdir)/emulparams/elf_l1om_fbsd.sh \
+  $(srcdir)/emulparams/elf_l1om.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_k1om.c: $(srcdir)/emulparams/elf_k1om.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_k1om_fbsd.c: $(srcdir)/emulparams/elf_k1om_fbsd.sh \
+  $(srcdir)/emulparams/elf_k1om.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_x86_64_cloudabi.c: $(srcdir)/emulparams/elf_x86_64_cloudabi.sh \
+  $(srcdir)/emulparams/elf_x86_64.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \
+  $(srcdir)/emulparams/elf_x86_64.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_x86_64_nacl.c: $(srcdir)/emulparams/elf_x86_64_nacl.sh \
+  $(srcdir)/emulparams/elf_x86_64.sh \
+  $(srcdir)/emulparams/elf_nacl.sh \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+eelf_x86_64_sol2.c: $(srcdir)/emulparams/elf_x86_64_sol2.sh \
+  $(srcdir)/emulparams/elf_x86_64.sh \
+  $(srcdir)/emulparams/solaris2.sh \
+  $(srcdir)/emultempl/solaris2.em \
+  $(ELF_X86_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \
+  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
+emmo.c: $(srcdir)/emulparams/mmo.sh $(srcdir)/emultempl/mmix-elfnmmo.em \
+  $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em \
+  $(srcdir)/emultempl/mmo.em $(srcdir)/scripttempl/DWARF.sc \
+  $(srcdir)/scripttempl/mmo.sc ${GEN_DEPENDS}
+
+
+# We need this for automake to use YLWRAP.
+EXTRA_ld_new_SOURCES = deffilep.y ldlex.l
+# Allow dependency tracking to work for these files, too.
+EXTRA_ld_new_SOURCES += pep-dll.c pe-dll.c
+
+ld_new_SOURCES = ldgram.y ldlex-wrapper.c lexsup.c ldlang.c mri.c ldctor.c ldmain.c \
+       ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c $(PLUGIN_C) \
+       ldbuildid.c
+ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \
+                     $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP)
+ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL)
+
+# Dependency tracking for the generated emulation files.
+EXTRA_ld_new_SOURCES += $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES)
+
+# This is the real libbfd.a created by libtool.
+TESTBFDLIB = @TESTBFDLIB@
+
+check-DEJAGNU: site.exp
+       srcroot=`cd $(srcdir) && pwd`; export srcroot; \
+       r=`pwd`; export r; \
+       LC_ALL=C; export LC_ALL; \
+       EXPECT=$(EXPECT); export EXPECT; \
+       runtest=$(RUNTEST); \
+       if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
+         $$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \
+               CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS_FOR_TARGET)" \
+               CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
+               CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \
+               OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \
+               LIBIBERTY="$(LIBIBERTY) $(LIBINTL)" LIBS="$(LIBS)" \
+               DO_COMPARE="`echo '$(do_compare)' | sed -e 's,\\$$,,g'`" \
+               $(RUNTESTFLAGS); \
+       else echo "WARNING: could not find \`runtest'" 1>&2; :;\
+       fi
+
+#
+# Build a dummy plugin using libtool.
+#
+if ENABLE_PLUGINS
+noinst_LTLIBRARIES = libldtestplug.la libldtestplug2.la \
+                    libldtestplug3.la libldtestplug4.la
+libldtestplug_la_SOURCES = testplug.c
+libldtestplug_la_CFLAGS= -g -O2
+libldtestplug_la_LDFLAGS = -no-undefined -rpath /nowhere
+libldtestplug2_la_SOURCES = testplug2.c
+libldtestplug2_la_CFLAGS= -g -O2
+libldtestplug2_la_LDFLAGS = -no-undefined -rpath /nowhere
+libldtestplug3_la_SOURCES = testplug3.c
+libldtestplug3_la_CFLAGS= -g -O2
+libldtestplug3_la_LDFLAGS = -no-undefined -rpath /nowhere
+libldtestplug4_la_SOURCES = testplug4.c
+libldtestplug4_la_CFLAGS= -g -O2
+libldtestplug4_la_LDFLAGS = -no-undefined -rpath /nowhere
+endif
+
+# DOCUMENTATION TARGETS
+# Manual configuration file; not usually attached to normal configuration,
+# because almost all configs use "gen" version of manual.
+#  Set DOCVER above to change.
+configdoc.texi:        ${DOCVER}-doc.texi
+       cp ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi
+       chmod u+w ./configdoc.texi
+
+# Build the man page from the texinfo file
+# The sed command removes the no-adjust Nroff command so that
+# the man output looks standard.
+ld.1: $(srcdir)/ld.texi configdoc.texi
+       touch $@
+       -$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texi > ld.pod
+       -($(POD2MAN) ld.pod | \
+               sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || \
+               (rm -f $@.T$$$$ && exit 1)
+       rm -f ld.pod
+
+MAINTAINERCLEANFILES = configdoc.texi ld.1
+
+# We want to reconfigure if configure.host or configure.tgt changes.
+# development.sh is used to determine -Werror default.
+CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host $(srcdir)/configure.tgt \
+       $(BFDDIR)/development.sh
+
+MOSTLYCLEANFILES = $(STAGESTUFF) ld1$(EXEEXT) ld2$(EXEEXT) ld3$(EXEEXT) \
+       ldemul-list.h crtbegin.@OBJEXT@ crtend.@OBJEXT@ ld.log ld.sum
+mostlyclean-local:
+       -rm -rf tmpdir
+CLEANFILES = dep.sed DEP DEPA DEP1 DEP2 spu_ovl.s spu_ovl.@OBJEXT@ spu_icache.s spu_icache.@OBJEXT@
+
+.PHONY: install-exec-local install-data-local
+
+install-exec-local: ld-new$(EXEEXT) install-binPROGRAMS
+       $(mkinstalldirs) $(DESTDIR)$(tooldir)/bin
+       n=`echo $(installed_linker) | sed '$(transform)'`; \
+       if test "$(bindir)" != "$(tooldir)/bin"; then \
+         rm -f $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
+         ln $(DESTDIR)$(bindir)/$$n$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT) >/dev/null 2>/dev/null \
+         || $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
+       fi; \
+       if test "x$(install_as_default)" = "xyes"; then \
+         ld=`echo ld | sed '$(transform)'`; \
+         rm -f $(DESTDIR)$(bindir)/$$ld$(EXEEXT); \
+         ln $(DESTDIR)$(bindir)/$$n$(EXEEXT) $(DESTDIR)$(bindir)/$$ld$(EXEEXT) >/dev/null 2>/dev/null \
+         || $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$$ld$(EXEEXT); \
+         if test "$(bindir)" != "$(tooldir)/bin"; then \
+           rm -f $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
+           ln $(DESTDIR)$(bindir)/$$n$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT) >/dev/null 2>/dev/null \
+           || $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
+         fi; \
+       fi
+
+install-data-local:
+       $(mkinstalldirs) $(DESTDIR)$(scriptdir)/ldscripts
+       for f in ldscripts/* ; do \
+         $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
+       done
+
+# Stuff that should be included in a distribution.  The diststuff
+# target is run by the taz target in ../Makefile.in.
+EXTRA_DIST = ldgram.c ldgram.h ldlex.c emultempl/spu_ovl.@OBJEXT@_c \
+            emultempl/spu_icache.@OBJEXT@_c deffilep.c deffilep.h $(man_MANS)
+diststuff: info $(EXTRA_DIST)
+
+# Both info (ld.info) and ld.1 depend on configdoc.texi.
+# But info isn't a direct target. Make info-recursive to depend on
+# ld.1 to support parallel build.
+info-recursive: ld.1
+
+DISTCLEANFILES = tdirs site.exp site.bak stringify.sed
+distclean-local:
+       rm -rf ldscripts
+
+MAINTAINERCLEANFILES += ld.info
diff --git a/arm-stmos/binutils-files/ld/configure.tgt b/arm-stmos/binutils-files/ld/configure.tgt
new file mode 100644 (file)
index 0000000..2ae4904
--- /dev/null
@@ -0,0 +1,868 @@
+# configure.tgt
+#
+#   Copyright (C) 2013-2018 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# This is the linker target specific file.  This is invoked by the
+# autoconf generated configure script.  Putting it in a separate shell
+# file lets us skip running autoconf when modifying target specific
+# information.
+
+# This file switches on the shell variable ${targ}, and sets the
+# following shell variables:
+#  targ_emul           name of linker emulation to use
+#  targ_extra_emuls    additional linker emulations to provide
+#  targ_extra_libpath  additional linker emulations using LIB_PATH
+#  targ_extra_ofiles   additional host-compiled objects needed by the emulation
+#  targ64_extra_emuls  additional linker emulations to provide if
+#                      --enable-64-bit-bfd is given or if host is 64 bit.
+#  targ64_extra_libpath        additional linker emulations using LIB_PATH if
+#                      --enable-64-bit-bfd is given or if host is 64 bit.
+#  NATIVE_LIB_DIRS     library directories to search on this host
+#                      (if we are a native or sysrooted linker)
+
+targ_extra_emuls=
+targ_extra_libpath=
+targ_extra_ofiles=
+targ64_extra_emuls=
+targ64_extra_libpath=
+
+# Please try to keep this table in alphabetic order - it makes it
+# much easier to lookup a specific archictecture.  Naturally any
+# architecture variants should be kept together even if their names
+# break the alpha sorting.
+case "${targ}" in
+aarch64_be-*-elf)      targ_emul=aarch64elfb
+                       targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
+aarch64-*-elf | aarch64-*-rtems*)
+                       targ_emul=aarch64elf
+                       targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;;
+aarch64-*-cloudabi*)   targ_emul=aarch64cloudabi
+                       targ_extra_emuls=aarch64cloudabib ;;
+aarch64-*-freebsd*)    targ_emul=aarch64fbsd
+                       targ_extra_emuls="aarch64fbsdb aarch64elf" ;;
+aarch64-*-fuchsia*)    targ_emul=aarch64elf
+                       targ_extra_emuls="aarch64elfb armelf armelfb" ;;
+aarch64_be-*-linux-gnu_ilp32)
+                       targ_emul=aarch64linux32b
+                       targ_extra_libpath="aarch64linuxb aarch64linux aarch64linux32 armelfb_linux_eabi armelf_linux_eabi"
+                       targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
+aarch64-*-linux-gnu_ilp32)
+                       targ_emul=aarch64linux32
+                       targ_extra_libpath="aarch64linux aarch64linuxb aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
+                       targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath" ;;
+aarch64_be-*-linux*)   targ_emul=aarch64linuxb
+                       targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
+                       targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
+aarch64-*-linux*)      targ_emul=aarch64linux
+                       targ_extra_libpath="aarch64linuxb aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
+                       targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath" ;;
+alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
+                       targ_emul=elf64alpha_fbsd
+                       targ_extra_emuls="elf64alpha alpha"
+                       tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'` ;;
+alpha*-*-linux*ecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha
+                       tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'` ;;
+alpha*-*-linux-*)      targ_emul=elf64alpha targ_extra_emuls=alpha
+                       tdir_alpha=`echo ${targ_alias} | sed -e 's/linux\(-gnu\)*/linux\1ecoff/'` ;;
+alpha*-*-osf*)         targ_emul=alpha ;;
+alpha*-*-gnu*)         targ_emul=elf64alpha ;;
+alpha*-*-netbsd*)      targ_emul=elf64alpha_nbsd ;;
+alpha*-*-openbsd*)     targ_emul=elf64alpha ;;
+alpha*-*-*vms*)                targ_emul=alphavms
+                       ;;
+arc*-*-elf*)           targ_emul=arcelf
+                       targ_extra_emuls="arcelf_prof arclinux arclinux_nps arclinux_prof arcv2elf arcv2elfx"
+                       ;;
+arc*-*-linux*)         case "${with_cpu}" in
+                       nps400) targ_emul=arclinux_nps
+                               targ_extra_emuls=arclinux
+                               ;;
+                       *)      targ_emul=arclinux
+                               targ_extra_emuls=arclinux_nps
+                               ;;
+                       esac
+                       targ_extra_emuls="${targ_extra_emuls} arclinux_prof arcelf arcelf_prof arcv2elf arcv2elfx"
+                       ;;
+arm*-*-cegcc*)         targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o"
+                       LIB_PATH='${tooldir}/lib/w32api' ;;
+arm-wince-pe | arm-*-wince | arm*-*-mingw32ce*)
+                       targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+arm-*-pe)              targ_emul=armpe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+arm*b-*-freebsd*)      targ_emul=armelfb_fbsd
+                       targ_extra_emuls="armelf_fbsd armelf" ;;
+arm*-*-freebsd* | arm-*-kfreebsd*-gnu)
+                       targ_emul=armelf_fbsd
+                       targ_extra_emuls="armelfb_fbsd armelf" ;;
+armeb-*-netbsdelf*)    targ_emul=armelfb_nbsd;
+                       targ_extra_emuls="armelf_nbsd armelf" ;;
+arm-*-netbsdelf*)      targ_emul=armelf_nbsd;
+                       targ_extra_emuls="armelfb_nbsd armelf" ;;
+arm-*-nto*)            targ_emul=armnto ;;
+arm-*-phoenix*)                targ_emul=armelf ;;
+armeb-*-elf | armeb-*-eabi*)
+                       targ_emul=armelfb ;;
+arm-*-elf | arm*-*-eabi* | arm-*-rtems*)
+                       targ_emul=armelf ;;
+arm-*-stmos*)           targ_emul=armelf_stmos;
+                        targ_extra_emuls=armelf ;;
+arm*-*-symbianelf*)    targ_emul=armsymbian;;
+arm-*-kaos*)           targ_emul=armelf ;;
+arm9e-*-elf)           targ_emul=armelf ;;
+arm*b-*-linux-*eabi*)  targ_emul=armelfb_linux_eabi
+                       targ_extra_emuls=armelf_linux_eabi
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+arm*b-*-linux-*)       targ_emul=armelfb_linux
+                       targ_extra_emuls="armelfb armelf armelf_linux"
+                       targ_extra_libpath="armelf_linux"
+                       ;;
+arm*-*-linux-*eabi*)   targ_emul=armelf_linux_eabi
+                       targ_extra_emuls="armelfb_linux_eabi"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+arm*-*-uclinuxfdpiceabi)
+                       targ_emul=armelf_linux_eabi
+                       targ_extra_emuls="armelfb_linux_eabi armelf_linux_fdpiceabi armelfb_linux_fdpiceabi"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+arm*-*-linux-*)                targ_emul=armelf_linux
+                       targ_extra_emuls="armelf armelfb armelfb_linux"
+                       targ_extra_libpath="armelfb_linux"
+                       ;;
+arm*b-*-nacl*)         targ_emul=armelfb_nacl
+                       targ_extra_emuls="armelf_nacl elf_i386_nacl"
+                       targ_extra_libpath=$targ_extra_emuls
+                       targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
+                       targ64_extra_libpath=$targ64_extra_emuls
+                       ;;
+arm*-*-nacl*)          targ_emul=armelf_nacl
+                       targ_extra_emuls="armelfb_nacl elf_i386_nacl"
+                       targ_extra_libpath=$targ_extra_emuls
+                       targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
+                       targ64_extra_libpath=$targ64_extra_emuls
+                       ;;
+arm*-*-uclinux*eabi*)  targ_emul=armelf_linux_eabi
+                       targ_extra_emuls=armelfb_linux_eabi
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+arm*-*-uclinux*)       targ_emul=armelf_linux
+                       targ_extra_emuls="armelf armelfb armelfb_linux"
+                       targ_extra_libpath="armelfb_linux"
+                       ;;
+arm-*-vxworks)         targ_emul=armelf_vxworks ;;
+arm*-*-conix*)         targ_emul=armelf ;;
+arm*-*-fuchsia*)       targ_emul=armelf_fuchsia
+                       targ_extra_emuls="armelfb_fuchsia armelf armelfb"
+                       ;;
+avr-*-*)               targ_emul=avr2
+                       targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny"
+                       ;;
+bfin-*-elf | bfin-*-rtems*)
+                       targ_emul=elf32bfin
+                       targ_extra_emuls="elf32bfinfd"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+bfin-*-uclinux*)       targ_emul=elf32bfin;
+                       targ_extra_emuls="elf32bfinfd"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+bfin-*-linux-uclibc*)  targ_emul=elf32bfinfd;
+                       targ_extra_emuls="elf32bfin"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+cr16-*-elf*)           targ_emul=elf32cr16 ;;
+cr16c-*-elf*)          targ_emul=elf32cr16c
+                       ;;
+cris-*-*aout*)         targ_emul=crisaout
+                       targ_extra_emuls="criself crislinux"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+cris-*-linux-* | crisv32-*-linux-*)
+                       targ_emul=crislinux ;;
+cris-*-* | crisv32-*-*)        targ_emul=criself
+                       targ_extra_emuls="crisaout crislinux"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+crx-*-elf*)            targ_emul=elf32crx
+                       ;;
+d10v-*-*)              targ_emul=d10velf ;;
+d30v-*-*ext*)          targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
+d30v-*-*onchip*)       targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;
+d30v-*-*)              targ_emul=d30velf; targ_extra_emuls="d30v_e d30v_o"
+                       ;;
+dlx-*-elf*)            targ_emul=elf32_dlx
+                       ;;
+epiphany-*-*)          targ_emul=elf32epiphany
+                       targ_extra_emuls="elf32epiphany_4x4"
+                       ;;
+fido*-*-elf*)          targ_emul=m68kelf ;;
+fr30-*-*)              targ_emul=elf32fr30
+                       ;;
+frv-*-*linux*)         targ_emul=elf32frvfd ;;
+frv-*-*)               targ_emul=elf32frv ; targ_extra_emuls="elf32frvfd"
+                       ;;
+moxie-*-moxiebox*)     targ_emul=moxiebox
+                       ;;
+moxie-*-*)             targ_emul=elf32moxie
+                       ;;
+h8300-*-elf* | h8300-*-rtems*)
+                       targ_emul=h8300elf;
+                       targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf" ;;
+h8300-*-linux*)
+                       targ_emul=h8300elf_linux;
+                       targ_extra_emuls="h8300helf_linux h8300self_linux h8300sxelf_linux" ;;
+hppa*64*-*-linux-*)    targ_emul=hppa64linux ;;
+hppa*64*-hpux*)                targ_emul=elf64hppa ;;
+hppa*-*-linux-*)       targ_emul=hppalinux ;;
+hppa*-*-*elf*)         targ_emul=hppaelf ;;
+hppa*-*-lites*)                targ_emul=hppaelf ;;
+hppa*-*-netbsd*)       targ_emul=hppanbsd ;;
+hppa*-*-openbsd*)      targ_emul=hppaobsd
+                       ;;
+i[3-7]86-*-nto-qnx*)   targ_emul=i386nto ;;
+i[3-7]86-*-go32)       targ_emul=i386go32 ;;
+i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
+i[3-7]86-*-lynxos*)    targ_emul=i386lynx ;;
+i[3-7]86-*-aros*)      targ_emul=elf_i386
+                       targ_extra_emuls=elf_iamcu ;;
+i[3-7]86-*-rdos*)      targ_emul=elf_i386
+                       targ_extra_emuls=elf_iamcu ;;
+x86_64-*-rdos*)                targ_emul=elf64rdos ;;
+x86_64-*-cloudabi*)    targ_emul=elf_x86_64_cloudabi ;;
+i[3-7]86-*-bsd)                targ_emul=i386bsd ;;
+i[3-7]86-*-bsd386)     targ_emul=i386bsd ;;
+i[3-7]86-*-bsdi*)      targ_emul=i386bsd ;;
+i[3-7]86-*-linux-*)    targ_emul=elf_i386
+                       targ_extra_emuls="elf_iamcu"
+                       targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
+                       targ64_extra_libpath="elf_x86_64 elf32_x86_64" ;;
+x86_64-*-linux-gnux32) targ_emul=elf32_x86_64
+                       targ_extra_emuls="elf_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om"
+                       targ_extra_libpath="elf_i386 elf_iamcu elf_x86_64 elf_l1om elf_k1om"
+                       tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
+                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` ;;
+x86_64-*-linux-*)      targ_emul=elf_x86_64
+                       targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om"
+                       targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
+                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
+i[3-7]86-*-redox*)     targ_emul=elf_i386
+                       targ_extra_emuls=elf_x86_64 ;;
+x86_64-*-redox*)       targ_emul=elf_x86_64
+                       targ_extra_emuls=elf_i386 ;;
+i[3-7]86-*-sysv[45]*)  targ_emul=elf_i386
+                       targ_extra_emuls=elf_iamcu ;;
+i[3-7]86-*-solaris2*)  targ_emul=elf_i386_sol2
+                       targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+x86_64-*-solaris2*)
+                       targ_emul=elf_x86_64_sol2
+                       targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu elf_l1om elf_k1om"
+                       targ_extra_libpath=$targ_extra_emuls
+                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
+i[3-7]86-*-unixware)   targ_emul=elf_i386
+                       targ_extra_emuls=elf_iamcu ;;
+i[3-7]86-*-solaris*)   targ_emul=elf_i386_ldso
+                       targ_extra_emuls="elf_i386"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+i[3-7]86-*-netbsdelf* | \
+i[3-7]86-*-netbsd*-gnu* | \
+i[3-7]86-*-knetbsd*-gnu)
+                       targ_emul=elf_i386
+                       targ_extra_emuls="elf_iamcu" ;;
+i[3-7]86-*-netbsdpe*)  targ_emul=i386pe
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+x86_64-*-netbsd*)      targ_emul=elf_x86_64
+                       targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om"
+                       tdir_elf_iamcu=`echo ${targ_alias} | \
+                           sed -e 's/x86_64/i386/'`
+                       case "${tdir_elf_iamcu}" in
+                       *-netbsdelf*)   ;;
+                       *)              tdir_elf_iamcu=`echo ${tdir_elf_iamcu} | \
+                                       sed -e 's/netbsd/netbsdelf/'`;;
+                       esac
+                       tdir_elf_i386=`echo ${targ_alias} | \
+                           sed -e 's/x86_64/i386/'`
+                       case "${tdir_elf_i386}" in
+                       *-netbsdelf*)   ;;
+                       *)              tdir_elf_i386=`echo ${tdir_elf_i386} | \
+                                       sed -e 's/netbsd/netbsdelf/'`;;
+                       esac ;;
+i[3-7]86-*-elfiamcu)   targ_emul=elf_iamcu
+                       targ_extra_emuls=elf_i386 ;;
+i[3-7]86-*-elf* | i[3-7]86-*-rtems*)
+                       targ_emul=elf_i386
+                       targ_extra_emuls=elf_iamcu ;;
+x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*)
+                       targ_emul=elf_x86_64
+                       targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
+                       targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
+                       tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+                       ;;
+i[3-7]86-*-kaos*)      targ_emul=elf_i386 ;;
+i[3-7]86-*-dragonfly*) targ_emul=elf_i386
+                       targ_extra_emuls="elf_iamcu i386bsd" ;;
+x86_64-*-dragonfly*)   targ_emul=elf_x86_64
+                       targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om" ;;
+i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
+                       targ_emul=elf_i386_fbsd
+                       targ_extra_emuls="elf_i386 elf_iamcu i386bsd" ;;
+x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
+                       targ_emul=elf_x86_64_fbsd
+                       targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_iamcu elf_l1om elf_l1om_fbsd elf_k1om elf_k1om_fbsd"
+                       targ_extra_libpath="elf_i386_fbsd"
+                       tdir_elf_i386_fbsd=`echo ${targ_alias} \
+                           | sed -e 's/x86_64/i386/'`
+                       tdir_elf_iamcu=`echo ${targ_alias} \
+                           | sed -e 's/x86_64/i386/'`
+                       tdir_elf_i386=`echo ${targ_alias} \
+                           | sed -e 's/x86_64/i386/'` ;;
+i[3-7]86-*-gnu*)       targ_emul=elf_i386
+                       targ_extra_emuls=elf_iamcu ;;
+i[3-7]86-*-msdos*)     targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
+i[3-7]86-*-moss*)      targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
+i[3-7]86-*-winnt*)     targ_emul=i386pe ;
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+i[3-7]86-*-pe)         targ_emul=i386pe ;
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+i[3-7]86-*-cygwin*)    targ_emul=i386pe ;
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;
+                       test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
+i[3-7]86-*-mingw32*)   targ_emul=i386pe ;
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
+                       targ_extra_emuls=i386pe ;
+                       targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
+x86_64-*-cygwin)       targ_emul=i386pep ;
+                       targ_extra_emuls=i386pe
+                       targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
+                       test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
+x86_64-*-mingw*)       targ_emul=i386pep ;
+                       targ_extra_emuls=i386pe
+                       targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
+i[3-7]86-*-interix*)   targ_emul=i386pe_posix;
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+i[3-7]86-*-beospe*)    targ_emul=i386beos ;;
+i[3-7]86-*-beos*)      targ_emul=elf_i386_be ;;
+i[3-7]86-*-vxworks*)   targ_emul=elf_i386_vxworks ;;
+i[3-7]86-*-chaos)      targ_emul=elf_i386_chaos
+                       ;;
+i[3-7]86-*-nacl*)      targ_emul=elf_i386_nacl
+                       targ_extra_emuls="armelf_nacl armelfb_nacl"
+                       targ_extra_libpath=$targ_extra_emuls
+                       targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
+                       targ64_extra_libpath=$targ64_extra_emuls
+                       ;;
+x86_64-*-nacl*)                targ_emul=elf32_x86_64_nacl
+                       targ_extra_emuls="elf_i386_nacl elf_x86_64_nacl armelf_nacl armelfb_nacl"
+                       targ_extra_libpath=$targ_extra_emuls
+                       tdir_elf_i386_nacl=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+                       ;;
+ia16-*-elf*)           targ_emul=elf_i386 targ_extra_emuls=i386msdos ;;
+ia64-*-elf*)           targ_emul=elf64_ia64 ;;
+ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)
+                       targ_emul=elf64_ia64_fbsd
+                       targ_extra_emuls="elf64_ia64" ;;
+ia64-*-netbsd*)                targ_emul=elf64_ia64 ;;
+ia64-*-linux*)         targ_emul=elf64_ia64 ;;
+ia64-*-*vms*)          targ_emul=elf64_ia64_vms ;;
+ia64-*-aix*)           targ_emul=elf64_aix
+                       ;;
+ip2k-*-elf)            targ_emul=elf32ip2k
+                       ;;
+iq2000-*-elf)          targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10"
+                       ;;
+lm32-*-*linux*)                targ_emul=elf32lm32fd ;;
+lm32-*-*)              targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd"
+                       ;;
+m32c-*-elf | m32c-*-rtems*)
+                       targ_emul=elf32m32c
+                       ;;
+m32r*le-*-elf*)                targ_emul=m32rlelf ;;
+m32r*-*-elf* | m32r*-*-rtems*)
+                       targ_emul=m32relf ;;
+m32r*le-*-linux-*)     targ_emul=m32rlelf_linux ;;
+m32r*-*-linux-*)       targ_emul=m32relf_linux
+                       ;;
+m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf
+                       targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
+m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf
+                       targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb" ;;
+m68*-*-netbsdelf*)     targ_emul=m68kelfnbsd ;;
+m68*-*-*)              targ_emul=m68kelf ;;
+s12z-*-*)              targ_emul=m9s12zelf
+                       ;;
+mcore-*-pe)            targ_emul=mcorepe ;
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+mcore-*-elf)           targ_emul=elf32mcore
+                       ;;
+mep-*-elf)             targ_emul=elf32mep ;;
+metag-*-*)             targ_emul=elf32metag ;;
+microblazeel*-linux*)  targ_emul="elf32mbel_linux"
+                       targ_extra_emuls="elf32mb_linux"
+                       ;;
+microblaze*-linux*)    targ_emul="elf32mb_linux"
+                       targ_extra_emuls="elf32mbel_linux"
+                       ;;
+microblazeel*)         targ_emul=elf32microblazeel
+                       targ_extra_emuls=elf32microblaze
+                       ;;
+microblaze*)           targ_emul=elf32microblaze
+                       targ_extra_emuls=elf32microblazeel
+                       ;;
+mips*-sgi-irix5*)      targ_emul=elf32bsmip ;;
+mips*-sgi-irix6*)      targ_emul=elf32bmipn32
+                       targ_extra_emuls="elf32bsmip elf64bmip"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*el-*-netbsd*)     targ_emul=elf32ltsmip
+                       targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
+                       ;;
+mips*-*-netbsd*)       targ_emul=elf32btsmip
+                       targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
+                       ;;
+mips64el-*-openbsd*)   targ_emul=elf64ltsmip
+                       targ_extra_emuls=elf64btsmip
+                       ;;
+mips64-*-openbsd*)     targ_emul=elf64btsmip
+                       targ_extra_emuls=elf64ltsmip
+                       ;;
+mips*vr4300el-*-elf*)  targ_emul=elf32l4300 ;;
+mips*vr4300-*-elf*)    targ_emul=elf32b4300 ;;
+mips*vr4100el-*-elf*)  targ_emul=elf32l4300 ;;
+mips*vr4100-*-elf*)    targ_emul=elf32b4300 ;;
+mips*vr5000el-*-elf*)  targ_emul=elf32l4300 ;;
+mips*vr5000-*-elf*)    targ_emul=elf32b4300 ;;
+mips*el-sde-elf* | mips*el-mti-elf* | mips*el-img-elf*)
+                       targ_emul=elf32ltsmip
+                       targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" ;;
+mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
+                       targ_emul=elf32btsmip
+                       targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
+mips64*el-ps2-elf*)    targ_emul=elf32lr5900n32
+                       targ_extra_emuls="elf32lr5900"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*el-ps2-elf*)      targ_emul=elf32lr5900
+                       targ_extra_emuls="elf32lr5900n32"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*el-*-elf*)                targ_emul=elf32elmip ;;
+mips*-*-elf* | mips*-*-rtems*)
+                       targ_emul=elf32ebmip ;;
+mips*el-*-vxworks*)    targ_emul=elf32elmipvxworks
+                       targ_extra_emuls="elf32ebmipvxworks" ;;
+mips*-*-vxworks*)      targ_emul=elf32ebmipvxworks
+                       targ_extra_emuls="elf32elmipvxworks" ;;
+mips*-*-windiss)       targ_emul=elf32mipswindiss ;;
+mips64*el-*-linux-*)   targ_emul=elf32ltsmipn32
+                       targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips64*-*-linux-*)     targ_emul=elf32btsmipn32
+                       targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*el-*-linux-*)     targ_emul=elf32ltsmip
+                       targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*-*-linux-*)       targ_emul=elf32btsmip
+                       targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
+                       targ_emul=elf32ltsmipn32_fbsd
+                       targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
+                       targ_emul=elf32btsmipn32_fbsd
+                       targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
+                       targ_emul=elf32ltsmip_fbsd
+                       targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmipn32_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
+                       targ_emul=elf32btsmip_fbsd
+                       targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+mips*-*-sysv4*)                targ_emul=elf32btsmip
+                       ;;
+mmix-*-*)              targ_emul=mmo
+                       targ_extra_emuls=elf64mmix
+                       ;;
+am33_2.0-*-linux*)     targ_emul=elf32am33lin ;;
+mn10200-*-*)           targ_emul=mn10200 ;;
+mn10300-*-*)           targ_emul=mn10300
+                       ;;
+mt-*elf)               targ_emul=elf32mt
+                       ;;
+msp430-*-*)            targ_emul=msp430elf
+                       targ_extra_emuls="msp430X"
+                       ;;
+nds32*le-*-elf*)       targ_emul=nds32elf
+                       targ_extra_emuls="nds32elf16m nds32belf nds32belf16m"
+                       ;;
+nds32*be-*-elf*)       targ_emul=nds32belf
+                       targ_extra_emuls="nds32elf nds32elf16m nds32belf16m"
+                       ;;
+nds32*le-*-linux-gnu*) targ_emul=nds32elf_linux ;;
+nds32*be-*-linux-gnu*) targ_emul=nds32belf_linux ;;
+nios2*-*-linux*)       targ_emul=nios2linux ;;
+nios2*-*-*)            targ_emul=nios2elf ;;
+ns32k-pc532-mach* | ns32k-pc532-ux*)  targ_emul=pc532macha ;;
+ns32k-*-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd
+                       ;;
+or1k-*-elf | or1knd-*-elf | or1k-*-rtems* | or1knd-*-rtems*)
+                       targ_emul=elf32or1k ;;
+or1k-*-linux* | or1knd-*-linux*)       targ_emul=elf32or1k_linux ;;
+pdp11-*-*)             targ_emul=pdp11
+                       ;;
+pjl*-*-*)              targ_emul=pjlelf
+                       targ_extra_emuls="elf_i386 elf_iamcu" ;;
+pj*-*-*)               targ_emul=pjelf
+                       ;;
+powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
+                       targ_emul=elf32ppc_fbsd
+                       targ_extra_emuls="elf32ppc elf32ppcsim"
+                       targ_extra_libpath=elf32ppc;
+                       tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'` ;;
+powerpc64-*-freebsd*)
+                       targ_emul=elf64ppc_fbsd
+                       targ_extra_emuls="elf64ppc elf32ppc_fbsd elf32ppc"
+                       targ_extra_libpath="elf32ppc_fbsd elf32ppc"
+                       tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
+                       tdir_elf32ppc_fbsd=$tdir_elf32ppc
+                       ;;
+powerpc-*-vxworks*)
+                       targ_emul=elf32ppcvxworks
+                       targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;;
+powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
+  | powerpc*-*-linux* | powerpc*-*-netbsd* | powerpc*-*-openbsd* \
+  | powerpc*-*-rtems* \
+  | powerpc*-*-solaris* | powerpc*-*-kaos* | powerpc*-*-vxworks*)
+                       case "${targ}" in
+                       powerpc64*)
+                           targ_emul=elf64ppc
+                           targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
+                           targ_extra_libpath="elf32ppc elf32ppclinux" ;;
+                       *linux*)
+                           targ_emul=elf32ppclinux
+                           targ_extra_emuls="elf32ppc elf32ppcsim"
+                           targ_extra_libpath=elf32ppc
+                           targ64_extra_emuls=elf64ppc
+                           targ64_extra_libpath=elf64ppc ;;
+                       *)
+                           targ_emul=elf32ppc
+                           targ_extra_emuls="elf32ppclinux elf32ppcsim"
+                           targ_extra_libpath=elf32ppclinux
+                           targ64_extra_emuls=elf64ppc
+                           targ64_extra_libpath=elf64ppc ;;
+                       esac
+                       td=tdir_elf32ppc
+                       td64=tdir_elf64ppc
+                       s=s/ppc/lppc/g
+                       case "${targ}" in
+                       powerpcle-* | powerpc64le-*)
+                           for z in td td64 targ_emul targ_extra_emuls \
+                                        targ_extra_libpath targ64_extra_emuls \
+                                        targ64_extra_libpath
+                           do
+                               eval ${z}=\"\`echo \$${z} \| sed -e $s\`\"
+                           done
+                           s=s/lppc/ppc/g ;;
+                       esac
+                       # Why oh why did we set tooldir based on target_alias
+                       # rather than on target?
+                       eval tdir_${targ_emul}="${targ_alias}"
+                       cpu=`echo "${targ_alias}" | sed -e 's/-.*//'`
+                       rest=`echo "${targ_alias}" | sed -e 's/^[^-]*//'`
+                       le=le
+                       case "${cpu}" in
+                       *little) le=little
+                       esac
+                       ta32=`echo "${cpu}" | sed -e s/64//`"${rest}"
+                       ta64=`echo "${cpu}" | sed -e 's/64//;s/$/64/;s/'${le}'64$/64'${le}'/;s/be64$/64be/'`"${rest}"
+                       eval test -n \"\$${td}\" || eval ${td}="${ta32}"
+                       eval test -n \"\$${td}linux\" || eval ${td}linux="${ta32}"
+                       eval test -n \"\$${td}sim\" || eval ${td}sim="${ta32}"
+                       eval test -n \"\$${td64}\" || eval ${td64}="${ta64}"
+                       # Now provide the other endian
+                       for z in targ_extra_emuls targ_extra_libpath
+                       do
+                           eval ${z}=\"\$${z} \`echo ${targ_emul} \$${z} \| sed -e $s\`\"
+                       done
+                       for z in targ64_extra_emuls targ64_extra_libpath
+                       do
+                           eval ${z}=\"\$${z} \`echo \$${z} \| sed -e $s\`\"
+                       done
+                       td=`echo "${td}" | sed -e $s`
+                       td64=`echo "${td64}" | sed -e $s`
+                       case "${targ}" in
+                       powerpcle-* | powerpc64le-*)
+                           cpu=`echo "${cpu}" | sed -e s/${le}\$//` ;;
+                       *)
+                           cpu=`echo "${cpu}" | sed -e s/be\$//`${le} ;;
+                       esac
+                       ta32=`echo "${cpu}" | sed -e s/64//`"${rest}"
+                       ta64=`echo "${cpu}" | sed -e 's/64//;s/$/64/;s/'${le}'64$/64'${le}/`"${rest}"
+                       eval test -n \"\$${td}\" || eval ${td}="${ta32}"
+                       eval test -n \"\$${td}linux\" || eval ${td}linux="${ta32}"
+                       eval test -n \"\$${td}sim\" || eval ${td}sim="${ta32}"
+                       eval test -n \"\$${td64}\" || eval ${td64}="${ta64}"
+                       ;;
+powerpc-*-nto*)                targ_emul=elf32ppcnto ;;
+powerpcle-*-nto*)      targ_emul=elf32lppcnto ;;
+powerpc-*-macos*)      targ_emul=ppcmacos ;;
+powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
+                       targ_emul=ppcpe
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+powerpc-*-aix[5-9]*)   targ_emul=aix5ppc ;;
+powerpc-*-aix*)                targ_emul=aixppc ;;
+powerpc-*-beos*)       targ_emul=aixppc ;;
+powerpc-*-windiss*)    targ_emul=elf32ppcwindiss ;;
+powerpc-*-lynxos*)     targ_emul=ppclynx ;;
+pru*-*-*)              targ_emul=pruelf ;;
+riscv32*-*-linux*)     targ_emul=elf32lriscv
+                       targ_extra_emuls="elf32lriscv_ilp32f elf32lriscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+riscv-*-* | riscv32*-*-*)
+                       targ_emul=elf32lriscv
+                       targ_extra_emuls="elf64lriscv"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+riscv64*-*-linux*)     targ_emul=elf64lriscv
+                       targ_extra_emuls="elf64lriscv_lp64f elf64lriscv_lp64 elf32lriscv elf32lriscv_ilp32f elf32lriscv_ilp32"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+riscv64*-*-*)          targ_emul=elf64lriscv
+                       targ_extra_emuls="elf32lriscv"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+rs6000-*-aix[5-9]*)    targ_emul=aix5rs6 ;;
+rs6000-*-aix*)         targ_emul=aixrs6
+                       ;;
+rl78-*-*)              targ_emul=elf32rl78 ;;
+rx-*-*)                        targ_emul=elf32rx ;;
+s390x-*-linux*)                targ_emul=elf64_s390
+                       targ_extra_emuls=elf_s390
+                       targ_extra_libpath=$targ_extra_emuls
+                       tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
+s390x-*-tpf*)          targ_emul=elf64_s390
+                       tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
+s390-*-linux*)         targ_emul=elf_s390
+                       targ64_extra_emuls=elf64_s390
+                       targ64_extra_libpath=elf64_s390
+                       tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
+                       ;;
+score-*-elf)           targ_emul=score7_elf
+                       targ_extra_emuls=score3_elf ;;
+sh-*-linux*)           targ_emul=shlelf_linux
+                       targ_extra_emuls="shelf_linux shlelf_fd shelf_fd"
+                       targ_extra_libpath=shelf_linux ;;
+sh*eb-*-linux*)                targ_emul=shelf_linux
+                       targ_extra_emuls="shelf_fd" ;;
+sh*-*-linux*)          targ_emul=shlelf_linux
+                       targ_extra_emuls="shlelf_fd" ;;
+sh*l*-*-netbsdelf*)    targ_emul=shlelf_nbsd
+                       targ_extra_emuls=shelf_nbsd ;;
+sh*-*-netbsdelf*)      targ_emul=shelf_nbsd
+                       targ_extra_emuls=shlelf_nbsd ;;
+shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*)
+                       targ_emul=shlelf
+                       targ_extra_emuls="shelf shl sh" ;;
+sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems* | sh-*-kaos*)
+                       targ_emul=shelf
+                       targ_extra_emuls="shlelf sh shl" ;;
+sh-*-uclinux* | sh[12]-*-uclinux*)
+                       targ_emul=shelf_uclinux
+                       targ_extra_emuls="shelf shlelf sh shl shelf_fd shlelf_fd" ;;
+sh-*-vxworks)          targ_emul=shelf_vxworks
+                       targ_extra_emuls=shlelf_vxworks ;;
+sh-*-nto*)             targ_emul=shelf_nto
+                       targ_extra_emuls=shlelf_nto ;;
+sh-*-pe)               targ_emul=shpe ;
+                       targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+sh-*-*)                        targ_emul=sh; targ_extra_emuls=shl ;;
+sparc64-*-freebsd* | sparcv9-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-kfreebsd*-gnu)
+                       targ_emul=elf64_sparc_fbsd
+                       targ_extra_emuls="elf64_sparc elf32_sparc"
+                       targ_extra_libpath=$targ_extra_emuls
+                       tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
+sparc64-*-linux-*)     targ_emul=elf64_sparc
+                       targ_extra_emuls="elf32_sparc"
+                       targ_extra_libpath=elf32_sparc
+                       tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
+sparc64-*-*bsd*)       targ_emul=elf64_sparc
+                       targ_extra_emuls="elf32_sparc" ;;
+sparc64-*-solaris2* | sparcv9-*-solaris2*)
+                       targ_emul=elf64_sparc_sol2
+                       targ_extra_emuls="elf64_sparc elf32_sparc_sol2 elf32_sparc"
+                       targ_extra_libpath=$targ_extra_emuls
+                       tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
+sparc64-*-*)           targ_emul=elf64_sparc ;;
+sparc*-*-linux-*)      targ_emul=elf32_sparc
+                       targ_extra_emuls="elf64_sparc"
+                       targ_extra_libpath=elf64_sparc
+                       tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'` ;;
+sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
+                       targ_emul=elf32_sparc_sol2
+                       targ_extra_emuls=elf32_sparc ;;
+sparc-*-solaris2*)     targ_emul=elf32_sparc_sol2
+                       targ_extra_emuls="elf32_sparc elf64_sparc_sol2 elf64_sparc"
+                       targ_extra_libpath=$targ_extra_emuls
+                       tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'` ;;
+sparc*-*-vxworks*)     targ_emul=elf32_sparc_vxworks ;;
+sparc*-*-*)            targ_emul=elf32_sparc ;;
+spu-*-elf*)            targ_emul=elf32_spu ;;
+tic30-*-*aout*)                targ_emul=tic30aout ;;
+tic30-*-*coff*)                targ_emul=tic30coff ;;
+tic4x-*-* | c4x-*-*)   targ_emul=tic4xcoff ; targ_extra_emuls="tic3xcoff tic3xcoff_onchip" ;;
+tic54x-*-* | c54x*-*-*)        targ_emul=tic54xcoff ;;
+tic6x-*-elf)           targ_emul=elf32_tic6x_elf_le
+                       targ_extra_emuls="elf32_tic6x_elf_be elf32_tic6x_le elf32_tic6x_be"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+tic6x-*-uclinux)       targ_emul=elf32_tic6x_linux_le
+                       targ_extra_emuls="elf32_tic6x_linux_be elf32_tic6x_le elf32_tic6x_be"
+                       targ_extra_libpath=$targ_extra_emuls
+                       ;;
+tic80-*-*)             targ_emul=tic80coff
+                       ;;
+tilegx-*-*)            targ_emul=elf64tilegx
+                       targ_extra_emuls="elf64tilegx_be elf32tilegx elf32tilegx_be"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+tilegxbe-*-*)          targ_emul=elf64tilegx_be
+                       targ_extra_emuls="elf64tilegx elf32tilegx elf32tilegx_be"
+                       targ_extra_libpath=$targ_extra_emuls ;;
+tilepro-*-*)           targ_emul=elf32tilepro ;;
+ft32-*-*)              targ_emul=elf32ft32
+                       ;;
+v850*-*-*)             targ_emul=v850_rh850
+                       targ_extra_emuls=v850
+                       ;;
+vax-*-netbsdelf*)      targ_emul=elf32vax
+                       targ_extra_emuls=vaxnbsd ;;
+vax-*-netbsdaout* | vax-*-netbsd*)
+                       targ_emul=vaxnbsd
+                       targ_extra_emuls=elf32vax ;;
+vax-*-linux-*)         targ_emul=elf32vax
+                       ;;
+visium-*-elf)          targ_emul=elf32visium
+                       ;;
+xc16x-*-elf)           targ_emul=elf32xc16x
+                       targ_extra_emuls="elf32xc16xl elf32xc16xs"
+                       ;;
+xstormy16-*-*)         targ_emul=elf32xstormy16
+                       ;;
+xtensa*-*-*)           targ_emul=elf32xtensa
+                       ;;
+xgate-*-*)             targ_emul=xgateelf
+                       ;;
+z80-*-coff)            targ_emul=z80
+                       ;;
+z8k-*-coff)            targ_emul=z8002; targ_extra_emuls=z8001
+                       ;;
+*-*-ieee*)             targ_emul=vanilla
+                       ;;
+*)
+  echo 2>&1 "*** ld does not support target ${targ}"
+  echo 2>&1 "*** see ld/configure.tgt for supported targets"
+  exit 1
+
+esac
+
+NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib'
+case "${target}" in
+
+*-*-dragonfly*)
+  NATIVE_LIB_DIRS='/lib /usr/lib /usr/pkg/lib /usr/local/lib'
+  ;;
+
+*-*-freebsd*)
+  NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
+  ;;
+
+hppa*64*-*-hpux11*)
+  NATIVE_LIB_DIRS=/usr/lib/pa20_64
+  ;;
+
+i[3-7]86-*-sysv4*)
+  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
+  ;;
+
+i[3-7]86-*-solaris*)
+  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
+  ;;
+
+i[3-7]86-pc-interix*)
+  NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib'
+  ;;
+
+ia64-*-aix*)
+  NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib'
+  ;;
+
+sparc*-*-solaris2*)
+  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
+  ;;
+
+spu-*-elf*)
+  # This allows to build a pair of PPU/SPU toolchains with common sysroot.
+  NATIVE_LIB_DIRS='/lib'
+  ;;
+
+i[03-9x]86-*-cygwin* | x86_64-*-cygwin*)
+  NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api'
+  ;;
+
+*-*-linux*)
+  ;;
+
+*-*-netbsd*)
+  ;;
+
+alpha*-*-*)
+  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
+  ;;
+
+esac
+
+case "${target}" in
+frv-*-* | hppa*-*-* | ia64-*-* | mips*-*-*)
+  # Don't enable -z relro by default since many relro tests fail on these
+  # targets:
+  # FAIL: strip -z relro (relro1)
+  # FAIL: strip -z relro -shared (relro1)
+  # FAIL: objcopy -z relro (relro1)
+  # FAIL: objcopy -z relro -shared (relro1)
+  # FAIL: objcopy -z relro (tdata1)
+  # FAIL: objcopy -shared -z relro (tdata1)
+  # FAIL: objcopy -z relro (tdata2)
+  # FAIL: objcopy -shared -z relro (tdata2)
+  # FAIL: objcopy -z relro (tdata3)
+  # FAIL: objcopy -shared -z relro (tdata3)
+  # FAIL: objcopy -shared -z relro (tbss1)
+  # FAIL: objcopy -shared -z relro (tbss2)
+  # FAIL: objcopy -shared -z relro (tbss3)
+  ;;
+*-*-linux*)
+  if test ${ac_default_ld_z_relro} = unset; then
+    ac_default_ld_z_relro=1
+  fi
+  ;;
+esac
+
+# Enable -z separate-code by default for Linux/x86.
+case "${target}" in
+i[3-7]86-*-linux-* | x86_64-*-linux-*)
+  if test ${ac_default_ld_z_separate_code} = unset; then
+    ac_default_ld_z_separate_code=1
+  fi
+  ;;
+esac
diff --git a/arm-stmos/binutils-files/ld/emulparams/armelf_stmos.sh b/arm-stmos/binutils-files/ld/emulparams/armelf_stmos.sh
new file mode 100644 (file)
index 0000000..8e7c863
--- /dev/null
@@ -0,0 +1,37 @@
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+
+MACHINE=
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-littlearm"
+BIG_OUTPUT_FORMAT="elf32-bigarm"
+LITTLE_OUTPUT_FORMAT="elf32-littlearm"
+TEXT_START_ADDR=0x1000
+TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=armelf
+OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)'
+OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_start__ = .${CREATE_SHLIB+)};"
+OTHER_BSS_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_bss_end__ = .${CREATE_SHLIB+)}; ${CREATE_SHLIB+PROVIDE (}__bss_end__ = .${CREATE_SHLIB+)};"
+OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end__ = .${CREATE_SHLIB+)};"
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
+ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
+OTHER_READONLY_SECTIONS="
+  .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
+  .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
+
+DATA_START_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__data_start = .${CREATE_SHLIB+)};"
+
+ARCH=arm
+MACHINE=
+MAXPAGESIZE=0x1000
+#MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+ENTRY=_start
+EMBEDDED=yes
+
+# This sets the stack to the top of the simulator memory (2^19 bytes).
+STACK_ADDR=0x10000
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes
diff --git a/arm-stmos/create-toolchain.sh b/arm-stmos/create-toolchain.sh
new file mode 100755 (executable)
index 0000000..1df12ee
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+#
+# Based on:
+# binutils 2.31.1
+# gcc 8.2.0
+#
+# Need:
+# build-essential
+# bison
+# flex
+# libgmp3-dev
+# libmpc-dev
+# libmpfr-dev
+
+# Get sources
+wget https://ftp.gnu.org/gnu/binutils/binutils-2.31.1.tar.xz
+wget https://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz
+tar xfv ./binutils-2.31.1.tar.xz
+tar xfv ./gcc-8.2.0.tar.xz
+
+# Apply binutils changes
+for file in $(find ./binutils-files -name '*.*'); do
+       cp -v $file $(echo $file | sed s/binutils-files/binutils-2.31.1/)
+done
+
+# Apply gcc changes
+for file in $(find ./gcc-files -name '*.*'); do
+       cp -v $file $(echo $file | sed s/gcc-files/gcc-8.2.0/)
+done
+
+# Prepare
+export TARGET=arm-stmos
+mkdir -p $HOME/$TARGET
+export PATH="$HOME/$TARGET/bin:$PATH"
+
+# Build binutils
+cd ./binutils-2.31.1/ld
+automake
+
+mkdir ../build
+cd ../build
+echo "Configure binutils... (../configure)"
+bash
+echo "Building binutils..."
+make -j8
+make install
+
+# Build gcc
+cd ../../gcc-8.2.0/libstdc++-v3/
+autoconf
+
+mkdir ../build
+cd ../build
+echo "Configure gcc... (../configure)"
+bash
+echo "Building gcc..."
+make -j8
+make install
+
diff --git a/arm-stmos/gcc-files/config.sub b/arm-stmos/gcc-files/config.sub
new file mode 100755 (executable)
index 0000000..81b294e
--- /dev/null
@@ -0,0 +1,1851 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
+
+timestamp='2018-01-01'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches@gnu.org>.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+Canonicalize a configuration name.
+
+Options:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2018 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
+  kopensolaris*-gnu* | cloudabi*-eabi* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+       -sun*os*)
+               # Prevent following clause from handling this invalid input.
+               ;;
+       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+       -apple | -axis | -knuth | -cray | -microblaze*)
+               os=
+               basic_machine=$1
+               ;;
+       -bluegene*)
+               os=-cnk
+               ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+               ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+       -sco6)
+               os=-sco5v6
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5)
+               os=-sco3.2v5
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco4)
+               os=-sco3.2v4
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco*)
+               os=-sco3.2v2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -udk*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -isc)
+               os=-isc2.2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -lynx*178)
+               os=-lynxos178
+               ;;
+       -lynx*5)
+               os=-lynxos5
+               ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+       -ptx*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+               ;;
+       -psos*)
+               os=-psos
+               ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
+       | aarch64 | aarch64_be \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | am33_2.0 \
+       | arc | arceb \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+       | avr | avr32 \
+       | ba \
+       | be32 | be64 \
+       | bfin \
+       | c4x | c8051 | clipper \
+       | d10v | d30v | dlx | dsp16xx \
+       | e2k | epiphany \
+       | fido | fr30 | frv | ft32 \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | hexagon \
+       | i370 | i860 | i960 | ia16 | ia64 \
+       | ip2k | iq2000 \
+       | k1om \
+       | le32 | le64 \
+       | lm32 \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64octeon | mips64octeonel \
+       | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa32r6 | mipsisa32r6el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64r6 | mipsisa64r6el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | moxie \
+       | mt \
+       | msp430 \
+       | nds32 | nds32le | nds32be \
+       | nios | nios2 | nios2eb | nios2el \
+       | ns16k | ns32k \
+       | open8 | or1k | or1knd | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle \
+       | pru \
+       | pyramid \
+       | riscv32 | riscv64 \
+       | rl78 | rx \
+       | score \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+       | spu \
+       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+       | ubicom32 \
+       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | visium \
+       | wasm32 \
+       | x86 | xc16x | xstormy16 | xtensa \
+       | z8k | z80)
+               basic_machine=$basic_machine-unknown
+               ;;
+       c54x)
+               basic_machine=tic54x-unknown
+               ;;
+       c55x)
+               basic_machine=tic55x-unknown
+               ;;
+       c6x)
+               basic_machine=tic6x-unknown
+               ;;
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+       ms1)
+               basic_machine=mt-unknown
+               ;;
+
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
+               ;;
+       xgate)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       xscaleeb)
+               basic_machine=armeb-unknown
+               ;;
+
+       xscaleel)
+               basic_machine=armel-unknown
+               ;;
+
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
+       | aarch64-* | aarch64_be-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* | avr32-* \
+       | ba-* \
+       | be32-* | be64-* \
+       | bfin-* | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* \
+       | c8051-* | clipper-* | craynv-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | e2k-* | elxsi-* \
+       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | hexagon-* \
+       | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
+       | ip2k-* | iq2000-* \
+       | k1om-* \
+       | le32-* | le64-* \
+       | lm32-* \
+       | m32c-* | m32r-* | m32rle-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | microblaze-* | microblazeel-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64octeon-* | mips64octeonel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa32r6-* | mipsisa32r6el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64r6-* | mipsisa64r6el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
+       | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | mt-* \
+       | msp430-* \
+       | nds32-* | nds32le-* | nds32be-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | open8-* \
+       | or1k*-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+       | pru-* \
+       | pyramid-* \
+       | riscv32-* | riscv64-* \
+       | rl78-* | romp-* | rs6000-* | rx-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
+       | tahoe-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tile*-* \
+       | tron-* \
+       | ubicom32-* \
+       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+       | vax-* \
+       | visium-* \
+       | wasm32-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* \
+       | xstormy16-* | xtensa*-* \
+       | ymp-* \
+       | z8k-* | z80-*)
+               ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+               basic_machine=$basic_machine-unknown
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+       386bsd)
+               basic_machine=i386-unknown
+               os=-bsd
+               ;;
+       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+               basic_machine=m68000-att
+               ;;
+       3b*)
+               basic_machine=we32k-att
+               ;;
+       a29khif)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       abacus)
+               basic_machine=abacus-unknown
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       am29k)
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
+       amd64)
+               basic_machine=x86_64-pc
+               ;;
+       amd64-*)
+               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-unknown
+               ;;
+       amigaos | amigados)
+               basic_machine=m68k-unknown
+               os=-amigaos
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-unknown
+               os=-sysv4
+               ;;
+       apollo68)
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
+       aros)
+               basic_machine=i386-pc
+               os=-aros
+               ;;
+       asmjs)
+               basic_machine=asmjs-unknown
+               ;;
+       aux)
+               basic_machine=m68k-apple
+               os=-aux
+               ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
+       blackfin)
+               basic_machine=bfin-unknown
+               os=-linux
+               ;;
+       blackfin-*)
+               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       bluegene*)
+               basic_machine=powerpc-ibm
+               os=-cnk
+               ;;
+       c54x-*)
+               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c55x-*)
+               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c6x-*)
+               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
+       cegcc)
+               basic_machine=arm-unknown
+               os=-cegcc
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=-bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=-bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=-bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+       cray | j90)
+               basic_machine=j90-cray
+               os=-unicos
+               ;;
+       craynv)
+               basic_machine=craynv-cray
+               os=-unicosmp
+               ;;
+       cr16 | cr16-*)
+               basic_machine=cr16-unknown
+               os=-elf
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
+       crx)
+               basic_machine=crx-unknown
+               os=-elf
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=-tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=-tops20
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       delta88)
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
+       dicos)
+               basic_machine=i686-pc
+               os=-dicos
+               ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=-bosx
+               ;;
+       dpx2*)
+               basic_machine=m68k-bull
+               os=-sysv3
+               ;;
+       e500v[12])
+               basic_machine=powerpc-unknown
+               os=$os"spe"
+               ;;
+       e500v[12]-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=$os"spe"
+               ;;
+       ebmon29k)
+               basic_machine=a29k-amd
+               os=-ebmon
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=-bsd
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       h8300hms)
+               basic_machine=h8300-hitachi
+               os=-hms
+               ;;
+       h8300xray)
+               basic_machine=h8300-hitachi
+               os=-xray
+               ;;
+       h8500hms)
+               basic_machine=h8500-hitachi
+               os=-hms
+               ;;
+       harris)
+               basic_machine=m88k-harris
+               os=-sysv3
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp300bsd)
+               basic_machine=m68k-hp
+               os=-bsd
+               ;;
+       hp300hpux)
+               basic_machine=m68k-hp
+               os=-hpux
+               ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k2[0-9][0-9] | hp9k31[0-9])
+               basic_machine=m68000-hp
+               ;;
+       hp9k3[2-9][0-9])
+               basic_machine=m68k-hp
+               ;;
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hppa-next)
+               os=-nextstep3
+               ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+       i*86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+               ;;
+       i*86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
+               ;;
+       i*86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv
+               ;;
+       i*86sol2)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-solaris2
+               ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
+               ;;
+       i386-vsta | vsta)
+               basic_machine=i386-unknown
+               os=-vsta
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   -irix*)
+                       ;;
+                   *)
+                       os=-irix4
+                       ;;
+               esac
+               ;;
+       isi68 | isi)
+               basic_machine=m68k-isi
+               os=-sysv
+               ;;
+       leon-*|leon[3-9]-*)
+               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+               ;;
+       m68knommu)
+               basic_machine=m68k-unknown
+               os=-linux
+               ;;
+       m68knommu-*)
+               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       m88k-omron*)
+               basic_machine=m88k-omron
+               ;;
+       magnum | m3230)
+               basic_machine=mips-mips
+               os=-sysv
+               ;;
+       merlin)
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
+       microblaze*)
+               basic_machine=microblaze-xilinx
+               ;;
+       mingw64)
+               basic_machine=x86_64-pc
+               os=-mingw64
+               ;;
+       mingw32)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
+       mingw32ce)
+               basic_machine=arm-unknown
+               os=-mingw32ce
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       morphos)
+               basic_machine=powerpc-unknown
+               os=-morphos
+               ;;
+       moxiebox)
+               basic_machine=moxie-unknown
+               os=-moxiebox
+               ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+               ;;
+       ms1-*)
+               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               ;;
+       msys)
+               basic_machine=i686-pc
+               os=-msys
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+       nacl)
+               basic_machine=le32-unknown
+               os=-nacl
+               ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+               ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
+       news | news700 | news800 | news900)
+               basic_machine=m68k-sony
+               os=-newsos
+               ;;
+       news1000)
+               basic_machine=m68030-sony
+               os=-newsos
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
+       next | m*-next)
+               basic_machine=m68k-next
+               case $os in
+                   -nextstep* )
+                       ;;
+                   -ns2*)
+                     os=-nextstep2
+                       ;;
+                   *)
+                     os=-nextstep3
+                       ;;
+               esac
+               ;;
+       nh3000)
+               basic_machine=m68k-harris
+               os=-cxux
+               ;;
+       nh[45]000)
+               basic_machine=m88k-harris
+               os=-cxux
+               ;;
+       nindy960)
+               basic_machine=i960-intel
+               os=-nindy
+               ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       neo-tandem)
+               basic_machine=neo-tandem
+               ;;
+       nse-tandem)
+               basic_machine=nse-tandem
+               ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       nsx-tandem)
+               basic_machine=nsx-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       openrisc | openrisc-*)
+               basic_machine=or32-unknown
+               ;;
+       os400)
+               basic_machine=powerpc-ibm
+               os=-os400
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       paragon)
+               basic_machine=i860-intel
+               os=-osf
+               ;;
+       parisc)
+               basic_machine=hppa-unknown
+               os=-linux
+               ;;
+       parisc-*)
+               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+       pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pc98)
+               basic_machine=i386-pc
+               ;;
+       pc98-*)
+               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2 | pentiumiii | pentium3)
+               basic_machine=i686-pc
+               ;;
+       pentium4)
+               basic_machine=i786-pc
+               ;;
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium4-*)
+               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+       ppc | ppcbe)    basic_machine=powerpc-unknown
+               ;;
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+       rdos | rdos64)
+               basic_machine=x86_64-pc
+               os=-rdos
+               ;;
+       rdos32)
+               basic_machine=i386-pc
+               os=-rdos
+               ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
+       sde)
+               basic_machine=mipsisa32-sde
+               os=-elf
+               ;;
+       sei)
+               basic_machine=mips-sei
+               os=-seiux
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh)
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+       sh5el)
+               basic_machine=sh5le-unknown
+               ;;
+       sh64)
+               basic_machine=sh64-unknown
+               ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
+               ;;
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
+               ;;
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
+               ;;
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
+               ;;
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
+               ;;
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
+               ;;
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
+               ;;
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
+       t3e)
+               basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
+       t90)
+               basic_machine=t90-cray
+               os=-unicos
+               ;;
+       tile*)
+               basic_machine=$basic_machine-unknown
+               os=-linux-gnu
+               ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       tpf)
+               basic_machine=s390x-ibm
+               os=-tpf
+               ;;
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
+               ;;
+       vms)
+               basic_machine=vax-dec
+               os=-vms
+               ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+               ;;
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
+               ;;
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       wasm32)
+               basic_machine=wasm32-unknown
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+       x64)
+               basic_machine=x86_64-pc
+               ;;
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       xscale-* | xscalee[bl]-*)
+               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+               ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
+       z80-*-coff)
+               basic_machine=z80-unknown
+               os=-sim
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
+               ;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+       mmix)
+               basic_machine=mmix-knuth
+               ;;
+       rs6000)
+               basic_machine=rs6000-ibm
+               ;;
+       vax)
+               basic_machine=vax-dec
+               ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
+       pdp11)
+               basic_machine=pdp11-dec
+               ;;
+       we32k)
+               basic_machine=we32k-att
+               ;;
+       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
+       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+               basic_machine=sparc-sun
+               ;;
+       cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+               basic_machine=orion-highlevel
+               ;;
+       orion105)
+               basic_machine=clipper-highlevel
+               ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
+       *)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               ;;
+       *-commodore*)
+               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               ;;
+       *)
+               ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+       # First match some system type aliases that might get confused
+       # with valid system types.
+       # -solaris* is a basic system type, with this one exception.
+       -auroraux)
+               os=-auroraux
+               ;;
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+       -solaris)
+               os=-solaris2
+               ;;
+       -svr4*)
+               os=-sysv4
+               ;;
+       -unixware*)
+               os=-sysv4.2uw
+               ;;
+       -gnu/linux*)
+               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+               ;;
+       # Now accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST end in a * to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+             | -sym* | -kopensolaris* | -plan9* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+             | -aos* | -aros* | -cloudabi* | -sortix* \
+             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
+             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
+             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
+                       ;;
+                   *)
+                       os=-nto$os
+                       ;;
+               esac
+               ;;
+       -nto-qnx*)
+               ;;
+       -nto*)
+               os=`echo $os | sed -e 's|nto|nto-qnx|'`
+               ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+               ;;
+       -mac*)
+               os=`echo $os | sed -e 's|mac|macos|'`
+               ;;
+       -linux-dietlibc)
+               os=-linux-dietlibc
+               ;;
+       -linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+               ;;
+       -sunos5*)
+               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               ;;
+       -sunos6*)
+               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+               ;;
+       -opened*)
+               os=-openedition
+               ;;
+       -os400*)
+               os=-os400
+               ;;
+       -wince*)
+               os=-wince
+               ;;
+       -osfrose*)
+               os=-osfrose
+               ;;
+       -osf*)
+               os=-osf
+               ;;
+       -utek*)
+               os=-bsd
+               ;;
+       -dynix*)
+               os=-bsd
+               ;;
+       -acis*)
+               os=-aos
+               ;;
+       -atheos*)
+               os=-atheos
+               ;;
+       -syllable*)
+               os=-syllable
+               ;;
+       -386bsd)
+               os=-bsd
+               ;;
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
+       -nova*)
+               os=-rtmk-nova
+               ;;
+       -ns2)
+               os=-nextstep2
+               ;;
+       -nsk*)
+               os=-nsk
+               ;;
+       # Preserve the version number of sinix5.
+       -sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+               ;;
+       -sinix*)
+               os=-sysv4
+               ;;
+       -tpf*)
+               os=-tpf
+               ;;
+       -triton*)
+               os=-sysv3
+               ;;
+       -oss*)
+               os=-sysv3
+               ;;
+       -svr4)
+               os=-sysv4
+               ;;
+       -svr3)
+               os=-sysv3
+               ;;
+       -sysvr4)
+               os=-sysv4
+               ;;
+       # This must come after -sysvr4.
+       -sysv*)
+               ;;
+       -ose*)
+               os=-ose
+               ;;
+       -es1800*)
+               os=-ose
+               ;;
+       -xenix)
+               os=-xenix
+               ;;
+       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
+               ;;
+       -aros*)
+               os=-aros
+               ;;
+       -zvmoe)
+               os=-zvmoe
+               ;;
+       -dicos*)
+               os=-dicos
+               ;;
+       -pikeos*)
+               # Until real need of OS specific support for
+               # particular features comes up, bare metal
+               # configurations are quite functional.
+               case $basic_machine in
+                   arm*)
+                       os=-eabi
+                       ;;
+                   *)
+                       os=-elf
+                       ;;
+               esac
+               ;;
+       -stmos*)
+               os=-stmos
+               ;;
+       -nacl*)
+               ;;
+       -ios)
+               ;;
+       -none)
+               ;;
+       *)
+               # Get rid of the `-' at the beginning of $os.
+               os=`echo $os | sed 's/[^-]*-//'`
+               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+       score-*)
+               os=-elf
+               ;;
+       spu-*)
+               os=-elf
+               ;;
+       *-acorn)
+               os=-riscix1.2
+               ;;
+       arm*-rebel)
+               os=-linux
+               ;;
+       arm*-semi)
+               os=-aout
+               ;;
+       c4x-* | tic4x-*)
+               os=-coff
+               ;;
+       c8051-*)
+               os=-elf
+               ;;
+       hexagon-*)
+               os=-elf
+               ;;
+       tic54x-*)
+               os=-coff
+               ;;
+       tic55x-*)
+               os=-coff
+               ;;
+       tic6x-*)
+               os=-coff
+               ;;
+       # This must come before the *-dec entry.
+       pdp10-*)
+               os=-tops20
+               ;;
+       pdp11-*)
+               os=-none
+               ;;
+       *-dec | vax-*)
+               os=-ultrix4.2
+               ;;
+       m68*-apollo)
+               os=-domain
+               ;;
+       i386-sun)
+               os=-sunos4.0.2
+               ;;
+       m68000-sun)
+               os=-sunos3
+               ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+       mep-*)
+               os=-elf
+               ;;
+       mips*-cisco)
+               os=-elf
+               ;;
+       mips*-*)
+               os=-elf
+               ;;
+       or32-*)
+               os=-coff
+               ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=-sysv3
+               ;;
+       sparc-* | *-sun)
+               os=-sunos4.1.1
+               ;;
+       pru-*)
+               os=-elf
+               ;;
+       *-be)
+               os=-beos
+               ;;
+       *-haiku)
+               os=-haiku
+               ;;
+       *-ibm)
+               os=-aix
+               ;;
+       *-knuth)
+               os=-mmixware
+               ;;
+       *-wec)
+               os=-proelf
+               ;;
+       *-winbond)
+               os=-proelf
+               ;;
+       *-oki)
+               os=-proelf
+               ;;
+       *-hp)
+               os=-hpux
+               ;;
+       *-hitachi)
+               os=-hiux
+               ;;
+       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+               os=-sysv
+               ;;
+       *-cbm)
+               os=-amigaos
+               ;;
+       *-dg)
+               os=-dgux
+               ;;
+       *-dolphin)
+               os=-sysv3
+               ;;
+       m68k-ccur)
+               os=-rtu
+               ;;
+       m88k-omron*)
+               os=-luna
+               ;;
+       *-next)
+               os=-nextstep
+               ;;
+       *-sequent)
+               os=-ptx
+               ;;
+       *-crds)
+               os=-unos
+               ;;
+       *-ns)
+               os=-genix
+               ;;
+       i370-*)
+               os=-mvs
+               ;;
+       *-next)
+               os=-nextstep3
+               ;;
+       *-gould)
+               os=-sysv
+               ;;
+       *-highlevel)
+               os=-bsd
+               ;;
+       *-encore)
+               os=-bsd
+               ;;
+       *-sgi)
+               os=-irix
+               ;;
+       *-siemens)
+               os=-sysv4
+               ;;
+       *-masscomp)
+               os=-rtu
+               ;;
+       f30[01]-fujitsu | f700-fujitsu)
+               os=-uxpv
+               ;;
+       *-rom68k)
+               os=-coff
+               ;;
+       *-*bug)
+               os=-coff
+               ;;
+       *-apple)
+               os=-macos
+               ;;
+       *-atari*)
+               os=-mint
+               ;;
+       *)
+               os=-none
+               ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+       *-unknown)
+               case $os in
+                       -riscix*)
+                               vendor=acorn
+                               ;;
+                       -sunos*)
+                               vendor=sun
+                               ;;
+                       -cnk*|-aix*)
+                               vendor=ibm
+                               ;;
+                       -beos*)
+                               vendor=be
+                               ;;
+                       -hpux*)
+                               vendor=hp
+                               ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
+                       -hiux*)
+                               vendor=hitachi
+                               ;;
+                       -unos*)
+                               vendor=crds
+                               ;;
+                       -dgux*)
+                               vendor=dg
+                               ;;
+                       -luna*)
+                               vendor=omron
+                               ;;
+                       -genix*)
+                               vendor=ns
+                               ;;
+                       -mvs* | -opened*)
+                               vendor=ibm
+                               ;;
+                       -os400*)
+                               vendor=ibm
+                               ;;
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+                       -tpf*)
+                               vendor=ibm
+                               ;;
+                       -vxsim* | -vxworks* | -windiss*)
+                               vendor=wrs
+                               ;;
+                       -aux*)
+                               vendor=apple
+                               ;;
+                       -hms*)
+                               vendor=hitachi
+                               ;;
+                       -mpw* | -macos*)
+                               vendor=apple
+                               ;;
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                               vendor=atari
+                               ;;
+                       -vos*)
+                               vendor=stratus
+                               ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-functions 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/arm-stmos/gcc-files/fixincludes/mkfixinc.sh b/arm-stmos/gcc-files/fixincludes/mkfixinc.sh
new file mode 100755 (executable)
index 0000000..36bf848
--- /dev/null
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+if [ $# -ne 1 ]
+then
+  echo "Usage: $0 <target-mach-triplet>"
+  exit 1
+fi
+
+machine=$1
+target=fixinc.sh
+
+# Check for special fix rules for particular targets
+case $machine in
+    i?86-*-cygwin* | \
+    i?86-*-mingw32* | \
+    x86_64-*-mingw32* | \
+    powerpc-*-eabisim* | \
+    powerpc-*-eabi*    | \
+    powerpc-*-rtems*   | \
+    powerpcle-*-eabisim* | \
+    powerpcle-*-eabi* | \
+    *-musl* | \
+    *-stmos*)
+       #  IF there is no include fixing,
+       #  THEN create a no-op fixer and exit
+       (echo "#! /bin/sh" ; echo "exit 0" ) > ${target}
+        ;;
+
+    *)
+       cat < ${srcdir}/fixinc.in > ${target} || exit 1
+       ;;
+esac
+chmod 755 ${target}
diff --git a/arm-stmos/gcc-files/gcc/config.gcc b/arm-stmos/gcc-files/gcc/config.gcc
new file mode 100644 (file)
index 0000000..031a000
--- /dev/null
@@ -0,0 +1,4840 @@
+# GCC target-specific configuration file.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+
+#This file is part of GCC.
+
+#GCC is free software; you can redistribute it and/or modify it under
+#the terms of the GNU General Public License as published by the Free
+#Software Foundation; either version 3, or (at your option) any later
+#version.
+
+#GCC is distributed in the hope that it will be useful, but WITHOUT
+#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+#for more details.
+
+#You should have received a copy of the GNU General Public License
+#along with GCC; see the file COPYING3.  If not see
+#<http://www.gnu.org/licenses/>.
+
+# This is the GCC target-specific configuration file
+# where a configuration type is mapped to different system-specific
+# definitions and files.  This is invoked by the autoconf-generated
+# configure script.  Putting it in a separate shell file lets us skip
+# running autoconf when modifying target-specific information.
+
+# When you change the cases in the OS or target switches, consider
+# updating ../libgcc/config.host also.
+
+# This file switches on the shell variable ${target}, and also uses the
+# following shell variables:
+#
+#  with_*              Various variables as set by configure.
+#
+#  enable_threads      Either the name, yes or no depending on whether
+#                      threads support was requested.
+#
+#  default_use_cxa_atexit
+#                        The default value for the $enable___cxa_atexit
+#                      variable.  enable___cxa_atexit needs to be set to
+#                      "yes" for the correct operation of C++ destructors
+#                      but it relies upon the presence of a non-standard C
+#                      library function called __cxa_atexit.
+#                        Since not all C libraries provide __cxa_atexit the
+#                      default value of $default_use_cxa_atexit is set to
+#                      "no" except for targets which are known to be OK.
+#
+#  default_gnu_indirect_function
+#                       The default value for the $enable_gnu_indirect_function
+#                       variable.  enable_gnu_indirect_function relies
+#                      upon the presence of a non-standard gnu ifunc support
+#                      in the assembler, linker and dynamic linker.
+#                      Since not all libraries provide the dynamic linking
+#                      support, the default value of
+#                      $default_gnu_indirect_function is set to
+#                      "no" except for targets which are known to be OK.
+#
+#  gas_flag            Either yes or no depending on whether GNU as was
+#                      requested.
+#
+#  gnu_ld_flag         Either yes or no depending on whether GNU ld was
+#                      requested.
+
+# This file sets the following shell variables for use by the
+# autoconf-generated configure script:
+#
+#  cpu_type            The name of the cpu, if different from the first
+#                      chunk of the canonical target name.
+#
+#  tm_defines          List of target macros to define for all compilations.
+#
+#  tm_file             A list of target macro files, if different from
+#                      "$cpu_type/$cpu_type.h". Usually it's constructed
+#                      per target in a way like this:
+#                      tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
+#                      Note that the preferred order is:
+#                      - specific target header "${cpu_type}/${cpu_type.h}"
+#                      - generic headers like dbxelf.h elfos.h, etc.
+#                      - specializing target headers like ${cpu_type.h}/elf.h
+#                      This helps to keep OS specific stuff out of the CPU
+#                      defining header ${cpu_type}/${cpu_type.h}.
+#
+#                      It is possible to include automatically-generated
+#                      build-directory files by prefixing them with "./".
+#                      All other files should relative to $srcdir/config.
+#
+#  tm_p_file           Location of file with declarations for functions
+#                      in $out_file.
+#
+#  out_file            The name of the machine description C support
+#                      file, if different from "$cpu_type/$cpu_type.c".
+#
+#  common_out_file     The name of the source file for code shared between
+#                      the compiler proper and the driver.
+#
+#  md_file             The name of the machine-description file, if
+#                      different from "$cpu_type/$cpu_type.md".
+#
+#  tmake_file          A list of machine-description-specific
+#                      makefile-fragments, if different from
+#                      "$cpu_type/t-$cpu_type".
+#
+#  extra_modes          The name of the file containing a list of extra
+#                       machine modes, if necessary and different from
+#                       "$cpu_type/$cpu_type-modes.def".
+#
+#  extra_objs          List of extra objects that should be linked into
+#                      the compiler proper (cc1, cc1obj, cc1plus)
+#                      depending on target.
+#
+#  extra_gcc_objs      List of extra objects that should be linked into
+#                      the compiler driver (gcc) depending on target.
+#
+#  extra_headers       List of used header files from the directory
+#                      config/${cpu_type}.
+#
+#  user_headers_inc_next_pre
+#                      List of header file names of internal gcc header
+#                      files, which should be prefixed by an include_next.
+#  user_headers_inc_next_post
+#                      List of header file names of internal gcc header
+#                      files, which should be postfixed by an include_next.
+#  use_gcc_tgmath      If set, add tgmath.h to the list of used header
+#                      files.
+#
+#  use_gcc_stdint      If "wrap", install a version of stdint.h that
+#                      wraps the system's copy for hosted compilations;
+#                      if "provide", provide a version of systems without
+#                      such a system header; otherwise "none", do not
+#                      provide such a header at all.
+#
+#  extra_programs      List of extra executables compiled for this target
+#                      machine, used when linking.
+#
+#  extra_options       List of target-dependent .opt files.
+#
+#  c_target_objs       List of extra target-dependent objects that be
+#                      linked into the C compiler only.
+#
+#  cxx_target_objs     List of extra target-dependent objects that be
+#                      linked into the C++ compiler only.
+#
+#  fortran_target_objs List of extra target-dependent objects that be
+#                      linked into the fortran compiler only.
+#
+#  target_gtfiles       List of extra source files with type information.
+#
+#  xm_defines          List of macros to define when compiling for the
+#                      target machine.
+#
+#  xm_file             List of files to include when compiling for the
+#                      target machine.
+#
+#  use_collect2                Set to yes or no, depending on whether collect2
+#                      will be used.
+#
+#  target_cpu_default  Set to override the default target model.
+#
+#  gdb_needs_out_file_path
+#                      Set to yes if gdb needs a dir command with
+#                      `dirname $out_file`.
+#
+#  thread_file         Set to control which thread package to use.
+#
+#  gas                 Set to yes or no depending on whether the target
+#                      system normally uses GNU as.
+#
+#  configure_default_options
+#                      Set to an initializer for configure_default_options
+#                      in configargs.h, based on --with-cpu et cetera.
+#
+#  native_system_header_dir
+#                      Where system header files are found for this
+#                      target.  This defaults to /usr/include.  If
+#                      the --with-sysroot configure option or the
+#                      --sysroot command line option is used this
+#                      will be relative to the sysroot.
+# target_type_format_char 
+#                      The default character to be used for formatting
+#                      the attribute in a
+#                      .type symbol_name, ${t_t_f_c}<property>
+#                      directive.
+
+# The following variables are used in each case-construct to build up the
+# outgoing variables:
+#
+#  gnu_ld              Set to yes or no depending on whether the target
+#                      system normally uses GNU ld.
+#
+#  target_has_targetcm Set to yes or no depending on whether the target
+#                      has its own definition of targetcm.
+#
+#  target_has_targetm_common   Set to yes or no depending on whether the
+#                      target has its own definition of targetm_common.
+
+out_file=
+common_out_file=
+tmake_file=
+extra_headers=
+user_headers_inc_next_pre=
+user_headers_inc_next_post=
+use_gcc_tgmath=yes
+use_gcc_stdint=none
+extra_programs=
+extra_objs=
+extra_gcc_objs=
+extra_options=
+c_target_objs=
+cxx_target_objs=
+fortran_target_objs=
+target_has_targetcm=no
+target_has_targetm_common=yes
+tm_defines=
+xm_defines=
+# Set this to force installation and use of collect2.
+use_collect2=
+# Set this to override the default target model.
+target_cpu_default=
+# Set this if gdb needs a dir command with `dirname $out_file`
+gdb_needs_out_file_path=
+# Set this to control which thread package will be used.
+thread_file=
+# Reinitialize these from the flag values every loop pass, since some
+# configure entries modify them.
+gas="$gas_flag"
+gnu_ld="$gnu_ld_flag"
+default_use_cxa_atexit=no
+default_gnu_indirect_function=no
+target_gtfiles=
+need_64bit_isa=
+native_system_header_dir=/usr/include
+target_type_format_char='@'
+
+# Don't carry these over build->host->target.  Please.
+xm_file=
+md_file=
+
+# Obsolete configurations.
+case ${target} in
+  powerpc*-*-*spe*                     \
+  | tile*-*-*                          \
+ )
+    if test "x$enable_obsolete" != xyes; then
+      echo "*** Configuration ${target} is obsolete." >&2
+      echo "*** Specify --enable-obsolete to build it anyway." >&2
+      echo "*** Support will be REMOVED in the next major release of GCC," >&2
+      echo "*** unless a maintainer comes forward." >&2
+      exit 1
+    fi;;
+esac
+
+# Unsupported targets list.  Do not put an entry in this list unless
+# it would otherwise be caught by a more permissive pattern.  The list
+# should be in alphabetical order.
+case ${target} in
+ # Avoid special cases that are not obsolete
+   arm*-*-*eabi*                       \
+ )
+       ;;
+   arm*-wince-pe*                      \
+ | arm*-*-ecos-elf                     \
+ | arm*-*-elf                          \
+ | arm*-*-linux*                       \
+ | arm*-*-uclinux*                     \
+ | i[34567]86-go32-*                   \
+ | i[34567]86-*-go32*                  \
+ | m68k-*-uclinuxoldabi*               \
+ | mips64orion*-*-rtems*               \
+ | pdp11-*-bsd                         \
+ | sparc-hal-solaris2*                 \
+ | thumb-*-*                           \
+ | *-*-freebsd[12] | *-*-freebsd[12].* \
+ | *-*-freebsd*aout*                   \
+ | *-*-linux*aout*                     \
+ | *-*-linux*coff*                     \
+ | *-*-linux*libc1*                    \
+ | *-*-linux*oldld*                    \
+ | *-*-rtemsaout*                      \
+ | *-*-rtemscoff*                      \
+ | *-*-solaris2                                \
+ | *-*-solaris2.[0-9]                  \
+ | *-*-solaris2.[0-9].*                        \
+ | *-*-sysv*                           \
+ | vax-*-vms*                          \
+ )
+       echo "*** Configuration ${target} not supported" 1>&2
+       exit 1
+       ;;
+esac
+
+# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
+# updated in each machine entry.  Also set default extra_headers for some
+# machines.
+tm_p_file=
+cpu_type=`echo ${target} | sed 's/-.*$//'`
+cpu_is_64bit=
+case ${target} in
+m32c*-*-*)
+        cpu_type=m32c
+       tmake_file=m32c/t-m32c
+       target_has_targetm_common=no
+        ;;
+aarch64*-*-*)
+       cpu_type=aarch64
+       extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
+       c_target_objs="aarch64-c.o"
+       cxx_target_objs="aarch64-c.o"
+       extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o"
+       target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
+       target_has_targetm_common=yes
+       ;;
+alpha*-*-*)
+       cpu_type=alpha
+       extra_options="${extra_options} g.opt"
+       ;;
+am33_2.0-*-linux*)
+       cpu_type=mn10300
+       ;;
+arc*-*-*)
+       cpu_type=arc
+       c_target_objs="arc-c.o"
+       cxx_target_objs="arc-c.o"
+       extra_options="${extra_options} arc/arc-tables.opt g.opt"
+       extra_headers="arc-simd.h"
+       ;;
+arm*-*-*)
+       cpu_type=arm
+       extra_objs="arm-builtins.o aarch-common.o"
+       extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
+       target_type_format_char='%'
+       c_target_objs="arm-c.o"
+       cxx_target_objs="arm-c.o"
+       extra_options="${extra_options} arm/arm-tables.opt"
+       target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
+       ;;
+avr-*-*)
+       cpu_type=avr
+       c_target_objs="avr-c.o"
+       cxx_target_objs="avr-c.o"
+       ;;
+bfin*-*)
+       cpu_type=bfin
+       ;;
+crisv32-*)
+       cpu_type=cris
+       ;;
+frv*)  cpu_type=frv
+       extra_options="${extra_options} g.opt"
+       ;;
+ft32*) cpu_type=ft32
+       target_has_targetm_common=no
+       ;;
+moxie*)        cpu_type=moxie
+       target_has_targetm_common=no
+       ;;
+fido-*-*)
+       cpu_type=m68k
+       extra_headers=math-68881.h
+       extra_options="${extra_options} m68k/m68k-tables.opt"
+        ;;
+i[34567]86-*-*)
+       cpu_type=i386
+       c_target_objs="i386-c.o"
+       cxx_target_objs="i386-c.o"
+       extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
+       extra_options="${extra_options} fused-madd.opt"
+       extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
+                      pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
+                      nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
+                      immintrin.h x86intrin.h avxintrin.h xopintrin.h
+                      ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
+                      lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
+                      avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
+                      rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
+                      adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
+                      avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
+                      shaintrin.h clflushoptintrin.h xsavecintrin.h
+                      xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
+                      avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
+                      avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
+                      avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
+                      avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
+                      clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
+                      gfniintrin.h cet.h avx512vbmi2intrin.h
+                      avx512vbmi2vlintrin.h avx512vnniintrin.h
+                      avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
+                      avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
+                      pconfigintrin.h wbnoinvdintrin.h movdirintrin.h"
+       ;;
+x86_64-*-*)
+       cpu_type=i386
+       c_target_objs="i386-c.o"
+       cxx_target_objs="i386-c.o"
+       extra_options="${extra_options} fused-madd.opt"
+       extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
+       extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
+                      pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
+                      nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
+                      immintrin.h x86intrin.h avxintrin.h xopintrin.h
+                      ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
+                      lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
+                      avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
+                      rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
+                      adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
+                      avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
+                      shaintrin.h clflushoptintrin.h xsavecintrin.h
+                      xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
+                      avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
+                      avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
+                      avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
+                      avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
+                      clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
+                      gfniintrin.h cet.h avx512vbmi2intrin.h
+                      avx512vbmi2vlintrin.h avx512vnniintrin.h
+                      avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
+                      avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
+                      pconfigintrin.h wbnoinvdintrin.h movdirintrin.h"
+       ;;
+ia64-*-*)
+       extra_headers=ia64intrin.h
+       extra_options="${extra_options} g.opt fused-madd.opt"
+       ;;
+hppa*-*-*)
+       cpu_type=pa
+       ;;
+lm32*)
+       extra_options="${extra_options} g.opt"
+       ;;
+m32r*-*-*)
+        cpu_type=m32r
+       extra_options="${extra_options} g.opt"
+        ;;
+m68k-*-*)
+       extra_headers=math-68881.h
+       extra_options="${extra_options} m68k/m68k-tables.opt"
+       ;;
+microblaze*-*-*)
+        cpu_type=microblaze
+       extra_options="${extra_options} g.opt"
+        ;;
+mips*-*-*)
+       cpu_type=mips
+       extra_headers="loongson.h msa.h"
+       extra_objs="frame-header-opt.o"
+       extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
+       ;;
+nds32*)
+       cpu_type=nds32
+       extra_headers="nds32_intrinsic.h"
+       extra_objs="nds32-cost.o nds32-intrinsic.o nds32-isr.o nds32-md-auxiliary.o nds32-pipelines-auxiliary.o nds32-predicates.o nds32-memory-manipulation.o nds32-fp-as-gp.o nds32-relax-opt.o nds32-utils.o"
+       ;;
+nios2-*-*)
+       cpu_type=nios2
+       extra_options="${extra_options} g.opt"
+       ;;
+nvptx-*-*)
+       cpu_type=nvptx
+       ;;
+powerpc*-*-*spe*)
+       cpu_type=powerpcspe
+       extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
+       case x$with_cpu in
+           xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
+               cpu_is_64bit=yes
+               ;;
+       esac
+       extra_options="${extra_options} g.opt fused-madd.opt powerpcspe/powerpcspe-tables.opt"
+       ;;
+powerpc*-*-*)
+       cpu_type=rs6000
+       extra_objs="rs6000-string.o rs6000-p8swap.o"
+       extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
+       extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
+       extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
+       extra_headers="${extra_headers} mmintrin.h x86intrin.h"
+       extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
+       extra_headers="${extra_headers} paired.h"
+       extra_headers="${extra_headers} amo.h"
+       case x$with_cpu in
+           xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
+               cpu_is_64bit=yes
+               ;;
+       esac
+       extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
+       ;;
+riscv*)
+       cpu_type=riscv
+       extra_objs="riscv-builtins.o riscv-c.o"
+       ;;
+rs6000*-*-*)
+       extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
+       extra_objs="rs6000-string.o rs6000-p8swap.o"
+       ;;
+sparc*-*-*)
+       cpu_type=sparc
+       c_target_objs="sparc-c.o"
+       cxx_target_objs="sparc-c.o"
+       extra_headers="visintrin.h"
+       ;;
+spu*-*-*)
+       cpu_type=spu
+       ;;
+s390*-*-*)
+       cpu_type=s390
+       extra_options="${extra_options} fused-madd.opt"
+       extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
+       ;;
+# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
+sh[123456789lbe]*-*-* | sh-*-*)
+       cpu_type=sh
+       extra_options="${extra_options} fused-madd.opt"
+       extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
+       ;;
+v850*-*-*)
+       cpu_type=v850
+       ;;
+tic6x-*-*)
+       cpu_type=c6x
+       extra_headers="c6x_intrinsics.h"
+       extra_options="${extra_options} c6x/c6x-tables.opt"
+       ;;
+xtensa*-*-*)
+       extra_options="${extra_options} fused-madd.opt"
+       ;;
+tilegx*-*-*)
+       cpu_type=tilegx
+       ;;
+tilepro*-*-*)
+       cpu_type=tilepro
+       ;;
+esac
+
+tm_file=${cpu_type}/${cpu_type}.h
+if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
+then
+       tm_p_file=${cpu_type}/${cpu_type}-protos.h
+fi
+extra_modes=
+if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
+then
+       extra_modes=${cpu_type}/${cpu_type}-modes.def
+fi
+if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
+then
+       extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
+fi
+
+case ${target} in
+aarch64*-*-*)
+       tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
+       case ${with_abi} in
+       "")
+               if test "x$with_multilib_list" = xilp32; then
+                       tm_file="aarch64/biarchilp32.h ${tm_file}"
+               else
+                       tm_file="aarch64/biarchlp64.h ${tm_file}"
+               fi
+               ;;
+       ilp32)
+               tm_file="aarch64/biarchilp32.h ${tm_file}"
+               ;;
+       lp64)
+               tm_file="aarch64/biarchlp64.h ${tm_file}"
+               ;;
+       *)
+               echo "Unknown ABI used in --with-abi=$with_abi"
+               exit 1
+       esac
+       ;;
+i[34567]86-*-*)
+       if test "x$with_abi" != x; then
+               echo "This target does not support --with-abi."
+               exit 1
+       fi
+       if test "x$enable_cld" = xyes; then
+               tm_defines="${tm_defines} USE_IX86_CLD=1"
+       fi
+       if test "x$enable_frame_pointer" = xyes; then
+               tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
+       fi
+       tm_file="vxworks-dummy.h ${tm_file}"
+       ;;
+x86_64-*-*)
+       case ${with_abi} in
+       "")
+               if test "x$with_multilib_list" = xmx32; then
+                       tm_file="i386/biarchx32.h ${tm_file}"
+               else
+                       tm_file="i386/biarch64.h ${tm_file}"
+               fi
+               ;;
+       64 | m64)
+               tm_file="i386/biarch64.h ${tm_file}"
+               ;;
+       x32 | mx32)
+               tm_file="i386/biarchx32.h ${tm_file}"
+               ;;
+       *)
+               echo "Unknown ABI used in --with-abi=$with_abi"
+               exit 1
+       esac
+       if test "x$enable_cld" = xyes; then
+               tm_defines="${tm_defines} USE_IX86_CLD=1"
+       fi
+       if test "x$enable_frame_pointer" = xyes; then
+               tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
+       fi
+       tm_file="vxworks-dummy.h ${tm_file}"
+       ;;
+arm*-*-*)
+       tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
+       tm_file="vxworks-dummy.h ${tm_file}"
+       ;;
+mips*-*-* | sh*-*-* | sparc*-*-*)
+       tm_file="vxworks-dummy.h ${tm_file}"
+       ;;
+esac
+
+# On a.out targets, we need to use collect2.
+case ${target} in
+*-*-*aout*)
+       use_collect2=yes
+       ;;
+esac
+
+# Common C libraries.
+tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
+
+# 32-bit x86 processors supported by --with-arch=.  Each processor
+# MUST be separated by exactly one space.
+x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
+athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
+i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
+pentium4 pentium4m pentiumpro prescott lakemont"
+
+# 64-bit x86 processors supported by --with-arch=.  Each processor
+# MUST be separated by exactly one space.
+x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
+bdver3 bdver4 znver1 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
+core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
+sandybridge ivybridge haswell broadwell bonnell silvermont knl knm \
+skylake-avx512 cannonlake icelake-client icelake-server skylake x86-64 native"
+
+# Additional x86 processors supported by --with-cpu=.  Each processor
+# MUST be separated by exactly one space.
+x86_cpus="generic intel"
+
+# Common parts for widely ported systems.
+case ${target} in
+*-*-darwin*)
+  tmake_file="t-darwin ${cpu_type}/t-darwin"
+  tm_file="${tm_file} darwin.h"
+  case ${target} in
+  *-*-darwin9*)
+    tm_file="${tm_file} darwin9.h"
+    ;;
+  *-*-darwin[1][01]*)
+    tm_file="${tm_file} darwin9.h darwin10.h"
+    ;;
+  *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
+    tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
+    ;;
+  esac
+  tm_file="${tm_file} ${cpu_type}/darwin.h"
+  tm_p_file="${tm_p_file} darwin-protos.h"
+  target_gtfiles="\$(srcdir)/config/darwin.c"
+  extra_options="${extra_options} darwin.opt"
+  c_target_objs="${c_target_objs} darwin-c.o"
+  cxx_target_objs="${cxx_target_objs} darwin-c.o"
+  fortran_target_objs="darwin-f.o"
+  target_has_targetcm=yes
+  extra_objs="${extra_objs} darwin.o"
+  extra_gcc_objs="darwin-driver.o"
+  default_use_cxa_atexit=yes
+  use_gcc_stdint=wrap
+  case ${enable_threads} in
+    "" | yes | posix) thread_file='posix' ;;
+  esac
+  ;;
+*-*-dragonfly*)
+  gas=yes
+  gnu_ld=yes
+  tmake_file="t-slibgcc"
+  case ${enable_threads} in
+    "" | yes | posix)
+      thread_file='posix'
+      ;;
+    no | single)
+      # Let these non-posix thread selections fall through if requested
+      ;;
+    *)
+      echo 'Unknown thread configuration for DragonFly BSD'
+      exit 1
+      ;;
+  esac
+  extra_options="$extra_options rpath.opt dragonfly.opt"
+  default_use_cxa_atexit=yes
+  use_gcc_stdint=wrap
+  ;;
+*-*-freebsd*)
+  # This is the generic ELF configuration of FreeBSD.  Later
+  # machine-specific sections may refine and add to this
+  # configuration.
+  #
+  # Due to tm_file entry ordering issues that vary between cpu
+  # architectures, we only define fbsd_tm_file to allow the
+  # machine-specific section to dictate the final order of all
+  # entries of tm_file with the minor exception that components
+  # of the tm_file set here will always be of the form:
+  #
+  # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
+  #
+  # The machine-specific section should not tamper with this
+  # ordering but may order all other entries of tm_file as it
+  # pleases around the provided core setting.
+  gas=yes
+  gnu_ld=yes
+  fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
+  if test "$fbsd_major" = ""; then
+    echo "Specify the major version number of the targeted FreeBSD release"
+    echo "like this: --target=amd64-unknown-freebsd10.1"
+    exit 1
+  fi
+  tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
+  tmake_file="t-slibgcc"
+  case ${enable_threads} in
+    no)
+      fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
+      ;;
+    "" | yes | posix)
+      thread_file='posix'
+      ;;
+    *)
+      echo 'Unknown thread configuration for FreeBSD'
+      exit 1
+      ;;
+  esac
+  fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
+  extra_options="$extra_options rpath.opt freebsd.opt"
+  case ${target} in
+    *-*-freebsd[345].*)
+      :;;
+    *)
+      default_use_cxa_atexit=yes;;
+  esac
+  use_gcc_stdint=wrap
+  ;;
+*-*-fuchsia*)
+  native_system_header_dir=/include
+  ;;
+*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
+  extra_options="$extra_options gnu-user.opt"
+  gas=yes
+  gnu_ld=yes
+  case ${enable_threads} in
+    "" | yes | posix) thread_file='posix' ;;
+  esac
+  tmake_file="t-slibgcc"
+  case $target in
+    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
+      :;;
+    *-*-gnu*)
+      native_system_header_dir=/include
+      ;;
+  esac
+  # Linux C libraries selection switch: glibc / uclibc / bionic.
+  # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
+  case $target in
+    *linux*)
+      tm_p_file="${tm_p_file} linux-protos.h"
+      tmake_file="${tmake_file} t-linux"
+      extra_objs="${extra_objs} linux.o"
+      extra_options="${extra_options} linux.opt"
+      ;;
+  esac
+  case $target in
+    *-*-*android*)
+      tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
+      ;;
+    *-*-*uclibc*)
+      tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
+      ;;
+    *-*-*musl*)
+      tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
+      ;;
+    *)
+      tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
+      ;;
+  esac
+  # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
+  # is provided.
+  default_use_cxa_atexit=yes
+  use_gcc_tgmath=no
+  use_gcc_stdint=wrap
+  # Enable compilation for Android by default for *android* targets.
+  case $target in
+    *-*-*android*)
+      tm_defines="$tm_defines ANDROID_DEFAULT=1"
+      ;;
+    *)
+      tm_defines="$tm_defines ANDROID_DEFAULT=0"
+      ;;
+  esac
+  c_target_objs="${c_target_objs} glibc-c.o"
+  cxx_target_objs="${cxx_target_objs} glibc-c.o"
+  tmake_file="${tmake_file} t-glibc"
+  target_has_targetcm=yes
+  ;;
+*-*-netbsd*)
+  tm_p_file="${tm_p_file} netbsd-protos.h"
+  tmake_file="t-netbsd t-slibgcc"
+  extra_objs="${extra_objs} netbsd.o"
+  gas=yes
+  gnu_ld=yes
+  use_gcc_stdint=wrap
+  case ${enable_threads} in
+    "" | yes | posix) thread_file='posix' ;;
+  esac
+  nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
+  default_use_cxa_atexit=yes
+  ;;
+*-*-openbsd*)
+  tmake_file="t-openbsd"
+  case ${enable_threads} in
+    yes)
+      thread_file='posix'
+      ;;
+  esac
+  case ${target} in
+    *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
+      default_use_cxa_atexit=yes
+      ;;
+  esac
+  ;;
+*-*-phoenix*)
+  gas=yes
+  gnu_ld=yes
+  default_use_cxa_atexit=yes
+  ;;
+*-*-rtems*)
+  case ${enable_threads} in
+    "" | yes | rtems) thread_file='rtems' ;;
+    posix) thread_file='posix' ;;
+    no) ;;
+    *)
+      echo 'Unknown thread configuration for RTEMS'
+      exit 1
+      ;;
+  esac
+  tmake_file="${tmake_file} t-rtems"
+  extra_options="${extra_options} rtems.opt"
+  default_use_cxa_atexit=yes
+  use_gcc_stdint=wrap
+  ;;
+*-*-uclinux*)
+  extra_options="$extra_options gnu-user.opt"
+  use_gcc_stdint=wrap
+  case ${enable_threads} in
+    "" | yes | posix) thread_file='posix' ;;
+  esac
+  tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
+  ;;
+*-*-rdos*)
+  use_gcc_stdint=wrap
+  ;;
+*-*-solaris2*)
+  # i?86-*-solaris2* needs to insert headers between cpu default and
+  # Solaris 2 specific ones.
+  sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
+  sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
+  sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
+  case ${target} in
+    *-*-solaris2.1[1-9]*)
+      # __cxa_atexit was introduced in Solaris 11.4.
+      default_use_cxa_atexit=yes
+      ;;
+  esac
+  use_gcc_stdint=wrap
+  if test x$gnu_ld = xyes; then
+    tm_file="usegld.h ${tm_file}"
+  fi
+  if test x$gas = xyes; then
+    tm_file="usegas.h ${tm_file}"
+  fi
+  tm_p_file="${tm_p_file} sol2-protos.h"
+  tmake_file="${tmake_file} t-sol2 t-slibgcc"
+  c_target_objs="${c_target_objs} sol2-c.o"
+  cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
+  extra_objs="${extra_objs} sol2.o sol2-stubs.o"
+  extra_options="${extra_options} sol2.opt"
+  case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
+    "":yes:* | yes:yes:* )
+      thread_file=posix
+      ;;
+  esac
+  ;;
+*-*-*vms*)
+  extra_options="${extra_options} vms/vms.opt"
+  xmake_file=vms/x-vms
+  tmake_file="vms/t-vms t-slibgcc"
+  extra_objs="vms.o"
+  target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
+  tm_p_file="${tm_p_file} vms/vms-protos.h"
+  xm_file="vms/xm-vms.h"
+  c_target_objs="vms-c.o"
+  cxx_target_objs="vms-c.o"
+  fortran_target_objs="vms-f.o"
+  use_gcc_stdint=provide
+  tm_file="${tm_file} vms/vms-stdint.h"
+  if test x$gnu_ld != xyes; then
+    # Build wrappers for native case.
+    extra_programs="ld\$(exeext) ar\$(exeext)"
+    tmake_file="$tmake_file vms/t-vmsnative"
+  fi
+  ;;
+*-*-vxworks*)
+  tmake_file=t-vxworks
+  xm_defines=POSIX
+  extra_options="${extra_options} vxworks.opt"
+  extra_objs="$extra_objs vxworks.o"
+  use_gcc_stdint=provide
+  tm_file="${tm_file} vxworks-stdint.h"
+  case ${enable_threads} in
+    no) ;;
+    "" | yes | vxworks) thread_file='vxworks' ;;
+    *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
+  esac
+  case $target in
+    *-*-vxworks7*)
+      tm_defines="$tm_defines TARGET_VXWORKS7=1"
+      ;;
+  esac
+  ;;
+*-*-elf|arc*-*-elf*)
+  # Assume that newlib is being used and so __cxa_atexit is provided.
+  default_use_cxa_atexit=yes
+  use_gcc_stdint=wrap
+  ;;
+esac
+
+case ${target} in
+aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
+       tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
+       tmake_file="${tmake_file} aarch64/t-aarch64"
+       case $target in
+       aarch64-*-elf*)
+               use_gcc_stdint=wrap
+               ;;
+        aarch64-*-fuchsia*)
+                tm_file="${tm_file} fuchsia.h"
+                ;;
+       aarch64-*-rtems*)
+               tm_file="${tm_file} rtems.h aarch64/rtems.h"
+               ;;
+       esac
+       case $target in
+       aarch64_be-*)
+               tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+               ;;
+       esac
+       aarch64_multilibs="${with_multilib_list}"
+       if test "$aarch64_multilibs" = "default"; then
+               aarch64_multilibs="lp64,ilp32"
+       fi
+       aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
+       for aarch64_multilib in ${aarch64_multilibs}; do
+               case ${aarch64_multilib} in
+               ilp32 | lp64 )
+                       TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
+                       ;;
+               *)
+                       echo "--with-multilib-list=${aarch64_multilib} not supported."
+                       exit 1
+               esac
+       done
+       TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
+       ;;
+aarch64*-*-freebsd*)
+       tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
+       tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
+       tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
+       ;;
+aarch64*-*-linux*)
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
+       tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
+       tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
+       tm_defines="${tm_defines}  TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
+       case $target in
+       aarch64_be-*)
+               tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+               ;;
+       esac
+       aarch64_multilibs="${with_multilib_list}"
+       if test "$aarch64_multilibs" = "default"; then
+               # TODO: turn on ILP32 multilib build after its support is mature.
+               # aarch64_multilibs="lp64,ilp32"
+               aarch64_multilibs="lp64"
+       fi
+       aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
+       for aarch64_multilib in ${aarch64_multilibs}; do
+               case ${aarch64_multilib} in
+               ilp32 | lp64 )
+                       TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
+                       ;;
+               *)
+                       echo "--with-multilib-list=${aarch64_multilib} not supported."
+                       exit 1
+               esac
+       done
+       TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
+       ;;
+alpha*-*-linux*)
+       tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
+       tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
+       extra_options="${extra_options} alpha/elf.opt"
+       ;;
+alpha*-*-freebsd*)
+       tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
+       tmake_file="${tmake_file} alpha/t-alpha"
+       extra_options="${extra_options} alpha/elf.opt"
+       ;;
+alpha*-*-netbsd*)
+       tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
+       tmake_file="${tmake_file} alpha/t-alpha"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
+                      alpha/elf.opt"
+       ;;
+alpha*-*-openbsd*)
+       tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
+       tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
+       tmake_file="${tmake_file} alpha/t-alpha"
+       extra_options="${extra_options} openbsd.opt alpha/elf.opt"
+       # default x-alpha is only appropriate for dec-osf.
+       ;;
+alpha*-dec-*vms*)
+       tm_file="${tm_file} vms/vms.h alpha/vms.h"
+       tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
+       ;;
+arc*-*-elf*)
+       tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
+       tmake_file="arc/t-multilib arc/t-arc"
+       extra_gcc_objs="driver-arc.o"
+       if test "x$with_cpu" != x; then
+               tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
+       fi
+       if test x${with_endian} = x; then
+               case ${target} in
+               arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
+               *)                              with_endian=little ;;
+               esac
+       fi
+       case ${with_endian} in
+       big|little)             ;;
+       *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
+       esac
+       case ${with_endian} in
+       big*)   tm_file="arc/big.h ${tm_file}"
+       esac
+       ;;
+arc*-*-linux*)
+       tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
+       tmake_file="${tmake_file} arc/t-arc"
+       extra_gcc_objs="driver-arc.o"
+       if test "x$with_cpu" != x; then
+               tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
+       fi
+       if test x${with_endian} = x; then
+               case ${target} in
+               arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
+               *)                              with_endian=little ;;
+               esac
+       fi
+       case ${with_endian} in
+       big|little)             ;;
+       *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
+       esac
+       case ${with_endian} in
+       big*)   tm_file="arc/big.h ${tm_file}"
+       esac
+        ;;
+arm-wrs-vxworks|arm-wrs-vxworks7)
+       extra_options="${extra_options} arm/vxworks.opt"
+       tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
+        case $target in
+       *-vxworks7)
+            # VxWorks7 on ARM adheres to the ARM Base Platform ABI
+           tmake_file="${tmake_file} arm/t-bpabi"
+           tm_file="arm/bpabi.h ${tm_file}"
+           # The BPABI long long divmod functions return a 128-bit value in
+           # registers r0-r3.
+           need_64bit_hwint=yes
+           default_use_cxa_atexit=yes
+           ;;
+        *)  ;;
+        esac
+        tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
+       target_cpu_cname="arm8"
+       ;;
+arm*-*-freebsd*)                # ARM FreeBSD EABI
+       tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
+       case $target in
+       arm*b-*-freebsd*)
+           tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+           ;;
+       esac
+       tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
+       tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
+       case $target in
+       armv6*-*-freebsd*)
+           target_cpu_cname="arm1176jzf-s"
+            if test $fbsd_major -ge 11; then
+               tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
+            fi
+           ;;
+       armv7*-*-freebsd*)
+           target_cpu_cname="generic-armv7-a"
+           tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
+           ;;
+       *)
+           target_cpu_cname="arm9"
+           ;;
+       esac
+       with_tls=${with_tls:-gnu}
+       ;;
+arm*-*-netbsdelf*)
+       tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       tmake_file="${tmake_file} arm/t-arm"
+       target_cpu_cname="arm6"
+       ;;
+arm*-*-linux-*)                        # ARM GNU/Linux with ELF
+       tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
+       extra_options="${extra_options} linux-android.opt"
+       case $target in
+       arm*b-*-linux*)
+           tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+           ;;
+       esac
+       tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
+       tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
+       # Generation of floating-point instructions requires at least ARMv5te.
+       if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
+           target_cpu_cname="arm10e"
+       else
+           target_cpu_cname="arm10tdmi"
+       fi
+       # Define multilib configuration for arm-linux-androideabi.
+       case ${target} in
+       *-androideabi)
+           tmake_file="$tmake_file arm/t-linux-androideabi"
+           ;;
+       esac
+       # The EABI requires the use of __cxa_atexit.
+       default_use_cxa_atexit=yes
+       with_tls=${with_tls:-gnu}
+       ;;
+arm*-*-uclinux*eabi*)          # ARM ucLinux
+       tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
+       tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
+       tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
+       target_cpu_cname="arm7tdmi"
+       # The EABI requires the use of __cxa_atexit.
+       default_use_cxa_atexit=yes
+       ;;
+arm*-*-phoenix*)
+       tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
+       tm_file="${tm_file} newlib-stdint.h phoenix.h"
+       tm_file="${tm_file} arm/aout.h arm/arm.h"
+       tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
+       target_cpu_cname="arm7tdmi"
+       ;;
+*-*-stmos*)
+       gas=yes
+       gnu_ld=yes
+       default_use_cxa_atexit=yes
+       tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
+       tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
+       target_cpu_cname="arm7tdmi"
+       tm_file="$tm_file newlib-stdint.h"
+       tmake_file="${tmake_file} arm/t-bpabi"
+       use_gcc_stdint=wrap
+       tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
+       ;;
+arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
+       case ${target} in
+       arm*eb-*-eabi*)
+         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+       esac
+       default_use_cxa_atexit=yes
+       tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
+       tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
+       target_cpu_cname="arm7tdmi"
+       case ${target} in
+       arm*-*-eabi*)
+         tm_file="$tm_file newlib-stdint.h"
+         tmake_file="${tmake_file} arm/t-bpabi"
+         use_gcc_stdint=wrap
+         ;;
+       arm*-*-fuchsia*)
+         tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
+         tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
+         target_cpu_cname="generic-armv7-a"
+         ;;
+       arm*-*-rtems*)
+         tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
+         tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
+         ;;
+       arm*-*-symbianelf*)
+         tm_file="${tm_file} arm/symbian.h"
+         # We do not include t-bpabi for Symbian OS because the system
+         # provides its own implementation of the BPABI functions.
+         tmake_file="${tmake_file} arm/t-symbian"
+         target_cpu_cname="arm10tdmi"
+         ;;
+       esac
+       tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
+       ;;
+avr-*-*)
+       tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
+       if test x${with_avrlibc} != xno; then
+           tm_file="${tm_file} ${cpu_type}/avrlibc.h"
+           tm_defines="${tm_defines} WITH_AVRLIBC"
+       fi
+       tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
+       use_gcc_stdint=wrap
+       extra_gcc_objs="driver-avr.o avr-devices.o"
+       extra_objs="avr-devices.o avr-log.o"
+       ;;
+bfin*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
+       tmake_file=bfin/t-bfin-elf
+       use_collect2=no
+       ;;
+bfin*-uclinux*)
+       tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
+       tmake_file=bfin/t-bfin-uclinux
+       use_collect2=no
+       ;;
+bfin*-linux-uclibc*)
+       tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
+       tmake_file="${tmake_file} bfin/t-bfin-linux"
+       use_collect2=no
+       ;;
+bfin*-rtems*)
+       tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
+       tmake_file="${tmake_file} bfin/t-rtems"
+       ;;
+bfin*-*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
+       use_collect2=no
+       use_gcc_stdint=wrap
+       ;;
+cr16-*-elf)
+        tm_file="elfos.h ${tm_file} newlib-stdint.h"
+        tmake_file="${tmake_file} cr16/t-cr16 "
+        use_collect2=no
+        ;;
+crisv32-*-elf | crisv32-*-none)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       tmake_file="cris/t-cris"
+       target_cpu_default=32
+       gas=yes
+       extra_options="${extra_options} cris/elf.opt"
+       use_gcc_stdint=wrap
+       ;;
+cris-*-elf | cris-*-none)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       tmake_file="cris/t-cris cris/t-elfmulti"
+       gas=yes
+       extra_options="${extra_options} cris/elf.opt"
+       use_gcc_stdint=wrap
+       ;;
+crisv32-*-linux* | cris-*-linux*)
+       tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
+       tmake_file="${tmake_file} cris/t-cris cris/t-linux"
+       extra_options="${extra_options} cris/linux.opt"
+       case $target in
+         cris-*-*)
+               target_cpu_default=10
+               ;;
+         crisv32-*-*)
+               target_cpu_default=32
+               ;;
+       esac
+       ;;
+epiphany-*-elf | epiphany-*-rtems*)
+       tm_file="${tm_file} dbxelf.h elfos.h"
+       tmake_file="${tmake_file} epiphany/t-epiphany"
+       case ${target} in
+       epiphany-*-rtems*)
+         tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
+         ;;
+       *)
+         tm_file="${tm_file} newlib-stdint.h"
+         ;;
+       esac
+       extra_options="${extra_options} fused-madd.opt"
+       extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
+       tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
+       extra_headers="epiphany_intrinsics.h"
+       ;;
+fr30-*-elf)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       ;;
+frv-*-elf)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       tmake_file=frv/t-frv
+       ;;
+frv-*-*linux*)
+       tm_file="dbxelf.h elfos.h ${tm_file} \
+                gnu-user.h linux.h glibc-stdint.h frv/linux.h"
+       tmake_file="${tmake_file} frv/t-frv frv/t-linux"
+       ;;
+ft32-*-elf)
+       gas=yes
+       gnu_ld=yes
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       tmake_file="${tmake_file} ft32/t-ft32"
+       ;;
+moxie-*-elf)
+       gas=yes
+       gnu_ld=yes
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       tmake_file="${tmake_file} moxie/t-moxie"
+       ;;
+moxie-*-uclinux*)
+       gas=yes
+       gnu_ld=yes
+       tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
+       tmake_file="${tmake_file} moxie/t-moxie"
+       ;;
+moxie-*-rtems*)
+       tmake_file="${tmake_file} moxie/t-moxie"
+       tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
+       ;;
+moxie-*-moxiebox*)
+       gas=yes
+       gnu_ld=yes
+       tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
+       tmake_file="${tmake_file} moxie/t-moxiebox"
+       ;;
+h8300-*-elf*)
+       tmake_file="h8300/t-h8300"
+       tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
+       ;;
+h8300-*-linux*)
+       tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
+       tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
+       ;;
+hppa*64*-*-linux*)
+       target_cpu_default="MASK_PA_11|MASK_PA_20"
+       tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
+                glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
+                pa/pa64-linux.h"
+       gas=yes gnu_ld=yes
+       ;;
+hppa*-*-linux*)
+       target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
+                pa/pa32-regs.h pa/pa32-linux.h"
+       tmake_file="${tmake_file} pa/t-linux"
+       ;;
+hppa*-*-openbsd*)
+       target_cpu_default="MASK_PA_11"
+       tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
+                pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
+       extra_options="${extra_options} openbsd.opt"
+       gas=yes
+       gnu_ld=yes
+       ;;
+hppa[12]*-*-hpux10*)
+       case ${target} in
+       hppa1.1-*-* | hppa2*-*-*)
+               target_cpu_default="MASK_PA_11"
+               ;;
+       esac
+       tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
+                pa/pa-hpux.h pa/pa-hpux10.h"
+       extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
+       case ${target} in
+       *-*-hpux10.[1-9]*)
+               tm_file="${tm_file} pa/pa-hpux1010.h"
+               extra_options="${extra_options} pa/pa-hpux1010.opt"
+               ;;
+       esac
+       use_gcc_stdint=provide
+       tm_file="${tm_file} hpux-stdint.h"
+       tmake_file="t-slibgcc"
+       case ${enable_threads} in
+         "")
+           if test x$have_pthread_h = xyes ; then
+             tmake_file="${tmake_file} pa/t-dce-thr"
+           fi
+           ;;
+         yes | dce)
+           tmake_file="${tmake_file} pa/t-dce-thr"
+           ;;
+       esac
+       use_collect2=yes
+       gas=yes
+       if test "x$with_dwarf2" != x; then
+               echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
+               dwarf2=no
+       fi
+       ;;
+hppa*64*-*-hpux11*)
+       target_cpu_default="MASK_PA_11|MASK_PA_20"
+       if test x$gnu_ld = xyes
+       then
+               target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
+       fi
+       tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
+                pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
+                pa/pa-hpux11.h"
+       case ${target} in
+       *-*-hpux11.[12]*)
+               tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
+               extra_options="${extra_options} pa/pa-hpux1111.opt"
+               ;;
+       *-*-hpux11.[3-9]*)
+               tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
+               extra_options="${extra_options} pa/pa-hpux1131.opt"
+               ;;
+       *)
+               tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
+               ;;
+       esac
+       extra_options="${extra_options} pa/pa-hpux.opt \
+                      pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
+       tmake_file="t-slibgcc"
+       case x${enable_threads} in
+       x | xyes | xposix )
+               thread_file=posix
+               ;;
+       esac
+       gas=yes
+       case ${target} in
+         *-*-hpux11.[01]*)
+               use_gcc_stdint=provide
+               tm_file="${tm_file} hpux-stdint.h"
+               ;;
+         *-*-hpux11.[23]*)
+               use_gcc_stdint=wrap
+               tm_file="${tm_file} hpux-stdint.h"
+               ;;
+       esac
+       ;;
+hppa[12]*-*-hpux11*)
+       case ${target} in
+       hppa1.1-*-* | hppa2*-*-*)
+               target_cpu_default="MASK_PA_11"
+               ;;
+       esac
+       tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
+                pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
+       extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
+                      hpux11.opt"
+       case ${target} in
+       *-*-hpux11.[12]*)
+               tm_file="${tm_file} pa/pa-hpux1111.h"
+               extra_options="${extra_options} pa/pa-hpux1111.opt"
+               ;;
+       *-*-hpux11.[3-9]*)
+               tm_file="${tm_file} pa/pa-hpux1131.h"
+               extra_options="${extra_options} pa/pa-hpux1131.opt"
+               ;;
+       esac
+       tmake_file="t-slibgcc"
+       case x${enable_threads} in
+       x | xyes | xposix )
+               thread_file=posix
+               ;;
+       esac
+       use_collect2=yes
+       gas=yes
+       case ${target} in
+         *-*-hpux11.[01]*)
+               use_gcc_stdint=provide
+               tm_file="${tm_file} hpux-stdint.h"
+               ;;
+         *-*-hpux11.[23]*)
+               use_gcc_stdint=wrap
+               tm_file="${tm_file} hpux-stdint.h"
+               ;;
+       esac
+       if test "x$with_dwarf2" != x; then
+               echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
+               dwarf2=no
+       fi
+       ;;
+i[34567]86-*-darwin*)
+       need_64bit_isa=yes
+       # Baseline choice for a machine that allows m64 support.
+       with_cpu=${with_cpu:-core2}
+       tmake_file="${tmake_file} t-slibgcc"
+       ;;
+x86_64-*-darwin*)
+       with_cpu=${with_cpu:-core2}
+       tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
+       tm_file="${tm_file} ${cpu_type}/darwin64.h"
+       ;;
+i[34567]86-*-elfiamcu)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
+       ;;
+i[34567]86-*-elf*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
+       ;;
+x86_64-*-elf*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
+       ;;
+x86_64-*-rtems*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself.h rtems.h"
+       ;;
+i[34567]86-*-rdos*)
+    tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
+    ;;
+x86_64-*-rdos*)
+    tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rdos.h i386/rdos64.h"
+    tmake_file="i386/t-i386elf t-svr4"
+    ;;
+i[34567]86-*-dragonfly*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
+       tmake_file="${tmake_file} i386/t-crtstuff"
+       ;;
+x86_64-*-dragonfly*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
+       tmake_file="${tmake_file} i386/t-crtstuff"
+       ;;
+i[34567]86-*-freebsd*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
+       ;;
+x86_64-*-freebsd*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
+       ;;
+i[34567]86-*-netbsdelf*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       ;;
+x86_64-*-netbsd*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       ;;
+i[34567]86-*-openbsd*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
+       tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
+       extra_options="${extra_options} openbsd.opt"
+       gas=yes
+       gnu_ld=yes
+       ;;
+x86_64-*-openbsd*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
+       tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
+       extra_options="${extra_options} openbsd.opt"
+       gas=yes
+       gnu_ld=yes
+       ;;
+i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
+                       # Intel 80386's running GNU/*
+                       # with ELF format using glibc 2
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
+       case ${target} in
+       i[34567]86-*-linux*)
+               tm_file="${tm_file} linux.h linux-android.h"
+               extra_options="${extra_options} linux-android.opt"
+               if test x$enable_targets = xall; then
+                       tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
+                       tm_defines="${tm_defines} TARGET_BI_ARCH=1"
+                       tmake_file="${tmake_file} i386/t-linux64"
+                       x86_multilibs="${with_multilib_list}"
+                       if test "$x86_multilibs" = "default"; then
+                               x86_multilibs="m64,m32"
+                       fi
+                       x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
+                       for x86_multilib in ${x86_multilibs}; do
+                               case ${x86_multilib} in
+                               m32 | m64 | mx32)
+                                       TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
+                                       ;;
+                               *)
+                                       echo "--with-multilib-list=${x86_with_multilib} not supported."
+                                       exit 1
+                               esac
+                       done
+                       TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
+                       need_64bit_isa=yes
+                       if test x$with_cpu = x; then
+                               if test x$with_cpu_64 = x; then
+                                       with_cpu_64=generic
+                               fi
+                       else
+                               case " $x86_cpus $x86_archs $x86_64_archs " in
+                               *" $with_cpu "*)
+                                       ;;
+                               *)
+                                       echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
+                                       echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
+                                       exit 1
+                                       ;;
+                               esac
+                       fi
+               else
+                       tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
+               fi
+               ;;
+       i[34567]86-*-kfreebsd*-gnu)
+               tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
+               ;;
+       i[34567]86-*-kopensolaris*-gnu)
+               tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
+               ;;
+       i[34567]86-*-gnu*)
+               tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
+               ;;
+       esac
+       ;;
+x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
+                i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
+       case ${target} in
+       x86_64-*-linux*)
+               tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
+               extra_options="${extra_options} linux-android.opt"
+               ;;
+       x86_64-*-kfreebsd*-gnu)
+               tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
+               ;;
+       esac
+       tmake_file="${tmake_file} i386/t-linux64"
+       x86_multilibs="${with_multilib_list}"
+       if test "$x86_multilibs" = "default"; then
+               case ${with_abi} in
+               x32 | mx32)
+                       x86_multilibs="mx32"
+                       ;;
+               *)
+                       x86_multilibs="m64,m32"
+                       ;;
+               esac
+       fi
+       x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
+       for x86_multilib in ${x86_multilibs}; do
+               case ${x86_multilib} in
+               m32 | m64 | mx32)
+                       TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
+                       ;;
+               *)
+                       echo "--with-multilib-list=${x86_with_multilib} not supported."
+                       exit 1
+               esac
+       done
+       TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
+       ;;
+i[34567]86-pc-msdosdjgpp*)
+       xm_file=i386/xm-djgpp.h
+       tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
+       native_system_header_dir=/dev/env/DJDIR/include
+       extra_options="${extra_options} i386/djgpp.opt"
+       gnu_ld=yes
+       gas=yes
+       use_gcc_stdint=wrap
+       ;;
+i[34567]86-*-lynxos*)
+       xm_defines=POSIX
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
+       tmake_file="${tmake_file} t-lynx"
+       extra_options="${extra_options} lynx.opt"
+       thread_file=lynx
+       gnu_ld=yes
+       gas=yes
+       ;;
+i[34567]86-*-nto-qnx*)
+       tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
+       extra_options="${extra_options} i386/nto.opt"
+       gnu_ld=yes
+       gas=yes
+       ;;
+i[34567]86-*-rtems*)
+       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
+       tmake_file="${tmake_file} i386/t-rtems"
+       ;;
+i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
+       # Set default arch_32 to pentium4, tune_32 to generic like the other
+       # i386 targets, although config.guess defaults to i386-pc-solaris2*.
+       with_arch_32=${with_arch_32:-pentium4}
+       with_tune_32=${with_tune_32:-generic}
+       tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
+       tm_defines="${tm_defines} TARGET_BI_ARCH=1"
+       tmake_file="$tmake_file i386/t-sol2"
+       need_64bit_isa=yes
+       if test x$with_cpu = x; then
+               if test x$with_cpu_64 = x; then
+                       with_cpu_64=generic
+               fi
+       else
+               case " $x86_cpus $x86_archs $x86_64_archs " in
+               *" $with_cpu "*)
+                       ;;
+               *)
+                       echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
+                       echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
+                       exit 1
+                       ;;
+               esac
+       fi
+       ;;
+i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
+       tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
+       case ${target} in
+         x86_64-*)
+           need_64bit_isa=yes
+           tm_file="${tm_file} i386/x86-64.h"
+           ;;
+       esac
+       tm_file="${tm_file} vx-common.h"
+       case ${target} in
+         *-vxworksae*)
+           tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
+           tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
+           ;;
+         *)
+           tm_file="${tm_file} vxworks.h i386/vxworks.h"
+           tmake_file="${tmake_file} i386/t-vxworks"
+           ;;
+       esac
+       ;;
+i[34567]86-*-cygwin*)
+       tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h"
+       xm_file=i386/xm-cygwin.h
+       tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
+       target_gtfiles="\$(srcdir)/config/i386/winnt.c"
+       extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
+       extra_objs="${extra_objs} winnt.o winnt-stubs.o"
+       c_target_objs="${c_target_objs} msformat-c.o"
+       cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
+       if test x$enable_threads = xyes; then
+               thread_file='posix'
+       fi
+       default_use_cxa_atexit=yes
+       use_gcc_stdint=wrap
+       ;;
+x86_64-*-cygwin*)
+       need_64bit_isa=yes
+       tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h"
+       xm_file=i386/xm-cygwin.h
+       tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
+       target_gtfiles="\$(srcdir)/config/i386/winnt.c"
+       extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
+       extra_objs="${extra_objs} winnt.o winnt-stubs.o"
+       c_target_objs="${c_target_objs} msformat-c.o"
+       cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
+       if test x$enable_threads = xyes; then
+               thread_file='posix'
+       fi
+       default_use_cxa_atexit=yes
+       use_gcc_stdint=wrap
+       tm_defines="${tm_defines} TARGET_CYGWIN64=1"
+       ;;
+i[34567]86-*-mingw* | x86_64-*-mingw*)
+       tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
+       xm_file=i386/xm-mingw32.h
+       c_target_objs="${c_target_objs} winnt-c.o"
+       cxx_target_objs="${cxx_target_objs} winnt-c.o"
+       target_has_targetcm="yes"
+       case ${target} in
+               x86_64-*-* | *-w64-*)
+                       need_64bit_isa=yes
+                       ;;
+               *)
+                       ;;
+       esac
+       if test x$enable_threads = xposix ; then
+               tm_file="${tm_file} i386/mingw-pthread.h"
+       fi
+       tm_file="${tm_file} i386/mingw32.h"
+       # This makes the logic if mingw's or the w64 feature set has to be used
+       case ${target} in
+               *-w64-*)
+                       user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
+                       user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
+                       tm_file="${tm_file} i386/mingw-w64.h"
+                       if test x$enable_targets = xall; then
+                               tm_defines="${tm_defines} TARGET_BI_ARCH=1"
+                               if test x$with_cpu = x; then
+                                       if test x$with_cpu_64 = x; then
+                                               with_cpu_64=generic
+                                       fi
+                               else
+                                       case " $x86_cpus $x86_archs $x86_64_archs " in
+                                       *" $with_cpu "*)
+                                               ;;
+                                       *)
+                                               echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
+                                               echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
+                                               exit 1
+                                               ;;
+                                       esac
+                               fi
+                       fi
+                       ;;
+               *)
+                       ;;
+       esac
+       tm_file="${tm_file} i386/mingw-stdint.h"
+       tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
+        case ${target} in
+               x86_64-w64-*)
+                               tmake_file="${tmake_file} i386/t-mingw-w64"
+                       ;;
+              i[34567]86-w64-*)
+                       tmake_file="${tmake_file} i386/t-mingw-w32"
+                       ;;
+       esac
+        native_system_header_dir=/mingw/include
+       target_gtfiles="\$(srcdir)/config/i386/winnt.c"
+       extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
+       case ${target} in
+               *-w64-*)
+                       extra_options="${extra_options} i386/mingw-w64.opt"
+                       ;;
+               *)
+                       ;;
+       esac
+       extra_objs="${extra_objs} winnt.o winnt-stubs.o"
+       c_target_objs="${c_target_objs} msformat-c.o"
+       cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
+       gas=yes
+       gnu_ld=yes
+       default_use_cxa_atexit=yes
+       use_gcc_stdint=wrap
+       case ${enable_threads} in
+         "" | yes | win32)
+           thread_file='win32'
+           ;;
+         posix)
+           thread_file='posix'
+           ;;
+       esac
+       case ${target} in
+               *mingw32crt*)
+                       tm_file="${tm_file} i386/crtdll.h"
+                       ;;
+               *mingw32msv* | *mingw*)
+                       ;;
+       esac
+       ;;
+x86_64-*-fuchsia*)
+       tmake_file="${tmake_file} i386/t-x86_64-elf"
+       tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
+       ;;
+ia64*-*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
+       tmake_file="ia64/t-ia64"
+       target_cpu_default="0"
+       if test x$gas = xyes
+       then
+               target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
+       fi
+       if test x$gnu_ld = xyes
+       then
+               target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
+       fi
+       ;;
+ia64*-*-freebsd*)
+       tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
+       target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
+       tmake_file="${tmake_file} ia64/t-ia64"
+       ;;
+ia64*-*-linux*)
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
+       tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
+       target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
+       ;;
+ia64*-*-hpux*)
+       tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
+       tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
+       target_cpu_default="MASK_GNU_AS"
+       case x$enable_threads in
+       x | xyes | xposix )
+               thread_file=posix
+               ;;
+       esac
+       use_collect2=no
+       c_target_objs="ia64-c.o"
+       cxx_target_objs="ia64-c.o"
+       extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
+       use_gcc_stdint=wrap
+       tm_file="${tm_file} hpux-stdint.h"
+       case ${target} in
+       *-*-hpux11.3*)
+               tm_file="${tm_file} ia64/hpux-unix2003.h"
+               ;;
+       esac
+       ;;
+ia64-hp-*vms*)
+       tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
+       tmake_file="${tmake_file} ia64/t-ia64"
+       target_cpu_default="0"
+       if test x$gas = xyes
+       then
+               target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
+       fi
+       extra_options="${extra_options} ia64/vms.opt"
+       ;;
+iq2000*-*-elf*)
+        tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
+        out_file=iq2000/iq2000.c
+        md_file=iq2000/iq2000.md
+        ;;
+lm32-*-elf*)
+        tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
+       tmake_file="${tmake_file} lm32/t-lm32"
+        ;;
+lm32-*-rtems*)
+       tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
+       tmake_file="${tmake_file} lm32/t-lm32"
+       tmake_file="${tmake_file} lm32/t-rtems"
+         ;;
+lm32-*-uclinux*)
+        tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
+       tmake_file="${tmake_file} lm32/t-lm32"
+        ;;
+m32r-*-elf*)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       ;;
+m32rle-*-elf*)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
+       ;;
+m32r-*-linux*)
+       tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
+       tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
+       gnu_ld=yes
+       if test x$enable_threads = xyes; then
+               thread_file='posix'
+       fi
+       ;;
+m32rle-*-linux*)
+       tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
+       tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
+       gnu_ld=yes
+       if test x$enable_threads = xyes; then
+               thread_file='posix'
+       fi
+       ;;
+m68k-*-elf* | fido-*-elf*)
+       case ${target} in
+       fido-*-elf*)
+               # Check that $with_cpu makes sense.
+               case $with_cpu in
+               "" | "fidoa")
+                       ;;
+               *)
+                       echo "Cannot accept --with-cpu=$with_cpu"
+                       exit 1
+                       ;;
+               esac
+               with_cpu=fidoa
+               ;;
+       *)
+               default_m68k_cpu=68020
+               default_cf_cpu=5206
+               ;;
+       esac
+       tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
+       tm_defines="${tm_defines} MOTOROLA=1"
+       tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
+       # Add multilibs for targets other than fido.
+       case ${target} in
+       fido-*-elf*)
+               ;;
+       *)
+               tmake_file="$tmake_file m68k/t-mlibs"
+               ;;
+       esac
+       ;;
+m68k*-*-netbsdelf*)
+       default_m68k_cpu=68020
+       default_cf_cpu=5475
+       tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
+       ;;
+m68k*-*-openbsd*)
+       default_m68k_cpu=68020
+       default_cf_cpu=5475
+       # needed to unconfuse gdb
+       tm_defines="${tm_defines} OBSD_OLD_GAS"
+       tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
+       extra_options="${extra_options} openbsd.opt"
+       tmake_file="t-openbsd m68k/t-openbsd"
+       # we need collect2 until our bug is fixed...
+       use_collect2=yes
+       ;;
+m68k-*-uclinux*)               # Motorola m68k/ColdFire running uClinux
+                               # with uClibc, using the new GNU/Linux-style
+                               # ABI.
+       default_m68k_cpu=68020
+       default_cf_cpu=5206
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
+       extra_options="${extra_options} m68k/uclinux.opt"
+       tm_defines="${tm_defines} MOTOROLA=1"
+       tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
+       ;;
+m68k-*-linux*)                 # Motorola m68k's running GNU/Linux
+                               # with ELF format using glibc 2
+                               # aka the GNU/Linux C library 6.
+       default_m68k_cpu=68020
+       default_cf_cpu=5475
+       with_arch=${with_arch:-m68k}
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
+       extra_options="${extra_options} m68k/ieee.opt"
+       tm_defines="${tm_defines} MOTOROLA=1"
+       tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
+       ;;
+m68k-*-rtems*)
+       default_m68k_cpu=68020
+       default_cf_cpu=5206
+       tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
+       tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h"
+       tm_defines="${tm_defines} MOTOROLA=1"
+       ;;
+mcore-*-elf)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
+       tmake_file=mcore/t-mcore
+       inhibit_libc=true
+       ;;
+microblaze*-linux*)
+       case $target in
+               microblazeel-*)
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
+                       ;;
+               microblaze-*)
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
+                       ;;
+       esac
+       tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
+       tm_file="${tm_file} glibc-stdint.h"
+       c_target_objs="${c_target_objs} microblaze-c.o"
+       cxx_target_objs="${cxx_target_objs} microblaze-c.o"
+       tmake_file="${tmake_file} microblaze/t-microblaze"
+       tmake_file="${tmake_file} microblaze/t-microblaze-linux"
+       ;;
+microblaze*-*-rtems*)
+       case $target in
+               microblazeel-*)
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
+                       ;;
+               microblaze-*)
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
+                       ;;
+       esac
+       tm_file="${tm_file} dbxelf.h"
+       tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
+       c_target_objs="${c_target_objs} microblaze-c.o"
+       cxx_target_objs="${cxx_target_objs} microblaze-c.o"
+       tmake_file="${tmake_file} microblaze/t-microblaze"
+       tmake_file="${tmake_file} microblaze/t-rtems"
+        ;;
+microblaze*-*-elf)
+       case $target in
+               microblazeel-*)
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
+                       ;;
+               microblaze-*)
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
+                       ;;
+       esac
+       tm_file="${tm_file} dbxelf.h newlib-stdint.h"
+       c_target_objs="${c_target_objs} microblaze-c.o"
+       cxx_target_objs="${cxx_target_objs} microblaze-c.o"
+       tmake_file="${tmake_file} microblaze/t-microblaze"
+        ;;
+riscv*-*-linux*)
+       tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
+       case "x${enable_multilib}" in
+       xno) ;;
+       xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
+       *) echo "Unknown value for enable_multilib"; exit 1
+       esac
+       tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
+       gnu_ld=yes
+       gas=yes
+       # Force .init_array support.  The configure script cannot always
+       # automatically detect that GAS supports it, yet we require it.
+       gcc_cv_initfini_array=yes
+       ;;
+riscv*-*-elf* | riscv*-*-rtems*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
+       case ${target} in
+       *-*-rtems*)
+         tm_file="${tm_file} rtems.h riscv/rtems.h"
+         tmake_file="${tmake_file} riscv/t-rtems"
+         ;;
+       *)
+         case "x${enable_multilib}" in
+         xno) ;;
+         xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
+         *) echo "Unknown value for enable_multilib"; exit 1
+         esac
+       esac
+       tmake_file="${tmake_file} riscv/t-riscv"
+       gnu_ld=yes
+       gas=yes
+       # Force .init_array support.  The configure script cannot always
+       # automatically detect that GAS supports it, yet we require it.
+       gcc_cv_initfini_array=yes
+       ;;
+riscv*-*-freebsd*)
+       tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
+       tmake_file="${tmake_file} riscv/t-riscv"
+       gnu_ld=yes
+       gas=yes
+       # Force .init_array support.  The configure script cannot always
+       # automatically detect that GAS supports it, yet we require it.
+       gcc_cv_initfini_array=yes
+       ;;
+mips*-*-netbsd*)                       # NetBSD/mips, either endian.
+       target_cpu_default="MASK_ABICALLS"
+       tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       ;;
+mips*-img-linux*)
+       tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
+       extra_options="${extra_options} linux-android.opt"
+       tmake_file="${tmake_file} mips/t-img-linux"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
+       with_arch_32="mips32r6"
+       with_arch_64="mips64r6"
+       gnu_ld=yes
+       gas=yes
+       ;;
+mips*-mti-linux*)
+       tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
+       extra_options="${extra_options} linux-android.opt"
+       tmake_file="${tmake_file} mips/t-mti-linux"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
+       with_arch_32="mips32r2"
+       with_arch_64="mips64r2"
+       gnu_ld=yes
+       gas=yes
+       ;;
+mips*-*-linux*)                                # Linux MIPS, either endian.
+       tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
+       extra_options="${extra_options} linux-android.opt"
+       case ${target} in
+               mipsisa32r6*)
+                       default_mips_arch=mips32r6
+                       ;;
+               mipsisa32r2*)
+                       default_mips_arch=mips32r2
+                       ;;
+               mipsisa32*)
+                       default_mips_arch=mips32
+                       ;;
+               mips64el-st-linux-gnu)
+                       default_mips_abi=n32
+                       tm_file="${tm_file} mips/st.h"
+                       tmake_file="${tmake_file} mips/t-st"
+                       enable_mips_multilibs="yes"
+                       ;;
+               mips64octeon*-*-linux*)
+                       default_mips_abi=n32
+                       tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
+                       target_cpu_default=MASK_SOFT_FLOAT_ABI
+                       enable_mips_multilibs="yes"
+                       ;;
+               mipsisa64r6*-*-linux*)
+                       default_mips_abi=n32
+                       default_mips_arch=mips64r6
+                       enable_mips_multilibs="yes"
+                       ;;
+               mipsisa64r2*-*-linux*)
+                       default_mips_abi=n32
+                       default_mips_arch=mips64r2
+                       enable_mips_multilibs="yes"
+                       ;;
+               mips64*-*-linux* | mipsisa64*-*-linux*)
+                       default_mips_abi=n32
+                       enable_mips_multilibs="yes"
+                       ;;
+       esac
+       if test x$enable_targets = xall; then
+               enable_mips_multilibs="yes"
+       fi
+       if test x$enable_mips_multilibs = xyes; then
+               tmake_file="${tmake_file} mips/t-linux64"
+       fi
+       ;;
+mips*-mti-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
+       tmake_file="mips/t-mti-elf"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
+       with_arch_32="mips32r2"
+       with_arch_64="mips64r2"
+       ;;
+mips*-img-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
+       tmake_file="mips/t-img-elf"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
+       with_arch_32="mips32r6"
+       with_arch_64="mips64r6"
+       ;;
+mips*-sde-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
+       tmake_file="mips/t-sde"
+       extra_options="${extra_options} mips/sde.opt"
+       case "${with_newlib}" in
+         yes)
+           # newlib / libgloss.
+           ;;
+         *)
+           # MIPS toolkit libraries.
+           tm_file="$tm_file mips/sdemtk.h"
+           tmake_file="$tmake_file mips/t-sdemtk"
+           case ${enable_threads} in
+             "" | yes | mipssde)
+               thread_file='mipssde'
+               ;;
+           esac
+           ;;
+       esac
+       case ${target} in
+         mipsisa32r6*)
+           tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
+           ;;
+         mipsisa32r2*)
+           tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
+           ;;
+         mipsisa32*)
+           tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
+           ;;
+         mipsisa64r6*)
+           tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
+           ;;
+         mipsisa64r2*)
+           tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
+           ;;
+         mipsisa64*)
+           tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
+           ;;
+       esac
+       ;;
+mipsisa32-*-elf* | mipsisa32el-*-elf* | \
+mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
+mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
+mipsisa64-*-elf* | mipsisa64el-*-elf* | \
+mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
+mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
+       tmake_file="mips/t-isa3264"
+       case ${target} in
+         mipsisa32r6*)
+           tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
+           ;;
+         mipsisa32r2*)
+           tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
+           ;;
+         mipsisa32*)
+           tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
+           ;;
+         mipsisa64r6*)
+           tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
+           ;;
+         mipsisa64r2*)
+           tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
+           ;;
+         mipsisa64*)
+           tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
+           ;;
+       esac
+       case ${target} in
+         mipsisa32*-*-elfoabi*)
+           tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
+           tm_file="${tm_file} mips/elfoabi.h"
+           ;;
+         mipsisa64*-*-elfoabi*)
+           tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
+           tm_file="${tm_file} mips/elfoabi.h"
+           ;;
+         *-*-elf*)
+           tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
+           ;;
+       esac
+       ;;
+mipsisa64sr71k-*-elf*)
+        tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
+        tmake_file=mips/t-sr71k
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
+        ;;
+mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
+       tmake_file="mips/t-elf mips/t-sb1"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
+       ;;
+mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
+       tmake_file="mips/t-elf"
+       ;;
+mips64r5900-*-elf* | mips64r5900el-*-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
+       tmake_file="mips/t-elf"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
+       ;;
+mips64-*-elf* | mips64el-*-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
+       tmake_file="mips/t-elf"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
+       ;;
+mips64vr-*-elf* | mips64vrel-*-elf*)
+        tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
+        tmake_file=mips/t-vr
+       tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
+        ;;
+mips64orion-*-elf* | mips64orionel-*-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
+       tmake_file="mips/t-elf"
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
+       ;;
+mips*-*-rtems*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
+       tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
+       ;;
+mips-wrs-vxworks)
+       tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
+       tmake_file="${tmake_file} mips/t-vxworks"
+       ;;
+mipstx39-*-elf* | mipstx39el-*-elf*)
+       tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
+       tmake_file="mips/t-r3900"
+       ;;
+mmix-knuth-mmixware)
+       tm_file="${tm_file} newlib-stdint.h"
+       use_gcc_stdint=wrap
+       ;;
+mn10300-*-*)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       if test x$stabs = xyes
+       then
+               tm_file="${tm_file} dbx.h"
+       fi
+       use_collect2=no
+       use_gcc_stdint=wrap
+       ;;
+msp430*-*-*)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       c_target_objs="msp430-c.o"
+       cxx_target_objs="msp430-c.o"
+       tmake_file="${tmake_file} msp430/t-msp430"
+       extra_gcc_objs="driver-msp430.o"
+       ;;
+nds32le-*-*)
+       target_cpu_default="0"
+       tm_defines="${tm_defines}"
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/nds32_intrinsic.h"
+       tmake_file="nds32/t-nds32 nds32/t-mlibs"
+       ;;
+nds32be-*-*)
+       target_cpu_default="0|MASK_BIG_ENDIAN"
+       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/nds32_intrinsic.h"
+       tmake_file="nds32/t-nds32 nds32/t-mlibs"
+       ;;
+nios2-*-*)
+       tm_file="elfos.h ${tm_file}"
+        tmake_file="${tmake_file} nios2/t-nios2"
+        case ${target} in
+        nios2-*-linux*)
+                tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
+                ;;
+       nios2-*-elf*)
+               tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
+               extra_options="${extra_options} nios2/elf.opt"
+               ;;
+       nios2-*-rtems*)
+               tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
+               tmake_file="${tmake_file} t-rtems nios2/t-rtems"
+               ;;
+        esac
+       ;;
+nvptx-*)
+       tm_file="${tm_file} newlib-stdint.h"
+       use_gcc_stdint=wrap
+       tmake_file="nvptx/t-nvptx"
+       if test x$enable_as_accelerator = xyes; then
+               extra_programs="${extra_programs} mkoffload\$(exeext)"
+               tm_file="${tm_file} nvptx/offload.h"
+       fi
+       ;;
+pdp11-*-*)
+       tm_file="${tm_file} newlib-stdint.h"
+       use_gcc_stdint=wrap
+       ;;
+# port not yet contributed
+#powerpc-*-openbsd*)
+#      tmake_file="${tmake_file} rs6000/t-fprules"
+#      extra_headers=
+#      ;;
+powerpc-*-darwin*)
+       extra_options="${extra_options} rs6000/darwin.opt"
+       case ${target} in
+         *-darwin1[0-9]* | *-darwin[8-9]*)
+           tmake_file="${tmake_file} rs6000/t-darwin8"
+           tm_file="${tm_file} rs6000/darwin8.h"
+           ;;
+         *-darwin7*)
+           tm_file="${tm_file} rs6000/darwin7.h"
+           ;;
+         *-darwin[0-6]*)
+           ;;
+       esac
+       tmake_file="${tmake_file} t-slibgcc"
+       extra_headers=altivec.h
+       ;;
+powerpc64-*-darwin*)
+       extra_options="${extra_options} ${cpu_type}/darwin.opt"
+       tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
+       tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
+       extra_headers=altivec.h
+       ;;
+powerpc*-*-freebsd*)
+       tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+       case ${target} in
+            powerpc64*)
+               tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
+               tmake_file="${tmake_file} rs6000/t-freebsd64"
+               extra_options="${extra_options} rs6000/linux64.opt"
+               ;;
+            *)
+               tm_file="${tm_file} rs6000/freebsd.h"
+               ;;
+       esac
+       ;;
+powerpc-*-netbsd*)
+       tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       tmake_file="${tmake_file} rs6000/t-netbsd"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       ;;
+powerpc-*-eabispe*)
+       tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h ${cpu_type}/sysv4.h ${cpu_type}/eabi.h ${cpu_type}/e500.h ${cpu_type}/eabispe.h"
+       extra_options="${extra_options} ${cpu_type}/sysv4.opt"
+       tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm"
+       use_gcc_stdint=wrap
+       ;;
+powerpc-*-eabisimaltivec*)
+       tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
+       use_gcc_stdint=wrap
+       ;;
+powerpc-*-eabisim*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+       use_gcc_stdint=wrap
+       ;;
+powerpc-*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+       ;;
+powerpc-*-eabialtivec*)
+       tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
+       use_gcc_stdint=wrap
+       ;;
+powerpc-xilinx-eabi*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h"
+       extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
+       use_gcc_stdint=wrap
+       ;;
+powerpc-*-eabi*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+       use_gcc_stdint=wrap
+       ;;
+powerpc-*-rtems*spe*)
+       tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h powerpcspe/sysv4.h powerpcspe/eabi.h powerpcspe/e500.h powerpcspe/rtems.h rtems.h"
+       extra_options="${extra_options} powerpcspe/sysv4.opt"
+       tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm"
+       ;;
+powerpc-*-rtems*)
+       tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
+       extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
+       tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
+       ;;
+powerpc*-*-linux*spe*)
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h"
+       extra_options="${extra_options} powerpcspe/sysv4.opt"
+       tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm"
+       extra_objs="$extra_objs powerpcspe-linux.o"
+       maybe_biarch=
+       tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h"
+       tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux"
+       tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h"
+       ;;
+powerpc*-*-linux*)
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
+       extra_objs="$extra_objs rs6000-linux.o"
+       case ${target} in
+           powerpc*le-*-*)
+               tm_file="${tm_file} rs6000/sysv4le.h" ;;
+       esac
+       case ${target}:${with_cpu} in
+           powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
+       esac
+       maybe_biarch=${cpu_is_64bit}
+       case ${enable_targets} in
+           *powerpc64*) maybe_biarch=yes ;;
+           all) maybe_biarch=yes ;;
+       esac
+       case ${target} in
+           powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
+               echo "*** Configuration ${target} not supported" 1>&2
+               exit 1
+               ;;
+           powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
+               maybe_biarch=
+               ;;
+       esac
+       case ${target}:${enable_targets}:${maybe_biarch} in
+           powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
+           | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
+           | powerpcle-*:*powerpc64le*:yes)
+               if test x$cpu_is_64bit = xyes; then
+                   tm_file="${tm_file} rs6000/default64.h"
+               fi
+               tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
+               tmake_file="$tmake_file rs6000/t-linux64"
+               case ${target} in
+                   powerpc*le-*-*)
+                       tmake_file="$tmake_file rs6000/t-linux64le"
+                       case ${enable_targets} in
+                           all | *powerpc64-* | *powerpc-*)
+                               tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
+                       esac ;;
+                   *)
+                       case ${enable_targets} in
+                           all | *powerpc64le-* | *powerpcle-*)
+                               tmake_file="$tmake_file rs6000/t-linux64bele" ;;
+                       esac ;;
+               esac
+               extra_options="${extra_options} rs6000/linux64.opt"
+               ;;
+           powerpc64*)
+               tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
+               extra_options="${extra_options} rs6000/linux64.opt"
+               tmake_file="${tmake_file} rs6000/t-linux"
+               ;;
+           *)
+               tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
+               tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
+               ;;
+       esac
+       case ${target} in
+           powerpc*-*-linux*ppc476*)
+               tm_file="${tm_file} rs6000/476.h"
+               extra_options="${extra_options} rs6000/476.opt" ;;
+           powerpc*-*-linux*altivec*)
+               tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
+           powerpc*-*-linux*spe*)
+               tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;;
+           powerpc*-*-linux*paired*)
+               tm_file="${tm_file} rs6000/750cl.h" ;;
+       esac
+       case ${target} in
+           *-linux*-musl*)
+               enable_secureplt=yes ;;
+       esac
+       if test x${enable_secureplt} = xyes; then
+               tm_file="rs6000/secureplt.h ${tm_file}"
+       fi
+       ;;
+powerpc-wrs-vxworks*spe)
+       tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h"
+       tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks"
+       extra_options="${extra_options} powerpcspe/sysv4.opt"
+       extra_headers=ppc-asm.h
+       tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h"
+       ;;
+powerpc-wrs-vxworks*)
+       tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
+       tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       extra_headers=ppc-asm.h
+       case ${target} in
+          *-vxworksmils*)
+            tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
+            tmake_file="${tmake_file} rs6000/t-vxworksmils"
+            ;;
+         *-vxworksae*)
+           tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
+           tmake_file="${tmake_file} rs6000/t-vxworksae"
+           ;;
+         *-vxworks*)
+           tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
+           ;;
+       esac
+       ;;
+powerpc-*-lynxos*)
+       xm_defines=POSIX
+       tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
+       tmake_file="t-lynx rs6000/t-lynx"
+       extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
+       thread_file=lynx
+       gnu_ld=yes
+       gas=yes
+       ;;
+powerpcle-*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       ;;
+powerpcle-*-eabisim*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       use_gcc_stdint=wrap
+       ;;
+powerpcle-*-eabi*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       use_gcc_stdint=wrap
+       ;;
+rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
+       tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
+       tmake_file="rs6000/t-aix43 t-slibgcc"
+       extra_options="${extra_options} rs6000/aix64.opt"
+       use_collect2=yes
+       thread_file='aix'
+       use_gcc_stdint=provide
+       extra_headers=
+       ;;
+rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
+       tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
+       extra_options="${extra_options} rs6000/aix64.opt"
+       tmake_file="rs6000/t-aix43 t-slibgcc"
+       use_collect2=yes
+       thread_file='aix'
+       use_gcc_stdint=wrap
+       extra_headers=
+       ;;
+rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
+       tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
+       tmake_file="rs6000/t-aix52 t-slibgcc"
+       extra_options="${extra_options} rs6000/aix64.opt"
+       use_collect2=yes
+       thread_file='aix'
+       use_gcc_stdint=wrap
+       extra_headers=
+       ;;
+rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
+       tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
+       tmake_file="rs6000/t-aix52 t-slibgcc"
+       extra_options="${extra_options} rs6000/aix64.opt"
+       use_collect2=yes
+       thread_file='aix'
+       use_gcc_stdint=wrap
+       extra_headers=altivec.h
+       ;;
+rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
+       tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
+       tmake_file="rs6000/t-aix52 t-slibgcc"
+       extra_options="${extra_options} rs6000/aix64.opt"
+       use_collect2=yes
+       thread_file='aix'
+       use_gcc_stdint=wrap
+       extra_headers=altivec.h
+       default_use_cxa_atexit=yes
+       ;;
+rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
+       tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
+       tmake_file="rs6000/t-aix52 t-slibgcc"
+       extra_options="${extra_options} rs6000/aix64.opt"
+       use_collect2=yes
+       thread_file='aix'
+       use_gcc_stdint=wrap
+       extra_headers="altivec.h amo.h"
+       default_use_cxa_atexit=yes
+       ;;
+rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
+       tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
+       tmake_file="rs6000/t-aix52 t-slibgcc"
+       extra_options="${extra_options} rs6000/aix64.opt"
+       use_collect2=yes
+       thread_file='aix'
+       use_gcc_stdint=wrap
+       extra_headers="altivec.h amo.h"
+       default_use_cxa_atexit=yes
+       ;;
+rl78-*-elf*)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       target_has_targetm_common=no
+       c_target_objs="rl78-c.o"
+       cxx_target_objs="rl78-c.o"
+       tmake_file="${tmake_file} rl78/t-rl78"
+       ;;
+rx-*-elf*)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       tmake_file="${tmake_file} rx/t-rx"
+       ;;
+s390-*-linux*)
+       tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
+       c_target_objs="${c_target_objs} s390-c.o"
+       cxx_target_objs="${cxx_target_objs} s390-c.o"
+       if test x$enable_targets = xall; then
+               tmake_file="${tmake_file} s390/t-linux64"
+       fi
+       tmake_file="${tmake_file} s390/t-s390"
+       ;;
+s390x-*-linux*)
+       tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
+       tm_p_file="linux-protos.h s390/s390-protos.h"
+       c_target_objs="${c_target_objs} s390-c.o"
+       cxx_target_objs="${cxx_target_objs} s390-c.o"
+       md_file=s390/s390.md
+       extra_modes=s390/s390-modes.def
+       out_file=s390/s390.c
+       tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
+       ;;
+s390x-ibm-tpf*)
+       tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
+       tm_p_file=s390/s390-protos.h
+       c_target_objs="${c_target_objs} s390-c.o"
+       cxx_target_objs="${cxx_target_objs} s390-c.o"
+       md_file=s390/s390.md
+       extra_modes=s390/s390-modes.def
+       out_file=s390/s390.c
+       thread_file='tpf'
+       extra_options="${extra_options} s390/tpf.opt"
+       tmake_file="${tmake_file} s390/t-s390"
+       ;;
+sh-*-elf* | sh[12346l]*-*-elf* | \
+  sh-*-linux* | sh[2346lbe]*-*-linux* | \
+  sh-*-netbsdelf* | shl*-*-netbsdelf*)
+       tmake_file="${tmake_file} sh/t-sh sh/t-elf"
+       if test x${with_endian} = x; then
+               case ${target} in
+               sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
+               shbe-*-* | sheb-*-*)               with_endian=big,little ;;
+               sh[1234]l* | sh[34]*-*-linux*)     with_endian=little ;;
+               shl* | sh*-*-linux* | \
+                 sh-superh-elf)                   with_endian=little,big ;;
+               sh[1234]*-*-*)                     with_endian=big ;;
+               *)                                 with_endian=big,little ;;
+               esac
+       fi
+       # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
+       #  First word : the default endian.
+       #  Second word: the secondary endian (optional).
+       case ${with_endian} in
+       big)            TM_ENDIAN_CONFIG=mb ;;
+       little)         TM_ENDIAN_CONFIG=ml ;;
+       big,little)     TM_ENDIAN_CONFIG="mb ml" ;;
+       little,big)     TM_ENDIAN_CONFIG="ml mb" ;;
+       *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
+       esac
+       case ${with_endian} in
+       little*)        tm_file="sh/little.h ${tm_file}" ;;
+       esac
+       tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
+       case ${target} in
+       sh*-*-linux*)   tmake_file="${tmake_file} sh/t-linux"
+                       if test x$enable_fdpic = xyes; then
+                               tm_defines="$tm_defines FDPIC_DEFAULT=1"
+                       fi
+                       tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
+       sh*-*-netbsd*)
+                       tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
+                       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+
+                       ;;
+       sh*-superh-elf) if test x$with_libgloss != xno; then
+                                with_libgloss=yes
+                                tm_file="${tm_file} sh/newlib.h"
+                        fi
+                       tm_file="${tm_file} sh/embed-elf.h"
+                       tm_file="${tm_file} sh/superh.h"
+                       extra_options="${extra_options} sh/superh.opt" ;;
+       *)              if test x$with_newlib = xyes \
+                          && test x$with_libgloss = xyes; then
+                               tm_file="${tm_file} sh/newlib.h"
+                       fi
+                       tm_file="${tm_file} sh/embed-elf.h" ;;
+       esac
+       case ${target} in
+       *-*-netbsd)
+               ;;
+       *-*-elf*)
+               tm_file="${tm_file} newlib-stdint.h"
+               ;;
+       esac
+       # sed el/eb endian suffixes away to avoid confusion with sh[23]e
+       case `echo ${target} | sed 's/e[lb]-/-/'` in
+       sh4a_single_only*)      sh_cpu_target=sh4a-single-only ;;
+       sh4a_single*)           sh_cpu_target=sh4a-single ;;
+       sh4a_nofpu*)            sh_cpu_target=sh4a-nofpu ;;
+       sh4al)                  sh_cpu_target=sh4al ;;
+       sh4a*)                  sh_cpu_target=sh4a ;;
+       sh4_single_only*)       sh_cpu_target=sh4-single-only ;;
+       sh4_single*)            sh_cpu_target=sh4-single ;;
+       sh4_nofpu*)             sh_cpu_target=sh4-nofpu ;;
+       sh4* | sh-superh-*)     sh_cpu_target=sh4 ;;
+       sh3e*)                  sh_cpu_target=sh3e ;;
+       sh*-*-netbsd* | sh3*)   sh_cpu_target=sh3 ;;
+       sh2a_single_only*)      sh_cpu_target=sh2a-single-only ;;
+       sh2a_single*)           sh_cpu_target=sh2a-single ;;
+       sh2a_nofpu*)            sh_cpu_target=sh2a-nofpu ;;
+       sh2a*)                  sh_cpu_target=sh2a ;;
+       sh2e*)                  sh_cpu_target=sh2e ;;
+       sh2*)                   sh_cpu_target=sh2 ;;
+       *)                      sh_cpu_target=sh1 ;;
+       esac
+       # did the user say --without-fp ?
+       if test x$with_fp = xno; then
+               case ${sh_cpu_target} in
+               sh4al | sh1)    ;;
+               sh4a* )         sh_cpu_target=sh4a-nofpu ;;
+               sh4*)           sh_cpu_target=sh4-nofpu ;;
+               sh3*)           sh_cpu_target=sh3 ;;
+               sh2a*)          sh_cpu_target=sh2a-nofpu ;;
+               sh2*)           sh_cpu_target=sh2 ;;
+               *)      echo --without-fp not available for $target: ignored
+               esac
+               tm_defines="$tm_defines STRICT_NOFPU=1"
+       fi
+       sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
+       case $sh_cpu_default in
+         sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
+         sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
+         sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
+         sh3e | sh3 | sh2e | sh2 | sh1) ;;
+       "")     sh_cpu_default=${sh_cpu_target} ;;
+       *)      echo "with_cpu=$with_cpu not supported"; exit 1 ;;
+       esac
+       sh_multilibs=${with_multilib_list}
+       if test "$sh_multilibs" = "default" ; then
+               case ${target} in
+               sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
+               sh-superh-*)    sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
+               sh*-*-linux*)   sh_multilibs=m1,m2,m2a,m3e,m4 ;;
+               sh*-*-netbsd*)  sh_multilibs=m3,m3e,m4 ;;
+               *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
+               esac
+               if test x$with_fp = xno; then
+                       sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`"
+               fi
+       fi
+       target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
+       tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
+       tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
+       sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
+       for sh_multilib in ${sh_multilibs}; do
+               case ${sh_multilib} in
+               m1 | m2 | m2e | m3 | m3e | \
+               m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
+               m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
+               m2a | m2a-single | m2a-single-only | m2a-nofpu)
+                       # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
+                       # It is passed to MULTIILIB_OPTIONS verbatim.
+                       TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
+                       tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
+                       ;;
+               \!*)    # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
+                       # It is passed the MULTILIB_EXCEPTIONS verbatim.
+                       TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
+               *)
+                       echo "with_multilib_list=${sh_multilib} not supported."
+                       exit 1
+                       ;;
+               esac
+       done
+       TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
+       if test x${enable_incomplete_targets} = xyes ; then
+               tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
+       fi
+       tm_file="$tm_file ./sysroot-suffix.h"
+       tmake_file="$tmake_file t-sysroot-suffix"
+       ;;
+sh-*-rtems*)
+       tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
+       tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
+       ;;
+sh-wrs-vxworks)
+       tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
+       tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
+       ;;
+sparc-*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
+       case ${target} in
+           *-leon-*)
+               tmake_file="sparc/t-sparc sparc/t-leon"
+               ;;
+           *-leon[3-9]*)
+               tmake_file="sparc/t-sparc sparc/t-leon3"
+               ;;
+           *)
+               tmake_file="sparc/t-sparc sparc/t-elf"
+               ;;
+       esac
+       ;;
+sparc-*-rtems*)
+       tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
+       ;;
+sparc-*-linux*)
+       tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       case ${target} in
+           *-leon-*)
+               tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
+               ;;
+           *-leon[3-9]*)
+               tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
+               ;;
+           *)
+               tmake_file="${tmake_file} sparc/t-sparc"
+               ;;
+       esac
+       if test x$enable_targets = xall; then
+               tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
+               tmake_file="${tmake_file} sparc/t-linux64"
+       else
+               tm_file="${tm_file} sparc/linux.h"
+               tmake_file="${tmake_file} sparc/t-linux"
+       fi
+       ;;
+sparc-*-netbsdelf*)
+       tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       tmake_file="${tmake_file} sparc/t-sparc"
+       ;;
+sparc*-*-solaris2*)
+       tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
+       case ${target} in
+           sparc64-*-* | sparcv9-*-*)
+               tm_file="sparc/default64.h ${tm_file}"
+               ;;
+           *)
+               test x$with_cpu != x || with_cpu=v9
+               ;;
+       esac
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
+       ;;
+sparc-wrs-vxworks)
+       tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
+       ;;
+sparc64-*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
+       extra_options="${extra_options}"
+       tmake_file="${tmake_file} sparc/t-sparc"
+       ;;
+sparc64-*-rtems*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
+       extra_options="${extra_options}"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
+       ;;
+sparc64-*-linux*)
+       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
+       ;;
+sparc64-*-freebsd*|ultrasparc-*-freebsd*)
+       tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       case "x$with_cpu" in
+               xultrasparc) ;;
+               x) with_cpu=ultrasparc ;;
+               *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
+       esac
+       tmake_file="${tmake_file} sparc/t-sparc"
+       ;;
+sparc64-*-netbsd*)
+       tm_file="sparc/biarch64.h ${tm_file}"
+       tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
+       ;;
+sparc64-*-openbsd*)
+       tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
+       tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
+       extra_options="${extra_options} openbsd.opt"
+       extra_options="${extra_options}"
+       gas=yes gnu_ld=yes
+       with_cpu=ultrasparc
+       tmake_file="${tmake_file} sparc/t-sparc"
+       ;;
+spu-*-elf*)
+       tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
+       tmake_file="spu/t-spu-elf"
+        native_system_header_dir=/include
+       extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
+       extra_modes=spu/spu-modes.def
+       c_target_objs="${c_target_objs} spu-c.o"
+       cxx_target_objs="${cxx_target_objs} spu-c.o"
+       ;;
+tic6x-*-elf)
+       tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
+       tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
+       tmake_file="c6x/t-c6x c6x/t-c6x-elf"
+       use_collect2=no
+       ;;
+tic6x-*-uclinux)
+       tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
+       tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
+       tm_file="${tm_file} ./sysroot-suffix.h"
+       tmake_file="t-sysroot-suffix t-slibgcc"
+       tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
+       use_collect2=no
+       ;;
+tilegx*-*-linux*)
+       tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
+        tmake_file="${tmake_file} tilegx/t-tilegx"
+       extra_objs="${extra_objs} mul-tables.o"
+       c_target_objs="${c_target_objs} tilegx-c.o"
+       cxx_target_objs="${cxx_target_objs} tilegx-c.o"
+       extra_headers="feedback.h"
+       case $target in
+       tilegxbe-*)
+               tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+               ;;
+       esac
+       ;;
+tilepro*-*-linux*)
+       tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
+        tmake_file="${tmake_file} tilepro/t-tilepro"
+       extra_objs="${extra_objs} mul-tables.o"
+       c_target_objs="${c_target_objs} tilepro-c.o"
+       cxx_target_objs="${cxx_target_objs} tilepro-c.o"
+       extra_headers="feedback.h"
+       ;;
+v850-*-rtems*)
+       target_cpu_default="TARGET_CPU_generic"
+       tm_file="dbxelf.h elfos.h v850/v850.h"
+       tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
+       tmake_file="${tmake_file} v850/t-v850"
+       tmake_file="${tmake_file} v850/t-rtems"
+       use_collect2=no
+       c_target_objs="v850-c.o"
+       cxx_target_objs="v850-c.o"
+       ;;
+v850*-*-*)
+       case ${target} in
+       v850e3v5-*-*)
+               target_cpu_default="TARGET_CPU_v850e3v5"
+               ;;
+       v850e2v3-*-*)
+               target_cpu_default="TARGET_CPU_v850e2v3"
+               ;;
+       v850e2-*-*)
+               target_cpu_default="TARGET_CPU_v850e2"
+               ;;
+       v850e1-*-* | v850es-*-*)
+               target_cpu_default="TARGET_CPU_v850e1"
+               ;;
+       v850e-*-*)
+               target_cpu_default="TARGET_CPU_v850e"
+               ;;
+       v850-*-*)
+               target_cpu_default="TARGET_CPU_generic"
+               ;;
+       esac
+       tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
+       if test x$stabs = xyes
+       then
+               tm_file="${tm_file} dbx.h"
+       fi
+       use_collect2=no
+       c_target_objs="v850-c.o"
+       cxx_target_objs="v850-c.o"
+       use_gcc_stdint=wrap
+       ;;
+vax-*-linux*)
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
+       extra_options="${extra_options} vax/elf.opt"
+       ;;
+vax-*-netbsdelf*)
+       tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
+       extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
+       tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
+       ;;
+vax-*-openbsd*)
+       tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
+       extra_options="${extra_options} openbsd.opt"
+       use_collect2=yes
+       ;;
+visium-*-elf*)
+       tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
+       tmake_file="visium/t-visium visium/t-crtstuff"
+       ;;
+xstormy16-*-elf)
+       # For historical reasons, the target files omit the 'x'.
+       tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
+       tm_p_file=stormy16/stormy16-protos.h
+       md_file=stormy16/stormy16.md
+       out_file=stormy16/stormy16.c
+       extra_options=stormy16/stormy16.opt
+       tmake_file="stormy16/t-stormy16"
+       ;;
+xtensa*-*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
+       extra_options="${extra_options} xtensa/elf.opt"
+       ;;
+xtensa*-*-linux*)
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
+       tmake_file="${tmake_file} xtensa/t-xtensa"
+       ;;
+xtensa*-*-uclinux*)
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
+       tmake_file="${tmake_file} xtensa/t-xtensa"
+       extra_options="${extra_options} xtensa/uclinux.opt"
+       ;;
+am33_2.0-*-linux*)
+       tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
+       gas=yes gnu_ld=yes
+       use_collect2=no
+       ;;
+m32c-*-rtems*)
+       tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
+       c_target_objs="m32c-pragma.o"
+       cxx_target_objs="m32c-pragma.o"
+       ;;
+m32c-*-elf*)
+       tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+       c_target_objs="m32c-pragma.o"
+       cxx_target_objs="m32c-pragma.o"
+       ;;
+*)
+       echo "*** Configuration ${target} not supported" 1>&2
+       exit 1
+       ;;
+esac
+
+case ${target} in
+i[34567]86-*-linux* | x86_64-*-linux*)
+       tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
+       ;;
+i[34567]86-*-* | x86_64-*-*)
+       tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
+       ;;
+powerpc*-*-* | rs6000-*-*)
+       tm_file="${tm_file} ${cpu_type}/option-defaults.h"
+esac
+
+# non-glibc systems
+case ${target} in
+*-linux-musl*)
+       tmake_file="${tmake_file} t-musl"
+       ;;
+*-linux-uclibc*)
+       tmake_file="${tmake_file} t-uclibc"
+       ;;
+esac
+
+# Assume the existence of indirect function support and allow the use of the
+# resolver attribute.
+case ${target} in
+*-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
+        ;;
+*-*-linux*)
+       case ${target} in
+       aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
+               default_gnu_indirect_function=yes
+               ;;
+       esac
+       ;;
+esac
+
+# Build mkoffload tool
+case ${target} in
+*-intelmic-* | *-intelmicemul-*)
+       tmake_file="${tmake_file} i386/t-intelmic"
+       tm_file="${tm_file} i386/intelmic-offload.h"
+       ;;
+esac
+
+if [ "$target_has_targetcm" = "no" ]; then
+  c_target_objs="$c_target_objs default-c.o"
+  cxx_target_objs="$cxx_target_objs default-c.o"
+fi
+
+if [ "$common_out_file" = "" ]; then
+  if [ "$target_has_targetm_common" = "yes" ]; then
+    common_out_file="$cpu_type/$cpu_type-common.c"
+  else
+    common_out_file="default-common.c"
+  fi
+fi
+
+# Support for --with-cpu and related options (and a few unrelated options,
+# too).
+case ${with_cpu} in
+  yes | no)
+    echo "--with-cpu must be passed a value" 1>&2
+    exit 1
+    ;;
+esac
+
+# Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
+# to generic if there is no processor scheduler model for the target.
+arch=
+cpu=
+arch_without_sse2=no
+arch_without_64bit=no
+case ${target} in
+  i386-*-freebsd*)
+    if test $fbsd_major -ge 6; then
+      arch=i486
+    else
+      arch=i386
+    fi
+    cpu=generic
+    arch_without_sse2=yes
+    arch_without_64bit=yes
+    ;;
+  i386-*-netbsd*)
+    arch=i486
+    cpu=generic
+    arch_without_sse2=yes
+    arch_without_64bit=yes
+    ;;
+  i386-*-*)
+    arch=i386
+    cpu=i386
+    arch_without_sse2=yes
+    arch_without_64bit=yes
+    ;;
+  i486-*-*)
+    arch=i486
+    cpu=i486
+    arch_without_sse2=yes
+    arch_without_64bit=yes
+    ;;
+  i586-*-*)
+    arch_without_sse2=yes
+    arch_without_64bit=yes
+    case ${target_noncanonical} in
+      k6_2-*)
+       arch=k6-2
+       cpu=k6-2
+       ;;
+      k6_3-*)
+       arch=k6-3
+       cpu=k6-3
+       ;;
+      k6-*)
+       arch=k6
+       cpu=k6
+       ;;
+      pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
+       arch=pentium-mmx
+       cpu=pentium-mmx
+       ;;
+      *)
+       arch=pentium
+       cpu=pentium
+       ;;
+    esac
+    ;;
+  i686-*-* | i786-*-*)
+    case ${target_noncanonical} in
+      znver1-*)
+       arch=znver1
+       cpu=znver1
+       ;;
+      bdver4-*)
+        arch=bdver4
+        cpu=bdver4
+        ;;
+      bdver3-*)
+        arch=bdver3
+        cpu=bdver3
+        ;;
+      bdver2-*)
+        arch=bdver2
+        cpu=bdver2
+        ;;
+      bdver1-*)
+       arch=bdver1
+       cpu=bdver1
+       ;;
+      btver1-*)
+       arch=btver1
+       cpu=btver1
+       ;;
+      btver2-*)
+       arch=btver2
+       cpu=btver2
+       ;;
+      amdfam10-*|barcelona-*)
+       arch=amdfam10
+       cpu=amdfam10
+       ;;
+      k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
+       arch=k8-sse3
+       cpu=k8-sse3
+       ;;
+      k8-*|opteron-*|athlon64-*|athlon_fx-*)
+       arch=k8
+       cpu=k8
+       ;;
+      athlon_xp-*|athlon_mp-*|athlon_4-*)
+       arch=athlon-4
+       cpu=athlon-4
+       arch_without_sse2=yes
+       arch_without_64bit=yes
+       ;;
+      athlon_tbird-*|athlon-*)
+       arch=athlon
+       cpu=athlon
+       arch_without_sse2=yes
+       ;;
+      geode-*)
+       arch=geode
+       cpu=geode
+       arch_without_sse2=yes
+       ;;
+      pentium2-*)
+       arch=pentium2
+       cpu=pentium2
+       arch_without_sse2=yes
+       ;;
+      pentium3-*|pentium3m-*)
+       arch=pentium3
+       cpu=pentium3
+       arch_without_sse2=yes
+       ;;
+      pentium4-*|pentium4m-*)
+       arch=pentium4
+       cpu=pentium4
+       ;;
+      prescott-*)
+       arch=prescott
+       cpu=prescott
+       ;;
+      nocona-*)
+       arch=nocona
+       cpu=nocona
+       ;;
+      atom-*)
+       arch=atom
+       cpu=atom
+       ;;
+      slm-*)
+       arch=slm
+       cpu=slm
+       ;;
+      core2-*)
+       arch=core2
+       cpu=core2
+       ;;
+      corei7-*)
+       arch=corei7
+       cpu=corei7
+       ;;
+      corei7_avx-*)
+       arch=corei7-avx
+       cpu=corei7-avx
+       ;;
+      pentium_m-*)
+       arch=pentium-m
+       cpu=pentium-m
+       ;;
+      pentiumpro-*)
+       arch=pentiumpro
+       cpu=pentiumpro
+       arch_without_sse2=yes
+       ;;
+      *)
+       arch=pentiumpro
+       cpu=generic
+       arch_without_sse2=yes
+       arch_without_64bit=yes
+       ;;
+    esac
+    ;;
+  x86_64-*-*)
+    case ${target_noncanonical} in
+      znver1-*)
+       arch=znver1
+       cpu=znver1
+       ;;
+      bdver4-*)
+        arch=bdver4
+        cpu=bdver4
+        ;;
+      bdver3-*)
+        arch=bdver3
+        cpu=bdver3
+        ;;
+      bdver2-*)
+        arch=bdver2
+        cpu=bdver2
+        ;;
+      bdver1-*)
+       arch=bdver1
+       cpu=bdver1
+       ;;
+      btver1-*)
+       arch=btver1
+       cpu=btver1
+       ;;
+      btver2-*)
+       arch=btver2
+       cpu=btver2
+       ;;
+      amdfam10-*|barcelona-*)
+       arch=amdfam10
+       cpu=amdfam10
+       ;;
+      k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
+       arch=k8-sse3
+       cpu=k8-sse3
+       ;;
+      k8-*|opteron-*|athlon_64-*)
+       arch=k8
+       cpu=k8
+       ;;
+      nocona-*)
+       arch=nocona
+       cpu=nocona
+       ;;
+      atom-*)
+       arch=atom
+       cpu=atom
+       ;;
+      slm-*)
+       arch=slm
+       cpu=slm
+       ;;
+      core2-*)
+       arch=core2
+       cpu=core2
+       ;;
+      corei7-*)
+       arch=corei7
+       cpu=corei7
+       ;;
+      *)
+       arch=x86-64
+       cpu=generic
+       ;;
+    esac
+    ;;
+esac
+
+# If there is no $with_cpu option, try to infer one from ${target}.
+# This block sets nothing except for with_cpu.
+if test x$with_cpu = x ; then
+  case ${target} in
+    i[34567]86-*-elfiamcu)
+      with_cpu=lakemont
+      ;;
+    i[34567]86-*-*|x86_64-*-*)
+      with_cpu=$cpu
+      ;;
+    alphaev6[78]*-*-*)
+      with_cpu=ev67
+      ;;
+    alphaev6*-*-*)
+      with_cpu=ev6
+      ;;
+    alphapca56*-*-*)
+      with_cpu=pca56
+      ;;
+    alphaev56*-*-*)
+      with_cpu=ev56
+      ;;
+    alphaev5*-*-*)
+      with_cpu=ev5
+      ;;
+    frv-*-*linux* | frv400-*-*linux*)
+      with_cpu=fr400
+      ;;
+    frv550-*-*linux*)
+      with_cpu=fr550
+      ;;
+    m68k*-*-*)
+      case "$with_arch" in
+       "cf")
+         with_cpu=${default_cf_cpu}
+         ;;
+       "" | "m68k")
+         with_cpu=m${default_m68k_cpu}
+         ;;
+      esac
+      ;;
+    powerpc*-*-*spe*)
+      # For SPE, start with 8540, then upgrade to 8548 if
+      # --enable-e500-double was requested explicitly or if we were
+      # configured for e500v2.
+      with_cpu=8540
+      if test x$enable_e500_double = xyes; then
+        with_cpu=8548
+      fi
+      case ${target_noncanonical} in
+        e500v2*)
+          with_cpu=8548
+          ;;
+      esac
+      ;;
+    sparc*-*-*)
+      case ${target} in
+       *-leon-*)
+         with_cpu=leon
+         ;;
+       *-leon[3-9]*)
+         with_cpu=leon3
+         ;;
+       *-leon[3-9]v7*)
+         with_cpu=leon3v7
+         ;;
+       *)
+         with_cpu="`echo ${target} | sed 's/-.*$//'`"
+         ;;
+      esac
+      ;;
+    visium-*-*)
+      with_cpu=gr5
+      ;;
+  esac
+
+  # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
+  case ${target} in
+    i[34567]86-*-*|x86_64-*-*)
+      if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
+       if test x$with_cpu_32 = x; then
+         with_cpu_32=$with_cpu
+       fi
+       if test x$with_cpu_64 = x; then
+         with_cpu_64=$with_cpu
+       fi
+        with_cpu=
+      fi
+      ;;
+  esac
+fi
+
+# Support for --with-arch and related options (and a few unrelated options,
+# too).
+case ${with_arch} in
+  yes | no)
+    echo "--with-arch must be passed a value" 1>&2
+    exit 1
+    ;;
+esac
+
+# If there is no $with_arch option, try to infer one from ${target}.
+# This block sets nothing except for with_arch.
+if test x$with_arch = x ; then
+  case ${target} in
+    i[34567]86-*-darwin*|x86_64-*-darwin*)
+      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
+      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
+      ;;
+    i[34567]86-*-elfiamcu)
+      with_arch=lakemont
+      ;;
+    i[34567]86-*-*)
+      # --with-fpmath sets the default ISA to SSE2, which is the same
+      # ISA supported by Pentium 4.
+      if test x$with_fpmath = x || test $arch_without_sse2 = no; then
+       with_arch=$arch
+      else
+       with_arch=pentium4
+      fi
+      ;;
+    x86_64-*-*)
+      with_arch=$arch
+      ;;
+    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
+      with_arch=r5900
+      ;;
+    mips*-*-vxworks)
+      with_arch=mips2
+      ;;
+  esac
+
+  # Avoid overriding --with-arch-32 and --with-arch-64 values.
+  case ${target} in
+    i[34567]86-*-darwin*|x86_64-*-darwin*)
+      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
+      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
+      ;;
+    i[34567]86-*-*|x86_64-*-*)
+      if test x$with_arch_32 != x || test x$with_arch_64 != x; then
+       if test x$with_arch_32 = x; then
+         with_arch_32=$with_arch
+       fi
+       if test x$with_arch_64 = x; then
+         if test $arch_without_64bit = yes; then
+           # Set the default 64bit arch to x86-64 if the default arch
+           # doesn't support 64bit.
+           with_arch_64=x86-64
+         else
+           with_arch_64=$with_arch
+         fi
+       fi
+       with_arch=
+      elif test $arch_without_64bit$need_64bit_isa = yesyes; then
+       # Set the default 64bit arch to x86-64 if the default arch
+       # doesn't support 64bit and we need 64bit ISA.
+       with_arch_32=$with_arch
+       with_arch_64=x86-64
+       with_arch=
+      fi
+      ;;
+  esac
+fi
+
+# Infer a default setting for --with-float.
+if test x$with_float = x; then
+  case ${target} in
+    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
+      # The R5900 doesn't support 64-bit float.  32-bit float doesn't
+      # comply with IEEE 754.
+      with_float=soft
+      ;;
+  esac
+fi
+
+# Infer a default setting for --with-fpu.
+if test x$with_fpu = x; then
+  case ${target} in
+    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
+      # The R5900 FPU only supports single precision.
+      with_fpu=single
+      ;;
+  esac
+fi
+
+# Support --with-fpmath.
+if test x$with_fpmath != x; then
+  case ${target} in
+    i[34567]86-*-* | x86_64-*-*)
+      case ${with_fpmath} in
+      avx)
+       tm_file="${tm_file} i386/avxmath.h"
+       ;;
+      sse)
+       tm_file="${tm_file} i386/ssemath.h"
+       ;;
+      *)
+       echo "Invalid --with-fpmath=$with_fpmath" 1>&2
+       exit 1
+       ;;
+      esac
+      ;;
+    *)
+      echo "--with-fpmath isn't supported for $target." 1>&2
+      exit 1
+      ;;
+  esac
+fi
+
+# Similarly for --with-schedule.
+if test x$with_schedule = x; then
+       case ${target} in
+       hppa1*)
+               # Override default PA8000 scheduling model.
+               with_schedule=7100LC
+               ;;
+       esac
+fi
+
+# Infer a default setting for --with-llsc.
+if test x$with_llsc = x; then
+  case ${target} in
+    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
+      # The R5900 doesn't support LL(D) and SC(D).
+      with_llsc=no
+      ;;
+    mips*-*-linux*)
+      # The kernel emulates LL and SC where necessary.
+      with_llsc=yes
+      ;;
+  esac
+fi
+
+# Validate and mark as valid any --with options supported
+# by this target.  In order to use a particular --with option
+# you must list it in supported_defaults; validating the value
+# is optional.  This case statement should set nothing besides
+# supported_defaults.
+
+supported_defaults=
+case "${target}" in
+       aarch64*-*-*)
+               supported_defaults="abi cpu arch"
+               for which in cpu arch; do
+
+                       eval "val=\$with_$which"
+                       base_val=`echo $val | sed -e 's/\+.*//'`
+                       ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
+
+                       if [ $which = arch ]; then
+                         def=aarch64-arches.def
+                         pattern=AARCH64_ARCH
+                       else
+                         def=aarch64-cores.def
+                         pattern=AARCH64_CORE
+                       fi
+
+                       ext_mask=AARCH64_CPU_DEFAULT_FLAGS
+
+                       # Find the base CPU or ARCH id in aarch64-cores.def or
+                       # aarch64-arches.def
+                       if [ x"$base_val" = x ] \
+                           || grep "^$pattern(\"$base_val\"," \
+                                   ${srcdir}/config/aarch64/$def \
+                                   > /dev/null; then
+
+                         if [ $which = arch ]; then
+                               base_id=`grep "^$pattern(\"$base_val\"," \
+                                 ${srcdir}/config/aarch64/$def | \
+                                 sed -e 's/^[^,]*,[    ]*//' | \
+                                 sed -e 's/,.*$//'`
+                               # Extract the architecture flags from aarch64-arches.def
+                               ext_mask=`grep "^$pattern(\"$base_val\"," \
+                                  ${srcdir}/config/aarch64/$def | \
+                                  sed -e 's/)$//' | \
+                                  sed -e 's/^.*,//'`
+                         else
+                               base_id=`grep "^$pattern(\"$base_val\"," \
+                                 ${srcdir}/config/aarch64/$def | \
+                                 sed -e 's/^[^,]*,[    ]*//' | \
+                                 sed -e 's/,.*$//'`
+                         fi
+
+                         while [ x"$ext_val" != x ]
+                         do
+                               ext_val=`echo $ext_val | sed -e 's/\+//'`
+                               ext=`echo $ext_val | sed -e 's/\+.*//'`
+                               base_ext=`echo $ext | sed -e 's/^no//'`
+
+                               if [ x"$base_ext" = x ] \
+                                   || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
+                                   ${srcdir}/config/aarch64/aarch64-option-extensions.def \
+                                   > /dev/null; then
+
+                                 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
+                                       ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
+                                       sed -e 's/^[^,]*,[      ]*//' | \
+                                       sed -e 's/,.*$//'`
+                                 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
+                                       ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
+                                       sed -e 's/^[^,]*,[      ]*[^,]*,[       ]*//' | \
+                                       sed -e 's/,.*$//' | \
+                                       sed -e 's/).*$//'`
+                                 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
+                                       ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
+                                       sed -e 's/^[^,]*,[      ]*[^,]*,[       ]*[^,]*,[       ]*//' | \
+                                       sed -e 's/,.*$//' | \
+                                       sed -e 's/).*$//'`
+
+
+                                 if [ $ext = $base_ext ]; then
+                                       # Adding extension
+                                       ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
+                                 else
+                                       # Removing extension
+                                       ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
+                                 fi
+
+                                 true
+                               else
+                                 echo "Unknown extension used in --with-$which=$val" 1>&2
+                                 exit 1
+                               fi
+                               ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
+                         done
+
+                         ext_mask="(("$ext_mask") << 6)"
+                         if [ x"$base_id" != x ]; then
+                               target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
+                         fi
+                         true
+                       else
+                         echo "Unknown $which used in --with-$which=$val" 1>&2
+                         exit 1
+                       fi
+               done
+               ;;
+
+       alpha*-*-*)
+               supported_defaults="cpu tune"
+               for which in cpu tune; do
+                       eval "val=\$with_$which"
+                       case "$val" in
+                       "" \
+                       | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
+                       | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
+                       | 21264a)
+                               ;;
+                       *)
+                               echo "Unknown CPU used in --with-$which=$val" 1>&2
+                               exit 1
+                               ;;
+                       esac
+               done
+               ;;
+
+       arc*-*-*)
+               supported_defaults="cpu"
+
+               if [ x"$with_cpu" = x ] \
+                   || grep "^ARC_CPU ($with_cpu," \
+                      ${srcdir}/config/arc/arc-cpus.def \
+                      > /dev/null; then
+                # Ok
+                true
+               else
+                echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
+                exit 1
+               fi
+               ;;
+
+       arm*-*-*)
+               supported_defaults="arch cpu float tune fpu abi mode tls"
+               for which in cpu tune arch; do
+                       # See if it matches a supported value
+                       eval "val=\$with_$which"
+                       if [ x"$val" != x ]; then
+                         cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
+                               -v cmd="chk$which $val" \
+                               ${srcdir}/config/arm/arm-cpus.in`
+                         if [ "$cpu" = "error" ]; then
+                           echo "Unknown target in --with-$which=$val" 1>&2
+                           exit 1
+                         else
+                           new_val=$cpu
+                           eval "target_${which}_cname=$new_val"
+                           echo "For $val real value is $new_val"
+                         fi
+                       fi
+               done
+
+               case "$with_float" in
+               "" \
+               | soft | hard | softfp)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown floating point type used in --with-float=$with_float" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               # see if --with-fpu matches any of the supported FPUs
+               if [ x"$with_fpu" != x ] ; then
+                 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
+                       -v cmd="chkfpu $with_fpu" \
+                       ${srcdir}/config/arm/arm-cpus.in`
+                 if [ "$fpu" = "error"]
+                 then
+                   echo "Unknown target in --with-$which=$val" 1>&2
+                   exit 1
+                 fi
+               fi
+
+               case "$with_abi" in
+               "" \
+               | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
+                       #OK
+                       ;;
+               *)
+                       echo "Unknown ABI used in --with-abi=$with_abi"
+                       exit 1
+                       ;;
+               esac
+
+               case "$with_mode" in
+               "" \
+               | arm | thumb )
+                       #OK
+                       ;;
+               *)
+                       echo "Unknown mode used in --with-mode=$with_mode"
+                       exit 1
+                       ;;
+               esac
+
+               case "$with_tls" in
+               "" \
+               | gnu | gnu2)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               if test "x$with_arch" != x && test "x$with_cpu" != x; then
+                       echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\""  1>&2
+                       exit 1
+               fi
+
+               if test "x$with_cpu" != x && test "x$with_tune" != x; then
+                       echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\""  1>&2
+                       exit 1
+               fi
+
+               # Add extra multilibs
+               if test "x$with_multilib_list" != x; then
+                       arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
+                       if test "x${arm_multilibs}" != xdefault ; then
+                               for arm_multilib in ${arm_multilibs}; do
+                                       case ${arm_multilib} in
+                                       aprofile|rmprofile)
+                                               tmake_profile_file="arm/t-multilib"
+                                               ;;
+                                       *)
+                                               echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
+                                               exit 1
+                                               ;;
+                                       esac
+                               done
+                       fi
+
+                       if test "x${tmake_profile_file}" != x ; then
+                               # arm/t-aprofile and arm/t-rmprofile are only
+                               # designed to work without any with-cpu,
+                               # with-arch, with-mode, with-fpu or with-float
+                               # options.
+                               if test "x$with_arch" != x \
+                                   || test "x$with_cpu" != x \
+                                   || test "x$with_float" != x \
+                                   || test "x$with_fpu" != x \
+                                   || test "x$with_mode" != x ; then
+                                   echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
+                                   exit 1
+                               fi
+                               # But pass the default value for float-abi
+                               # through to the multilib selector
+                               with_float="soft"
+                               tmake_file="${tmake_file} ${tmake_profile_file}"
+                               TM_MULTILIB_CONFIG="$with_multilib_list"
+                       fi
+               fi
+               target_cpu_cname=${target_cpu_cname:-arm6}
+               with_cpu=${with_cpu:-$target_cpu_cname}
+               ;;
+
+       fr*-*-*linux*)
+               supported_defaults=cpu
+               case "$with_cpu" in
+               fr400) ;;
+               fr550) ;;
+               *)
+                       echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
+       fido-*-* | m68k*-*-*)
+               supported_defaults="arch cpu"
+               case "$with_arch" in
+               "" | "m68k"| "cf")
+                       m68k_arch_family="$with_arch"
+                       ;;
+               *)
+                       echo "Invalid --with-arch=$with_arch" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               # We always have a $with_cpu setting here.
+               case "$with_cpu" in
+               "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
+                       m68k_cpu_ident=$with_cpu
+                       ;;
+               "m68020-40")
+                       m68k_cpu_ident=m68020
+                       tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
+                       ;;
+               "m68020-60")
+                       m68k_cpu_ident=m68020
+                       tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
+                       ;;
+               *)
+                       # We need the C identifier rather than the string.
+                       m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
+                          'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
+                           $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
+                                ${srcdir}/config/m68k/m68k-devices.def`
+                       if [ x"$m68k_cpu_ident" = x ] ; then
+                               echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
+                               exit 1
+                       fi
+                       with_cpu="mcpu=$with_cpu"
+                       ;;
+               esac
+               ;;
+
+       hppa*-*-*)
+               supported_defaults="arch schedule"
+
+               case "$with_arch" in
+               "" | 1.0 | 1.1 | 2.0)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case "$with_schedule" in
+               "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
+       i[34567]86-*-* | x86_64-*-*)
+               supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
+               for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
+                       eval "val=\$with_$which"
+                       case " $x86_archs " in
+                       *" ${val} "*)
+                               case "${target}" in
+                                 x86_64-*-*)
+                                     case "x$which" in
+                                       *_32)
+                                               ;;
+                                       *)
+                                               echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
+                                               exit 1
+                                               ;;
+                                     esac
+                                     ;;
+                               esac
+                               # OK
+                               ;;
+                       *)
+                               if test x${val} != x; then
+                                       case " $x86_64_archs " in
+                                       *" ${val} "*)
+                                               # OK
+                                               ;;
+                                       *)
+                                               # Allow $x86_cpus --with-cpu=/--with-tune=
+                                               case "x$which" in
+                                               xcpu*|xtune*)
+                                                       case " $x86_cpus " in
+                                                       *" ${val} "*)
+                                                               # OK
+                                                               ;;
+                                                       *)
+                                                               echo "Unknown CPU given in --with-$which=$val." 1>&2
+                                                               exit 1
+                                                               ;;
+                                                       esac
+                                                       ;;
+                                               *)
+                                                       echo "Unknown CPU given in --with-$which=$val." 1>&2
+                                                       exit 1
+                                                       ;;
+                                               esac
+                                       ;;
+                                       esac
+                               fi
+                               ;;
+                       esac
+               done
+               ;;
+
+       riscv*-*-*)
+               supported_defaults="abi arch tune"
+
+               case "${target}" in
+               riscv32*) xlen=32 ;;
+               riscv64*) xlen=64 ;;
+               *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
+               esac
+
+               # Infer arch from --with-arch, --target, and --with-abi.
+               case "${with_arch}" in
+               rv32i* | rv32g* | rv64i* | rv64g*)
+                       # OK.
+                       ;;
+               "")
+                       # Infer XLEN, but otherwise assume GC.
+                       case "${with_abi}" in
+                       ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
+                       lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
+                       *) with_arch="rv${xlen}gc" ;;
+                       esac
+                       ;;
+               *)
+                       echo "--with-arch=${with_arch} is not supported.  The argument must begin with rv32i, rv32g, rv64i, or rv64g." 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               # Make sure --with-abi is valid.  If it was not specified,
+               # pick a default based on the ISA, preferring soft-float
+               # unless the D extension is present.
+               case "${with_abi}" in
+               ilp32 | ilp32f | ilp32d | lp64 | lp64f | lp64d)
+                       ;;
+               "")
+                       case "${with_arch}" in
+                       rv32*d* | rv32g*) with_abi=ilp32d ;;
+                       rv32*) with_abi=ilp32 ;;
+                       rv64*d* | rv64g*) with_abi=lp64d ;;
+                       rv64*) with_abi=lp64 ;;
+                       esac
+                       ;;
+               *)
+                       echo "--with-abi=${with_abi} is not supported" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               # Make sure ABI and ISA are compatible.
+               case "${with_abi},${with_arch}" in
+               ilp32,rv32* \
+               | ilp32f,rv32*f* | ilp32f,rv32g* \
+               | ilp32d,rv32*d* | ilp32d,rv32g* \
+               | lp64,rv64* \
+               | lp64f,rv64*f* | lp64f,rv64g* \
+               | lp64d,rv64*d* | lp64d,rv64g*)
+                       ;;
+               *)
+                       echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
+       mips*-*-*)
+               supported_defaults="abi arch arch_32 arch_64 float fpu nan fp_32 odd_spreg_32 tune tune_32 tune_64 divide llsc mips-plt synci lxc1-sxc1 madd4"
+
+               case ${with_float} in
+               "" | soft | hard)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown floating point type used in --with-float=$with_float" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_fpu} in
+               "" | single | double)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_nan} in
+               "" | 2008 | legacy)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_fp_32} in
+               "" | 32 | xx | 64)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_odd_spreg_32} in
+               yes)
+                       with_odd_spreg_32="odd-spreg"
+                       ;;
+               no)
+                       with_odd_spreg_32="no-odd-spreg"
+                       ;;
+               "")
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_abi} in
+               "" | 32 | o64 | n32 | 64 | eabi)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_divide} in
+               "" | breaks | traps)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_llsc} in
+               yes)
+                       with_llsc=llsc
+                       ;;
+               no)
+                       with_llsc="no-llsc"
+                       ;;
+               "")
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown llsc type used in --with-llsc" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_mips_plt} in
+               yes)
+                       with_mips_plt=plt
+                       ;;
+               no)
+                       with_mips_plt=no-plt
+                       ;;
+               "")
+                       ;;
+               *)
+                       echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_synci} in
+               yes)
+                       with_synci=synci
+                       ;;
+               no)
+                       with_synci=no-synci
+                       ;;
+               "")
+                       ;;
+               *)
+                       echo "Unknown synci type used in --with-synci" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_lxc1_sxc1} in
+               yes)
+                       with_lxc1_sxc1=lxc1-sxc1
+                       ;;
+               no)
+                       with_lxc1_sxc1=no-lxc1-sxc1
+                       ;;
+               "")
+                       ;;
+               *)
+                       echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case ${with_madd4} in
+               yes)
+                       with_madd4=madd4
+                       ;;
+               no)
+                       with_madd4=no-madd4
+                       ;;
+               "")
+                       ;;
+               *)
+                       echo "Unknown madd4 type used in --with-madd4" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
+       nds32*-*-*)
+               supported_defaults="arch cpu nds32_lib float fpu_config"
+
+               # process --with-arch
+               case "${with_arch}" in
+               "" | v3 )
+                       tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
+                       ;;
+               v2 | v2j | v3m)
+                       # OK
+                       tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
+                       ;;
+               v3f)
+                       tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
+                       ;;
+               v3s)
+                       tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
+
+                       ;;
+               *)
+                       echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               case "${with_cpu}" in
+               "")
+                       with_cpu=n9
+                       ;;
+               n6 | n7 | n8 | e8 | s8 | n9)
+                       # OK
+                       ;;
+               *)
+                       echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               # process --with-nds32-lib
+               case "${with_nds32_lib}" in
+               "")
+                       # the default library is newlib
+                       with_nds32_lib=newlib
+                       ;;
+               newlib)
+                       # OK
+                       ;;
+               mculib)
+                       # OK
+                       ;;
+               *)
+                       echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               # process --with-float
+               case "${with_float}" in
+               "" | soft | hard)
+                       # OK
+                       ;;
+               *)
+                       echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+               # process --with-config-fpu
+               case "${with_config_fpu}" in
+               "" | 0 | 1 | 2 | 3)
+                       # OK
+                       ;;
+               *)
+                       echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
+                       exit 1
+                       ;;
+               esac
+
+
+               ;;
+       nios2*-*-*)
+               supported_defaults="arch"
+                       case "$with_arch" in
+                       "" | r1 | r2)
+                               # OK
+                               ;;
+                       *)
+                               echo "Unknown arch used in --with-arch=$with_arch" 1>&2
+                               exit 1
+                               ;;
+                       esac
+               ;;
+
+       powerpc*-*-* | rs6000-*-*)
+               supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
+
+               for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
+                       eval "val=\$with_$which"
+                       case ${val} in
+                       default32 | default64)
+                               case $which in
+                               cpu | tune)
+                                       ;;
+                               *)
+                                       echo "$val only valid for --with-cpu and --with-tune." 1>&2
+                                       exit 1
+                                       ;;
+                               esac
+                               with_which="with_$which"
+                               eval $with_which=
+                               ;;
+                       405cr)
+                               tm_defines="${tm_defines} CONFIG_PPC405CR"
+                               eval "with_$which=405"
+                               ;;
+                       "" | common | native \
+                       | power[3456789] | power5+ | power6x \
+                       | powerpc | powerpc64 | powerpc64le \
+                       | rs64 \
+                       | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
+                       | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
+                       | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
+                       | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
+                       | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
+                               # OK
+                               ;;
+                       *)
+                               echo "Unknown cpu used in --with-$which=$val." 1>&2
+                               exit 1
+                               ;;
+                       esac
+               done
+
+               case "$with_abi" in
+               "" | elfv1 | elfv2 )
+                       #OK
+                       ;;
+               *)
+                       echo "Unknown ABI used in --with-abi=$with_abi"
+                       exit 1
+                       ;;
+               esac
+
+               if test "x$with_advance_toolchain" != x; then
+                   if test -d "/opt/$with_advance_toolchain/." -a \
+                       -d "/opt/$with_advance_toolchain/bin/." -a \
+                       -d "/opt/$with_advance_toolchain/include/."; then
+
+                       tm_file="$tm_file ./advance-toolchain.h"
+                       (at="/opt/$with_advance_toolchain"
+                        echo "/* Use Advance Toolchain $at */"
+                        echo
+                        echo "#undef  LINK_OS_EXTRA_SPEC32"
+                        echo "#define LINK_OS_EXTRA_SPEC32" \
+                             "\"%(link_os_new_dtags)" \
+                             "-rpath $prefix/lib -rpath $at/lib" \
+                             "-L $prefix/lib -L $at/lib\""
+                        echo
+                        echo "#undef  LINK_OS_EXTRA_SPEC64"
+                        echo "#define LINK_OS_EXTRA_SPEC64" \
+                             "\"%(link_os_new_dtags)" \
+                             "-rpath $prefix/lib64 -rpath $at/lib64" \
+                             "-L $prefix/lib64 -L $at/lib64\""
+                        echo
+                        echo "#undef  LINK_OS_NEW_DTAGS_SPEC"
+                        echo "#define LINK_OS_NEW_DTAGS_SPEC" \
+                             "\"--enable-new-dtags\""
+                        echo
+                        echo "#undef  DYNAMIC_LINKER_PREFIX"
+                        echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
+                        echo
+                        echo "#undef  MD_EXEC_PREFIX"
+                        echo "#define MD_EXEC_PREFIX \"$at/bin/\""
+                        echo
+                        echo "#undef  MD_STARTFILE_PREFIX"
+                        echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
+                           > advance-toolchain.h
+                   else
+                       echo "Unknown advance-toolchain $with_advance_toolchain"
+                       exit 1
+                   fi
+               fi
+
+               # Set up the default long double format if the user changed it.
+               if test x$with_long_double_format = xieee; then
+                   tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
+
+               elif test x$with_long_double_format = xibm; then
+                   tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
+               fi
+               ;;
+
+       s390*-*-*)
+               supported_defaults="arch mode tune"
+
+               for which in arch tune; do
+                       eval "val=\$with_$which"
+                       case ${val} in
+                       "" | native | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch3 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
+                               # OK
+                               ;;
+                       *)
+                               echo "Unknown cpu used in --with-$which=$val." 1>&2
+                               exit 1
+                               ;;
+                       esac
+               done
+
+               case ${with_mode} in
+               "" | esa | zarch)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
+       sh[123456ble]*-*-* | sh-*-*)
+               supported_defaults="cpu"
+               case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
+               "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
+                       # OK
+                       ;;
+               m2a | m2a-single | m2a-single-only | m2a-nofpu)
+                       ;;
+               m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
+                       ;;
+               *)
+                       echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
+                       echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
+                       echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
+                       echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+       sparc*-*-*)
+               supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
+
+               for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
+                       eval "val=\$with_$which"
+                       case ${val} in
+                       "" | sparc | sparcv9 | sparc64 \
+                       | v7 | cypress \
+                       | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
+                       | sparclite | f930 | f934 | sparclite86x \
+                       | sparclet | tsc701 \
+                       | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
+                       | niagara3 | niagara4 | niagara7 | m8)
+                               # OK
+                               ;;
+                       *)
+                               echo "Unknown cpu used in --with-$which=$val" 1>&2
+                               exit 1
+                               ;;
+                       esac
+               done
+
+               case ${with_float} in
+               "" | soft | hard)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown floating point type used in --with-float=$with_float" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
+       spu-*-*)
+               supported_defaults="arch tune"
+
+               for which in arch tune; do
+                       eval "val=\$with_$which"
+                       case ${val} in
+                       "" | cell | celledp)
+                               # OK
+                               ;;
+                       *)
+                               echo "Unknown cpu used in --with-$which=$val." 1>&2
+                               exit 1
+                               ;;
+                       esac
+               done
+               ;;
+
+       tic6x-*-*)
+               supported_defaults="arch"
+
+               case ${with_arch} in
+               "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown arch used in --with-arch=$with_arch." 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
+       v850*-*-*)
+               supported_defaults=cpu
+               case ${with_cpu} in
+               "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+       visium-*-*)
+               supported_defaults="cpu"
+               case $with_cpu in
+                 "" | gr5 | gr6)
+                       ;;
+                 *)    echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+esac
+
+# Set some miscellaneous flags for particular targets.
+target_cpu_default2=
+case ${target} in
+       aarch64*-*-*)
+               if test x"$target_cpu_cname" != x
+               then
+                       target_cpu_default2=$target_cpu_cname
+               fi
+               ;;
+
+       arm*-*-*)
+               if test x$with_cpu = x
+               then
+                       echo "Don't know the target cpu" 1>&2
+                       exit 1
+               else
+                       target_cpu_default2="\\\"$with_cpu\\\""
+               fi
+               ;;
+
+       hppa*-*-*)
+               if test x$gas = xyes
+               then
+                       target_cpu_default2="MASK_GAS"
+               fi
+               ;;
+
+       fido*-*-* | m68k*-*-*)
+               target_cpu_default2=$m68k_cpu_ident
+               tmake_file="m68k/t-opts $tmake_file"
+               if [ x"$m68k_arch_family" != x ]; then
+                       tmake_file="m68k/t-$m68k_arch_family $tmake_file"
+               fi
+               ;;
+
+       i[34567]86-*-darwin* | x86_64-*-darwin*)
+               ;;
+       i[34567]86-*-linux* | x86_64-*-linux*)
+               extra_objs="${extra_objs} cet.o"
+               tmake_file="$tmake_file i386/t-linux i386/t-cet"
+               ;;
+       i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
+               tmake_file="$tmake_file i386/t-kfreebsd"
+               ;;
+       i[34567]86-*-gnu*)
+               tmake_file="$tmake_file i386/t-gnu"
+               ;;
+       i[34567]86-*-msdosdjgpp*)
+               tmake_file="${tmake_file} i386/t-djgpp"
+               ;;
+       i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
+               ;;
+       i[34567]86-*-cygwin* | x86_64-*-cygwin*)
+               ;;
+       i[34567]86-*-mingw* | x86_64-*-mingw*)
+               ;;
+       i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
+               ;;
+       i[34567]86-*-freebsd* | x86_64-*-freebsd*)
+               ;;
+       ia64*-*-linux*)
+               ;;
+
+       mips*-*-*)
+               if test x$gnu_ld = xyes
+               then
+                       target_cpu_default2="MASK_SPLIT_ADDRESSES"
+               fi
+               case ${target} in
+                       mips*el-*-*)
+                               tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
+                               ;;
+               esac
+               if test x$with_arch != x; then
+                       default_mips_arch=$with_arch
+               fi
+               if test x$with_abi != x; then
+                       default_mips_abi=$with_abi
+               fi
+               case ${default_mips_arch} in
+                   mips1)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
+                   mips2)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
+                   mips3)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
+                   mips4)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
+                   mips32)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
+                   mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
+                   mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
+                   mips64)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
+                   mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
+                   mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
+               esac
+               case ${default_mips_abi} in
+                   32)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
+                   o64)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
+                   n32)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
+                   64)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
+                   eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
+               esac
+               tmake_file="mips/t-mips $tmake_file"
+               ;;
+
+       powerpc*-*-* | rs6000-*-*)
+               # FIXME: The PowerPC port uses the value set at compile time,
+               # although it's only cosmetic.
+               if test "x$with_cpu" != x
+               then
+                       target_cpu_default2="\\\"$with_cpu\\\""
+               fi
+               out_file="${cpu_type}/${cpu_type}.c"
+               c_target_objs="${c_target_objs} ${cpu_type}-c.o"
+               cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
+               tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
+               ;;
+
+       sh[123456ble]*-*-* | sh-*-*)
+               c_target_objs="${c_target_objs} sh-c.o"
+               cxx_target_objs="${cxx_target_objs} sh-c.o"
+               ;;
+
+       sparc*-*-*)
+               # Some standard aliases.
+               case x$with_cpu in
+               xsparc)
+                       with_cpu=v7
+                       ;;
+               xsparcv9 | xsparc64)
+                       with_cpu=v9
+                       ;;
+               esac
+
+               if test x$with_tune = x ; then
+                     case ${target} in
+                     *-leon-*)
+                         with_tune=leon
+                         ;;
+                     *-leon[3-9]*)
+                         with_tune=leon3
+                         ;;
+                     esac
+               fi
+
+               # The SPARC port checks this value at compile-time.
+               target_cpu_default2="TARGET_CPU_$with_cpu"
+               ;;
+
+       v850*-*-*)
+               case "x$with_cpu" in
+               x)
+                       ;;
+               xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
+                       target_cpu_default2="TARGET_CPU_$with_cpu"
+                       ;;
+               xv850es)
+                       target_cpu_default2="TARGET_CPU_v850e1"
+                       ;;
+               esac
+               ;;
+       visium-*-*)
+               target_cpu_default2="TARGET_CPU_$with_cpu"
+               ;;
+esac
+
+t=
+all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4"
+for option in $all_defaults
+do
+       eval "val=\$with_"`echo $option | sed s/-/_/g`
+       if test -n "$val"; then
+               case " $supported_defaults " in
+               *" $option "*)
+                       ;;
+               *)
+                       echo "This target does not support --with-$option." 2>&1
+                       echo "Valid --with options are: $supported_defaults" 2>&1
+                       exit 1
+                       ;;
+               esac
+
+               if test "x$t" = x
+               then
+                       t="{ \"$option\", \"$val\" }"
+               else
+                       t="${t}, { \"$option\", \"$val\" }"
+               fi
+       fi
+done
+
+if test "x$t" = x
+then
+       configure_default_options="{ { NULL, NULL} }"
+else
+       configure_default_options="{ ${t} }"
+fi
+
+if test "$target_cpu_default2" != ""
+then
+       if test "$target_cpu_default" != ""
+       then
+               target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
+       else
+               target_cpu_default=$target_cpu_default2
+       fi
+fi
+
+case ${target} in
+i[34567]86-*-* | x86_64-*-*)
+       if test x$enable_as_accelerator = xyes; then
+               extra_programs="mkoffload\$(exeext)"
+       fi
+       ;;
+esac
diff --git a/arm-stmos/gcc-files/libgcc/config.host b/arm-stmos/gcc-files/libgcc/config.host
new file mode 100644 (file)
index 0000000..c28a2d3
--- /dev/null
@@ -0,0 +1,1426 @@
+# libgcc host-specific configuration file.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+
+#This file is part of GCC.
+
+#GCC is free software; you can redistribute it and/or modify it under
+#the terms of the GNU General Public License as published by the Free
+#Software Foundation; either version 3, or (at your option) any later
+#version.
+
+#GCC is distributed in the hope that it will be useful, but WITHOUT
+#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+#for more details.
+
+#You should have received a copy of the GNU General Public License
+#along with GCC; see the file COPYING3.  If not see
+#<http://www.gnu.org/licenses/>.
+
+# This is the libgcc host-specific configuration file
+# where a configuration type is mapped to different system-specific
+# definitions and files.  This is invoked by the autoconf-generated
+# configure script.  Putting it in a separate shell file lets us skip
+# running autoconf when modifying host-specific information.
+
+# This file bears an obvious resemblance to gcc/config.gcc.  The cases
+# should be kept similar, to ease moving library-specific settings
+# from config.gcc to this file.  That is also why tmake_file is
+# left as tmake_file, rather than hmake_file, even though this library
+# switches on ${host}.
+
+# This file switches on the shell variable ${host}, and also uses the
+# following shell variables:
+#
+#  with_*              Various variables as set by configure.
+
+# This file sets the following shell variables for use by the
+# autoconf-generated configure script:
+#
+#  asm_hidden_op       The assembler pseudo-op to use for hide
+#                      lists for object files implemented in
+#                      assembly (with -fvisibility=hidden for C).
+#                      The default is ".hidden".
+#  cpu_type            The name of the cpu, if different from the first
+#                      chunk of the canonical host name.
+#  enable_execute_stack The name of a source file implementing
+#                      __enable_execute_stack.
+#  extra_parts         List of extra object files that should be compiled
+#                      for this target machine.  This may be overridden
+#                      by setting EXTRA_PARTS in a tmake_file fragment.
+#                      If either is set, EXTRA_PARTS and
+#                      EXTRA_MULTILIB_PARTS inherited from the GCC
+#                      subdirectory will be ignored.
+#  md_unwind_header    The name of a header file defining
+#                      MD_FALLBACK_FRAME_STATE_FOR.
+#  sfp_machine_header  The name of a sfp-machine.h header file for soft-fp.
+#                      Defaults to "$cpu_type/sfp-machine.h" if it exists,
+#                      no-sfp-machine.h otherwise.
+#  tmake_file          A list of machine-description-specific
+#                      makefile fragments.
+#  tm_defines          List of target macros to define for all compilations.
+#  tm_file             A list of target macro files used only for code
+#                      built for the target, not the host.  These files
+#                      are relative to $srcdir/config and must not have
+#                      the same names as files in $srcdir/../gcc/config.
+#  unwind_header       The name of the header file declaring the unwind
+#                      runtime interface routines.
+
+asm_hidden_op=.hidden
+enable_execute_stack=
+extra_parts=
+tmake_file=
+tm_file=
+tm_define=
+md_unwind_header=no-unwind.h
+unwind_header=unwind-generic.h
+
+# Set default cpu_type so it can be updated in each machine entry.
+cpu_type=`echo ${host} | sed 's/-.*$//'`
+case ${host} in
+m32c*-*-*)
+        cpu_type=m32c
+       tmake_file=t-fdpbit
+        ;;
+aarch64*-*-*)
+       cpu_type=aarch64
+       ;;
+alpha*-*-*)
+       cpu_type=alpha
+       ;;
+am33_2.0-*-linux*)
+       cpu_type=mn10300
+       ;;
+arc*-*-*)
+       cpu_type=arc
+       ;;
+arm*-*-*)
+       cpu_type=arm
+       ;;
+avr-*-*)
+       cpu_type=avr
+       ;;    
+bfin*-*)
+       cpu_type=bfin
+       ;;
+cr16-*-*)
+       ;;
+crisv32-*-*)
+       cpu_type=cris
+       ;;
+fido-*-*)
+       cpu_type=m68k
+       ;;
+frv*)  cpu_type=frv
+       ;;
+ft32*) cpu_type=ft32
+       ;;
+moxie*)        cpu_type=moxie
+       ;;
+i[34567]86-*-*)
+       cpu_type=i386
+       ;;
+x86_64-*-*)
+       cpu_type=i386
+       ;;
+ia64-*-*)
+       ;;
+hppa*-*-*)
+       cpu_type=pa
+       ;;
+lm32*-*-*)
+       cpu_type=lm32
+       ;;
+m32r*-*-*)
+        cpu_type=m32r
+        ;;
+m68k-*-*)
+       ;;
+microblaze*-*-*)
+       cpu_type=microblaze
+       ;;
+mips*-*-*)
+       # All MIPS targets provide a full set of FP routines.
+       cpu_type=mips
+       tmake_file="mips/t-mips"
+       if test "${libgcc_cv_mips_hard_float}" = yes; then
+               tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
+       else
+               tmake_file="${tmake_file} t-softfp-sfdf"
+       fi
+       if test "${ac_cv_sizeof_long_double}" = 16; then
+               tmake_file="${tmake_file} mips/t-softfp-tf"
+       fi
+       if test "${host_address}" = 64; then
+               tmake_file="${tmake_file} mips/t-mips64"
+       fi
+       tmake_file="${tmake_file} t-softfp"
+       ;;
+nds32*-*)
+       cpu_type=nds32
+       ;;
+nios2*-*-*)
+       cpu_type=nios2
+       ;;
+powerpc*-*-*)
+       cpu_type=rs6000
+       ;;
+rs6000*-*-*)
+       ;;
+riscv*-*-*)
+       cpu_type=riscv
+       ;;
+sparc64*-*-*)
+       cpu_type=sparc
+       ;;
+sparc*-*-*)
+       cpu_type=sparc
+       ;;
+spu*-*-*)
+       cpu_type=spu
+       ;;
+s390*-*-*)
+       cpu_type=s390
+       ;;
+# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
+sh[123456789lbe]*-*-*)
+       cpu_type=sh
+       ;;
+tilegx*-*-*)
+       cpu_type=tilegx
+       ;;
+tilepro*-*-*)
+       cpu_type=tilepro
+       ;;
+v850*-*-*)
+       cpu_type=v850
+       ;;
+tic6x-*-*)
+       cpu_type=c6x
+       ;;
+esac
+
+# Common parts for widely ported systems.
+case ${host} in
+*-*-darwin*)
+  asm_hidden_op=.private_extern
+  tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin"
+  extra_parts="crt3.o crttms.o crttme.o"
+  ;;
+*-*-dragonfly*)
+  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
+  tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
+  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+  ;;
+*-*-freebsd*)
+  # This is the generic ELF configuration of FreeBSD.  Later
+  # machine-specific sections may refine and add to this
+  # configuration.
+  tmake_file="$tmake_file t-freebsd t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
+  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+  case ${target_thread_file} in
+    posix)
+      tmake_file="${tmake_file} t-freebsd-thread"
+      # Before 5.0, FreeBSD can't bind shared libraries to -lc
+      # when "optionally" threaded via weak pthread_* checks.
+      case ${host} in
+        *-*-freebsd[34] | *-*-freebsd[34].*)
+          tmake_file="${tmake_file} t-slibgcc-nolc-override"
+          ;;
+      esac
+      ;;
+  esac
+  ;;
+*-*-fuchsia*)
+  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
+  extra_parts="crtbegin.o crtend.o"
+  ;;
+*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
+  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"
+  extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
+  if test x$enable_vtable_verify = xyes; then
+    extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
+  fi
+  ;;
+*-*-lynxos*)
+  tmake_file="$tmake_file t-lynx $cpu_type/t-crtstuff t-crtstuff-pic t-libgcc-pic"
+  extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+  ;;
+*-*-netbsd*)
+  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
+  tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
+  tmake_file="$tmake_file t-slibgcc-libgcc"
+  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
+  ;;
+*-*-openbsd*)
+  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
+  case ${target_thread_file} in
+    posix)
+      tmake_file="$tmake_file t-openbsd-thread"
+      ;;
+  esac
+  ;;
+*-*-rtems*)
+  tmake_file="$tmake_file t-rtems"
+  extra_parts="crtbegin.o crtend.o"
+  ;;
+*-*-solaris2*)
+  # Unless linker support and dl_iterate_phdr are present,
+  # unwind-dw2-fde-dip.c automatically falls back to unwind-dw2-fde.c.
+  tmake_file="$tmake_file sol2/t-sol2 t-eh-dw2-dip t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-elf-ver"
+  if test $with_gnu_ld = yes; then
+    tmake_file="$tmake_file t-slibgcc-gld"
+  else
+    tmake_file="$tmake_file t-slibgcc-sld"
+  fi
+  # Add cpu-specific t-sol2 after t-slibgcc-* so it can augment SHLIB_MAPFILES.
+  tmake_file="$tmake_file $cpu_type/t-sol2"
+  extra_parts="gmon.o crtbegin.o crtend.o"
+  if test "${libgcc_cv_solaris_crts}" = yes; then
+    # Solaris 11.4 provides crt1.o, crti.o, and crtn.o as part of the
+    # base system.  crtp.o and crtpg.o implement the compiler-dependent parts.
+    extra_parts="$extra_parts crtp.o crtpg.o"
+    # If the Solaris CRTs are present, both ld and gld will have PIE support.
+    extra_parts="$extra_parts crtbeginS.o crtendS.o"
+  else
+    case ${host} in
+      i?86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
+        # Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
+        # part of the base system.
+        ;;
+      sparc*-*-solaris2.1[0-9]*)
+        # Solaris 10+/SPARC lacks crt1.o and gcrt1.o.
+        extra_parts="$extra_parts crt1.o gcrt1.o"
+        ;;
+    esac
+  fi
+  if test x$enable_vtable_verify = xyes; then
+    extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
+  fi
+  ;;
+*-*-uclinux*)
+  extra_parts="crtbegin.o crtend.o"
+  ;;
+*-*-*vms*)
+  tmake_file="vms/t-vms"
+  extra_parts="crt0.o crtbegin.o crtbeginS.o crtend.o crtendS.o"
+  ;;
+*-*-vxworks7*)
+  tmake_file=t-vxworks7
+  ;;
+*-*-vxworks*)
+  tmake_file=t-vxworks
+  ;;
+*-*-elf)
+  extra_parts="crtbegin.o crtend.o"
+  ;;
+esac
+
+case ${host} in
+*-*-darwin* | *-*-dragonfly* | *-*-freebsd* | *-*-netbsd* | *-*-openbsd* | \
+  *-*-solaris2*)
+  enable_execute_stack=enable-execute-stack-mprotect.c
+  ;;
+i[34567]86-*-mingw* | x86_64-*-mingw*)
+  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
+  ;;
+i[34567]86-*-cygwin* | x86_64-*-cygwin*)
+  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
+  ;;
+*)
+  enable_execute_stack=enable-execute-stack-empty.c;
+  ;;
+esac
+
+case ${host} in
+aarch64*-*-elf | aarch64*-*-rtems*)
+       extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+       tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+       md_unwind_header=aarch64/aarch64-unwind.h
+       ;;
+aarch64*-*-freebsd*)
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+       tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+       md_unwind_header=aarch64/freebsd-unwind.h
+       ;;
+aarch64*-*-fuchsia*)
+       tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+       tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp"
+       ;;
+aarch64*-*-linux*)
+       extra_parts="$extra_parts crtfastmath.o"
+       md_unwind_header=aarch64/linux-unwind.h
+       tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+       tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+       ;;
+alpha*-*-linux*)
+       tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm alpha/t-linux"
+       extra_parts="$extra_parts crtfastmath.o"
+       md_unwind_header=alpha/linux-unwind.h
+       ;;
+alpha*-*-freebsd*)
+       tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm"
+       extra_parts="$extra_parts crtbeginT.o crtfastmath.o"
+       ;;
+alpha*-*-netbsd*)
+       tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
+       ;;
+alpha*-*-openbsd*)
+       tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
+       ;;
+alpha64-dec-*vms*)
+       tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
+       extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
+       md_unwind_header=alpha/vms-unwind.h
+       ;;
+alpha*-dec-*vms*)
+       tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
+       extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
+       md_unwind_header=alpha/vms-unwind.h
+       ;;
+arc*-*-elf*)
+       tmake_file="arc/t-arc"
+       extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o"
+       extra_parts="$extra_parts crttls.o"
+       ;;
+arc*-*-linux*)
+       tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc-uClibc arc/t-arc"
+       extra_parts="$extra_parts crti.o crtn.o"
+       extra_parts="$extra_parts crttls.o"
+       md_unwind_header=arc/linux-unwind.h
+       ;;
+arm-wrs-vxworks|arm-wrs-vxworks7)
+       tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+       extra_parts="$extra_parts crti.o crtn.o"
+       case ${host} in
+       *-*-vxworks7)
+         # Note that arm/t-bpabi will reset the LIB2ADDEH macro.
+         # This is intentional.
+         tmake_file="$tmake_file arm/t-bpabi arm/t-vxworks7"
+         tm_file="$tm_file arm/bpabi-lib.h"
+         unwind_header=config/arm/unwind-arm.h
+         ;;
+       esac
+       ;;
+arm*-*-freebsd*)                # ARM FreeBSD EABI
+       tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix arm/t-elf"
+       tmake_file="${tmake_file} arm/t-bpabi arm/t-freebsd"
+       tm_file="${tm_file} arm/bpabi-lib.h"
+       unwind_header=config/arm/unwind-arm.h
+       tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+       ;;
+arm*-*-fuchsia*)
+       tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi"
+       tmake_file="${tmake_file} arm/tsoftfp t-softfp"
+       tm_file="${tm_file} arm/bpabi-lib.h"
+       unwind_header=config/arm/unwind-arm.h
+       ;;
+arm*-*-netbsdelf*)
+       tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
+       ;;
+arm*-*-linux*)                 # ARM GNU/Linux with ELF
+       tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"
+       tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
+       tm_file="$tm_file arm/bpabi-lib.h"
+       unwind_header=config/arm/unwind-arm.h
+       tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+       extra_parts="$extra_parts crtfastmath.o"
+       ;;
+arm*-*-uclinux*)               # ARM ucLinux
+       tmake_file="${tmake_file} t-fixedpoint-gnu-prefix t-crtfm"
+       tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+       tmake_file="${tmake_file} arm/t-bpabi"
+       tm_file="$tm_file arm/bpabi-lib.h"
+       unwind_header=config/arm/unwind-arm.h
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+arm*-*-phoenix*)
+       tmake_file="t-hardfp t-softfp arm/t-arm arm/t-elf arm/t-softfp arm/t-phoenix"
+       tmake_file="${tmake_file} arm/t-bpabi"
+       tm_file="$tm_file arm/bpabi-lib.h"
+       extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+       unwind_header=config/arm/unwind-arm.h
+       ;;
+arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
+       tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
+       tm_file="$tm_file arm/bpabi-lib.h"
+       case ${host} in
+       arm*-*-eabi* | arm*-*-rtems*)
+         tmake_file="${tmake_file} arm/t-bpabi t-crtfm"
+         extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+         ;;
+       arm*-*-symbianelf*)
+         tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
+         tm_file="$tm_file arm/symbian-lib.h"
+         # Symbian OS provides its own startup code.
+         ;;
+       esac
+       tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+       extra_parts="$extra_parts crtfastmath.o"
+       unwind_header=config/arm/unwind-arm.h
+       ;;
+arm-*-stmos*)
+       tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
+       tm_file="$tm_file arm/bpabi-lib.h"
+       tmake_file="${tmake_file} arm/t-bpabi t-crtfm"
+       extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+       tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+       extra_parts="$extra_parts crtfastmath.o"
+       unwind_header=config/arm/unwind-arm.h
+       ;;
+avr-*-*)
+       # Make HImode functions for AVR
+       tmake_file="${cpu_type}/t-avr t-fpbit"
+       if test x${with_avrlibc} != xno; then
+           tmake_file="$tmake_file ${cpu_type}/t-avrlibc"
+       fi
+       tm_file="$tm_file avr/avr-lib.h"
+       ;;
+bfin*-elf*)
+       tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o crtlibid.o"
+        ;;
+bfin*-uclinux*)
+       tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtlibid.o"
+       md_unwind_header=bfin/linux-unwind.h
+        ;;
+bfin*-linux-uclibc*)
+       tmake_file="$tmake_file bfin/t-bfin bfin/t-crtstuff t-libgcc-pic t-fdpbit bfin/t-linux"
+       # No need to build crtbeginT.o on uClibc systems.  Should probably
+       # be moved to the OS specific section above.
+       extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+       md_unwind_header=bfin/linux-unwind.h
+       ;;
+bfin*-rtems*)
+       tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+bfin*-*)
+       tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
+       extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+        ;;
+cr16-*-elf)
+       tmake_file="${tmake_file} cr16/t-cr16 cr16/t-crtlibid t-fdpbit"
+       extra_parts="$extra_parts crti.o crtn.o crtlibid.o"
+        ;;
+crisv32-*-elf)
+       tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp"
+       ;;
+cris-*-elf)
+       tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-elfmulti"
+       ;;
+cris-*-linux* | crisv32-*-linux*)
+       tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-linux"
+       ;;
+epiphany-*-elf* | epiphany-*-rtems*)
+       tmake_file="$tmake_file epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf"
+       extra_parts="$extra_parts crti.o crtint.o crtrunc.o crtm1reg-r43.o crtm1reg-r63.o crtn.o"
+       ;;
+fr30-*-elf)
+       tmake_file="$tmake_file fr30/t-fr30 t-fdpbit"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+frv-*-elf)
+       tmake_file="$tmake_file frv/t-frv t-fdpbit"
+       tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
+       # Don't use crtbegin.o, crtend.o.
+       extra_parts="frvbegin.o frvend.o"
+       ;;
+frv-*-*linux*)
+       tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit"
+       tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
+       ;;
+ft32-*-elf)
+       tmake_file="ft32/t-ft32 t-softfp-sfdf t-softfp-excl t-softfp"
+       extra_parts="$extra_parts crti.o crti-hw.o crtn.o"
+       ;;
+h8300-*-elf*)
+       tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
+       tm_file="$tm_file h8300/h8300-lib.h"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+h8300-*-linux*)
+       tmake_file="t-linux h8300/t-linux t-softfp-sfdf t-softfp"
+       tm_file="$tm_file h8300/h8300-lib.h"
+       ;;
+hppa*64*-*-linux*)
+       tmake_file="$tmake_file pa/t-linux pa/t-linux64"
+       extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
+       ;;
+hppa*-*-linux*)
+       tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc"
+       # Set the libgcc version number
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+           tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
+       fi
+       extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
+       md_unwind_header=pa/linux-unwind.h
+       ;;
+hppa[12]*-*-hpux10*)
+       tmake_file="$tmake_file pa/t-hpux pa/t-hpux10 t-libgcc-pic t-slibgcc"
+       # Set the libgcc version number
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+           tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
+       fi
+       tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
+       md_unwind_header=pa/hpux-unwind.h
+       ;;
+hppa*64*-*-hpux11*)
+       tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-stublib t-libgcc-pic t-slibgcc"
+       # Set the libgcc version number
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+           tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
+       fi
+       tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
+       tm_file="$tm_file pa/pa64-hpux-lib.h"
+       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
+                    libgcc_stub.a"
+       md_unwind_header=pa/hpux-unwind.h
+       ;;
+hppa[12]*-*-hpux11*)
+       tmake_file="$tmake_file pa/t-hpux pa/t-stublib t-libgcc-pic t-slibgcc"
+       # Set the libgcc version number
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+           tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
+       fi
+       tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
+       extra_parts="libgcc_stub.a"
+       md_unwind_header=pa/hpux-unwind.h
+       ;;
+hppa*-*-openbsd*)
+       tmake_file="$tmake_file pa/t-openbsd"
+       ;;
+i[34567]86-*-darwin*)
+       tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
+       tm_file="$tm_file i386/darwin-lib.h"
+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       ;;
+x86_64-*-darwin*)
+       tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
+       tm_file="$tm_file i386/darwin-lib.h"
+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       ;;
+i[34567]86-*-elfiamcu)
+       tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/32/t-iamcu i386/t-softfp t-softfp t-dfprules"
+       ;;
+i[34567]86-*-elf*)
+       tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
+       ;;
+x86_64-*-elf* | x86_64-*-rtems*)
+       tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
+       ;;
+x86_64-*-fuchsia*)
+       tmake_file="$tmake_file t-libgcc-pic"
+       ;;
+i[34567]86-*-dragonfly*)
+       tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
+       md_unwind_header=i386/dragonfly-unwind.h
+       ;;
+x86_64-*-dragonfly*)
+       tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
+       md_unwind_header=i386/dragonfly-unwind.h
+       ;;
+i[34567]86-*-freebsd*)
+       tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
+       md_unwind_header=i386/freebsd-unwind.h
+       ;;
+x86_64-*-freebsd*)
+       tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
+       md_unwind_header=i386/freebsd-unwind.h
+       ;;
+i[34567]86-*-netbsdelf*)
+       tmake_file="${tmake_file} i386/t-crtstuff"
+       ;;
+x86_64-*-netbsd*)
+       tmake_file="${tmake_file} i386/t-crtstuff"
+       ;;
+i[34567]86-*-openbsd*)
+       ;;
+x86_64-*-openbsd*)
+       ;;
+i[34567]86-*-linux*)
+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
+       tm_file="${tm_file} i386/elf-lib.h"
+       md_unwind_header=i386/linux-unwind.h
+       ;;
+i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
+       tm_file="${tm_file} i386/elf-lib.h"
+       ;;
+x86_64-*-linux*)
+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
+       tm_file="${tm_file} i386/elf-lib.h"
+       md_unwind_header=i386/linux-unwind.h
+       ;;
+x86_64-*-kfreebsd*-gnu)
+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
+       tm_file="${tm_file} i386/elf-lib.h"
+       ;;
+i[34567]86-pc-msdosdjgpp*)
+       ;;
+i[34567]86-*-lynxos*)
+       ;;
+i[34567]86-*-nto-qnx*)
+       tmake_file="$tmake_file i386/t-nto t-libgcc-pic"
+       extra_parts=crtbegin.o
+       ;;
+i[34567]86-*-rtems*)
+       tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/t-softfp t-softfp"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
+       tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
+       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       tm_file="${tm_file} i386/elf-lib.h"
+       md_unwind_header=i386/sol2-unwind.h
+       ;;
+i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
+       ;;
+i[34567]86-*-cygwin*)
+       extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
+       if test x$enable_vtable_verify = xyes; then
+               extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
+       fi
+       # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+               tmake_eh_file="i386/t-sjlj-eh"
+       else
+               tmake_eh_file="i386/t-dw2-eh"
+       fi
+       # Shared libgcc DLL install dir depends on cross/native build.
+       if test x${build} = x${host} ; then
+               tmake_dlldir_file="i386/t-dlldir"
+       else
+               tmake_dlldir_file="i386/t-dlldir-x"
+       fi
+       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin t-crtfm i386/t-chkstk t-dfprules"
+       ;;
+x86_64-*-cygwin*)
+       extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
+       if test x$enable_vtable_verify = xyes; then
+               extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
+       fi
+       # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+               tmake_eh_file="i386/t-sjlj-eh"
+       elif test "${host_address}" = 32; then
+               # biarch -m32 with --disable-sjlj-exceptions
+               tmake_eh_file="i386/t-dw2-eh"
+       else
+               tmake_eh_file="i386/t-seh-eh"
+       fi
+       # Shared libgcc DLL install dir depends on cross/native build.
+       if test x${build} = x${host} ; then
+               tmake_dlldir_file="i386/t-dlldir"
+       else
+               tmake_dlldir_file="i386/t-dlldir-x"
+       fi
+       # FIXME - dj - t-chkstk used to be in here, need a 64-bit version of that
+       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin t-crtfm t-dfprules i386/t-chkstk"
+       ;;
+i[34567]86-*-mingw*)
+       extra_parts="crtbegin.o crtend.o crtfastmath.o"
+       if test x$enable_vtable_verify = xyes; then
+               extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
+       fi
+       case ${target_thread_file} in
+         win32)
+           tmake_file="$tmake_file i386/t-gthr-win32"
+           ;;
+         posix)
+           tmake_file="i386/t-mingw-pthread $tmake_file"
+           ;;
+       esac
+       # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+               tmake_eh_file="i386/t-sjlj-eh"
+       else
+               tmake_eh_file="i386/t-dw2-eh"
+               md_unwind_header=i386/w32-unwind.h
+       fi
+       # Shared libgcc DLL install dir depends on cross/native build.
+       if test x${build} = x${host} ; then
+               tmake_dlldir_file="i386/t-dlldir"
+       else
+               tmake_dlldir_file="i386/t-dlldir-x"
+       fi
+       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 t-crtfm i386/t-chkstk t-dfprules"
+       ;;
+x86_64-*-mingw*)
+       case ${target_thread_file} in
+         win32)
+           tmake_file="$tmake_file i386/t-gthr-win32"
+           ;;
+         posix)
+           tmake_file="i386/t-mingw-pthread $tmake_file"
+           ;;
+       esac
+       # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+       if test x$ac_cv_sjlj_exceptions = xyes; then
+               tmake_eh_file="i386/t-sjlj-eh"
+       elif test "${host_address}" = 32; then
+               # biarch -m32 with --disable-sjlj-exceptions
+               tmake_eh_file="i386/t-dw2-eh"
+               md_unwind_header=i386/w32-unwind.h
+       else
+               tmake_eh_file="i386/t-seh-eh"
+       fi
+       # Shared libgcc DLL install dir depends on cross/native build.
+       if test x${build} = x${host} ; then
+               tmake_dlldir_file="i386/t-dlldir"
+       else
+               tmake_dlldir_file="i386/t-dlldir-x"
+       fi
+       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 t-dfprules t-crtfm i386/t-chkstk"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtfastmath.o"
+       if test x$enable_vtable_verify = xyes; then
+               extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
+       fi
+       ;;
+ia64*-*-elf*)
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o"
+       tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat"
+       ;;
+ia64*-*-freebsd*)
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat"
+       ;;
+ia64*-*-linux*)
+       # Don't use crtbeginT.o from *-*-linux* default.
+       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
+       tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux"
+       if test x$with_system_libunwind != xyes ; then
+               tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind"
+       fi
+       md_unwind_header=ia64/linux-unwind.h
+       ;;
+ia64*-*-hpux*)
+       tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux"
+       ;;
+ia64-hp-*vms*)
+       tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 ia64/t-vms t-slibgcc-vms t-softfp-tf ia64/t-softfp t-softfp"
+       extra_parts="$extra_parts crtinitS.o"
+       md_unwind_header=ia64/vms-unwind.h
+       ;;
+iq2000*-*-elf*)
+       tmake_file="iq2000/t-iq2000 t-fdpbit"
+       # Don't use default.
+       extra_parts=
+        ;;
+lm32-*-elf*)
+        extra_parts="$extra_parts crti.o crtn.o"
+        tmake_file="lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
+       ;;
+lm32-*-rtems*)
+        tmake_file="$tmake_file lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
+        extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+lm32-*-uclinux*)
+        extra_parts="$extra_parts crtbegin.o crtendS.o crtbeginT.o"
+        tmake_file="lm32/t-lm32 lm32/t-uclinux t-libgcc-pic t-softfp-sfdf t-softfp"
+       ;;      
+m32r-*-elf*)
+       tmake_file="$tmake_file m32r/t-m32r t-fdpbit"
+       extra_parts="$extra_parts crtinit.o crtfini.o"
+       ;;
+m32rle-*-elf*)
+       tmake_file=t-fdpbit
+       ;;
+m32r-*-linux*)
+       tmake_file="$tmake_file m32r/t-linux t-fdpbit"
+       ;;
+m32rle-*-linux*)
+       tmake_file="$tmake_file m32r/t-linux t-fdpbit"
+       ;;
+m68k-*-elf* | fido-*-elf)
+       tmake_file="$tmake_file m68k/t-floatlib"
+       ;;
+m68k*-*-netbsdelf*)
+       ;;
+m68k*-*-openbsd*)
+       ;;
+m68k-*-uclinux*)       # Motorola m68k/ColdFire running uClinux with uClibc
+       tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
+       md_unwind_header=m68k/linux-unwind.h
+       ;;
+m68k-*-linux*)                 # Motorola m68k's running GNU/Linux
+                               # with ELF format using glibc 2
+                               # aka the GNU/Linux C library 6.
+       tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
+       # If not configured with setjmp/longjmp exceptions, bump the
+       # libgcc version number.
+       if test x$ac_cv_sjlj_exceptions != xyes; then
+           tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
+       fi
+       md_unwind_header=m68k/linux-unwind.h
+       ;;
+m68k-*-rtems*)
+       tmake_file="$tmake_file m68k/t-floatlib"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mcore-*-elf)
+       tmake_file="mcore/t-mcore t-fdpbit"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+microblaze*-linux*)
+       tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit t-slibgcc-libgcc"
+       ;;
+microblaze*-*-elf)
+       tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
+       ;;
+microblaze*-*-rtems*)
+       tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
+       ;;
+mips*-*-netbsd*)                       # NetBSD/mips, either endian.
+       ;;
+mips*-*-linux*)                                # Linux MIPS, either endian.
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="${tmake_file} t-crtfm"
+       case ${host} in
+         mips64r5900* | mipsr5900*)
+           # The MIPS16 support code uses floating point
+           # instructions that are not supported on r5900.
+           ;;
+         *)
+           tmake_file="${tmake_file} mips/t-mips16 t-slibgcc-libgcc"
+           ;;
+       esac
+       md_unwind_header=mips/linux-unwind.h
+       ;;
+mips*-sde-elf*)
+       tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
+       case "${with_newlib}" in
+         yes)
+           # newlib / libgloss.
+           ;;
+         *)
+           # MIPS toolkit libraries.
+           tmake_file="$tmake_file mips/t-sdemtk"
+           ;;
+       esac
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mipsisa32-*-elf* | mipsisa32el-*-elf* | \
+mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
+mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
+mipsisa64-*-elf* | mipsisa64el-*-elf* | \
+mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
+mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mipsisa64sr71k-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff t-fdpbit"
+       extra_parts="$extra_parts crti.o crtn.o"
+        ;;
+mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mips-*-elf* | mipsel-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mipsr5900-*-elf* | mipsr5900el-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mips64-*-elf* | mips64el-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mips64r5900-*-elf* | mips64r5900el-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mips64vr-*-elf* | mips64vrel-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-vr mips/t-crtstuff"
+       extra_parts="$extra_parts crti.o crtn.o"
+        ;;
+mips64orion-*-elf* | mips64orionel-*-elf*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mips*-*-rtems*)
+       tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+mips-wrs-vxworks)
+       ;;
+mipstx39-*-elf* | mipstx39el-*-elf*)
+       tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
+       ;;
+mmix-knuth-mmixware)
+       extra_parts="crti.o crtn.o crtbegin.o crtend.o"
+       tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}"
+       ;;
+mn10300-*-*)
+       tmake_file=t-fdpbit
+       ;;
+moxie-*-elf | moxie-*-moxiebox* | moxie-*-uclinux* | moxie-*-rtems*)
+       tmake_file="$tmake_file moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp"
+       extra_parts="$extra_parts crti.o crtn.o crtbegin.o crtend.o"
+       ;;
+msp430*-*-elf)
+       tmake_file="$tm_file t-crtstuff t-fdpbit msp430/t-msp430"
+        extra_parts="$extra_parts libmul_none.a libmul_16.a libmul_32.a libmul_f5.a"
+       ;;
+nds32*-elf*)
+       # Basic makefile fragment and extra_parts for crt stuff.
+       # We also append c-isr library implementation.
+       tmake_file="${tmake_file} nds32/t-nds32 nds32/t-nds32-isr"
+       extra_parts="crtbegin1.o crtend1.o libnds32_isr.a"
+       # Append library definition makefile fragment according to --with-nds32-lib=X setting.
+       case "${with_nds32_lib}" in
+       "" | newlib)
+               # Append library definition makefile fragment t-nds32-newlib.
+               # Append 'soft-fp' software floating point make rule fragment provided by gcc.
+               tmake_file="${tmake_file} nds32/t-nds32-newlib t-softfp-sfdf t-softfp"
+               ;;
+       mculib)
+               # Append library definition makefile fragment t-nds32-mculib.
+               # The software floating point library is included in mculib.
+               tmake_file="${tmake_file} nds32/t-nds32-mculib"
+               ;;
+       *)
+               echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
+               exit 1
+               ;;
+       esac
+       ;;
+nios2-*-linux*)
+       tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc"
+       md_unwind_header=nios2/linux-unwind.h
+       ;;
+nios2-*-*)
+       tmake_file="$tmake_file nios2/t-nios2 t-softfp-sfdf t-softfp-excl t-softfp"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+pdp11-*-*)
+       tmake_file="pdp11/t-pdp11 t-fdpbit"
+       ;;
+powerpc-*-darwin*)
+       case ${host} in
+       *-*-darwin9* | *-*-darwin[12][0-9]*)
+         # libSystem contains unwind information for signal frames since
+         # Darwin 9.
+         ;;
+       *)
+         md_unwind_header=rs6000/darwin-unwind.h
+         ;;
+       esac
+       tmake_file="$tmake_file rs6000/t-ibm-ldouble"
+       extra_parts="$extra_parts crt2.o"
+       ;;
+powerpc64-*-darwin*)
+       tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
+       extra_parts="$extra_parts crt2.o"
+       ;;
+powerpc*-*-freebsd*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
+       extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       case ${host} in
+       powerpc64*)
+         tmake_file="${tmake_file} rs6000/t-freebsd64"
+         md_unwind_header=rs6000/freebsd-unwind.h
+         ;;
+       esac
+       ;;
+powerpc-*-netbsd*)
+       tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
+       ;;
+powerpc-*-eabispe*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc-*-eabisimaltivec*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc-*-eabisim*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc-*-elf*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc-*-eabialtivec*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc-xilinx-eabi*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc-*-eabi*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc-*-rtems*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpc*-*-linux*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-linux t-dfprules rs6000/t-ppc64-fp t-slibgcc-libgcc"
+       tmake_file="${tmake_file} t-stack rs6000/t-stack-rs6000"
+       case $ppc_fp_type in
+       64)
+               ;;
+       hard)
+               tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
+               ;;
+       soft)
+               tmake_file="${tmake_file} t-softfp-sfdf ${ppc_fp_compat} t-softfp"
+               ;;
+       e500v1)
+               tmake_file="${tmake_file} rs6000/t-e500v1-fp ${ppc_fp_compat} t-softfp t-hardfp"
+               ;;
+       e500v2)
+               tmake_file="${tmake_file} t-hardfp-sfdf rs6000/t-e500v2-fp ${ppc_fp_compat} t-softfp t-hardfp"
+               ;;
+       *)
+               echo "Unknown ppc_fp_type $ppc_fp_type" 1>&2
+               exit 1
+               ;;
+       esac
+
+       if test $libgcc_cv_powerpc_float128 = yes; then
+               tmake_file="${tmake_file} rs6000/t-float128"
+       fi
+
+       if test $libgcc_cv_powerpc_float128_hw = yes; then
+               tmake_file="${tmake_file} rs6000/t-float128-hw"
+       fi
+
+       extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       md_unwind_header=rs6000/linux-unwind.h
+       ;;
+powerpc-wrs-vxworks*)
+       tmake_file="$tmake_file rs6000/t-ppccomm rs6000/t-savresfgpr t-fdpbit"
+       ;;
+powerpc-*-lynxos*)
+       tmake_file="$tmake_file rs6000/t-lynx t-fdpbit"
+       ;;
+powerpcle-*-elf*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpcle-*-eabisim*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+powerpcle-*-eabi*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
+       ;;
+riscv*-*-linux*)
+       tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
+       extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
+       md_unwind_header=riscv/linux-unwind.h
+       ;;
+riscv*-*-freebsd*)
+       tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
+       extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
+       ;;
+riscv*-*-*)
+       tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
+       extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
+       ;;
+rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
+       md_unwind_header=rs6000/aix-unwind.h
+       tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
+       ;;
+rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
+       md_unwind_header=rs6000/aix-unwind.h
+       tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
+       ;;
+rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
+       md_unwind_header=rs6000/aix-unwind.h
+       tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble rs6000/t-aix-cxa"
+       extra_parts="crtcxa.o crtcxa_s.o crtdbase.o"
+       ;;
+rl78-*-elf)
+       tmake_file="$tm_file t-fdpbit rl78/t-rl78"
+       ;;
+rx-*-elf)
+       tmake_file="rx/t-rx t-fdpbit"
+       tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
+       ;;
+s390-*-linux*)
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi t-stack s390/t-stack-s390"
+       md_unwind_header=s390/linux-unwind.h
+       ;;
+s390x-*-linux*)
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux t-stack s390/t-stack-s390"
+       if test "${host_address}" = 32; then
+          tmake_file="${tmake_file} s390/32/t-floattodi"
+       fi
+       md_unwind_header=s390/linux-unwind.h
+       ;;
+s390x-ibm-tpf*)
+       tmake_file="${tmake_file} s390/t-crtstuff t-libgcc-pic t-eh-dw2-dip"
+       extra_parts="crtbeginS.o crtendS.o"
+       md_unwind_header=s390/tpf-unwind.h
+       ;;
+sh-*-elf* | sh[12346l]*-*-elf*)
+       tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
+               libic_invalidate_array_4-100.a \
+               libic_invalidate_array_4-200.a \
+               libic_invalidate_array_4a.a \
+               libgcc-Os-4-200.a libgcc-4-300.a"
+       case ${host} in
+       sh*-superh-elf)
+               tmake_file="$tmake_file sh/t-superh"
+               extra_parts="$extra_parts crt1-mmu.o gcrt1-mmu.o gcrt1.o"
+               ;;
+       esac
+       ;;
+sh-*-linux* | sh[2346lbe]*-*-linux*)
+       tmake_file="${tmake_file} sh/t-sh t-slibgcc-libgcc sh/t-linux t-fdpbit"
+       md_unwind_header=sh/linux-unwind.h
+       ;;
+sh-*-netbsdelf* | shl*-*-netbsdelf*)
+       tmake_file="$tmake_file sh/t-sh sh/t-netbsd"
+
+       # NetBSD's C library includes a fast software FP library that
+       # has support for setting/setting the rounding mode, exception
+       # mask, etc.  Therefore, we don't want to include software FP
+       # in libgcc.
+       ;;
+sh-*-rtems*)
+       tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
+       extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
+               libic_invalidate_array_4-100.a \
+               libic_invalidate_array_4-200.a \
+               libic_invalidate_array_4a.a \
+               libgcc-Os-4-200.a libgcc-4-300.a"
+       ;;
+sh-wrs-vxworks)
+       tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
+       ;;
+sparc-*-netbsdelf*)
+       ;;
+sparc64-*-openbsd*)
+       ;;
+sparc-*-elf*)
+       case ${host} in
+       *-leon[3-9]*)
+               ;;
+       *)
+               tmake_file="sparc/t-softmul"
+               ;;
+       esac
+       tmake_file="${tmake_file} t-fdpbit t-crtfm"
+       extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+       ;;
+sparc-*-linux*)                # SPARC's running GNU/Linux, libc6
+       tmake_file="${tmake_file} t-crtfm"
+       if test "${host_address}" = 64; then
+               tmake_file="$tmake_file sparc/t-linux64"
+       fi
+       case ${host} in
+       *-leon*)
+               tmake_file="${tmake_file} t-fdpbit"
+               ;;
+       *)
+               tmake_file="${tmake_file} sparc/t-linux"
+               ;;
+       esac
+       case ${host} in
+       *-leon[3-9]*)
+               ;;
+       *)
+               if test "${host_address}" = 32; then
+                       tmake_file="$tmake_file sparc/t-softmul"
+               fi
+               ;;
+       esac
+       extra_parts="$extra_parts crtfastmath.o"
+       md_unwind_header=sparc/linux-unwind.h
+       ;;
+sparc-*-rtems*)
+       tmake_file="$tmake_file sparc/t-elf sparc/t-softmul t-crtfm t-fdpbit"
+       extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+       ;;
+sparc*-*-solaris2*)
+       tmake_file="$tmake_file t-crtfm"
+       extra_parts="$extra_parts crtfastmath.o"
+       md_unwind_header=sparc/sol2-unwind.h
+       ;;
+sparc64-*-elf*)
+       tmake_file="${tmake_file} t-crtfm"
+       extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+       ;;
+sparc64-*-rtems*)
+       tmake_file="$tmake_file t-crtfm"
+       extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+       ;;
+sparc-wrs-vxworks)
+       ;;
+sparc64-*-freebsd*|ultrasparc-*-freebsd*)
+       tmake_file="$tmake_file t-crtfm"
+       extra_parts="$extra_parts crtfastmath.o"
+       ;;
+sparc64-*-linux*)              # 64-bit SPARC's running GNU/Linux
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="${tmake_file} t-crtfm sparc/t-linux"
+       if test "${host_address}" = 64; then
+               tmake_file="${tmake_file} sparc/t-linux64"
+       fi
+       if test "${host_address}" = 32; then
+               tmake_file="${tmake_file} sparc/t-softmul"
+       fi
+       md_unwind_header=sparc/linux-unwind.h
+       ;;
+sparc64-*-netbsd*)
+       ;;
+spu-*-elf*)
+       tmake_file="$tmake_file spu/t-elf t-libgcc-pic t-fdpbit"
+       extra_parts="$extra_parts \
+               libgcc_cachemgr.a libgcc_cachemgr_nonatomic.a \
+               libgcc_cache8k.a libgcc_cache16k.a libgcc_cache32k.a \
+               libgcc_cache64k.a libgcc_cache128k.a"
+       ;;
+tic6x-*-uclinux)
+       tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp \
+               c6x/t-elf  c6x/t-uclinux t-crtstuff-pic t-libgcc-pic \
+               t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-gnu-prefix"
+       tm_file="$tm_file c6x/c6x-abi.h"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
+       unwind_header=config/c6x/unwind-c6x.h
+       ;;
+tic6x-*-elf)
+       tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-elf"
+       tm_file="$tm_file c6x/c6x-abi.h"
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
+       unwind_header=config/c6x/unwind-c6x.h
+       ;;
+tilegx*-*-linux*)
+       if test "${host_address}" = 64; then
+               tmake_file="${tmake_file} tilegx/t-softfp"
+       fi
+       tmake_file="${tmake_file} tilegx/t-crtstuff t-softfp-sfdf t-softfp tilegx/t-tilegx"
+       md_unwind_header=tilepro/linux-unwind.h
+        ;;
+tilepro*-*-linux*)
+       tmake_file="${tmake_file} tilepro/t-crtstuff t-softfp-sfdf t-softfp tilepro/t-tilepro t-slibgcc-libgcc"
+       md_unwind_header=tilepro/linux-unwind.h
+        ;;
+v850*-*-*)
+       tmake_file="${tmake_file} v850/t-v850 t-fdpbit"
+       ;;
+vax-*-linux*)
+       tmake_file="$tmake_file vax/t-linux"
+       ;;
+vax-*-netbsdelf*)
+       ;;
+vax-*-openbsd*)
+       ;;
+visium-*-elf*)
+        extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
+        tmake_file="visium/t-visium t-fdpbit"
+        ;;
+xstormy16-*-elf)
+       tmake_file="stormy16/t-stormy16 t-fdpbit"
+       ;;
+xtensa*-*-elf*)
+       tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-elf"
+       extra_parts="$extra_parts crti.o crtn.o"
+       ;;
+xtensa*-*-linux*)
+       tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
+       md_unwind_header=xtensa/linux-unwind.h
+       ;;
+xtensa*-*-uclinux*)
+       tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
+       md_unwind_header=xtensa/linux-unwind.h
+       extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
+       ;;
+am33_2.0-*-linux*)
+       # Don't need crtbeginT.o from *-*-linux* default.
+       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+       tmake_file="$tmake_file t-fdpbit"
+       ;;
+m32c-*-elf*|m32c-*-rtems*)
+       tmake_file="$tmake_file m32c/t-m32c"
+       ;;
+nvptx-*)
+       tmake_file="$tmake_file nvptx/t-nvptx"
+       extra_parts="crt0.o"
+       ;;
+*)
+       echo "*** Configuration ${host} not supported" 1>&2
+       exit 1
+       ;;
+esac
+
+case ${host} in
+i[34567]86-*-* | x86_64-*-*)
+       case ${host} in
+       *-musl*)
+               tmake_file="${tmake_file} i386/t-cpuinfo-static"
+               ;;
+       *)
+               tmake_file="${tmake_file} i386/t-cpuinfo"
+               ;;
+       esac
+       ;;
+esac
+
+case ${host} in
+i[34567]86-*-linux* | x86_64-*-linux* | \
+  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
+  i[34567]86-*-gnu*)
+       tmake_file="${tmake_file} t-tls i386/t-linux i386/t-msabi t-slibgcc-libgcc"
+       if test "$libgcc_cv_cfi" = "yes"; then
+               tmake_file="${tmake_file} t-stack i386/t-stack-i386"
+       fi
+       ;;
+esac
+
+case ${host} in
+i[34567]86-*-elfiamcu | i[34567]86-*-rtems*)
+       # These use soft-fp for SFmode and DFmode, not just TFmode.
+       ;;
+i[34567]86-*-* | x86_64-*-*)
+       tmake_file="${tmake_file} t-softfp-tf"
+       if test "${host_address}" = 32; then
+               tmake_file="${tmake_file} i386/${host_address}/t-softfp"
+       fi
+       tmake_file="${tmake_file} i386/t-softfp t-softfp"
+       ;;
+esac
+
+case ${host} in
+i[34567]86-*-linux* | x86_64-*-linux*)
+       # Provide backward binary compatibility for 64bit Linux/x86.
+       if test "${host_address}" = 64; then
+               tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat"
+       fi
+       tm_file="${tm_file} i386/value-unwind.h"
+       ;;
+aarch64*-*-*)
+       # ILP32 needs an extra header for unwinding
+       tm_file="${tm_file} aarch64/value-unwind.h"
+       ;;
+esac
diff --git a/arm-stmos/gcc-files/libstdc++-v3/crossconfig.m4 b/arm-stmos/gcc-files/libstdc++-v3/crossconfig.m4
new file mode 100644 (file)
index 0000000..3ab4ec3
--- /dev/null
@@ -0,0 +1,305 @@
+dnl
+dnl This file contains details for non-native builds.
+dnl
+
+AC_DEFUN([GLIBCXX_CROSSCONFIG],[
+# Base decisions on target environment.
+case "${host}" in
+  arm*-*-symbianelf*)
+    # This is a freestanding configuration; there is nothing to do here.
+    ;;
+
+  *-stmos*)
+    GLIBCXX_CHECK_COMPILER_FEATURES
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    ;;
+
+  avr*-*-*)
+    AC_DEFINE(HAVE_ACOSF)
+    AC_DEFINE(HAVE_ASINF)
+    AC_DEFINE(HAVE_ATAN2F)
+    AC_DEFINE(HAVE_ATANF)
+    AC_DEFINE(HAVE_CEILF)
+    AC_DEFINE(HAVE_COSF)
+    AC_DEFINE(HAVE_COSHF)
+    AC_DEFINE(HAVE_EXPF)
+    AC_DEFINE(HAVE_FABSF)
+    AC_DEFINE(HAVE_FLOORF)
+    AC_DEFINE(HAVE_FMODF)
+    AC_DEFINE(HAVE_FREXPF)
+    AC_DEFINE(HAVE_SQRTF)
+    AC_DEFINE(HAVE_HYPOTF)
+    AC_DEFINE(HAVE_LDEXPF)
+    AC_DEFINE(HAVE_LOG10F)
+    AC_DEFINE(HAVE_LOGF)
+    AC_DEFINE(HAVE_MODFF)
+    AC_DEFINE(HAVE_POWF)
+    AC_DEFINE(HAVE_SINF)
+    AC_DEFINE(HAVE_SINHF)
+    AC_DEFINE(HAVE_TANF)
+    AC_DEFINE(HAVE_TANHF)
+    ;;
+
+  mips*-sde-elf*)
+    # These definitions are for the SDE C library rather than newlib.
+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
+    AC_SUBST(SECTION_FLAGS)
+    GLIBCXX_CHECK_COMPILER_FEATURES
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+
+    AC_DEFINE(HAVE_FINITE)
+    AC_DEFINE(HAVE_HYPOT)
+    AC_DEFINE(HAVE_ISNAN)
+    AC_DEFINE(HAVE_ISINF)
+
+    AC_DEFINE(HAVE_LDEXPF)
+    AC_DEFINE(HAVE_MODF)
+    AC_DEFINE(HAVE_SQRTF)
+    ;;
+
+  spu-*-elf*)
+    GLIBCXX_CHECK_COMPILER_FEATURES
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    AM_ICONV
+    ;;
+
+  *-aix*)
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
+    # We don't yet support AIX's TLS ABI.
+    #GCC_CHECK_TLS
+    AM_ICONV
+    ;;
+
+  *-darwin*)
+    # Darwin versions vary, but the linker should work in a cross environment,
+    # so we just check for all the features here.
+    # Check for available headers.
+
+    # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    ;;
+
+  *djgpp)
+    # GLIBCXX_CHECK_MATH_SUPPORT
+    AC_DEFINE(HAVE_ISINF)
+    AC_DEFINE(HAVE_ISNAN)
+    AC_DEFINE(HAVE_FINITE)
+    AC_DEFINE(HAVE_SINCOS)
+    AC_DEFINE(HAVE_HYPOT)
+    ;;
+
+  *-freebsd*)
+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
+    AC_SUBST(SECTION_FLAGS) 
+    GLIBCXX_CHECK_LINKER_FEATURES
+    AC_DEFINE(HAVE_SETENV)
+    AC_DEFINE(HAVE_FINITEF)
+    AC_DEFINE(HAVE_FINITE)
+    AC_DEFINE(HAVE_FREXPF)
+    AC_DEFINE(HAVE_HYPOT)
+    AC_DEFINE(HAVE_HYPOTF)
+    AC_DEFINE(HAVE_ISINF)
+    AC_DEFINE(HAVE_ISNAN)
+    AC_DEFINE(HAVE_ISNANF)
+
+    AC_DEFINE(HAVE_ACOSF)
+    AC_DEFINE(HAVE_ASINF)
+    AC_DEFINE(HAVE_ATAN2F)
+    AC_DEFINE(HAVE_ATANF)
+    AC_DEFINE(HAVE_CEILF)
+    AC_DEFINE(HAVE_COSF)
+    AC_DEFINE(HAVE_COSHF)
+    AC_DEFINE(HAVE_EXPF)
+    AC_DEFINE(HAVE_FABSF)
+    AC_DEFINE(HAVE_FLOORF)
+    AC_DEFINE(HAVE_FMODF)
+    AC_DEFINE(HAVE_FREXPF)
+    AC_DEFINE(HAVE_LDEXPF)
+    AC_DEFINE(HAVE_LOG10F)
+    AC_DEFINE(HAVE_LOGF)
+    AC_DEFINE(HAVE_MODFF)
+    AC_DEFINE(HAVE_POWF)
+    AC_DEFINE(HAVE_SINF)
+    AC_DEFINE(HAVE_SINHF)
+    AC_DEFINE(HAVE_SQRTF)
+    AC_DEFINE(HAVE_TANF)
+    AC_DEFINE(HAVE_TANHF)
+    if test x"long_double_math_on_this_cpu" = x"yes"; then
+      AC_DEFINE(HAVE_FINITEL)
+      AC_DEFINE(HAVE_ISINFL)
+      AC_DEFINE(HAVE_ISNANL)
+    fi
+    AC_CHECK_FUNCS(__cxa_thread_atexit)
+    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    ;;
+
+  *-fuchsia*)
+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
+    AC_SUBST(SECTION_FLAGS)
+    ;;
+
+  *-hpux*)
+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
+    AC_SUBST(SECTION_FLAGS)
+    GLIBCXX_CHECK_LINKER_FEATURES
+
+    # GLIBCXX_CHECK_MATH_SUPPORT
+    AC_DEFINE(HAVE_ISNAN)
+    AC_DEFINE(HAVE_HYPOT)
+    AC_DEFINE(HAVE_ACOSF)
+    AC_DEFINE(HAVE_ASINF)
+    AC_DEFINE(HAVE_ATANF)
+    AC_DEFINE(HAVE_COSF)
+    AC_DEFINE(HAVE_COSHF)
+    AC_DEFINE(HAVE_SINF)
+    AC_DEFINE(HAVE_SINHF)
+    AC_DEFINE(HAVE_TANF)
+    AC_DEFINE(HAVE_TANHF)
+    AC_DEFINE(HAVE_EXPF)
+    AC_DEFINE(HAVE_ATAN2F)
+    AC_DEFINE(HAVE_FABSF)
+    AC_DEFINE(HAVE_FMODF)
+    AC_DEFINE(HAVE_FREXPF)
+    AC_DEFINE(HAVE_LOGF)
+    AC_DEFINE(HAVE_LOG10F)
+    AC_DEFINE(HAVE_MODF)
+    AC_DEFINE(HAVE_POWF)
+    AC_DEFINE(HAVE_SQRTF)
+
+    # GLIBCXX_CHECK_STDLIB_SUPPORT
+    AC_DEFINE(HAVE_STRTOLD)
+
+    GCC_CHECK_TLS
+    case "$target" in
+      *-hpux10*)
+       AC_DEFINE(HAVE_ISINF)
+       AC_DEFINE(HAVE_ISINFF)
+       AC_DEFINE(HAVE_ISNANF)
+       AC_DEFINE(HAVE_FINITE)
+       AC_DEFINE(HAVE_FINITEF)
+       ;;
+    esac
+    ;;
+  *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-cygwin* | *-solaris*)
+    GLIBCXX_CHECK_COMPILER_FEATURES
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
+    GCC_CHECK_TLS
+    AC_CHECK_FUNCS(__cxa_thread_atexit_impl)
+    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    AM_ICONV
+    ;;
+  *-mingw32*)
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    ;;
+  *-netbsd*)
+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
+    AC_SUBST(SECTION_FLAGS) 
+    GLIBCXX_CHECK_LINKER_FEATURES
+    AC_DEFINE(HAVE_FINITEF)
+    AC_DEFINE(HAVE_FINITE)
+    AC_DEFINE(HAVE_FREXPF)
+    AC_DEFINE(HAVE_HYPOTF)
+    AC_DEFINE(HAVE_ISINF)
+    AC_DEFINE(HAVE_ISINFF)
+    AC_DEFINE(HAVE_ISNAN)
+    AC_DEFINE(HAVE_ISNANF)
+    if test x"long_double_math_on_this_cpu" = x"yes"; then
+      AC_DEFINE(HAVE_FINITEL)
+      AC_DEFINE(HAVE_ISINFL)
+      AC_DEFINE(HAVE_ISNANL)
+    fi
+    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    ;;
+  *-qnx6.1* | *-qnx6.2*)
+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
+    AC_SUBST(SECTION_FLAGS) 
+    GLIBCXX_CHECK_LINKER_FEATURES
+    AC_DEFINE(HAVE_COSF)
+    AC_DEFINE(HAVE_COSL)
+    AC_DEFINE(HAVE_COSHF)
+    AC_DEFINE(HAVE_COSHL)
+    AC_DEFINE(HAVE_LOGF)
+    AC_DEFINE(HAVE_LOGL)
+    AC_DEFINE(HAVE_LOG10F)
+    AC_DEFINE(HAVE_LOG10L)
+    AC_DEFINE(HAVE_SINF)
+    AC_DEFINE(HAVE_SINL)
+    AC_DEFINE(HAVE_SINHF)
+    AC_DEFINE(HAVE_SINHL)
+    ;;
+  *-rtems*)
+    GLIBCXX_CHECK_COMPILER_FEATURES
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    ;;
+  *-tpf)
+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
+    SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS'
+    AC_SUBST(SECTION_FLAGS)
+    AC_DEFINE(HAVE_FINITE)
+    AC_DEFINE(HAVE_FINITEF)
+    AC_DEFINE(HAVE_FREXPF)
+    AC_DEFINE(HAVE_HYPOTF)
+    AC_DEFINE(HAVE_ISINF)
+    AC_DEFINE(HAVE_ISINFF)
+    AC_DEFINE(HAVE_ISNAN)
+    AC_DEFINE(HAVE_ISNANF)
+    AC_DEFINE(HAVE_SINCOS)
+    AC_DEFINE(HAVE_SINCOSF)
+    if test x"long_double_math_on_this_cpu" = x"yes"; then
+      AC_DEFINE(HAVE_FINITEL)
+      AC_DEFINE(HAVE_HYPOTL)
+      AC_DEFINE(HAVE_ISINFL)
+      AC_DEFINE(HAVE_ISNANL)
+    fi
+    ;;
+  *-*vms*)
+    # Check for available headers.
+    # Don't call GLIBCXX_CHECK_LINKER_FEATURES, VMS doesn't have a GNU ld
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    ;;
+  *-vxworks)
+    AC_DEFINE(HAVE_ACOSF)
+    AC_DEFINE(HAVE_ASINF)
+    AC_DEFINE(HAVE_ATAN2F)
+    AC_DEFINE(HAVE_ATANF)
+    AC_DEFINE(HAVE_CEILF)
+    AC_DEFINE(HAVE_COSF)
+    AC_DEFINE(HAVE_COSHF)
+    AC_DEFINE(HAVE_EXPF)
+    AC_DEFINE(HAVE_FABSF)
+    AC_DEFINE(HAVE_FLOORF)
+    AC_DEFINE(HAVE_FMODF)
+    AC_DEFINE(HAVE_HYPOT)
+    AC_DEFINE(HAVE_LOG10F)
+    AC_DEFINE(HAVE_LOGF)
+    AC_DEFINE(HAVE_POWF)
+    AC_DEFINE(HAVE_SINF)
+    AC_DEFINE(HAVE_SINHF)
+    AC_DEFINE(HAVE_SQRTF)
+    AC_DEFINE(HAVE_TANF)
+    AC_DEFINE(HAVE_TANHF)
+    ;;
+  *)
+    AC_MSG_ERROR([No support for this host/target combination.])
+   ;;
+esac
+])