Imported Upstream version 3.4.0
[platform/upstream/harfbuzz.git] / config.sub
index f02d43a..1d8e98b 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2020 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2020-01-01'
+timestamp='2018-02-22'
 
 # 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
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2020 Free Software Foundation, Inc.
+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."
@@ -89,7 +89,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
-       echo "$me: invalid option $1$help" >&2
+       echo "$me: invalid option $1$help"
        exit 1 ;;
 
     *local*)
@@ -110,1164 +110,1223 @@ case $# in
     exit 1;;
 esac
 
-# Split fields of configuration type
-# shellcheck disable=SC2162
-IFS="-" read field1 field2 field3 field4 <<EOF
-$1
-EOF
+# 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
 
-# Separate into logical components for further validation
-case $1 in
-       *-*-*-*-*)
-               echo Invalid configuration \`"$1"\': more than four components >&2
-               exit 1
+### 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.
                ;;
-       *-*-*-*)
-               basic_machine=$field1-$field2
-               os=$field3-$field4
+       -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
                ;;
-       *-*-*)
-               # 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
+       -bluegene*)
+               os=-cnk
                ;;
-       *-*)
-               # A lone config we happen to match not fitting any pattern
-               case $field1-$field2 in
-                       decstation-3100)
-                               basic_machine=mips-dec
-                               os=
-                               ;;
-                       *-*)
-                               # 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* | pc533* | 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
-                       ;;
-               esac
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
                ;;
-       *)
-               # 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
-                               ;;
-                       alliant)
-                               basic_machine=fx80-alliant
-                               os=
-                               ;;
-                       altos | altos3068)
-                               basic_machine=m68k-altos
-                               os=
-                               ;;
-                       am29k)
-                               basic_machine=a29k-none
-                               os=bsd
-                               ;;
-                       amdahl)
-                               basic_machine=580-amdahl
-                               os=sysv
-                               ;;
-                       amiga)
-                               basic_machine=m68k-unknown
-                               os=
-                               ;;
-                       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
-                               ;;
-                       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)
-                               basic_machine=j90-cray
-                               os=unicos
-                               ;;
-                       crds | unos)
-                               basic_machine=m68k-crds
-                               os=
-                               ;;
-                       da30)
-                               basic_machine=m68k-da30
-                               os=
-                               ;;
-                       decstation | pmax | pmin | dec3100 | decstatn)
-                               basic_machine=mips-dec
-                               os=
-                               ;;
-                       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
-                               ;;
-                       hp300 | hp300hpux)
-                               basic_machine=m68k-hp
-                               os=hpux
-                               ;;
-                       hp300bsd)
-                               basic_machine=m68k-hp
-                               os=bsd
-                               ;;
-                       hppaosf)
-                               basic_machine=hppa1.1-hp
-                               os=osf
-                               ;;
-                       hppro)
-                               basic_machine=hppa1.1-hp
-                               os=proelf
-                               ;;
-                       i386mach)
-                               basic_machine=i386-mach
-                               os=mach
-                               ;;
-                       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-pc
-                               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
-                               ;;
-                       sequent)
-                               basic_machine=i386-sequent
-                               os=
-                               ;;
-                       sps7)
-                               basic_machine=m68k-bull
-                               os=sysv2
-                               ;;
-                       st2000)
-                               basic_machine=m68k-tandem
-                               os=
-                               ;;
-                       stratus)
-                               basic_machine=i860-stratus
-                               os=sysv4
-                               ;;
-                       sun2)
-                               basic_machine=m68000-sun
-                               os=
-                               ;;
-                       sun2os3)
-                               basic_machine=m68000-sun
-                               os=sunos3
-                               ;;
-                       sun2os4)
-                               basic_machine=m68000-sun
-                               os=sunos4
-                               ;;
-                       sun3)
-                               basic_machine=m68k-sun
-                               os=
-                               ;;
-                       sun3os3)
-                               basic_machine=m68k-sun
-                               os=sunos3
-                               ;;
-                       sun3os4)
-                               basic_machine=m68k-sun
-                               os=sunos4
-                               ;;
-                       sun4)
-                               basic_machine=sparc-sun
-                               os=
-                               ;;
-                       sun4os3)
-                               basic_machine=sparc-sun
-                               os=sunos3
-                               ;;
-                       sun4os4)
-                               basic_machine=sparc-sun
-                               os=sunos4
-                               ;;
-                       sun4sol2)
-                               basic_machine=sparc-sun
-                               os=solaris2
-                               ;;
-                       sun386 | sun386i | roadrunner)
-                               basic_machine=i386-sun
-                               os=
-                               ;;
-                       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
-                               ;;
-                       vsta)
-                               basic_machine=i386-pc
-                               os=vsta
-                               ;;
-                       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
+       -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 1-component or ad-hoc basic machines
+# Decode aliases for certain CPU-COMPANY combinations.
 case $basic_machine in
-       # 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)
-               cpu=hppa1.1
-               vendor=winbond
+       # 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 | 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
                ;;
-       op50n)
-               cpu=hppa1.1
-               vendor=oki
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
                ;;
-       op60c)
-               cpu=hppa1.1
-               vendor=oki
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+               basic_machine=$basic_machine-unknown
+               os=-none
                ;;
-       ibm*)
-               cpu=i370
-               vendor=ibm
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
                ;;
-       orion105)
-               cpu=clipper
-               vendor=highlevel
+       ms1)
+               basic_machine=mt-unknown
                ;;
-       mac | mpw | mac-mpw)
-               cpu=m68k
-               vendor=apple
+
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
                ;;
-       pmac | pmac-mpw)
-               cpu=powerpc
-               vendor=apple
+       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-pc
+               os=-bsd
+               ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               cpu=m68000
-               vendor=att
+               basic_machine=m68000-att
                ;;
        3b*)
-               cpu=we32k
-               vendor=att
+               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*)
-               cpu=powerpc
-               vendor=ibm
-               os=cnk
+               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*)
-               cpu=pdp10
-               vendor=dec
-               os=tops10
+               basic_machine=pdp10-dec
+               os=-tops10
                ;;
        decsystem20* | dec20*)
-               cpu=pdp10
-               vendor=dec
-               os=tops20
+               basic_machine=pdp10-dec
+               os=-tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
-               cpu=m68k
-               vendor=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*)
-               cpu=m68k
-               vendor=bull
-               os=sysv3
+               basic_machine=m68k-bull
+               os=-sysv3
                ;;
-       encore | umax | mmax)
-               cpu=ns32k
-               vendor=encore
+       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)
-               cpu=elxsi
-               vendor=elxsi
-               os=${os:-bsd}
+               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)
-               cpu=i860
-               vendor=alliant
+               basic_machine=i860-alliant
                ;;
        genix)
-               cpu=ns32k
-               vendor=ns
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
                ;;
        h3050r* | hiux*)
-               cpu=hppa1.1
-               vendor=hitachi
-               os=hiuxwe2
+               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])
-               cpu=hppa1.0
-               vendor=hp
+               basic_machine=hppa1.0-hp
                ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
-               cpu=m68000
-               vendor=hp
+               basic_machine=m68000-hp
                ;;
        hp9k3[2-9][0-9])
-               cpu=m68k
-               vendor=hp
+               basic_machine=m68k-hp
                ;;
        hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               cpu=hppa1.0
-               vendor=hp
+               basic_machine=hppa1.0-hp
                ;;
        hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               cpu=hppa1.1
-               vendor=hp
+               basic_machine=hppa1.1-hp
                ;;
        hp9k78[0-9] | hp78[0-9])
                # FIXME: really hppa2.0-hp
-               cpu=hppa1.1
-               vendor=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
-               cpu=hppa1.1
-               vendor=hp
+               basic_machine=hppa1.1-hp
                ;;
        hp9k8[0-9][13679] | hp8[0-9][13679])
-               cpu=hppa1.1
-               vendor=hp
+               basic_machine=hppa1.1-hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               cpu=hppa1.0
-               vendor=hp
+               basic_machine=hppa1.0-hp
+               ;;
+       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)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
-               vendor=pc
-               os=sysv32
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
                ;;
        i*86v4*)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
-               vendor=pc
-               os=sysv4
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
                ;;
        i*86v)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
-               vendor=pc
-               os=sysv
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=-sysv
                ;;
        i*86sol2)
-               cpu=`echo "$1" | sed -e 's/86.*/86/'`
-               vendor=pc
-               os=solaris2
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=-solaris2
+               ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
                ;;
-       j90 | j90-cray)
-               cpu=j90
-               vendor=cray
-               os=${os:-unicos}
+       vsta)
+               basic_machine=i386-unknown
+               os=-vsta
                ;;
        iris | iris4d)
-               cpu=mips
-               vendor=sgi
+               basic_machine=mips-sgi
                case $os in
-                   irix*)
+                   -irix*)
                        ;;
                    *)
-                       os=irix4
+                       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
+               ;;
+       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)
-               cpu=m68000
-               vendor=convergent
+               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
                ;;
-       *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               cpu=m68k
-               vendor=atari
-               os=mint
+       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)
-               cpu=mips
-               vendor=sony
-               os=newsos
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
                ;;
        next | m*-next)
-               cpu=m68k
-               vendor=next
+               basic_machine=m68k-next
                case $os in
-                   openstep*)
-                       ;;
-                   nextstep*)
+                   -nextstep* )
                        ;;
-                   ns2*)
-                     os=nextstep2
+                   -ns2*)
+                     os=-nextstep2
                        ;;
                    *)
-                     os=nextstep3
+                     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)
-               cpu=np1
-               vendor=gould
+               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-*)
-               cpu=hppa1.1
-               vendor=oki
-               os=proelf
+               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)
-               cpu=hppa1.1
-               vendor=hitachi
-               os=hiuxwe2
+               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)
-               cpu=sparc
-               vendor=tti
+               basic_machine=sparc-tti
                ;;
        pbb)
-               cpu=m68k
-               vendor=tti
+               basic_machine=m68k-tti
                ;;
-       pc532)
-               cpu=ns32k
-               vendor=pc532
+       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)
-               cpu=pn
-               vendor=gould
+               basic_machine=pn-gould
                ;;
-       power)
-               cpu=power
-               vendor=ibm
+       power)  basic_machine=power-ibm
                ;;
-       ps2)
-               cpu=i386
-               vendor=ibm
+       ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
-       rm[46]00)
-               cpu=mips
-               vendor=siemens
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
-       rtpc | rtpc-*)
-               cpu=romp
-               vendor=ibm
+       ppcle | powerpclittle)
+               basic_machine=powerpcle-unknown
                ;;
-       sde)
-               cpu=mipsisa32
-               vendor=sde
-               os=${os:-elf}
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
-       simso-wrs)
-               cpu=sparclite
-               vendor=wrs
-               os=vxworks
+       ppc64)  basic_machine=powerpc64-unknown
                ;;
-       tower | tower-32)
-               cpu=m68k
-               vendor=ncr
+       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
-       vpp*|vx|vx-*)
-               cpu=f301
-               vendor=fujitsu
+       ppc64le | powerpc64little)
+               basic_machine=powerpc64le-unknown
                ;;
-       w65)
-               cpu=w65
-               vendor=wdc
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
-       w89k-*)
-               cpu=hppa1.1
-               vendor=winbond
-               os=proelf
+       ps2)
+               basic_machine=i386-ibm
                ;;
-       none)
-               cpu=none
-               vendor=none
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
                ;;
-       leon|leon[3-9])
-               cpu=sparc
-               vendor=$basic_machine
+       rdos | rdos64)
+               basic_machine=x86_64-pc
+               os=-rdos
                ;;
-       leon-*|leon[3-9]-*)
-               cpu=sparc
-               vendor=`echo "$basic_machine" | sed 's/-.*//'`
+       rdos32)
+               basic_machine=i386-pc
+               os=-rdos
                ;;
-
-       *-*)
-               # shellcheck disable=SC2162
-               IFS="-" read cpu vendor <<EOF
-$basic_machine
-EOF
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
                ;;
-       # 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)
-               cpu=$basic_machine
-               vendor=pc
+       rm[46]00)
+               basic_machine=mips-siemens
                ;;
-       # These rules are duplicated from below for sake of the special case above;
-       # i.e. things that normalized to x86 arches should also default to "pc"
-       pc98)
-               cpu=i386
-               vendor=pc
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
                ;;
-       x64 | amd64)
-               cpu=x86_64
-               vendor=pc
+       s390 | s390-*)
+               basic_machine=s390-ibm
                ;;
-       # Recognize the basic CPU types without company name.
-       *)
-               cpu=$basic_machine
-               vendor=unknown
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
                ;;
-esac
-
-unset -v basic_machine
-
-# Decode basic machines in the full and proper CPU-Company form.
-case $cpu-$vendor in
-       # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
-       # some cases the only manufacturer, in others, it is the most popular.
-       craynv-unknown)
-               vendor=cray
-               os=${os:-unicosmp}
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
                ;;
-       c90-unknown | c90-cray)
-               vendor=cray
-               os=${os:-unicos}
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
                ;;
-       fx80-unknown)
-               vendor=alliant
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
                ;;
-       romp-unknown)
-               vendor=ibm
+       sde)
+               basic_machine=mipsisa32-sde
+               os=-elf
                ;;
-       mmix-unknown)
-               vendor=knuth
+       sei)
+               basic_machine=mips-sei
+               os=-seiux
                ;;
-       microblaze-unknown | microblazeel-unknown)
-               vendor=xilinx
+       sequent)
+               basic_machine=i386-sequent
                ;;
-       rs6000-unknown)
-               vendor=ibm
+       sh5el)
+               basic_machine=sh5le-unknown
                ;;
-       vax-unknown)
-               vendor=dec
+       simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
                ;;
-       pdp11-unknown)
-               vendor=dec
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
                ;;
-       we32k-unknown)
-               vendor=att
+       spur)
+               basic_machine=spur-unknown
                ;;
-       cydra-unknown)
-               vendor=cydrome
+       st2000)
+               basic_machine=m68k-tandem
                ;;
-       i370-ibm*)
-               vendor=ibm
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
                ;;
-       orion-unknown)
-               vendor=highlevel
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
-       xps-unknown | xps100-unknown)
-               cpu=xps100
-               vendor=honeywell
+       sun2)
+               basic_machine=m68000-sun
                ;;
-
-       # Here we normalize CPU types with a missing or matching vendor
-       dpx20-unknown | dpx20-bull)
-               cpu=rs6000
-               vendor=bull
-               os=${os:-bosx}
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
                ;;
-
-       # Here we normalize CPU types irrespective of the vendor
-       amd64-*)
-               cpu=x86_64
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
                ;;
-       blackfin-*)
-               cpu=bfin
-               os=linux
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
                ;;
-       c54x-*)
-               cpu=tic54x
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
                ;;
-       c55x-*)
-               cpu=tic55x
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
                ;;
-       c6x-*)
-               cpu=tic6x
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
                ;;
-       e500v[12]-*)
-               cpu=powerpc
-               os=$os"spe"
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
                ;;
-       mips3*-*)
-               cpu=mips64
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
                ;;
-       ms1-*)
-               cpu=mt
+       sun4)
+               basic_machine=sparc-sun
                ;;
-       m68knommu-*)
-               cpu=m68k
-               os=linux
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
                ;;
-       m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
-               cpu=s12z
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
                ;;
-       openrisc-*)
-               cpu=or32
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
                ;;
-       parisc-*)
-               cpu=hppa
-               os=linux
+       t3e)
+               basic_machine=alphaev5-cray
+               os=-unicos
                ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               cpu=i586
+       t90)
+               basic_machine=t90-cray
+               os=-unicos
                ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
-               cpu=i686
+       tile*)
+               basic_machine=$basic_machine-unknown
+               os=-linux-gnu
                ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               cpu=i686
+       tx39)
+               basic_machine=mipstx39-unknown
                ;;
-       pentium4-*)
-               cpu=i786
+       tx39el)
+               basic_machine=mipstx39el-unknown
                ;;
-       pc98-*)
-               cpu=i386
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
                ;;
-       ppc-* | ppcbe-*)
-               cpu=powerpc
+       tower | tower-32)
+               basic_machine=m68k-ncr
                ;;
-       ppcle-* | powerpclittle-*)
-               cpu=powerpcle
+       tpf)
+               basic_machine=s390x-ibm
+               os=-tpf
                ;;
-       ppc64-*)
-               cpu=powerpc64
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
                ;;
-       ppc64le-* | powerpc64little-*)
-               cpu=powerpc64le
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
                ;;
-       sb1-*)
-               cpu=mipsisa64sb1
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
                ;;
-       sb1el-*)
-               cpu=mipsisa64sb1el
+       vms)
+               basic_machine=vax-dec
+               os=-vms
                ;;
-       sh5e[lb]-*)
-               cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
                ;;
-       spur-*)
-               cpu=spur
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
                ;;
-       strongarm-* | thumb-*)
-               cpu=arm
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
                ;;
-       tx39-*)
-               cpu=mipstx39
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
                ;;
-       tx39el-*)
-               cpu=mipstx39el
+       x64)
+               basic_machine=x86_64-pc
                ;;
-       x64-*)
-               cpu=x86_64
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
                ;;
        xscale-* | xscalee[bl]-*)
-               cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
+               ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
                ;;
 
-       # Recognize the canonical CPU Types that limit and/or modify the
-       # company names they are paired with.
-       cr16-*)
-               os=${os:-elf}
+# 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
                ;;
-       crisv32-* | etraxfs*-*)
-               cpu=crisv32
-               vendor=axis
+       op60c)
+               basic_machine=hppa1.1-oki
                ;;
-       cris-* | etrax*-*)
-               cpu=cris
-               vendor=axis
+       romp)
+               basic_machine=romp-ibm
                ;;
-       crx-*)
-               os=${os:-elf}
+       mmix)
+               basic_machine=mmix-knuth
                ;;
-       neo-tandem)
-               cpu=neo
-               vendor=tandem
+       rs6000)
+               basic_machine=rs6000-ibm
                ;;
-       nse-tandem)
-               cpu=nse
-               vendor=tandem
+       vax)
+               basic_machine=vax-dec
                ;;
-       nsr-tandem)
-               cpu=nsr
-               vendor=tandem
+       pdp11)
+               basic_machine=pdp11-dec
                ;;
-       nsv-tandem)
-               cpu=nsv
-               vendor=tandem
+       we32k)
+               basic_machine=we32k-att
                ;;
-       nsx-tandem)
-               cpu=nsx
-               vendor=tandem
+       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
                ;;
-       s390-*)
-               cpu=s390
-               vendor=ibm
+       cydra)
+               basic_machine=cydra-cydrome
                ;;
-       s390x-*)
-               cpu=s390x
-               vendor=ibm
+       orion)
+               basic_machine=orion-highlevel
                ;;
-       tile*-*)
-               os=${os:-linux-gnu}
+       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.
                ;;
-
        *)
-               # Recognize the canonical CPU types that are allowed with any
-               # company name.
-               case $cpu in
-                       1750a | 580 \
-                       | a29k \
-                       | aarch64 | aarch64_be \
-                       | abacus \
-                       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
-                       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
-                       | alphapca5[67] | alpha64pca5[67] \
-                       | am33_2.0 \
-                       | amdgcn \
-                       | arc | arceb \
-                       | arm  | arm[lb]e | arme[lb] | armv* \
-                       | avr | avr32 \
-                       | asmjs \
-                       | ba \
-                       | be32 | be64 \
-                       | bfin | bpf | bs2000 \
-                       | c[123]* | c30 | [cjt]90 | c4x \
-                       | c8051 | clipper | craynv | csky | cydra \
-                       | d10v | d30v | dlx | dsp16xx \
-                       | e2k | elxsi | epiphany \
-                       | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
-                       | h8300 | h8500 \
-                       | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-                       | hexagon \
-                       | i370 | i*86 | i860 | i960 | ia16 | ia64 \
-                       | ip2k | iq2000 \
-                       | k1om \
-                       | le32 | le64 \
-                       | lm32 \
-                       | m32c | m32r | m32rle \
-                       | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
-                       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
-                       | m88110 | m88k | maxq | mb | mcore | mep | metag \
-                       | microblaze | microblazeel \
-                       | mips | mipsbe | mipseb | mipsel | mipsle \
-                       | mips16 \
-                       | mips64 | mips64eb | 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 \
-                       | mn10200 | mn10300 \
-                       | moxie \
-                       | mt \
-                       | msp430 \
-                       | nds32 | nds32le | nds32be \
-                       | nfp \
-                       | nios | nios2 | nios2eb | nios2el \
-                       | none | np1 | ns16k | ns32k | nvptx \
-                       | open8 \
-                       | or1k* \
-                       | or32 \
-                       | orion \
-                       | picochip \
-                       | pdp10 | pdp11 | pj | pjl | pn | power \
-                       | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
-                       | pru \
-                       | pyramid \
-                       | riscv | riscv32 | riscv64 \
-                       | rl78 | romp | rs6000 | rx \
-                       | score \
-                       | sh | shl \
-                       | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
-                       | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
-                       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
-                       | sparclite \
-                       | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
-                       | spu \
-                       | tahoe \
-                       | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
-                       | tron \
-                       | ubicom32 \
-                       | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
-                       | vax \
-                       | visium \
-                       | w65 \
-                       | wasm32 | wasm64 \
-                       | we32k \
-                       | x86 | x86_64 | xc16x | xgate | xps100 \
-                       | xstormy16 | xtensa* \
-                       | ymp \
-                       | z8k | z80)
-                               ;;
-
-                       *)
-                               echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
-                               exit 1
-                               ;;
-               esac
+               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
+               exit 1
                ;;
 esac
 
 # Here we canonicalize certain aliases for manufacturers.
-case $vendor in
-       digital*)
-               vendor=dec
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
                ;;
-       commodore*)
-               vendor=cbm
+       *-commodore*)
+               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
                ;;
        *)
                ;;
@@ -1275,243 +1334,199 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x$os != x ]
+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
+       # -solaris* is a basic system type, with this one exception.
+       -auroraux)
+               os=-auroraux
                ;;
-       bluegene*)
-               os=cnk
-               ;;
-       solaris1 | solaris1.*)
+       -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
                ;;
-       solaris)
-               os=solaris2
+       -solaris)
+               os=-solaris2
                ;;
-       unixware*)
-               os=sysv4.2uw
+       -unixware*)
+               os=-sysv4.2uw
                ;;
-       gnu/linux*)
+       -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
+       -es1800*)
+               os=-ose
                ;;
        # 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* | twizzler* \
-            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
-            | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
-            | knetbsd* | mirbsd* | netbsd* \
-            | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
-            | 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* | amdhsa* | unleashed* | emscripten* | wasi* \
-            | nsk* | powerunix)
+       # -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* | -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* \
+             | -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 $cpu in
-                   x86 | i*86)
+       -qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
                        ;;
                    *)
-                       os=nto-$os
+                       os=-nto$os
                        ;;
                esac
                ;;
-       hiux*)
-               os=hiuxwe2
+       -nto-qnx*)
                ;;
-       nto-qnx*)
-               ;;
-       nto*)
+       -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
+       -sim | -xray | -os68k* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* \
+             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
                ;;
-       lynx*)
-               os=lynxos
-               ;;
-       mac*)
+       -mac*)
                os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
-       opened*)
-               os=openedition
+       -linux-dietlibc)
+               os=-linux-dietlibc
                ;;
-       os400*)
-               os=os400
+       -linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
-       sunos5*)
+       -sunos5*)
                os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
                ;;
-       sunos6*)
+       -sunos6*)
                os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
                ;;
-       wince*)
-               os=wince
+       -opened*)
+               os=-openedition
                ;;
-       utek*)
-               os=bsd
+       -os400*)
+               os=-os400
                ;;
-       dynix*)
-               os=bsd
+       -wince*)
+               os=-wince
                ;;
-       acis*)
-               os=aos
+       -utek*)
+               os=-bsd
                ;;
-       atheos*)
-               os=atheos
+       -dynix*)
+               os=-bsd
                ;;
-       syllable*)
-               os=syllable
+       -acis*)
+               os=-aos
                ;;
-       386bsd)
-               os=bsd
+       -atheos*)
+               os=-atheos
+               ;;
+       -syllable*)
+               os=-syllable
                ;;
-       ctix* | uts*)
-               os=sysv
+       -386bsd)
+               os=-bsd
                ;;
-       nova*)
-               os=rtmk-nova
+       -ctix* | -uts*)
+               os=-sysv
                ;;
-       ns2)
-               os=nextstep2
+       -nova*)
+               os=-rtmk-nova
+               ;;
+       -ns2)
+               os=-nextstep2
+               ;;
+       -nsk*)
+               os=-nsk
                ;;
        # Preserve the version number of sinix5.
-       sinix5.*)
+       -sinix5.*)
                os=`echo $os | sed -e 's|sinix|sysv|'`
                ;;
-       sinix*)
-               os=sysv4
+       -sinix*)
+               os=-sysv4
                ;;
-       tpf*)
-               os=tpf
+       -tpf*)
+               os=-tpf
                ;;
-       triton*)
-               os=sysv3
+       -triton*)
+               os=-sysv3
                ;;
-       oss*)
-               os=sysv3
+       -oss*)
+               os=-sysv3
                ;;
-       svr4*)
-               os=sysv4
+       -svr4*)
+               os=-sysv4
                ;;
-       svr3)
-               os=sysv3
+       -svr3)
+               os=-sysv3
                ;;
-       sysvr4)
-               os=sysv4
+       -sysvr4)
+               os=-sysv4
                ;;
-       # This must come after sysvr4.
-       sysv*)
+       # This must come after -sysvr4.
+       -sysv*)
                ;;
-       ose*)
-               os=ose
+       -ose*)
+               os=-ose
                ;;
-       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
-               os=mint
+       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
                ;;
-       zvmoe)
-               os=zvmoe
+       -zvmoe)
+               os=-zvmoe
                ;;
-       dicos*)
-               os=dicos
+       -dicos*)
+               os=-dicos
                ;;
-       pikeos*)
+       -pikeos*)
                # Until real need of OS specific support for
                # particular features comes up, bare metal
                # configurations are quite functional.
-               case $cpu in
+               case $basic_machine in
                    arm*)
-                       os=eabi
+                       os=-eabi
                        ;;
                    *)
-                       os=elf
+                       os=-elf
                        ;;
                esac
                ;;
-       nacl*)
+       -nacl*)
                ;;
-       ios)
+       -ios)
                ;;
-       none)
-               ;;
-       *-eabi)
+       -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
                ;;
@@ -1528,265 +1543,258 @@ else
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
-case $cpu-$vendor in
+case $basic_machine in
        score-*)
-               os=elf
+               os=-elf
                ;;
        spu-*)
-               os=elf
+               os=-elf
                ;;
        *-acorn)
-               os=riscix1.2
+               os=-riscix1.2
                ;;
        arm*-rebel)
-               os=linux
+               os=-linux
                ;;
        arm*-semi)
-               os=aout
+               os=-aout
                ;;
        c4x-* | tic4x-*)
-               os=coff
+               os=-coff
                ;;
        c8051-*)
-               os=elf
-               ;;
-       clipper-intergraph)
-               os=clix
+               os=-elf
                ;;
        hexagon-*)
-               os=elf
+               os=-elf
                ;;
        tic54x-*)
-               os=coff
+               os=-coff
                ;;
        tic55x-*)
-               os=coff
+               os=-coff
                ;;
        tic6x-*)
-               os=coff
+               os=-coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
-               os=tops20
+               os=-tops20
                ;;
        pdp11-*)
-               os=none
+               os=-none
                ;;
        *-dec | vax-*)
-               os=ultrix4.2
+               os=-ultrix4.2
                ;;
        m68*-apollo)
-               os=domain
+               os=-domain
                ;;
        i386-sun)
-               os=sunos4.0.2
+               os=-sunos4.0.2
                ;;
        m68000-sun)
-               os=sunos3
+               os=-sunos3
                ;;
        m68*-cisco)
-               os=aout
+               os=-aout
                ;;
        mep-*)
-               os=elf
+               os=-elf
                ;;
        mips*-cisco)
-               os=elf
+               os=-elf
                ;;
        mips*-*)
-               os=elf
+               os=-elf
                ;;
        or32-*)
-               os=coff
+               os=-coff
                ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
-               os=sysv3
+               os=-sysv3
                ;;
        sparc-* | *-sun)
-               os=sunos4.1.1
+               os=-sunos4.1.1
                ;;
        pru-*)
-               os=elf
+               os=-elf
                ;;
        *-be)
-               os=beos
+               os=-beos
                ;;
        *-ibm)
-               os=aix
+               os=-aix
                ;;
        *-knuth)
-               os=mmixware
+               os=-mmixware
                ;;
        *-wec)
-               os=proelf
+               os=-proelf
                ;;
        *-winbond)
-               os=proelf
+               os=-proelf
                ;;
        *-oki)
-               os=proelf
+               os=-proelf
                ;;
        *-hp)
-               os=hpux
+               os=-hpux
                ;;
        *-hitachi)
-               os=hiux
+               os=-hiux
                ;;
        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=sysv
+               os=-sysv
                ;;
        *-cbm)
-               os=amigaos
+               os=-amigaos
                ;;
        *-dg)
-               os=dgux
+               os=-dgux
                ;;
        *-dolphin)
-               os=sysv3
+               os=-sysv3
                ;;
        m68k-ccur)
-               os=rtu
+               os=-rtu
                ;;
        m88k-omron*)
-               os=luna
+               os=-luna
                ;;
        *-next)
-               os=nextstep
+               os=-nextstep
                ;;
        *-sequent)
-               os=ptx
+               os=-ptx
                ;;
        *-crds)
-               os=unos
+               os=-unos
                ;;
        *-ns)
-               os=genix
+               os=-genix
                ;;
        i370-*)
-               os=mvs
+               os=-mvs
                ;;
        *-gould)
-               os=sysv
+               os=-sysv
                ;;
        *-highlevel)
-               os=bsd
+               os=-bsd
                ;;
        *-encore)
-               os=bsd
+               os=-bsd
                ;;
        *-sgi)
-               os=irix
+               os=-irix
                ;;
        *-siemens)
-               os=sysv4
+               os=-sysv4
                ;;
        *-masscomp)
-               os=rtu
+               os=-rtu
                ;;
        f30[01]-fujitsu | f700-fujitsu)
-               os=uxpv
+               os=-uxpv
                ;;
        *-rom68k)
-               os=coff
+               os=-coff
                ;;
        *-*bug)
-               os=coff
+               os=-coff
                ;;
        *-apple)
-               os=macos
+               os=-macos
                ;;
        *-atari*)
-               os=mint
-               ;;
-       *-wrs)
-               os=vxworks
+               os=-mint
                ;;
        *)
-               os=none
+               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.
-case $vendor in
-       unknown)
+vendor=unknown
+case $basic_machine in
+       *-unknown)
                case $os in
-                       riscix*)
+                       -riscix*)
                                vendor=acorn
                                ;;
-                       sunos*)
+                       -sunos*)
                                vendor=sun
                                ;;
-                       cnk*|-aix*)
+                       -cnk*|-aix*)
                                vendor=ibm
                                ;;
-                       beos*)
+                       -beos*)
                                vendor=be
                                ;;
-                       hpux*)
+                       -hpux*)
                                vendor=hp
                                ;;
-                       mpeix*)
+                       -mpeix*)
                                vendor=hp
                                ;;
-                       hiux*)
+                       -hiux*)
                                vendor=hitachi
                                ;;
-                       unos*)
+                       -unos*)
                                vendor=crds
                                ;;
-                       dgux*)
+                       -dgux*)
                                vendor=dg
                                ;;
-                       luna*)
+                       -luna*)
                                vendor=omron
                                ;;
-                       genix*)
+                       -genix*)
                                vendor=ns
                                ;;
-                       clix*)
-                               vendor=intergraph
-                               ;;
-                       mvs* | opened*)
+                       -mvs* | -opened*)
                                vendor=ibm
                                ;;
-                       os400*)
+                       -os400*)
                                vendor=ibm
                                ;;
-                       ptx*)
+                       -ptx*)
                                vendor=sequent
                                ;;
-                       tpf*)
+                       -tpf*)
                                vendor=ibm
                                ;;
-                       vxsim* | vxworks* | windiss*)
+                       -vxsim* | -vxworks* | -windiss*)
                                vendor=wrs
                                ;;
-                       aux*)
+                       -aux*)
                                vendor=apple
                                ;;
-                       hms*)
+                       -hms*)
                                vendor=hitachi
                                ;;
-                       mpw* | macos*)
+                       -mpw* | -macos*)
                                vendor=apple
                                ;;
-                       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
                                vendor=atari
                                ;;
-                       vos*)
+                       -vos*)
                                vendor=stratus
                                ;;
                esac
+               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo "$cpu-$vendor-$os"
+echo "$basic_machine$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"