17db96d56Sopenharmony_ci#! /bin/sh
27db96d56Sopenharmony_ci# Configuration validation subroutine script.
37db96d56Sopenharmony_ci#   Copyright 1992-2021 Free Software Foundation, Inc.
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ci# shellcheck disable=SC2006,SC2268 # see below for rationale
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_citimestamp='2021-08-14'
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci# This file is free software; you can redistribute it and/or modify it
107db96d56Sopenharmony_ci# under the terms of the GNU General Public License as published by
117db96d56Sopenharmony_ci# the Free Software Foundation; either version 3 of the License, or
127db96d56Sopenharmony_ci# (at your option) any later version.
137db96d56Sopenharmony_ci#
147db96d56Sopenharmony_ci# This program is distributed in the hope that it will be useful, but
157db96d56Sopenharmony_ci# WITHOUT ANY WARRANTY; without even the implied warranty of
167db96d56Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
177db96d56Sopenharmony_ci# General Public License for more details.
187db96d56Sopenharmony_ci#
197db96d56Sopenharmony_ci# You should have received a copy of the GNU General Public License
207db96d56Sopenharmony_ci# along with this program; if not, see <https://www.gnu.org/licenses/>.
217db96d56Sopenharmony_ci#
227db96d56Sopenharmony_ci# As a special exception to the GNU General Public License, if you
237db96d56Sopenharmony_ci# distribute this file as part of a program that contains a
247db96d56Sopenharmony_ci# configuration script generated by Autoconf, you may include it under
257db96d56Sopenharmony_ci# the same distribution terms that you use for the rest of that
267db96d56Sopenharmony_ci# program.  This Exception is an additional permission under section 7
277db96d56Sopenharmony_ci# of the GNU General Public License, version 3 ("GPLv3").
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci# Please send patches to <config-patches@gnu.org>.
317db96d56Sopenharmony_ci#
327db96d56Sopenharmony_ci# Configuration subroutine to validate and canonicalize a configuration type.
337db96d56Sopenharmony_ci# Supply the specified configuration type as an argument.
347db96d56Sopenharmony_ci# If it is invalid, we print an error message on stderr and exit with code 1.
357db96d56Sopenharmony_ci# Otherwise, we print the canonical config type on stdout and succeed.
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci# You can get the latest version of this script from:
387db96d56Sopenharmony_ci# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci# This file is supposed to be the same for all GNU packages
417db96d56Sopenharmony_ci# and recognize all the CPU types, system types and aliases
427db96d56Sopenharmony_ci# that are meaningful with *any* GNU software.
437db96d56Sopenharmony_ci# Each package is responsible for reporting which valid configurations
447db96d56Sopenharmony_ci# it does not support.  The user should be able to distinguish
457db96d56Sopenharmony_ci# a failure to support a valid configuration from a meaningless
467db96d56Sopenharmony_ci# configuration.
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ci# The goal of this file is to map all the various variations of a given
497db96d56Sopenharmony_ci# machine specification into a single specification in the form:
507db96d56Sopenharmony_ci#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
517db96d56Sopenharmony_ci# or in some cases, the newer four-part form:
527db96d56Sopenharmony_ci#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
537db96d56Sopenharmony_ci# It is wrong to echo any other type of specification.
547db96d56Sopenharmony_ci
557db96d56Sopenharmony_ci# The "shellcheck disable" line above the timestamp inhibits complaints
567db96d56Sopenharmony_ci# about features and limitations of the classic Bourne shell that were
577db96d56Sopenharmony_ci# superseded or lifted in POSIX.  However, this script identifies a wide
587db96d56Sopenharmony_ci# variety of pre-POSIX systems that do not have POSIX shells at all, and
597db96d56Sopenharmony_ci# even some reasonably current systems (Solaris 10 as case-in-point) still
607db96d56Sopenharmony_ci# have a pre-POSIX /bin/sh.
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_cime=`echo "$0" | sed -e 's,.*/,,'`
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ciusage="\
657db96d56Sopenharmony_ciUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
667db96d56Sopenharmony_ci
677db96d56Sopenharmony_ciCanonicalize a configuration name.
687db96d56Sopenharmony_ci
697db96d56Sopenharmony_ciOptions:
707db96d56Sopenharmony_ci  -h, --help         print this help, then exit
717db96d56Sopenharmony_ci  -t, --time-stamp   print date of last modification, then exit
727db96d56Sopenharmony_ci  -v, --version      print version number, then exit
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ciReport bugs and patches to <config-patches@gnu.org>."
757db96d56Sopenharmony_ci
767db96d56Sopenharmony_civersion="\
777db96d56Sopenharmony_ciGNU config.sub ($timestamp)
787db96d56Sopenharmony_ci
797db96d56Sopenharmony_ciCopyright 1992-2021 Free Software Foundation, Inc.
807db96d56Sopenharmony_ci
817db96d56Sopenharmony_ciThis is free software; see the source for copying conditions.  There is NO
827db96d56Sopenharmony_ciwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
837db96d56Sopenharmony_ci
847db96d56Sopenharmony_cihelp="
857db96d56Sopenharmony_ciTry \`$me --help' for more information."
867db96d56Sopenharmony_ci
877db96d56Sopenharmony_ci# Parse command line
887db96d56Sopenharmony_ciwhile test $# -gt 0 ; do
897db96d56Sopenharmony_ci  case $1 in
907db96d56Sopenharmony_ci    --time-stamp | --time* | -t )
917db96d56Sopenharmony_ci       echo "$timestamp" ; exit ;;
927db96d56Sopenharmony_ci    --version | -v )
937db96d56Sopenharmony_ci       echo "$version" ; exit ;;
947db96d56Sopenharmony_ci    --help | --h* | -h )
957db96d56Sopenharmony_ci       echo "$usage"; exit ;;
967db96d56Sopenharmony_ci    -- )     # Stop option processing
977db96d56Sopenharmony_ci       shift; break ;;
987db96d56Sopenharmony_ci    - )	# Use stdin as input.
997db96d56Sopenharmony_ci       break ;;
1007db96d56Sopenharmony_ci    -* )
1017db96d56Sopenharmony_ci       echo "$me: invalid option $1$help" >&2
1027db96d56Sopenharmony_ci       exit 1 ;;
1037db96d56Sopenharmony_ci
1047db96d56Sopenharmony_ci    *local*)
1057db96d56Sopenharmony_ci       # First pass through any local machine types.
1067db96d56Sopenharmony_ci       echo "$1"
1077db96d56Sopenharmony_ci       exit ;;
1087db96d56Sopenharmony_ci
1097db96d56Sopenharmony_ci    * )
1107db96d56Sopenharmony_ci       break ;;
1117db96d56Sopenharmony_ci  esac
1127db96d56Sopenharmony_cidone
1137db96d56Sopenharmony_ci
1147db96d56Sopenharmony_cicase $# in
1157db96d56Sopenharmony_ci 0) echo "$me: missing argument$help" >&2
1167db96d56Sopenharmony_ci    exit 1;;
1177db96d56Sopenharmony_ci 1) ;;
1187db96d56Sopenharmony_ci *) echo "$me: too many arguments$help" >&2
1197db96d56Sopenharmony_ci    exit 1;;
1207db96d56Sopenharmony_ciesac
1217db96d56Sopenharmony_ci
1227db96d56Sopenharmony_ci# Split fields of configuration type
1237db96d56Sopenharmony_ci# shellcheck disable=SC2162
1247db96d56Sopenharmony_cisaved_IFS=$IFS
1257db96d56Sopenharmony_ciIFS="-" read field1 field2 field3 field4 <<EOF
1267db96d56Sopenharmony_ci$1
1277db96d56Sopenharmony_ciEOF
1287db96d56Sopenharmony_ciIFS=$saved_IFS
1297db96d56Sopenharmony_ci
1307db96d56Sopenharmony_ci# Separate into logical components for further validation
1317db96d56Sopenharmony_cicase $1 in
1327db96d56Sopenharmony_ci	*-*-*-*-*)
1337db96d56Sopenharmony_ci		echo Invalid configuration \`"$1"\': more than four components >&2
1347db96d56Sopenharmony_ci		exit 1
1357db96d56Sopenharmony_ci		;;
1367db96d56Sopenharmony_ci	*-*-*-*)
1377db96d56Sopenharmony_ci		basic_machine=$field1-$field2
1387db96d56Sopenharmony_ci		basic_os=$field3-$field4
1397db96d56Sopenharmony_ci		;;
1407db96d56Sopenharmony_ci	*-*-*)
1417db96d56Sopenharmony_ci		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
1427db96d56Sopenharmony_ci		# parts
1437db96d56Sopenharmony_ci		maybe_os=$field2-$field3
1447db96d56Sopenharmony_ci		case $maybe_os in
1457db96d56Sopenharmony_ci			nto-qnx* | linux-* | uclinux-uclibc* \
1467db96d56Sopenharmony_ci			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
1477db96d56Sopenharmony_ci			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
1487db96d56Sopenharmony_ci			| storm-chaos* | os2-emx* | rtmk-nova*)
1497db96d56Sopenharmony_ci				basic_machine=$field1
1507db96d56Sopenharmony_ci				basic_os=$maybe_os
1517db96d56Sopenharmony_ci				;;
1527db96d56Sopenharmony_ci			android-linux)
1537db96d56Sopenharmony_ci				basic_machine=$field1-unknown
1547db96d56Sopenharmony_ci				basic_os=linux-android
1557db96d56Sopenharmony_ci				;;
1567db96d56Sopenharmony_ci			*)
1577db96d56Sopenharmony_ci				basic_machine=$field1-$field2
1587db96d56Sopenharmony_ci				basic_os=$field3
1597db96d56Sopenharmony_ci				;;
1607db96d56Sopenharmony_ci		esac
1617db96d56Sopenharmony_ci		;;
1627db96d56Sopenharmony_ci	*-*)
1637db96d56Sopenharmony_ci		# A lone config we happen to match not fitting any pattern
1647db96d56Sopenharmony_ci		case $field1-$field2 in
1657db96d56Sopenharmony_ci			decstation-3100)
1667db96d56Sopenharmony_ci				basic_machine=mips-dec
1677db96d56Sopenharmony_ci				basic_os=
1687db96d56Sopenharmony_ci				;;
1697db96d56Sopenharmony_ci			*-*)
1707db96d56Sopenharmony_ci				# Second component is usually, but not always the OS
1717db96d56Sopenharmony_ci				case $field2 in
1727db96d56Sopenharmony_ci					# Prevent following clause from handling this valid os
1737db96d56Sopenharmony_ci					sun*os*)
1747db96d56Sopenharmony_ci						basic_machine=$field1
1757db96d56Sopenharmony_ci						basic_os=$field2
1767db96d56Sopenharmony_ci						;;
1777db96d56Sopenharmony_ci					zephyr*)
1787db96d56Sopenharmony_ci						basic_machine=$field1-unknown
1797db96d56Sopenharmony_ci						basic_os=$field2
1807db96d56Sopenharmony_ci						;;
1817db96d56Sopenharmony_ci					# Manufacturers
1827db96d56Sopenharmony_ci					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
1837db96d56Sopenharmony_ci					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
1847db96d56Sopenharmony_ci					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
1857db96d56Sopenharmony_ci					| convergent* | ncr* | news | 32* | 3600* | 3100* \
1867db96d56Sopenharmony_ci					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
1877db96d56Sopenharmony_ci					| ultra | tti* | harris | dolphin | highlevel | gould \
1887db96d56Sopenharmony_ci					| cbm | ns | masscomp | apple | axis | knuth | cray \
1897db96d56Sopenharmony_ci					| microblaze* | sim | cisco \
1907db96d56Sopenharmony_ci					| oki | wec | wrs | winbond)
1917db96d56Sopenharmony_ci						basic_machine=$field1-$field2
1927db96d56Sopenharmony_ci						basic_os=
1937db96d56Sopenharmony_ci						;;
1947db96d56Sopenharmony_ci					*)
1957db96d56Sopenharmony_ci						basic_machine=$field1
1967db96d56Sopenharmony_ci						basic_os=$field2
1977db96d56Sopenharmony_ci						;;
1987db96d56Sopenharmony_ci				esac
1997db96d56Sopenharmony_ci			;;
2007db96d56Sopenharmony_ci		esac
2017db96d56Sopenharmony_ci		;;
2027db96d56Sopenharmony_ci	*)
2037db96d56Sopenharmony_ci		# Convert single-component short-hands not valid as part of
2047db96d56Sopenharmony_ci		# multi-component configurations.
2057db96d56Sopenharmony_ci		case $field1 in
2067db96d56Sopenharmony_ci			386bsd)
2077db96d56Sopenharmony_ci				basic_machine=i386-pc
2087db96d56Sopenharmony_ci				basic_os=bsd
2097db96d56Sopenharmony_ci				;;
2107db96d56Sopenharmony_ci			a29khif)
2117db96d56Sopenharmony_ci				basic_machine=a29k-amd
2127db96d56Sopenharmony_ci				basic_os=udi
2137db96d56Sopenharmony_ci				;;
2147db96d56Sopenharmony_ci			adobe68k)
2157db96d56Sopenharmony_ci				basic_machine=m68010-adobe
2167db96d56Sopenharmony_ci				basic_os=scout
2177db96d56Sopenharmony_ci				;;
2187db96d56Sopenharmony_ci			alliant)
2197db96d56Sopenharmony_ci				basic_machine=fx80-alliant
2207db96d56Sopenharmony_ci				basic_os=
2217db96d56Sopenharmony_ci				;;
2227db96d56Sopenharmony_ci			altos | altos3068)
2237db96d56Sopenharmony_ci				basic_machine=m68k-altos
2247db96d56Sopenharmony_ci				basic_os=
2257db96d56Sopenharmony_ci				;;
2267db96d56Sopenharmony_ci			am29k)
2277db96d56Sopenharmony_ci				basic_machine=a29k-none
2287db96d56Sopenharmony_ci				basic_os=bsd
2297db96d56Sopenharmony_ci				;;
2307db96d56Sopenharmony_ci			amdahl)
2317db96d56Sopenharmony_ci				basic_machine=580-amdahl
2327db96d56Sopenharmony_ci				basic_os=sysv
2337db96d56Sopenharmony_ci				;;
2347db96d56Sopenharmony_ci			amiga)
2357db96d56Sopenharmony_ci				basic_machine=m68k-unknown
2367db96d56Sopenharmony_ci				basic_os=
2377db96d56Sopenharmony_ci				;;
2387db96d56Sopenharmony_ci			amigaos | amigados)
2397db96d56Sopenharmony_ci				basic_machine=m68k-unknown
2407db96d56Sopenharmony_ci				basic_os=amigaos
2417db96d56Sopenharmony_ci				;;
2427db96d56Sopenharmony_ci			amigaunix | amix)
2437db96d56Sopenharmony_ci				basic_machine=m68k-unknown
2447db96d56Sopenharmony_ci				basic_os=sysv4
2457db96d56Sopenharmony_ci				;;
2467db96d56Sopenharmony_ci			apollo68)
2477db96d56Sopenharmony_ci				basic_machine=m68k-apollo
2487db96d56Sopenharmony_ci				basic_os=sysv
2497db96d56Sopenharmony_ci				;;
2507db96d56Sopenharmony_ci			apollo68bsd)
2517db96d56Sopenharmony_ci				basic_machine=m68k-apollo
2527db96d56Sopenharmony_ci				basic_os=bsd
2537db96d56Sopenharmony_ci				;;
2547db96d56Sopenharmony_ci			aros)
2557db96d56Sopenharmony_ci				basic_machine=i386-pc
2567db96d56Sopenharmony_ci				basic_os=aros
2577db96d56Sopenharmony_ci				;;
2587db96d56Sopenharmony_ci			aux)
2597db96d56Sopenharmony_ci				basic_machine=m68k-apple
2607db96d56Sopenharmony_ci				basic_os=aux
2617db96d56Sopenharmony_ci				;;
2627db96d56Sopenharmony_ci			balance)
2637db96d56Sopenharmony_ci				basic_machine=ns32k-sequent
2647db96d56Sopenharmony_ci				basic_os=dynix
2657db96d56Sopenharmony_ci				;;
2667db96d56Sopenharmony_ci			blackfin)
2677db96d56Sopenharmony_ci				basic_machine=bfin-unknown
2687db96d56Sopenharmony_ci				basic_os=linux
2697db96d56Sopenharmony_ci				;;
2707db96d56Sopenharmony_ci			cegcc)
2717db96d56Sopenharmony_ci				basic_machine=arm-unknown
2727db96d56Sopenharmony_ci				basic_os=cegcc
2737db96d56Sopenharmony_ci				;;
2747db96d56Sopenharmony_ci			convex-c1)
2757db96d56Sopenharmony_ci				basic_machine=c1-convex
2767db96d56Sopenharmony_ci				basic_os=bsd
2777db96d56Sopenharmony_ci				;;
2787db96d56Sopenharmony_ci			convex-c2)
2797db96d56Sopenharmony_ci				basic_machine=c2-convex
2807db96d56Sopenharmony_ci				basic_os=bsd
2817db96d56Sopenharmony_ci				;;
2827db96d56Sopenharmony_ci			convex-c32)
2837db96d56Sopenharmony_ci				basic_machine=c32-convex
2847db96d56Sopenharmony_ci				basic_os=bsd
2857db96d56Sopenharmony_ci				;;
2867db96d56Sopenharmony_ci			convex-c34)
2877db96d56Sopenharmony_ci				basic_machine=c34-convex
2887db96d56Sopenharmony_ci				basic_os=bsd
2897db96d56Sopenharmony_ci				;;
2907db96d56Sopenharmony_ci			convex-c38)
2917db96d56Sopenharmony_ci				basic_machine=c38-convex
2927db96d56Sopenharmony_ci				basic_os=bsd
2937db96d56Sopenharmony_ci				;;
2947db96d56Sopenharmony_ci			cray)
2957db96d56Sopenharmony_ci				basic_machine=j90-cray
2967db96d56Sopenharmony_ci				basic_os=unicos
2977db96d56Sopenharmony_ci				;;
2987db96d56Sopenharmony_ci			crds | unos)
2997db96d56Sopenharmony_ci				basic_machine=m68k-crds
3007db96d56Sopenharmony_ci				basic_os=
3017db96d56Sopenharmony_ci				;;
3027db96d56Sopenharmony_ci			da30)
3037db96d56Sopenharmony_ci				basic_machine=m68k-da30
3047db96d56Sopenharmony_ci				basic_os=
3057db96d56Sopenharmony_ci				;;
3067db96d56Sopenharmony_ci			decstation | pmax | pmin | dec3100 | decstatn)
3077db96d56Sopenharmony_ci				basic_machine=mips-dec
3087db96d56Sopenharmony_ci				basic_os=
3097db96d56Sopenharmony_ci				;;
3107db96d56Sopenharmony_ci			delta88)
3117db96d56Sopenharmony_ci				basic_machine=m88k-motorola
3127db96d56Sopenharmony_ci				basic_os=sysv3
3137db96d56Sopenharmony_ci				;;
3147db96d56Sopenharmony_ci			dicos)
3157db96d56Sopenharmony_ci				basic_machine=i686-pc
3167db96d56Sopenharmony_ci				basic_os=dicos
3177db96d56Sopenharmony_ci				;;
3187db96d56Sopenharmony_ci			djgpp)
3197db96d56Sopenharmony_ci				basic_machine=i586-pc
3207db96d56Sopenharmony_ci				basic_os=msdosdjgpp
3217db96d56Sopenharmony_ci				;;
3227db96d56Sopenharmony_ci			ebmon29k)
3237db96d56Sopenharmony_ci				basic_machine=a29k-amd
3247db96d56Sopenharmony_ci				basic_os=ebmon
3257db96d56Sopenharmony_ci				;;
3267db96d56Sopenharmony_ci			es1800 | OSE68k | ose68k | ose | OSE)
3277db96d56Sopenharmony_ci				basic_machine=m68k-ericsson
3287db96d56Sopenharmony_ci				basic_os=ose
3297db96d56Sopenharmony_ci				;;
3307db96d56Sopenharmony_ci			gmicro)
3317db96d56Sopenharmony_ci				basic_machine=tron-gmicro
3327db96d56Sopenharmony_ci				basic_os=sysv
3337db96d56Sopenharmony_ci				;;
3347db96d56Sopenharmony_ci			go32)
3357db96d56Sopenharmony_ci				basic_machine=i386-pc
3367db96d56Sopenharmony_ci				basic_os=go32
3377db96d56Sopenharmony_ci				;;
3387db96d56Sopenharmony_ci			h8300hms)
3397db96d56Sopenharmony_ci				basic_machine=h8300-hitachi
3407db96d56Sopenharmony_ci				basic_os=hms
3417db96d56Sopenharmony_ci				;;
3427db96d56Sopenharmony_ci			h8300xray)
3437db96d56Sopenharmony_ci				basic_machine=h8300-hitachi
3447db96d56Sopenharmony_ci				basic_os=xray
3457db96d56Sopenharmony_ci				;;
3467db96d56Sopenharmony_ci			h8500hms)
3477db96d56Sopenharmony_ci				basic_machine=h8500-hitachi
3487db96d56Sopenharmony_ci				basic_os=hms
3497db96d56Sopenharmony_ci				;;
3507db96d56Sopenharmony_ci			harris)
3517db96d56Sopenharmony_ci				basic_machine=m88k-harris
3527db96d56Sopenharmony_ci				basic_os=sysv3
3537db96d56Sopenharmony_ci				;;
3547db96d56Sopenharmony_ci			hp300 | hp300hpux)
3557db96d56Sopenharmony_ci				basic_machine=m68k-hp
3567db96d56Sopenharmony_ci				basic_os=hpux
3577db96d56Sopenharmony_ci				;;
3587db96d56Sopenharmony_ci			hp300bsd)
3597db96d56Sopenharmony_ci				basic_machine=m68k-hp
3607db96d56Sopenharmony_ci				basic_os=bsd
3617db96d56Sopenharmony_ci				;;
3627db96d56Sopenharmony_ci			hppaosf)
3637db96d56Sopenharmony_ci				basic_machine=hppa1.1-hp
3647db96d56Sopenharmony_ci				basic_os=osf
3657db96d56Sopenharmony_ci				;;
3667db96d56Sopenharmony_ci			hppro)
3677db96d56Sopenharmony_ci				basic_machine=hppa1.1-hp
3687db96d56Sopenharmony_ci				basic_os=proelf
3697db96d56Sopenharmony_ci				;;
3707db96d56Sopenharmony_ci			i386mach)
3717db96d56Sopenharmony_ci				basic_machine=i386-mach
3727db96d56Sopenharmony_ci				basic_os=mach
3737db96d56Sopenharmony_ci				;;
3747db96d56Sopenharmony_ci			isi68 | isi)
3757db96d56Sopenharmony_ci				basic_machine=m68k-isi
3767db96d56Sopenharmony_ci				basic_os=sysv
3777db96d56Sopenharmony_ci				;;
3787db96d56Sopenharmony_ci			m68knommu)
3797db96d56Sopenharmony_ci				basic_machine=m68k-unknown
3807db96d56Sopenharmony_ci				basic_os=linux
3817db96d56Sopenharmony_ci				;;
3827db96d56Sopenharmony_ci			magnum | m3230)
3837db96d56Sopenharmony_ci				basic_machine=mips-mips
3847db96d56Sopenharmony_ci				basic_os=sysv
3857db96d56Sopenharmony_ci				;;
3867db96d56Sopenharmony_ci			merlin)
3877db96d56Sopenharmony_ci				basic_machine=ns32k-utek
3887db96d56Sopenharmony_ci				basic_os=sysv
3897db96d56Sopenharmony_ci				;;
3907db96d56Sopenharmony_ci			mingw64)
3917db96d56Sopenharmony_ci				basic_machine=x86_64-pc
3927db96d56Sopenharmony_ci				basic_os=mingw64
3937db96d56Sopenharmony_ci				;;
3947db96d56Sopenharmony_ci			mingw32)
3957db96d56Sopenharmony_ci				basic_machine=i686-pc
3967db96d56Sopenharmony_ci				basic_os=mingw32
3977db96d56Sopenharmony_ci				;;
3987db96d56Sopenharmony_ci			mingw32ce)
3997db96d56Sopenharmony_ci				basic_machine=arm-unknown
4007db96d56Sopenharmony_ci				basic_os=mingw32ce
4017db96d56Sopenharmony_ci				;;
4027db96d56Sopenharmony_ci			monitor)
4037db96d56Sopenharmony_ci				basic_machine=m68k-rom68k
4047db96d56Sopenharmony_ci				basic_os=coff
4057db96d56Sopenharmony_ci				;;
4067db96d56Sopenharmony_ci			morphos)
4077db96d56Sopenharmony_ci				basic_machine=powerpc-unknown
4087db96d56Sopenharmony_ci				basic_os=morphos
4097db96d56Sopenharmony_ci				;;
4107db96d56Sopenharmony_ci			moxiebox)
4117db96d56Sopenharmony_ci				basic_machine=moxie-unknown
4127db96d56Sopenharmony_ci				basic_os=moxiebox
4137db96d56Sopenharmony_ci				;;
4147db96d56Sopenharmony_ci			msdos)
4157db96d56Sopenharmony_ci				basic_machine=i386-pc
4167db96d56Sopenharmony_ci				basic_os=msdos
4177db96d56Sopenharmony_ci				;;
4187db96d56Sopenharmony_ci			msys)
4197db96d56Sopenharmony_ci				basic_machine=i686-pc
4207db96d56Sopenharmony_ci				basic_os=msys
4217db96d56Sopenharmony_ci				;;
4227db96d56Sopenharmony_ci			mvs)
4237db96d56Sopenharmony_ci				basic_machine=i370-ibm
4247db96d56Sopenharmony_ci				basic_os=mvs
4257db96d56Sopenharmony_ci				;;
4267db96d56Sopenharmony_ci			nacl)
4277db96d56Sopenharmony_ci				basic_machine=le32-unknown
4287db96d56Sopenharmony_ci				basic_os=nacl
4297db96d56Sopenharmony_ci				;;
4307db96d56Sopenharmony_ci			ncr3000)
4317db96d56Sopenharmony_ci				basic_machine=i486-ncr
4327db96d56Sopenharmony_ci				basic_os=sysv4
4337db96d56Sopenharmony_ci				;;
4347db96d56Sopenharmony_ci			netbsd386)
4357db96d56Sopenharmony_ci				basic_machine=i386-pc
4367db96d56Sopenharmony_ci				basic_os=netbsd
4377db96d56Sopenharmony_ci				;;
4387db96d56Sopenharmony_ci			netwinder)
4397db96d56Sopenharmony_ci				basic_machine=armv4l-rebel
4407db96d56Sopenharmony_ci				basic_os=linux
4417db96d56Sopenharmony_ci				;;
4427db96d56Sopenharmony_ci			news | news700 | news800 | news900)
4437db96d56Sopenharmony_ci				basic_machine=m68k-sony
4447db96d56Sopenharmony_ci				basic_os=newsos
4457db96d56Sopenharmony_ci				;;
4467db96d56Sopenharmony_ci			news1000)
4477db96d56Sopenharmony_ci				basic_machine=m68030-sony
4487db96d56Sopenharmony_ci				basic_os=newsos
4497db96d56Sopenharmony_ci				;;
4507db96d56Sopenharmony_ci			necv70)
4517db96d56Sopenharmony_ci				basic_machine=v70-nec
4527db96d56Sopenharmony_ci				basic_os=sysv
4537db96d56Sopenharmony_ci				;;
4547db96d56Sopenharmony_ci			nh3000)
4557db96d56Sopenharmony_ci				basic_machine=m68k-harris
4567db96d56Sopenharmony_ci				basic_os=cxux
4577db96d56Sopenharmony_ci				;;
4587db96d56Sopenharmony_ci			nh[45]000)
4597db96d56Sopenharmony_ci				basic_machine=m88k-harris
4607db96d56Sopenharmony_ci				basic_os=cxux
4617db96d56Sopenharmony_ci				;;
4627db96d56Sopenharmony_ci			nindy960)
4637db96d56Sopenharmony_ci				basic_machine=i960-intel
4647db96d56Sopenharmony_ci				basic_os=nindy
4657db96d56Sopenharmony_ci				;;
4667db96d56Sopenharmony_ci			mon960)
4677db96d56Sopenharmony_ci				basic_machine=i960-intel
4687db96d56Sopenharmony_ci				basic_os=mon960
4697db96d56Sopenharmony_ci				;;
4707db96d56Sopenharmony_ci			nonstopux)
4717db96d56Sopenharmony_ci				basic_machine=mips-compaq
4727db96d56Sopenharmony_ci				basic_os=nonstopux
4737db96d56Sopenharmony_ci				;;
4747db96d56Sopenharmony_ci			os400)
4757db96d56Sopenharmony_ci				basic_machine=powerpc-ibm
4767db96d56Sopenharmony_ci				basic_os=os400
4777db96d56Sopenharmony_ci				;;
4787db96d56Sopenharmony_ci			OSE68000 | ose68000)
4797db96d56Sopenharmony_ci				basic_machine=m68000-ericsson
4807db96d56Sopenharmony_ci				basic_os=ose
4817db96d56Sopenharmony_ci				;;
4827db96d56Sopenharmony_ci			os68k)
4837db96d56Sopenharmony_ci				basic_machine=m68k-none
4847db96d56Sopenharmony_ci				basic_os=os68k
4857db96d56Sopenharmony_ci				;;
4867db96d56Sopenharmony_ci			paragon)
4877db96d56Sopenharmony_ci				basic_machine=i860-intel
4887db96d56Sopenharmony_ci				basic_os=osf
4897db96d56Sopenharmony_ci				;;
4907db96d56Sopenharmony_ci			parisc)
4917db96d56Sopenharmony_ci				basic_machine=hppa-unknown
4927db96d56Sopenharmony_ci				basic_os=linux
4937db96d56Sopenharmony_ci				;;
4947db96d56Sopenharmony_ci			psp)
4957db96d56Sopenharmony_ci				basic_machine=mipsallegrexel-sony
4967db96d56Sopenharmony_ci				basic_os=psp
4977db96d56Sopenharmony_ci				;;
4987db96d56Sopenharmony_ci			pw32)
4997db96d56Sopenharmony_ci				basic_machine=i586-unknown
5007db96d56Sopenharmony_ci				basic_os=pw32
5017db96d56Sopenharmony_ci				;;
5027db96d56Sopenharmony_ci			rdos | rdos64)
5037db96d56Sopenharmony_ci				basic_machine=x86_64-pc
5047db96d56Sopenharmony_ci				basic_os=rdos
5057db96d56Sopenharmony_ci				;;
5067db96d56Sopenharmony_ci			rdos32)
5077db96d56Sopenharmony_ci				basic_machine=i386-pc
5087db96d56Sopenharmony_ci				basic_os=rdos
5097db96d56Sopenharmony_ci				;;
5107db96d56Sopenharmony_ci			rom68k)
5117db96d56Sopenharmony_ci				basic_machine=m68k-rom68k
5127db96d56Sopenharmony_ci				basic_os=coff
5137db96d56Sopenharmony_ci				;;
5147db96d56Sopenharmony_ci			sa29200)
5157db96d56Sopenharmony_ci				basic_machine=a29k-amd
5167db96d56Sopenharmony_ci				basic_os=udi
5177db96d56Sopenharmony_ci				;;
5187db96d56Sopenharmony_ci			sei)
5197db96d56Sopenharmony_ci				basic_machine=mips-sei
5207db96d56Sopenharmony_ci				basic_os=seiux
5217db96d56Sopenharmony_ci				;;
5227db96d56Sopenharmony_ci			sequent)
5237db96d56Sopenharmony_ci				basic_machine=i386-sequent
5247db96d56Sopenharmony_ci				basic_os=
5257db96d56Sopenharmony_ci				;;
5267db96d56Sopenharmony_ci			sps7)
5277db96d56Sopenharmony_ci				basic_machine=m68k-bull
5287db96d56Sopenharmony_ci				basic_os=sysv2
5297db96d56Sopenharmony_ci				;;
5307db96d56Sopenharmony_ci			st2000)
5317db96d56Sopenharmony_ci				basic_machine=m68k-tandem
5327db96d56Sopenharmony_ci				basic_os=
5337db96d56Sopenharmony_ci				;;
5347db96d56Sopenharmony_ci			stratus)
5357db96d56Sopenharmony_ci				basic_machine=i860-stratus
5367db96d56Sopenharmony_ci				basic_os=sysv4
5377db96d56Sopenharmony_ci				;;
5387db96d56Sopenharmony_ci			sun2)
5397db96d56Sopenharmony_ci				basic_machine=m68000-sun
5407db96d56Sopenharmony_ci				basic_os=
5417db96d56Sopenharmony_ci				;;
5427db96d56Sopenharmony_ci			sun2os3)
5437db96d56Sopenharmony_ci				basic_machine=m68000-sun
5447db96d56Sopenharmony_ci				basic_os=sunos3
5457db96d56Sopenharmony_ci				;;
5467db96d56Sopenharmony_ci			sun2os4)
5477db96d56Sopenharmony_ci				basic_machine=m68000-sun
5487db96d56Sopenharmony_ci				basic_os=sunos4
5497db96d56Sopenharmony_ci				;;
5507db96d56Sopenharmony_ci			sun3)
5517db96d56Sopenharmony_ci				basic_machine=m68k-sun
5527db96d56Sopenharmony_ci				basic_os=
5537db96d56Sopenharmony_ci				;;
5547db96d56Sopenharmony_ci			sun3os3)
5557db96d56Sopenharmony_ci				basic_machine=m68k-sun
5567db96d56Sopenharmony_ci				basic_os=sunos3
5577db96d56Sopenharmony_ci				;;
5587db96d56Sopenharmony_ci			sun3os4)
5597db96d56Sopenharmony_ci				basic_machine=m68k-sun
5607db96d56Sopenharmony_ci				basic_os=sunos4
5617db96d56Sopenharmony_ci				;;
5627db96d56Sopenharmony_ci			sun4)
5637db96d56Sopenharmony_ci				basic_machine=sparc-sun
5647db96d56Sopenharmony_ci				basic_os=
5657db96d56Sopenharmony_ci				;;
5667db96d56Sopenharmony_ci			sun4os3)
5677db96d56Sopenharmony_ci				basic_machine=sparc-sun
5687db96d56Sopenharmony_ci				basic_os=sunos3
5697db96d56Sopenharmony_ci				;;
5707db96d56Sopenharmony_ci			sun4os4)
5717db96d56Sopenharmony_ci				basic_machine=sparc-sun
5727db96d56Sopenharmony_ci				basic_os=sunos4
5737db96d56Sopenharmony_ci				;;
5747db96d56Sopenharmony_ci			sun4sol2)
5757db96d56Sopenharmony_ci				basic_machine=sparc-sun
5767db96d56Sopenharmony_ci				basic_os=solaris2
5777db96d56Sopenharmony_ci				;;
5787db96d56Sopenharmony_ci			sun386 | sun386i | roadrunner)
5797db96d56Sopenharmony_ci				basic_machine=i386-sun
5807db96d56Sopenharmony_ci				basic_os=
5817db96d56Sopenharmony_ci				;;
5827db96d56Sopenharmony_ci			sv1)
5837db96d56Sopenharmony_ci				basic_machine=sv1-cray
5847db96d56Sopenharmony_ci				basic_os=unicos
5857db96d56Sopenharmony_ci				;;
5867db96d56Sopenharmony_ci			symmetry)
5877db96d56Sopenharmony_ci				basic_machine=i386-sequent
5887db96d56Sopenharmony_ci				basic_os=dynix
5897db96d56Sopenharmony_ci				;;
5907db96d56Sopenharmony_ci			t3e)
5917db96d56Sopenharmony_ci				basic_machine=alphaev5-cray
5927db96d56Sopenharmony_ci				basic_os=unicos
5937db96d56Sopenharmony_ci				;;
5947db96d56Sopenharmony_ci			t90)
5957db96d56Sopenharmony_ci				basic_machine=t90-cray
5967db96d56Sopenharmony_ci				basic_os=unicos
5977db96d56Sopenharmony_ci				;;
5987db96d56Sopenharmony_ci			toad1)
5997db96d56Sopenharmony_ci				basic_machine=pdp10-xkl
6007db96d56Sopenharmony_ci				basic_os=tops20
6017db96d56Sopenharmony_ci				;;
6027db96d56Sopenharmony_ci			tpf)
6037db96d56Sopenharmony_ci				basic_machine=s390x-ibm
6047db96d56Sopenharmony_ci				basic_os=tpf
6057db96d56Sopenharmony_ci				;;
6067db96d56Sopenharmony_ci			udi29k)
6077db96d56Sopenharmony_ci				basic_machine=a29k-amd
6087db96d56Sopenharmony_ci				basic_os=udi
6097db96d56Sopenharmony_ci				;;
6107db96d56Sopenharmony_ci			ultra3)
6117db96d56Sopenharmony_ci				basic_machine=a29k-nyu
6127db96d56Sopenharmony_ci				basic_os=sym1
6137db96d56Sopenharmony_ci				;;
6147db96d56Sopenharmony_ci			v810 | necv810)
6157db96d56Sopenharmony_ci				basic_machine=v810-nec
6167db96d56Sopenharmony_ci				basic_os=none
6177db96d56Sopenharmony_ci				;;
6187db96d56Sopenharmony_ci			vaxv)
6197db96d56Sopenharmony_ci				basic_machine=vax-dec
6207db96d56Sopenharmony_ci				basic_os=sysv
6217db96d56Sopenharmony_ci				;;
6227db96d56Sopenharmony_ci			vms)
6237db96d56Sopenharmony_ci				basic_machine=vax-dec
6247db96d56Sopenharmony_ci				basic_os=vms
6257db96d56Sopenharmony_ci				;;
6267db96d56Sopenharmony_ci			vsta)
6277db96d56Sopenharmony_ci				basic_machine=i386-pc
6287db96d56Sopenharmony_ci				basic_os=vsta
6297db96d56Sopenharmony_ci				;;
6307db96d56Sopenharmony_ci			vxworks960)
6317db96d56Sopenharmony_ci				basic_machine=i960-wrs
6327db96d56Sopenharmony_ci				basic_os=vxworks
6337db96d56Sopenharmony_ci				;;
6347db96d56Sopenharmony_ci			vxworks68)
6357db96d56Sopenharmony_ci				basic_machine=m68k-wrs
6367db96d56Sopenharmony_ci				basic_os=vxworks
6377db96d56Sopenharmony_ci				;;
6387db96d56Sopenharmony_ci			vxworks29k)
6397db96d56Sopenharmony_ci				basic_machine=a29k-wrs
6407db96d56Sopenharmony_ci				basic_os=vxworks
6417db96d56Sopenharmony_ci				;;
6427db96d56Sopenharmony_ci			xbox)
6437db96d56Sopenharmony_ci				basic_machine=i686-pc
6447db96d56Sopenharmony_ci				basic_os=mingw32
6457db96d56Sopenharmony_ci				;;
6467db96d56Sopenharmony_ci			ymp)
6477db96d56Sopenharmony_ci				basic_machine=ymp-cray
6487db96d56Sopenharmony_ci				basic_os=unicos
6497db96d56Sopenharmony_ci				;;
6507db96d56Sopenharmony_ci			*)
6517db96d56Sopenharmony_ci				basic_machine=$1
6527db96d56Sopenharmony_ci				basic_os=
6537db96d56Sopenharmony_ci				;;
6547db96d56Sopenharmony_ci		esac
6557db96d56Sopenharmony_ci		;;
6567db96d56Sopenharmony_ciesac
6577db96d56Sopenharmony_ci
6587db96d56Sopenharmony_ci# Decode 1-component or ad-hoc basic machines
6597db96d56Sopenharmony_cicase $basic_machine in
6607db96d56Sopenharmony_ci	# Here we handle the default manufacturer of certain CPU types.  It is in
6617db96d56Sopenharmony_ci	# some cases the only manufacturer, in others, it is the most popular.
6627db96d56Sopenharmony_ci	w89k)
6637db96d56Sopenharmony_ci		cpu=hppa1.1
6647db96d56Sopenharmony_ci		vendor=winbond
6657db96d56Sopenharmony_ci		;;
6667db96d56Sopenharmony_ci	op50n)
6677db96d56Sopenharmony_ci		cpu=hppa1.1
6687db96d56Sopenharmony_ci		vendor=oki
6697db96d56Sopenharmony_ci		;;
6707db96d56Sopenharmony_ci	op60c)
6717db96d56Sopenharmony_ci		cpu=hppa1.1
6727db96d56Sopenharmony_ci		vendor=oki
6737db96d56Sopenharmony_ci		;;
6747db96d56Sopenharmony_ci	ibm*)
6757db96d56Sopenharmony_ci		cpu=i370
6767db96d56Sopenharmony_ci		vendor=ibm
6777db96d56Sopenharmony_ci		;;
6787db96d56Sopenharmony_ci	orion105)
6797db96d56Sopenharmony_ci		cpu=clipper
6807db96d56Sopenharmony_ci		vendor=highlevel
6817db96d56Sopenharmony_ci		;;
6827db96d56Sopenharmony_ci	mac | mpw | mac-mpw)
6837db96d56Sopenharmony_ci		cpu=m68k
6847db96d56Sopenharmony_ci		vendor=apple
6857db96d56Sopenharmony_ci		;;
6867db96d56Sopenharmony_ci	pmac | pmac-mpw)
6877db96d56Sopenharmony_ci		cpu=powerpc
6887db96d56Sopenharmony_ci		vendor=apple
6897db96d56Sopenharmony_ci		;;
6907db96d56Sopenharmony_ci
6917db96d56Sopenharmony_ci	# Recognize the various machine names and aliases which stand
6927db96d56Sopenharmony_ci	# for a CPU type and a company and sometimes even an OS.
6937db96d56Sopenharmony_ci	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
6947db96d56Sopenharmony_ci		cpu=m68000
6957db96d56Sopenharmony_ci		vendor=att
6967db96d56Sopenharmony_ci		;;
6977db96d56Sopenharmony_ci	3b*)
6987db96d56Sopenharmony_ci		cpu=we32k
6997db96d56Sopenharmony_ci		vendor=att
7007db96d56Sopenharmony_ci		;;
7017db96d56Sopenharmony_ci	bluegene*)
7027db96d56Sopenharmony_ci		cpu=powerpc
7037db96d56Sopenharmony_ci		vendor=ibm
7047db96d56Sopenharmony_ci		basic_os=cnk
7057db96d56Sopenharmony_ci		;;
7067db96d56Sopenharmony_ci	decsystem10* | dec10*)
7077db96d56Sopenharmony_ci		cpu=pdp10
7087db96d56Sopenharmony_ci		vendor=dec
7097db96d56Sopenharmony_ci		basic_os=tops10
7107db96d56Sopenharmony_ci		;;
7117db96d56Sopenharmony_ci	decsystem20* | dec20*)
7127db96d56Sopenharmony_ci		cpu=pdp10
7137db96d56Sopenharmony_ci		vendor=dec
7147db96d56Sopenharmony_ci		basic_os=tops20
7157db96d56Sopenharmony_ci		;;
7167db96d56Sopenharmony_ci	delta | 3300 | motorola-3300 | motorola-delta \
7177db96d56Sopenharmony_ci	      | 3300-motorola | delta-motorola)
7187db96d56Sopenharmony_ci		cpu=m68k
7197db96d56Sopenharmony_ci		vendor=motorola
7207db96d56Sopenharmony_ci		;;
7217db96d56Sopenharmony_ci	dpx2*)
7227db96d56Sopenharmony_ci		cpu=m68k
7237db96d56Sopenharmony_ci		vendor=bull
7247db96d56Sopenharmony_ci		basic_os=sysv3
7257db96d56Sopenharmony_ci		;;
7267db96d56Sopenharmony_ci	encore | umax | mmax)
7277db96d56Sopenharmony_ci		cpu=ns32k
7287db96d56Sopenharmony_ci		vendor=encore
7297db96d56Sopenharmony_ci		;;
7307db96d56Sopenharmony_ci	elxsi)
7317db96d56Sopenharmony_ci		cpu=elxsi
7327db96d56Sopenharmony_ci		vendor=elxsi
7337db96d56Sopenharmony_ci		basic_os=${basic_os:-bsd}
7347db96d56Sopenharmony_ci		;;
7357db96d56Sopenharmony_ci	fx2800)
7367db96d56Sopenharmony_ci		cpu=i860
7377db96d56Sopenharmony_ci		vendor=alliant
7387db96d56Sopenharmony_ci		;;
7397db96d56Sopenharmony_ci	genix)
7407db96d56Sopenharmony_ci		cpu=ns32k
7417db96d56Sopenharmony_ci		vendor=ns
7427db96d56Sopenharmony_ci		;;
7437db96d56Sopenharmony_ci	h3050r* | hiux*)
7447db96d56Sopenharmony_ci		cpu=hppa1.1
7457db96d56Sopenharmony_ci		vendor=hitachi
7467db96d56Sopenharmony_ci		basic_os=hiuxwe2
7477db96d56Sopenharmony_ci		;;
7487db96d56Sopenharmony_ci	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7497db96d56Sopenharmony_ci		cpu=hppa1.0
7507db96d56Sopenharmony_ci		vendor=hp
7517db96d56Sopenharmony_ci		;;
7527db96d56Sopenharmony_ci	hp9k2[0-9][0-9] | hp9k31[0-9])
7537db96d56Sopenharmony_ci		cpu=m68000
7547db96d56Sopenharmony_ci		vendor=hp
7557db96d56Sopenharmony_ci		;;
7567db96d56Sopenharmony_ci	hp9k3[2-9][0-9])
7577db96d56Sopenharmony_ci		cpu=m68k
7587db96d56Sopenharmony_ci		vendor=hp
7597db96d56Sopenharmony_ci		;;
7607db96d56Sopenharmony_ci	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7617db96d56Sopenharmony_ci		cpu=hppa1.0
7627db96d56Sopenharmony_ci		vendor=hp
7637db96d56Sopenharmony_ci		;;
7647db96d56Sopenharmony_ci	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7657db96d56Sopenharmony_ci		cpu=hppa1.1
7667db96d56Sopenharmony_ci		vendor=hp
7677db96d56Sopenharmony_ci		;;
7687db96d56Sopenharmony_ci	hp9k78[0-9] | hp78[0-9])
7697db96d56Sopenharmony_ci		# FIXME: really hppa2.0-hp
7707db96d56Sopenharmony_ci		cpu=hppa1.1
7717db96d56Sopenharmony_ci		vendor=hp
7727db96d56Sopenharmony_ci		;;
7737db96d56Sopenharmony_ci	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7747db96d56Sopenharmony_ci		# FIXME: really hppa2.0-hp
7757db96d56Sopenharmony_ci		cpu=hppa1.1
7767db96d56Sopenharmony_ci		vendor=hp
7777db96d56Sopenharmony_ci		;;
7787db96d56Sopenharmony_ci	hp9k8[0-9][13679] | hp8[0-9][13679])
7797db96d56Sopenharmony_ci		cpu=hppa1.1
7807db96d56Sopenharmony_ci		vendor=hp
7817db96d56Sopenharmony_ci		;;
7827db96d56Sopenharmony_ci	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7837db96d56Sopenharmony_ci		cpu=hppa1.0
7847db96d56Sopenharmony_ci		vendor=hp
7857db96d56Sopenharmony_ci		;;
7867db96d56Sopenharmony_ci	i*86v32)
7877db96d56Sopenharmony_ci		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7887db96d56Sopenharmony_ci		vendor=pc
7897db96d56Sopenharmony_ci		basic_os=sysv32
7907db96d56Sopenharmony_ci		;;
7917db96d56Sopenharmony_ci	i*86v4*)
7927db96d56Sopenharmony_ci		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7937db96d56Sopenharmony_ci		vendor=pc
7947db96d56Sopenharmony_ci		basic_os=sysv4
7957db96d56Sopenharmony_ci		;;
7967db96d56Sopenharmony_ci	i*86v)
7977db96d56Sopenharmony_ci		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7987db96d56Sopenharmony_ci		vendor=pc
7997db96d56Sopenharmony_ci		basic_os=sysv
8007db96d56Sopenharmony_ci		;;
8017db96d56Sopenharmony_ci	i*86sol2)
8027db96d56Sopenharmony_ci		cpu=`echo "$1" | sed -e 's/86.*/86/'`
8037db96d56Sopenharmony_ci		vendor=pc
8047db96d56Sopenharmony_ci		basic_os=solaris2
8057db96d56Sopenharmony_ci		;;
8067db96d56Sopenharmony_ci	j90 | j90-cray)
8077db96d56Sopenharmony_ci		cpu=j90
8087db96d56Sopenharmony_ci		vendor=cray
8097db96d56Sopenharmony_ci		basic_os=${basic_os:-unicos}
8107db96d56Sopenharmony_ci		;;
8117db96d56Sopenharmony_ci	iris | iris4d)
8127db96d56Sopenharmony_ci		cpu=mips
8137db96d56Sopenharmony_ci		vendor=sgi
8147db96d56Sopenharmony_ci		case $basic_os in
8157db96d56Sopenharmony_ci		    irix*)
8167db96d56Sopenharmony_ci			;;
8177db96d56Sopenharmony_ci		    *)
8187db96d56Sopenharmony_ci			basic_os=irix4
8197db96d56Sopenharmony_ci			;;
8207db96d56Sopenharmony_ci		esac
8217db96d56Sopenharmony_ci		;;
8227db96d56Sopenharmony_ci	miniframe)
8237db96d56Sopenharmony_ci		cpu=m68000
8247db96d56Sopenharmony_ci		vendor=convergent
8257db96d56Sopenharmony_ci		;;
8267db96d56Sopenharmony_ci	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
8277db96d56Sopenharmony_ci		cpu=m68k
8287db96d56Sopenharmony_ci		vendor=atari
8297db96d56Sopenharmony_ci		basic_os=mint
8307db96d56Sopenharmony_ci		;;
8317db96d56Sopenharmony_ci	news-3600 | risc-news)
8327db96d56Sopenharmony_ci		cpu=mips
8337db96d56Sopenharmony_ci		vendor=sony
8347db96d56Sopenharmony_ci		basic_os=newsos
8357db96d56Sopenharmony_ci		;;
8367db96d56Sopenharmony_ci	next | m*-next)
8377db96d56Sopenharmony_ci		cpu=m68k
8387db96d56Sopenharmony_ci		vendor=next
8397db96d56Sopenharmony_ci		case $basic_os in
8407db96d56Sopenharmony_ci		    openstep*)
8417db96d56Sopenharmony_ci		        ;;
8427db96d56Sopenharmony_ci		    nextstep*)
8437db96d56Sopenharmony_ci			;;
8447db96d56Sopenharmony_ci		    ns2*)
8457db96d56Sopenharmony_ci		      basic_os=nextstep2
8467db96d56Sopenharmony_ci			;;
8477db96d56Sopenharmony_ci		    *)
8487db96d56Sopenharmony_ci		      basic_os=nextstep3
8497db96d56Sopenharmony_ci			;;
8507db96d56Sopenharmony_ci		esac
8517db96d56Sopenharmony_ci		;;
8527db96d56Sopenharmony_ci	np1)
8537db96d56Sopenharmony_ci		cpu=np1
8547db96d56Sopenharmony_ci		vendor=gould
8557db96d56Sopenharmony_ci		;;
8567db96d56Sopenharmony_ci	op50n-* | op60c-*)
8577db96d56Sopenharmony_ci		cpu=hppa1.1
8587db96d56Sopenharmony_ci		vendor=oki
8597db96d56Sopenharmony_ci		basic_os=proelf
8607db96d56Sopenharmony_ci		;;
8617db96d56Sopenharmony_ci	pa-hitachi)
8627db96d56Sopenharmony_ci		cpu=hppa1.1
8637db96d56Sopenharmony_ci		vendor=hitachi
8647db96d56Sopenharmony_ci		basic_os=hiuxwe2
8657db96d56Sopenharmony_ci		;;
8667db96d56Sopenharmony_ci	pbd)
8677db96d56Sopenharmony_ci		cpu=sparc
8687db96d56Sopenharmony_ci		vendor=tti
8697db96d56Sopenharmony_ci		;;
8707db96d56Sopenharmony_ci	pbb)
8717db96d56Sopenharmony_ci		cpu=m68k
8727db96d56Sopenharmony_ci		vendor=tti
8737db96d56Sopenharmony_ci		;;
8747db96d56Sopenharmony_ci	pc532)
8757db96d56Sopenharmony_ci		cpu=ns32k
8767db96d56Sopenharmony_ci		vendor=pc532
8777db96d56Sopenharmony_ci		;;
8787db96d56Sopenharmony_ci	pn)
8797db96d56Sopenharmony_ci		cpu=pn
8807db96d56Sopenharmony_ci		vendor=gould
8817db96d56Sopenharmony_ci		;;
8827db96d56Sopenharmony_ci	power)
8837db96d56Sopenharmony_ci		cpu=power
8847db96d56Sopenharmony_ci		vendor=ibm
8857db96d56Sopenharmony_ci		;;
8867db96d56Sopenharmony_ci	ps2)
8877db96d56Sopenharmony_ci		cpu=i386
8887db96d56Sopenharmony_ci		vendor=ibm
8897db96d56Sopenharmony_ci		;;
8907db96d56Sopenharmony_ci	rm[46]00)
8917db96d56Sopenharmony_ci		cpu=mips
8927db96d56Sopenharmony_ci		vendor=siemens
8937db96d56Sopenharmony_ci		;;
8947db96d56Sopenharmony_ci	rtpc | rtpc-*)
8957db96d56Sopenharmony_ci		cpu=romp
8967db96d56Sopenharmony_ci		vendor=ibm
8977db96d56Sopenharmony_ci		;;
8987db96d56Sopenharmony_ci	sde)
8997db96d56Sopenharmony_ci		cpu=mipsisa32
9007db96d56Sopenharmony_ci		vendor=sde
9017db96d56Sopenharmony_ci		basic_os=${basic_os:-elf}
9027db96d56Sopenharmony_ci		;;
9037db96d56Sopenharmony_ci	simso-wrs)
9047db96d56Sopenharmony_ci		cpu=sparclite
9057db96d56Sopenharmony_ci		vendor=wrs
9067db96d56Sopenharmony_ci		basic_os=vxworks
9077db96d56Sopenharmony_ci		;;
9087db96d56Sopenharmony_ci	tower | tower-32)
9097db96d56Sopenharmony_ci		cpu=m68k
9107db96d56Sopenharmony_ci		vendor=ncr
9117db96d56Sopenharmony_ci		;;
9127db96d56Sopenharmony_ci	vpp*|vx|vx-*)
9137db96d56Sopenharmony_ci		cpu=f301
9147db96d56Sopenharmony_ci		vendor=fujitsu
9157db96d56Sopenharmony_ci		;;
9167db96d56Sopenharmony_ci	w65)
9177db96d56Sopenharmony_ci		cpu=w65
9187db96d56Sopenharmony_ci		vendor=wdc
9197db96d56Sopenharmony_ci		;;
9207db96d56Sopenharmony_ci	w89k-*)
9217db96d56Sopenharmony_ci		cpu=hppa1.1
9227db96d56Sopenharmony_ci		vendor=winbond
9237db96d56Sopenharmony_ci		basic_os=proelf
9247db96d56Sopenharmony_ci		;;
9257db96d56Sopenharmony_ci	none)
9267db96d56Sopenharmony_ci		cpu=none
9277db96d56Sopenharmony_ci		vendor=none
9287db96d56Sopenharmony_ci		;;
9297db96d56Sopenharmony_ci	leon|leon[3-9])
9307db96d56Sopenharmony_ci		cpu=sparc
9317db96d56Sopenharmony_ci		vendor=$basic_machine
9327db96d56Sopenharmony_ci		;;
9337db96d56Sopenharmony_ci	leon-*|leon[3-9]-*)
9347db96d56Sopenharmony_ci		cpu=sparc
9357db96d56Sopenharmony_ci		vendor=`echo "$basic_machine" | sed 's/-.*//'`
9367db96d56Sopenharmony_ci		;;
9377db96d56Sopenharmony_ci
9387db96d56Sopenharmony_ci	*-*)
9397db96d56Sopenharmony_ci		# shellcheck disable=SC2162
9407db96d56Sopenharmony_ci		saved_IFS=$IFS
9417db96d56Sopenharmony_ci		IFS="-" read cpu vendor <<EOF
9427db96d56Sopenharmony_ci$basic_machine
9437db96d56Sopenharmony_ciEOF
9447db96d56Sopenharmony_ci		IFS=$saved_IFS
9457db96d56Sopenharmony_ci		;;
9467db96d56Sopenharmony_ci	# We use `pc' rather than `unknown'
9477db96d56Sopenharmony_ci	# because (1) that's what they normally are, and
9487db96d56Sopenharmony_ci	# (2) the word "unknown" tends to confuse beginning users.
9497db96d56Sopenharmony_ci	i*86 | x86_64)
9507db96d56Sopenharmony_ci		cpu=$basic_machine
9517db96d56Sopenharmony_ci		vendor=pc
9527db96d56Sopenharmony_ci		;;
9537db96d56Sopenharmony_ci	# These rules are duplicated from below for sake of the special case above;
9547db96d56Sopenharmony_ci	# i.e. things that normalized to x86 arches should also default to "pc"
9557db96d56Sopenharmony_ci	pc98)
9567db96d56Sopenharmony_ci		cpu=i386
9577db96d56Sopenharmony_ci		vendor=pc
9587db96d56Sopenharmony_ci		;;
9597db96d56Sopenharmony_ci	x64 | amd64)
9607db96d56Sopenharmony_ci		cpu=x86_64
9617db96d56Sopenharmony_ci		vendor=pc
9627db96d56Sopenharmony_ci		;;
9637db96d56Sopenharmony_ci	# Recognize the basic CPU types without company name.
9647db96d56Sopenharmony_ci	*)
9657db96d56Sopenharmony_ci		cpu=$basic_machine
9667db96d56Sopenharmony_ci		vendor=unknown
9677db96d56Sopenharmony_ci		;;
9687db96d56Sopenharmony_ciesac
9697db96d56Sopenharmony_ci
9707db96d56Sopenharmony_ciunset -v basic_machine
9717db96d56Sopenharmony_ci
9727db96d56Sopenharmony_ci# Decode basic machines in the full and proper CPU-Company form.
9737db96d56Sopenharmony_cicase $cpu-$vendor in
9747db96d56Sopenharmony_ci	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
9757db96d56Sopenharmony_ci	# some cases the only manufacturer, in others, it is the most popular.
9767db96d56Sopenharmony_ci	craynv-unknown)
9777db96d56Sopenharmony_ci		vendor=cray
9787db96d56Sopenharmony_ci		basic_os=${basic_os:-unicosmp}
9797db96d56Sopenharmony_ci		;;
9807db96d56Sopenharmony_ci	c90-unknown | c90-cray)
9817db96d56Sopenharmony_ci		vendor=cray
9827db96d56Sopenharmony_ci		basic_os=${Basic_os:-unicos}
9837db96d56Sopenharmony_ci		;;
9847db96d56Sopenharmony_ci	fx80-unknown)
9857db96d56Sopenharmony_ci		vendor=alliant
9867db96d56Sopenharmony_ci		;;
9877db96d56Sopenharmony_ci	romp-unknown)
9887db96d56Sopenharmony_ci		vendor=ibm
9897db96d56Sopenharmony_ci		;;
9907db96d56Sopenharmony_ci	mmix-unknown)
9917db96d56Sopenharmony_ci		vendor=knuth
9927db96d56Sopenharmony_ci		;;
9937db96d56Sopenharmony_ci	microblaze-unknown | microblazeel-unknown)
9947db96d56Sopenharmony_ci		vendor=xilinx
9957db96d56Sopenharmony_ci		;;
9967db96d56Sopenharmony_ci	rs6000-unknown)
9977db96d56Sopenharmony_ci		vendor=ibm
9987db96d56Sopenharmony_ci		;;
9997db96d56Sopenharmony_ci	vax-unknown)
10007db96d56Sopenharmony_ci		vendor=dec
10017db96d56Sopenharmony_ci		;;
10027db96d56Sopenharmony_ci	pdp11-unknown)
10037db96d56Sopenharmony_ci		vendor=dec
10047db96d56Sopenharmony_ci		;;
10057db96d56Sopenharmony_ci	we32k-unknown)
10067db96d56Sopenharmony_ci		vendor=att
10077db96d56Sopenharmony_ci		;;
10087db96d56Sopenharmony_ci	cydra-unknown)
10097db96d56Sopenharmony_ci		vendor=cydrome
10107db96d56Sopenharmony_ci		;;
10117db96d56Sopenharmony_ci	i370-ibm*)
10127db96d56Sopenharmony_ci		vendor=ibm
10137db96d56Sopenharmony_ci		;;
10147db96d56Sopenharmony_ci	orion-unknown)
10157db96d56Sopenharmony_ci		vendor=highlevel
10167db96d56Sopenharmony_ci		;;
10177db96d56Sopenharmony_ci	xps-unknown | xps100-unknown)
10187db96d56Sopenharmony_ci		cpu=xps100
10197db96d56Sopenharmony_ci		vendor=honeywell
10207db96d56Sopenharmony_ci		;;
10217db96d56Sopenharmony_ci
10227db96d56Sopenharmony_ci	# Here we normalize CPU types with a missing or matching vendor
10237db96d56Sopenharmony_ci	dpx20-unknown | dpx20-bull)
10247db96d56Sopenharmony_ci		cpu=rs6000
10257db96d56Sopenharmony_ci		vendor=bull
10267db96d56Sopenharmony_ci		basic_os=${basic_os:-bosx}
10277db96d56Sopenharmony_ci		;;
10287db96d56Sopenharmony_ci
10297db96d56Sopenharmony_ci	# Here we normalize CPU types irrespective of the vendor
10307db96d56Sopenharmony_ci	amd64-*)
10317db96d56Sopenharmony_ci		cpu=x86_64
10327db96d56Sopenharmony_ci		;;
10337db96d56Sopenharmony_ci	blackfin-*)
10347db96d56Sopenharmony_ci		cpu=bfin
10357db96d56Sopenharmony_ci		basic_os=linux
10367db96d56Sopenharmony_ci		;;
10377db96d56Sopenharmony_ci	c54x-*)
10387db96d56Sopenharmony_ci		cpu=tic54x
10397db96d56Sopenharmony_ci		;;
10407db96d56Sopenharmony_ci	c55x-*)
10417db96d56Sopenharmony_ci		cpu=tic55x
10427db96d56Sopenharmony_ci		;;
10437db96d56Sopenharmony_ci	c6x-*)
10447db96d56Sopenharmony_ci		cpu=tic6x
10457db96d56Sopenharmony_ci		;;
10467db96d56Sopenharmony_ci	e500v[12]-*)
10477db96d56Sopenharmony_ci		cpu=powerpc
10487db96d56Sopenharmony_ci		basic_os=${basic_os}"spe"
10497db96d56Sopenharmony_ci		;;
10507db96d56Sopenharmony_ci	mips3*-*)
10517db96d56Sopenharmony_ci		cpu=mips64
10527db96d56Sopenharmony_ci		;;
10537db96d56Sopenharmony_ci	ms1-*)
10547db96d56Sopenharmony_ci		cpu=mt
10557db96d56Sopenharmony_ci		;;
10567db96d56Sopenharmony_ci	m68knommu-*)
10577db96d56Sopenharmony_ci		cpu=m68k
10587db96d56Sopenharmony_ci		basic_os=linux
10597db96d56Sopenharmony_ci		;;
10607db96d56Sopenharmony_ci	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
10617db96d56Sopenharmony_ci		cpu=s12z
10627db96d56Sopenharmony_ci		;;
10637db96d56Sopenharmony_ci	openrisc-*)
10647db96d56Sopenharmony_ci		cpu=or32
10657db96d56Sopenharmony_ci		;;
10667db96d56Sopenharmony_ci	parisc-*)
10677db96d56Sopenharmony_ci		cpu=hppa
10687db96d56Sopenharmony_ci		basic_os=linux
10697db96d56Sopenharmony_ci		;;
10707db96d56Sopenharmony_ci	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10717db96d56Sopenharmony_ci		cpu=i586
10727db96d56Sopenharmony_ci		;;
10737db96d56Sopenharmony_ci	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
10747db96d56Sopenharmony_ci		cpu=i686
10757db96d56Sopenharmony_ci		;;
10767db96d56Sopenharmony_ci	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10777db96d56Sopenharmony_ci		cpu=i686
10787db96d56Sopenharmony_ci		;;
10797db96d56Sopenharmony_ci	pentium4-*)
10807db96d56Sopenharmony_ci		cpu=i786
10817db96d56Sopenharmony_ci		;;
10827db96d56Sopenharmony_ci	pc98-*)
10837db96d56Sopenharmony_ci		cpu=i386
10847db96d56Sopenharmony_ci		;;
10857db96d56Sopenharmony_ci	ppc-* | ppcbe-*)
10867db96d56Sopenharmony_ci		cpu=powerpc
10877db96d56Sopenharmony_ci		;;
10887db96d56Sopenharmony_ci	ppcle-* | powerpclittle-*)
10897db96d56Sopenharmony_ci		cpu=powerpcle
10907db96d56Sopenharmony_ci		;;
10917db96d56Sopenharmony_ci	ppc64-*)
10927db96d56Sopenharmony_ci		cpu=powerpc64
10937db96d56Sopenharmony_ci		;;
10947db96d56Sopenharmony_ci	ppc64le-* | powerpc64little-*)
10957db96d56Sopenharmony_ci		cpu=powerpc64le
10967db96d56Sopenharmony_ci		;;
10977db96d56Sopenharmony_ci	sb1-*)
10987db96d56Sopenharmony_ci		cpu=mipsisa64sb1
10997db96d56Sopenharmony_ci		;;
11007db96d56Sopenharmony_ci	sb1el-*)
11017db96d56Sopenharmony_ci		cpu=mipsisa64sb1el
11027db96d56Sopenharmony_ci		;;
11037db96d56Sopenharmony_ci	sh5e[lb]-*)
11047db96d56Sopenharmony_ci		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
11057db96d56Sopenharmony_ci		;;
11067db96d56Sopenharmony_ci	spur-*)
11077db96d56Sopenharmony_ci		cpu=spur
11087db96d56Sopenharmony_ci		;;
11097db96d56Sopenharmony_ci	strongarm-* | thumb-*)
11107db96d56Sopenharmony_ci		cpu=arm
11117db96d56Sopenharmony_ci		;;
11127db96d56Sopenharmony_ci	tx39-*)
11137db96d56Sopenharmony_ci		cpu=mipstx39
11147db96d56Sopenharmony_ci		;;
11157db96d56Sopenharmony_ci	tx39el-*)
11167db96d56Sopenharmony_ci		cpu=mipstx39el
11177db96d56Sopenharmony_ci		;;
11187db96d56Sopenharmony_ci	x64-*)
11197db96d56Sopenharmony_ci		cpu=x86_64
11207db96d56Sopenharmony_ci		;;
11217db96d56Sopenharmony_ci	xscale-* | xscalee[bl]-*)
11227db96d56Sopenharmony_ci		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
11237db96d56Sopenharmony_ci		;;
11247db96d56Sopenharmony_ci	arm64-*)
11257db96d56Sopenharmony_ci		cpu=aarch64
11267db96d56Sopenharmony_ci		;;
11277db96d56Sopenharmony_ci
11287db96d56Sopenharmony_ci	# Recognize the canonical CPU Types that limit and/or modify the
11297db96d56Sopenharmony_ci	# company names they are paired with.
11307db96d56Sopenharmony_ci	cr16-*)
11317db96d56Sopenharmony_ci		basic_os=${basic_os:-elf}
11327db96d56Sopenharmony_ci		;;
11337db96d56Sopenharmony_ci	crisv32-* | etraxfs*-*)
11347db96d56Sopenharmony_ci		cpu=crisv32
11357db96d56Sopenharmony_ci		vendor=axis
11367db96d56Sopenharmony_ci		;;
11377db96d56Sopenharmony_ci	cris-* | etrax*-*)
11387db96d56Sopenharmony_ci		cpu=cris
11397db96d56Sopenharmony_ci		vendor=axis
11407db96d56Sopenharmony_ci		;;
11417db96d56Sopenharmony_ci	crx-*)
11427db96d56Sopenharmony_ci		basic_os=${basic_os:-elf}
11437db96d56Sopenharmony_ci		;;
11447db96d56Sopenharmony_ci	neo-tandem)
11457db96d56Sopenharmony_ci		cpu=neo
11467db96d56Sopenharmony_ci		vendor=tandem
11477db96d56Sopenharmony_ci		;;
11487db96d56Sopenharmony_ci	nse-tandem)
11497db96d56Sopenharmony_ci		cpu=nse
11507db96d56Sopenharmony_ci		vendor=tandem
11517db96d56Sopenharmony_ci		;;
11527db96d56Sopenharmony_ci	nsr-tandem)
11537db96d56Sopenharmony_ci		cpu=nsr
11547db96d56Sopenharmony_ci		vendor=tandem
11557db96d56Sopenharmony_ci		;;
11567db96d56Sopenharmony_ci	nsv-tandem)
11577db96d56Sopenharmony_ci		cpu=nsv
11587db96d56Sopenharmony_ci		vendor=tandem
11597db96d56Sopenharmony_ci		;;
11607db96d56Sopenharmony_ci	nsx-tandem)
11617db96d56Sopenharmony_ci		cpu=nsx
11627db96d56Sopenharmony_ci		vendor=tandem
11637db96d56Sopenharmony_ci		;;
11647db96d56Sopenharmony_ci	mipsallegrexel-sony)
11657db96d56Sopenharmony_ci		cpu=mipsallegrexel
11667db96d56Sopenharmony_ci		vendor=sony
11677db96d56Sopenharmony_ci		;;
11687db96d56Sopenharmony_ci	tile*-*)
11697db96d56Sopenharmony_ci		basic_os=${basic_os:-linux-gnu}
11707db96d56Sopenharmony_ci		;;
11717db96d56Sopenharmony_ci
11727db96d56Sopenharmony_ci	*)
11737db96d56Sopenharmony_ci		# Recognize the canonical CPU types that are allowed with any
11747db96d56Sopenharmony_ci		# company name.
11757db96d56Sopenharmony_ci		case $cpu in
11767db96d56Sopenharmony_ci			1750a | 580 \
11777db96d56Sopenharmony_ci			| a29k \
11787db96d56Sopenharmony_ci			| aarch64 | aarch64_be \
11797db96d56Sopenharmony_ci			| abacus \
11807db96d56Sopenharmony_ci			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
11817db96d56Sopenharmony_ci			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
11827db96d56Sopenharmony_ci			| alphapca5[67] | alpha64pca5[67] \
11837db96d56Sopenharmony_ci			| am33_2.0 \
11847db96d56Sopenharmony_ci			| amdgcn \
11857db96d56Sopenharmony_ci			| arc | arceb | arc32 | arc64 \
11867db96d56Sopenharmony_ci			| arm | arm[lb]e | arme[lb] | armv* \
11877db96d56Sopenharmony_ci			| avr | avr32 \
11887db96d56Sopenharmony_ci			| asmjs \
11897db96d56Sopenharmony_ci			| ba \
11907db96d56Sopenharmony_ci			| be32 | be64 \
11917db96d56Sopenharmony_ci			| bfin | bpf | bs2000 \
11927db96d56Sopenharmony_ci			| c[123]* | c30 | [cjt]90 | c4x \
11937db96d56Sopenharmony_ci			| c8051 | clipper | craynv | csky | cydra \
11947db96d56Sopenharmony_ci			| d10v | d30v | dlx | dsp16xx \
11957db96d56Sopenharmony_ci			| e2k | elxsi | epiphany \
11967db96d56Sopenharmony_ci			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
11977db96d56Sopenharmony_ci			| h8300 | h8500 \
11987db96d56Sopenharmony_ci			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
11997db96d56Sopenharmony_ci			| hexagon \
12007db96d56Sopenharmony_ci			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
12017db96d56Sopenharmony_ci			| ip2k | iq2000 \
12027db96d56Sopenharmony_ci			| k1om \
12037db96d56Sopenharmony_ci			| le32 | le64 \
12047db96d56Sopenharmony_ci			| lm32 \
12057db96d56Sopenharmony_ci			| loongarch32 | loongarch64 | loongarchx32 \
12067db96d56Sopenharmony_ci			| m32c | m32r | m32rle \
12077db96d56Sopenharmony_ci			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
12087db96d56Sopenharmony_ci			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
12097db96d56Sopenharmony_ci			| m88110 | m88k | maxq | mb | mcore | mep | metag \
12107db96d56Sopenharmony_ci			| microblaze | microblazeel \
12117db96d56Sopenharmony_ci			| mips | mipsbe | mipseb | mipsel | mipsle \
12127db96d56Sopenharmony_ci			| mips16 \
12137db96d56Sopenharmony_ci			| mips64 | mips64eb | mips64el \
12147db96d56Sopenharmony_ci			| mips64octeon | mips64octeonel \
12157db96d56Sopenharmony_ci			| mips64orion | mips64orionel \
12167db96d56Sopenharmony_ci			| mips64r5900 | mips64r5900el \
12177db96d56Sopenharmony_ci			| mips64vr | mips64vrel \
12187db96d56Sopenharmony_ci			| mips64vr4100 | mips64vr4100el \
12197db96d56Sopenharmony_ci			| mips64vr4300 | mips64vr4300el \
12207db96d56Sopenharmony_ci			| mips64vr5000 | mips64vr5000el \
12217db96d56Sopenharmony_ci			| mips64vr5900 | mips64vr5900el \
12227db96d56Sopenharmony_ci			| mipsisa32 | mipsisa32el \
12237db96d56Sopenharmony_ci			| mipsisa32r2 | mipsisa32r2el \
12247db96d56Sopenharmony_ci			| mipsisa32r3 | mipsisa32r3el \
12257db96d56Sopenharmony_ci			| mipsisa32r5 | mipsisa32r5el \
12267db96d56Sopenharmony_ci			| mipsisa32r6 | mipsisa32r6el \
12277db96d56Sopenharmony_ci			| mipsisa64 | mipsisa64el \
12287db96d56Sopenharmony_ci			| mipsisa64r2 | mipsisa64r2el \
12297db96d56Sopenharmony_ci			| mipsisa64r3 | mipsisa64r3el \
12307db96d56Sopenharmony_ci			| mipsisa64r5 | mipsisa64r5el \
12317db96d56Sopenharmony_ci			| mipsisa64r6 | mipsisa64r6el \
12327db96d56Sopenharmony_ci			| mipsisa64sb1 | mipsisa64sb1el \
12337db96d56Sopenharmony_ci			| mipsisa64sr71k | mipsisa64sr71kel \
12347db96d56Sopenharmony_ci			| mipsr5900 | mipsr5900el \
12357db96d56Sopenharmony_ci			| mipstx39 | mipstx39el \
12367db96d56Sopenharmony_ci			| mmix \
12377db96d56Sopenharmony_ci			| mn10200 | mn10300 \
12387db96d56Sopenharmony_ci			| moxie \
12397db96d56Sopenharmony_ci			| mt \
12407db96d56Sopenharmony_ci			| msp430 \
12417db96d56Sopenharmony_ci			| nds32 | nds32le | nds32be \
12427db96d56Sopenharmony_ci			| nfp \
12437db96d56Sopenharmony_ci			| nios | nios2 | nios2eb | nios2el \
12447db96d56Sopenharmony_ci			| none | np1 | ns16k | ns32k | nvptx \
12457db96d56Sopenharmony_ci			| open8 \
12467db96d56Sopenharmony_ci			| or1k* \
12477db96d56Sopenharmony_ci			| or32 \
12487db96d56Sopenharmony_ci			| orion \
12497db96d56Sopenharmony_ci			| picochip \
12507db96d56Sopenharmony_ci			| pdp10 | pdp11 | pj | pjl | pn | power \
12517db96d56Sopenharmony_ci			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
12527db96d56Sopenharmony_ci			| pru \
12537db96d56Sopenharmony_ci			| pyramid \
12547db96d56Sopenharmony_ci			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
12557db96d56Sopenharmony_ci			| rl78 | romp | rs6000 | rx \
12567db96d56Sopenharmony_ci			| s390 | s390x \
12577db96d56Sopenharmony_ci			| score \
12587db96d56Sopenharmony_ci			| sh | shl \
12597db96d56Sopenharmony_ci			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
12607db96d56Sopenharmony_ci			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
12617db96d56Sopenharmony_ci			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
12627db96d56Sopenharmony_ci			| sparclite \
12637db96d56Sopenharmony_ci			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
12647db96d56Sopenharmony_ci			| spu \
12657db96d56Sopenharmony_ci			| tahoe \
12667db96d56Sopenharmony_ci			| thumbv7* \
12677db96d56Sopenharmony_ci			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
12687db96d56Sopenharmony_ci			| tron \
12697db96d56Sopenharmony_ci			| ubicom32 \
12707db96d56Sopenharmony_ci			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
12717db96d56Sopenharmony_ci			| vax \
12727db96d56Sopenharmony_ci			| visium \
12737db96d56Sopenharmony_ci			| w65 \
12747db96d56Sopenharmony_ci			| wasm32 | wasm64 \
12757db96d56Sopenharmony_ci			| we32k \
12767db96d56Sopenharmony_ci			| x86 | x86_64 | xc16x | xgate | xps100 \
12777db96d56Sopenharmony_ci			| xstormy16 | xtensa* \
12787db96d56Sopenharmony_ci			| ymp \
12797db96d56Sopenharmony_ci			| z8k | z80)
12807db96d56Sopenharmony_ci				;;
12817db96d56Sopenharmony_ci
12827db96d56Sopenharmony_ci			*)
12837db96d56Sopenharmony_ci				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
12847db96d56Sopenharmony_ci				exit 1
12857db96d56Sopenharmony_ci				;;
12867db96d56Sopenharmony_ci		esac
12877db96d56Sopenharmony_ci		;;
12887db96d56Sopenharmony_ciesac
12897db96d56Sopenharmony_ci
12907db96d56Sopenharmony_ci# Here we canonicalize certain aliases for manufacturers.
12917db96d56Sopenharmony_cicase $vendor in
12927db96d56Sopenharmony_ci	digital*)
12937db96d56Sopenharmony_ci		vendor=dec
12947db96d56Sopenharmony_ci		;;
12957db96d56Sopenharmony_ci	commodore*)
12967db96d56Sopenharmony_ci		vendor=cbm
12977db96d56Sopenharmony_ci		;;
12987db96d56Sopenharmony_ci	*)
12997db96d56Sopenharmony_ci		;;
13007db96d56Sopenharmony_ciesac
13017db96d56Sopenharmony_ci
13027db96d56Sopenharmony_ci# Decode manufacturer-specific aliases for certain operating systems.
13037db96d56Sopenharmony_ci
13047db96d56Sopenharmony_ciif test x$basic_os != x
13057db96d56Sopenharmony_cithen
13067db96d56Sopenharmony_ci
13077db96d56Sopenharmony_ci# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
13087db96d56Sopenharmony_ci# set os.
13097db96d56Sopenharmony_cicase $basic_os in
13107db96d56Sopenharmony_ci	gnu/linux*)
13117db96d56Sopenharmony_ci		kernel=linux
13127db96d56Sopenharmony_ci		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
13137db96d56Sopenharmony_ci		;;
13147db96d56Sopenharmony_ci	os2-emx)
13157db96d56Sopenharmony_ci		kernel=os2
13167db96d56Sopenharmony_ci		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
13177db96d56Sopenharmony_ci		;;
13187db96d56Sopenharmony_ci	nto-qnx*)
13197db96d56Sopenharmony_ci		kernel=nto
13207db96d56Sopenharmony_ci		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
13217db96d56Sopenharmony_ci		;;
13227db96d56Sopenharmony_ci	*-*)
13237db96d56Sopenharmony_ci		# shellcheck disable=SC2162
13247db96d56Sopenharmony_ci		saved_IFS=$IFS
13257db96d56Sopenharmony_ci		IFS="-" read kernel os <<EOF
13267db96d56Sopenharmony_ci$basic_os
13277db96d56Sopenharmony_ciEOF
13287db96d56Sopenharmony_ci		IFS=$saved_IFS
13297db96d56Sopenharmony_ci		;;
13307db96d56Sopenharmony_ci	# Default OS when just kernel was specified
13317db96d56Sopenharmony_ci	nto*)
13327db96d56Sopenharmony_ci		kernel=nto
13337db96d56Sopenharmony_ci		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
13347db96d56Sopenharmony_ci		;;
13357db96d56Sopenharmony_ci	linux*)
13367db96d56Sopenharmony_ci		kernel=linux
13377db96d56Sopenharmony_ci		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
13387db96d56Sopenharmony_ci		;;
13397db96d56Sopenharmony_ci	*)
13407db96d56Sopenharmony_ci		kernel=
13417db96d56Sopenharmony_ci		os=$basic_os
13427db96d56Sopenharmony_ci		;;
13437db96d56Sopenharmony_ciesac
13447db96d56Sopenharmony_ci
13457db96d56Sopenharmony_ci# Now, normalize the OS (knowing we just have one component, it's not a kernel,
13467db96d56Sopenharmony_ci# etc.)
13477db96d56Sopenharmony_cicase $os in
13487db96d56Sopenharmony_ci	# First match some system type aliases that might get confused
13497db96d56Sopenharmony_ci	# with valid system types.
13507db96d56Sopenharmony_ci	# solaris* is a basic system type, with this one exception.
13517db96d56Sopenharmony_ci	auroraux)
13527db96d56Sopenharmony_ci		os=auroraux
13537db96d56Sopenharmony_ci		;;
13547db96d56Sopenharmony_ci	bluegene*)
13557db96d56Sopenharmony_ci		os=cnk
13567db96d56Sopenharmony_ci		;;
13577db96d56Sopenharmony_ci	solaris1 | solaris1.*)
13587db96d56Sopenharmony_ci		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
13597db96d56Sopenharmony_ci		;;
13607db96d56Sopenharmony_ci	solaris)
13617db96d56Sopenharmony_ci		os=solaris2
13627db96d56Sopenharmony_ci		;;
13637db96d56Sopenharmony_ci	unixware*)
13647db96d56Sopenharmony_ci		os=sysv4.2uw
13657db96d56Sopenharmony_ci		;;
13667db96d56Sopenharmony_ci	# es1800 is here to avoid being matched by es* (a different OS)
13677db96d56Sopenharmony_ci	es1800*)
13687db96d56Sopenharmony_ci		os=ose
13697db96d56Sopenharmony_ci		;;
13707db96d56Sopenharmony_ci	# Some version numbers need modification
13717db96d56Sopenharmony_ci	chorusos*)
13727db96d56Sopenharmony_ci		os=chorusos
13737db96d56Sopenharmony_ci		;;
13747db96d56Sopenharmony_ci	isc)
13757db96d56Sopenharmony_ci		os=isc2.2
13767db96d56Sopenharmony_ci		;;
13777db96d56Sopenharmony_ci	sco6)
13787db96d56Sopenharmony_ci		os=sco5v6
13797db96d56Sopenharmony_ci		;;
13807db96d56Sopenharmony_ci	sco5)
13817db96d56Sopenharmony_ci		os=sco3.2v5
13827db96d56Sopenharmony_ci		;;
13837db96d56Sopenharmony_ci	sco4)
13847db96d56Sopenharmony_ci		os=sco3.2v4
13857db96d56Sopenharmony_ci		;;
13867db96d56Sopenharmony_ci	sco3.2.[4-9]*)
13877db96d56Sopenharmony_ci		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
13887db96d56Sopenharmony_ci		;;
13897db96d56Sopenharmony_ci	sco*v* | scout)
13907db96d56Sopenharmony_ci		# Don't match below
13917db96d56Sopenharmony_ci		;;
13927db96d56Sopenharmony_ci	sco*)
13937db96d56Sopenharmony_ci		os=sco3.2v2
13947db96d56Sopenharmony_ci		;;
13957db96d56Sopenharmony_ci	psos*)
13967db96d56Sopenharmony_ci		os=psos
13977db96d56Sopenharmony_ci		;;
13987db96d56Sopenharmony_ci	qnx*)
13997db96d56Sopenharmony_ci		os=qnx
14007db96d56Sopenharmony_ci		;;
14017db96d56Sopenharmony_ci	hiux*)
14027db96d56Sopenharmony_ci		os=hiuxwe2
14037db96d56Sopenharmony_ci		;;
14047db96d56Sopenharmony_ci	lynx*178)
14057db96d56Sopenharmony_ci		os=lynxos178
14067db96d56Sopenharmony_ci		;;
14077db96d56Sopenharmony_ci	lynx*5)
14087db96d56Sopenharmony_ci		os=lynxos5
14097db96d56Sopenharmony_ci		;;
14107db96d56Sopenharmony_ci	lynxos*)
14117db96d56Sopenharmony_ci		# don't get caught up in next wildcard
14127db96d56Sopenharmony_ci		;;
14137db96d56Sopenharmony_ci	lynx*)
14147db96d56Sopenharmony_ci		os=lynxos
14157db96d56Sopenharmony_ci		;;
14167db96d56Sopenharmony_ci	mac[0-9]*)
14177db96d56Sopenharmony_ci		os=`echo "$os" | sed -e 's|mac|macos|'`
14187db96d56Sopenharmony_ci		;;
14197db96d56Sopenharmony_ci	opened*)
14207db96d56Sopenharmony_ci		os=openedition
14217db96d56Sopenharmony_ci		;;
14227db96d56Sopenharmony_ci	os400*)
14237db96d56Sopenharmony_ci		os=os400
14247db96d56Sopenharmony_ci		;;
14257db96d56Sopenharmony_ci	sunos5*)
14267db96d56Sopenharmony_ci		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14277db96d56Sopenharmony_ci		;;
14287db96d56Sopenharmony_ci	sunos6*)
14297db96d56Sopenharmony_ci		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14307db96d56Sopenharmony_ci		;;
14317db96d56Sopenharmony_ci	wince*)
14327db96d56Sopenharmony_ci		os=wince
14337db96d56Sopenharmony_ci		;;
14347db96d56Sopenharmony_ci	utek*)
14357db96d56Sopenharmony_ci		os=bsd
14367db96d56Sopenharmony_ci		;;
14377db96d56Sopenharmony_ci	dynix*)
14387db96d56Sopenharmony_ci		os=bsd
14397db96d56Sopenharmony_ci		;;
14407db96d56Sopenharmony_ci	acis*)
14417db96d56Sopenharmony_ci		os=aos
14427db96d56Sopenharmony_ci		;;
14437db96d56Sopenharmony_ci	atheos*)
14447db96d56Sopenharmony_ci		os=atheos
14457db96d56Sopenharmony_ci		;;
14467db96d56Sopenharmony_ci	syllable*)
14477db96d56Sopenharmony_ci		os=syllable
14487db96d56Sopenharmony_ci		;;
14497db96d56Sopenharmony_ci	386bsd)
14507db96d56Sopenharmony_ci		os=bsd
14517db96d56Sopenharmony_ci		;;
14527db96d56Sopenharmony_ci	ctix* | uts*)
14537db96d56Sopenharmony_ci		os=sysv
14547db96d56Sopenharmony_ci		;;
14557db96d56Sopenharmony_ci	nova*)
14567db96d56Sopenharmony_ci		os=rtmk-nova
14577db96d56Sopenharmony_ci		;;
14587db96d56Sopenharmony_ci	ns2)
14597db96d56Sopenharmony_ci		os=nextstep2
14607db96d56Sopenharmony_ci		;;
14617db96d56Sopenharmony_ci	# Preserve the version number of sinix5.
14627db96d56Sopenharmony_ci	sinix5.*)
14637db96d56Sopenharmony_ci		os=`echo "$os" | sed -e 's|sinix|sysv|'`
14647db96d56Sopenharmony_ci		;;
14657db96d56Sopenharmony_ci	sinix*)
14667db96d56Sopenharmony_ci		os=sysv4
14677db96d56Sopenharmony_ci		;;
14687db96d56Sopenharmony_ci	tpf*)
14697db96d56Sopenharmony_ci		os=tpf
14707db96d56Sopenharmony_ci		;;
14717db96d56Sopenharmony_ci	triton*)
14727db96d56Sopenharmony_ci		os=sysv3
14737db96d56Sopenharmony_ci		;;
14747db96d56Sopenharmony_ci	oss*)
14757db96d56Sopenharmony_ci		os=sysv3
14767db96d56Sopenharmony_ci		;;
14777db96d56Sopenharmony_ci	svr4*)
14787db96d56Sopenharmony_ci		os=sysv4
14797db96d56Sopenharmony_ci		;;
14807db96d56Sopenharmony_ci	svr3)
14817db96d56Sopenharmony_ci		os=sysv3
14827db96d56Sopenharmony_ci		;;
14837db96d56Sopenharmony_ci	sysvr4)
14847db96d56Sopenharmony_ci		os=sysv4
14857db96d56Sopenharmony_ci		;;
14867db96d56Sopenharmony_ci	ose*)
14877db96d56Sopenharmony_ci		os=ose
14887db96d56Sopenharmony_ci		;;
14897db96d56Sopenharmony_ci	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
14907db96d56Sopenharmony_ci		os=mint
14917db96d56Sopenharmony_ci		;;
14927db96d56Sopenharmony_ci	dicos*)
14937db96d56Sopenharmony_ci		os=dicos
14947db96d56Sopenharmony_ci		;;
14957db96d56Sopenharmony_ci	pikeos*)
14967db96d56Sopenharmony_ci		# Until real need of OS specific support for
14977db96d56Sopenharmony_ci		# particular features comes up, bare metal
14987db96d56Sopenharmony_ci		# configurations are quite functional.
14997db96d56Sopenharmony_ci		case $cpu in
15007db96d56Sopenharmony_ci		    arm*)
15017db96d56Sopenharmony_ci			os=eabi
15027db96d56Sopenharmony_ci			;;
15037db96d56Sopenharmony_ci		    *)
15047db96d56Sopenharmony_ci			os=elf
15057db96d56Sopenharmony_ci			;;
15067db96d56Sopenharmony_ci		esac
15077db96d56Sopenharmony_ci		;;
15087db96d56Sopenharmony_ci	*)
15097db96d56Sopenharmony_ci		# No normalization, but not necessarily accepted, that comes below.
15107db96d56Sopenharmony_ci		;;
15117db96d56Sopenharmony_ciesac
15127db96d56Sopenharmony_ci
15137db96d56Sopenharmony_cielse
15147db96d56Sopenharmony_ci
15157db96d56Sopenharmony_ci# Here we handle the default operating systems that come with various machines.
15167db96d56Sopenharmony_ci# The value should be what the vendor currently ships out the door with their
15177db96d56Sopenharmony_ci# machine or put another way, the most popular os provided with the machine.
15187db96d56Sopenharmony_ci
15197db96d56Sopenharmony_ci# Note that if you're going to try to match "-MANUFACTURER" here (say,
15207db96d56Sopenharmony_ci# "-sun"), then you have to tell the case statement up towards the top
15217db96d56Sopenharmony_ci# that MANUFACTURER isn't an operating system.  Otherwise, code above
15227db96d56Sopenharmony_ci# will signal an error saying that MANUFACTURER isn't an operating
15237db96d56Sopenharmony_ci# system, and we'll never get to this point.
15247db96d56Sopenharmony_ci
15257db96d56Sopenharmony_cikernel=
15267db96d56Sopenharmony_cicase $cpu-$vendor in
15277db96d56Sopenharmony_ci	score-*)
15287db96d56Sopenharmony_ci		os=elf
15297db96d56Sopenharmony_ci		;;
15307db96d56Sopenharmony_ci	spu-*)
15317db96d56Sopenharmony_ci		os=elf
15327db96d56Sopenharmony_ci		;;
15337db96d56Sopenharmony_ci	*-acorn)
15347db96d56Sopenharmony_ci		os=riscix1.2
15357db96d56Sopenharmony_ci		;;
15367db96d56Sopenharmony_ci	arm*-rebel)
15377db96d56Sopenharmony_ci		kernel=linux
15387db96d56Sopenharmony_ci		os=gnu
15397db96d56Sopenharmony_ci		;;
15407db96d56Sopenharmony_ci	arm*-semi)
15417db96d56Sopenharmony_ci		os=aout
15427db96d56Sopenharmony_ci		;;
15437db96d56Sopenharmony_ci	c4x-* | tic4x-*)
15447db96d56Sopenharmony_ci		os=coff
15457db96d56Sopenharmony_ci		;;
15467db96d56Sopenharmony_ci	c8051-*)
15477db96d56Sopenharmony_ci		os=elf
15487db96d56Sopenharmony_ci		;;
15497db96d56Sopenharmony_ci	clipper-intergraph)
15507db96d56Sopenharmony_ci		os=clix
15517db96d56Sopenharmony_ci		;;
15527db96d56Sopenharmony_ci	hexagon-*)
15537db96d56Sopenharmony_ci		os=elf
15547db96d56Sopenharmony_ci		;;
15557db96d56Sopenharmony_ci	tic54x-*)
15567db96d56Sopenharmony_ci		os=coff
15577db96d56Sopenharmony_ci		;;
15587db96d56Sopenharmony_ci	tic55x-*)
15597db96d56Sopenharmony_ci		os=coff
15607db96d56Sopenharmony_ci		;;
15617db96d56Sopenharmony_ci	tic6x-*)
15627db96d56Sopenharmony_ci		os=coff
15637db96d56Sopenharmony_ci		;;
15647db96d56Sopenharmony_ci	# This must come before the *-dec entry.
15657db96d56Sopenharmony_ci	pdp10-*)
15667db96d56Sopenharmony_ci		os=tops20
15677db96d56Sopenharmony_ci		;;
15687db96d56Sopenharmony_ci	pdp11-*)
15697db96d56Sopenharmony_ci		os=none
15707db96d56Sopenharmony_ci		;;
15717db96d56Sopenharmony_ci	*-dec | vax-*)
15727db96d56Sopenharmony_ci		os=ultrix4.2
15737db96d56Sopenharmony_ci		;;
15747db96d56Sopenharmony_ci	m68*-apollo)
15757db96d56Sopenharmony_ci		os=domain
15767db96d56Sopenharmony_ci		;;
15777db96d56Sopenharmony_ci	i386-sun)
15787db96d56Sopenharmony_ci		os=sunos4.0.2
15797db96d56Sopenharmony_ci		;;
15807db96d56Sopenharmony_ci	m68000-sun)
15817db96d56Sopenharmony_ci		os=sunos3
15827db96d56Sopenharmony_ci		;;
15837db96d56Sopenharmony_ci	m68*-cisco)
15847db96d56Sopenharmony_ci		os=aout
15857db96d56Sopenharmony_ci		;;
15867db96d56Sopenharmony_ci	mep-*)
15877db96d56Sopenharmony_ci		os=elf
15887db96d56Sopenharmony_ci		;;
15897db96d56Sopenharmony_ci	mips*-cisco)
15907db96d56Sopenharmony_ci		os=elf
15917db96d56Sopenharmony_ci		;;
15927db96d56Sopenharmony_ci	mips*-*)
15937db96d56Sopenharmony_ci		os=elf
15947db96d56Sopenharmony_ci		;;
15957db96d56Sopenharmony_ci	or32-*)
15967db96d56Sopenharmony_ci		os=coff
15977db96d56Sopenharmony_ci		;;
15987db96d56Sopenharmony_ci	*-tti)	# must be before sparc entry or we get the wrong os.
15997db96d56Sopenharmony_ci		os=sysv3
16007db96d56Sopenharmony_ci		;;
16017db96d56Sopenharmony_ci	sparc-* | *-sun)
16027db96d56Sopenharmony_ci		os=sunos4.1.1
16037db96d56Sopenharmony_ci		;;
16047db96d56Sopenharmony_ci	pru-*)
16057db96d56Sopenharmony_ci		os=elf
16067db96d56Sopenharmony_ci		;;
16077db96d56Sopenharmony_ci	*-be)
16087db96d56Sopenharmony_ci		os=beos
16097db96d56Sopenharmony_ci		;;
16107db96d56Sopenharmony_ci	*-ibm)
16117db96d56Sopenharmony_ci		os=aix
16127db96d56Sopenharmony_ci		;;
16137db96d56Sopenharmony_ci	*-knuth)
16147db96d56Sopenharmony_ci		os=mmixware
16157db96d56Sopenharmony_ci		;;
16167db96d56Sopenharmony_ci	*-wec)
16177db96d56Sopenharmony_ci		os=proelf
16187db96d56Sopenharmony_ci		;;
16197db96d56Sopenharmony_ci	*-winbond)
16207db96d56Sopenharmony_ci		os=proelf
16217db96d56Sopenharmony_ci		;;
16227db96d56Sopenharmony_ci	*-oki)
16237db96d56Sopenharmony_ci		os=proelf
16247db96d56Sopenharmony_ci		;;
16257db96d56Sopenharmony_ci	*-hp)
16267db96d56Sopenharmony_ci		os=hpux
16277db96d56Sopenharmony_ci		;;
16287db96d56Sopenharmony_ci	*-hitachi)
16297db96d56Sopenharmony_ci		os=hiux
16307db96d56Sopenharmony_ci		;;
16317db96d56Sopenharmony_ci	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16327db96d56Sopenharmony_ci		os=sysv
16337db96d56Sopenharmony_ci		;;
16347db96d56Sopenharmony_ci	*-cbm)
16357db96d56Sopenharmony_ci		os=amigaos
16367db96d56Sopenharmony_ci		;;
16377db96d56Sopenharmony_ci	*-dg)
16387db96d56Sopenharmony_ci		os=dgux
16397db96d56Sopenharmony_ci		;;
16407db96d56Sopenharmony_ci	*-dolphin)
16417db96d56Sopenharmony_ci		os=sysv3
16427db96d56Sopenharmony_ci		;;
16437db96d56Sopenharmony_ci	m68k-ccur)
16447db96d56Sopenharmony_ci		os=rtu
16457db96d56Sopenharmony_ci		;;
16467db96d56Sopenharmony_ci	m88k-omron*)
16477db96d56Sopenharmony_ci		os=luna
16487db96d56Sopenharmony_ci		;;
16497db96d56Sopenharmony_ci	*-next)
16507db96d56Sopenharmony_ci		os=nextstep
16517db96d56Sopenharmony_ci		;;
16527db96d56Sopenharmony_ci	*-sequent)
16537db96d56Sopenharmony_ci		os=ptx
16547db96d56Sopenharmony_ci		;;
16557db96d56Sopenharmony_ci	*-crds)
16567db96d56Sopenharmony_ci		os=unos
16577db96d56Sopenharmony_ci		;;
16587db96d56Sopenharmony_ci	*-ns)
16597db96d56Sopenharmony_ci		os=genix
16607db96d56Sopenharmony_ci		;;
16617db96d56Sopenharmony_ci	i370-*)
16627db96d56Sopenharmony_ci		os=mvs
16637db96d56Sopenharmony_ci		;;
16647db96d56Sopenharmony_ci	*-gould)
16657db96d56Sopenharmony_ci		os=sysv
16667db96d56Sopenharmony_ci		;;
16677db96d56Sopenharmony_ci	*-highlevel)
16687db96d56Sopenharmony_ci		os=bsd
16697db96d56Sopenharmony_ci		;;
16707db96d56Sopenharmony_ci	*-encore)
16717db96d56Sopenharmony_ci		os=bsd
16727db96d56Sopenharmony_ci		;;
16737db96d56Sopenharmony_ci	*-sgi)
16747db96d56Sopenharmony_ci		os=irix
16757db96d56Sopenharmony_ci		;;
16767db96d56Sopenharmony_ci	*-siemens)
16777db96d56Sopenharmony_ci		os=sysv4
16787db96d56Sopenharmony_ci		;;
16797db96d56Sopenharmony_ci	*-masscomp)
16807db96d56Sopenharmony_ci		os=rtu
16817db96d56Sopenharmony_ci		;;
16827db96d56Sopenharmony_ci	f30[01]-fujitsu | f700-fujitsu)
16837db96d56Sopenharmony_ci		os=uxpv
16847db96d56Sopenharmony_ci		;;
16857db96d56Sopenharmony_ci	*-rom68k)
16867db96d56Sopenharmony_ci		os=coff
16877db96d56Sopenharmony_ci		;;
16887db96d56Sopenharmony_ci	*-*bug)
16897db96d56Sopenharmony_ci		os=coff
16907db96d56Sopenharmony_ci		;;
16917db96d56Sopenharmony_ci	*-apple)
16927db96d56Sopenharmony_ci		os=macos
16937db96d56Sopenharmony_ci		;;
16947db96d56Sopenharmony_ci	*-atari*)
16957db96d56Sopenharmony_ci		os=mint
16967db96d56Sopenharmony_ci		;;
16977db96d56Sopenharmony_ci	*-wrs)
16987db96d56Sopenharmony_ci		os=vxworks
16997db96d56Sopenharmony_ci		;;
17007db96d56Sopenharmony_ci	*)
17017db96d56Sopenharmony_ci		os=none
17027db96d56Sopenharmony_ci		;;
17037db96d56Sopenharmony_ciesac
17047db96d56Sopenharmony_ci
17057db96d56Sopenharmony_cifi
17067db96d56Sopenharmony_ci
17077db96d56Sopenharmony_ci# Now, validate our (potentially fixed-up) OS.
17087db96d56Sopenharmony_cicase $os in
17097db96d56Sopenharmony_ci	# Sometimes we do "kernel-libc", so those need to count as OSes.
17107db96d56Sopenharmony_ci	musl* | newlib* | relibc* | uclibc*)
17117db96d56Sopenharmony_ci		;;
17127db96d56Sopenharmony_ci	# Likewise for "kernel-abi"
17137db96d56Sopenharmony_ci	eabi* | gnueabi*)
17147db96d56Sopenharmony_ci		;;
17157db96d56Sopenharmony_ci	# VxWorks passes extra cpu info in the 4th filed.
17167db96d56Sopenharmony_ci	simlinux | simwindows | spe)
17177db96d56Sopenharmony_ci		;;
17187db96d56Sopenharmony_ci	# Now accept the basic system types.
17197db96d56Sopenharmony_ci	# The portable systems comes first.
17207db96d56Sopenharmony_ci	# Each alternative MUST end in a * to match a version number.
17217db96d56Sopenharmony_ci	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
17227db96d56Sopenharmony_ci	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
17237db96d56Sopenharmony_ci	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
17247db96d56Sopenharmony_ci	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
17257db96d56Sopenharmony_ci	     | hiux* | abug | nacl* | netware* | windows* \
17267db96d56Sopenharmony_ci	     | os9* | macos* | osx* | ios* \
17277db96d56Sopenharmony_ci	     | mpw* | magic* | mmixware* | mon960* | lnews* \
17287db96d56Sopenharmony_ci	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
17297db96d56Sopenharmony_ci	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
17307db96d56Sopenharmony_ci	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
17317db96d56Sopenharmony_ci	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
17327db96d56Sopenharmony_ci	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
17337db96d56Sopenharmony_ci	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
17347db96d56Sopenharmony_ci	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
17357db96d56Sopenharmony_ci	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
17367db96d56Sopenharmony_ci	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
17377db96d56Sopenharmony_ci	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
17387db96d56Sopenharmony_ci	     | chorusrdb* | cegcc* | glidix* | serenity* \
17397db96d56Sopenharmony_ci	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
17407db96d56Sopenharmony_ci	     | midipix* | mingw32* | mingw64* | mint* \
17417db96d56Sopenharmony_ci	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
17427db96d56Sopenharmony_ci	     | interix* | uwin* | mks* | rhapsody* | darwin* \
17437db96d56Sopenharmony_ci	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
17447db96d56Sopenharmony_ci	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
17457db96d56Sopenharmony_ci	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
17467db96d56Sopenharmony_ci	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
17477db96d56Sopenharmony_ci	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
17487db96d56Sopenharmony_ci	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
17497db96d56Sopenharmony_ci	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
17507db96d56Sopenharmony_ci	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
17517db96d56Sopenharmony_ci	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
17527db96d56Sopenharmony_ci		;;
17537db96d56Sopenharmony_ci	# This one is extra strict with allowed versions
17547db96d56Sopenharmony_ci	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
17557db96d56Sopenharmony_ci		# Don't forget version if it is 3.2v4 or newer.
17567db96d56Sopenharmony_ci		;;
17577db96d56Sopenharmony_ci	none)
17587db96d56Sopenharmony_ci		;;
17597db96d56Sopenharmony_ci	*)
17607db96d56Sopenharmony_ci		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
17617db96d56Sopenharmony_ci		exit 1
17627db96d56Sopenharmony_ci		;;
17637db96d56Sopenharmony_ciesac
17647db96d56Sopenharmony_ci
17657db96d56Sopenharmony_ci# As a final step for OS-related things, validate the OS-kernel combination
17667db96d56Sopenharmony_ci# (given a valid OS), if there is a kernel.
17677db96d56Sopenharmony_cicase $kernel-$os in
17687db96d56Sopenharmony_ci	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
17697db96d56Sopenharmony_ci		   | linux-musl* | linux-relibc* | linux-uclibc* )
17707db96d56Sopenharmony_ci		;;
17717db96d56Sopenharmony_ci	uclinux-uclibc* )
17727db96d56Sopenharmony_ci		;;
17737db96d56Sopenharmony_ci	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
17747db96d56Sopenharmony_ci		# These are just libc implementations, not actual OSes, and thus
17757db96d56Sopenharmony_ci		# require a kernel.
17767db96d56Sopenharmony_ci		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
17777db96d56Sopenharmony_ci		exit 1
17787db96d56Sopenharmony_ci		;;
17797db96d56Sopenharmony_ci	kfreebsd*-gnu* | kopensolaris*-gnu*)
17807db96d56Sopenharmony_ci		;;
17817db96d56Sopenharmony_ci	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
17827db96d56Sopenharmony_ci		;;
17837db96d56Sopenharmony_ci	nto-qnx*)
17847db96d56Sopenharmony_ci		;;
17857db96d56Sopenharmony_ci	os2-emx)
17867db96d56Sopenharmony_ci		;;
17877db96d56Sopenharmony_ci	*-eabi* | *-gnueabi*)
17887db96d56Sopenharmony_ci		;;
17897db96d56Sopenharmony_ci	-*)
17907db96d56Sopenharmony_ci		# Blank kernel with real OS is always fine.
17917db96d56Sopenharmony_ci		;;
17927db96d56Sopenharmony_ci	*-*)
17937db96d56Sopenharmony_ci		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
17947db96d56Sopenharmony_ci		exit 1
17957db96d56Sopenharmony_ci		;;
17967db96d56Sopenharmony_ciesac
17977db96d56Sopenharmony_ci
17987db96d56Sopenharmony_ci# Here we handle the case where we know the os, and the CPU type, but not the
17997db96d56Sopenharmony_ci# manufacturer.  We pick the logical manufacturer.
18007db96d56Sopenharmony_cicase $vendor in
18017db96d56Sopenharmony_ci	unknown)
18027db96d56Sopenharmony_ci		case $cpu-$os in
18037db96d56Sopenharmony_ci			*-riscix*)
18047db96d56Sopenharmony_ci				vendor=acorn
18057db96d56Sopenharmony_ci				;;
18067db96d56Sopenharmony_ci			*-sunos*)
18077db96d56Sopenharmony_ci				vendor=sun
18087db96d56Sopenharmony_ci				;;
18097db96d56Sopenharmony_ci			*-cnk* | *-aix*)
18107db96d56Sopenharmony_ci				vendor=ibm
18117db96d56Sopenharmony_ci				;;
18127db96d56Sopenharmony_ci			*-beos*)
18137db96d56Sopenharmony_ci				vendor=be
18147db96d56Sopenharmony_ci				;;
18157db96d56Sopenharmony_ci			*-hpux*)
18167db96d56Sopenharmony_ci				vendor=hp
18177db96d56Sopenharmony_ci				;;
18187db96d56Sopenharmony_ci			*-mpeix*)
18197db96d56Sopenharmony_ci				vendor=hp
18207db96d56Sopenharmony_ci				;;
18217db96d56Sopenharmony_ci			*-hiux*)
18227db96d56Sopenharmony_ci				vendor=hitachi
18237db96d56Sopenharmony_ci				;;
18247db96d56Sopenharmony_ci			*-unos*)
18257db96d56Sopenharmony_ci				vendor=crds
18267db96d56Sopenharmony_ci				;;
18277db96d56Sopenharmony_ci			*-dgux*)
18287db96d56Sopenharmony_ci				vendor=dg
18297db96d56Sopenharmony_ci				;;
18307db96d56Sopenharmony_ci			*-luna*)
18317db96d56Sopenharmony_ci				vendor=omron
18327db96d56Sopenharmony_ci				;;
18337db96d56Sopenharmony_ci			*-genix*)
18347db96d56Sopenharmony_ci				vendor=ns
18357db96d56Sopenharmony_ci				;;
18367db96d56Sopenharmony_ci			*-clix*)
18377db96d56Sopenharmony_ci				vendor=intergraph
18387db96d56Sopenharmony_ci				;;
18397db96d56Sopenharmony_ci			*-mvs* | *-opened*)
18407db96d56Sopenharmony_ci				vendor=ibm
18417db96d56Sopenharmony_ci				;;
18427db96d56Sopenharmony_ci			*-os400*)
18437db96d56Sopenharmony_ci				vendor=ibm
18447db96d56Sopenharmony_ci				;;
18457db96d56Sopenharmony_ci			s390-* | s390x-*)
18467db96d56Sopenharmony_ci				vendor=ibm
18477db96d56Sopenharmony_ci				;;
18487db96d56Sopenharmony_ci			*-ptx*)
18497db96d56Sopenharmony_ci				vendor=sequent
18507db96d56Sopenharmony_ci				;;
18517db96d56Sopenharmony_ci			*-tpf*)
18527db96d56Sopenharmony_ci				vendor=ibm
18537db96d56Sopenharmony_ci				;;
18547db96d56Sopenharmony_ci			*-vxsim* | *-vxworks* | *-windiss*)
18557db96d56Sopenharmony_ci				vendor=wrs
18567db96d56Sopenharmony_ci				;;
18577db96d56Sopenharmony_ci			*-aux*)
18587db96d56Sopenharmony_ci				vendor=apple
18597db96d56Sopenharmony_ci				;;
18607db96d56Sopenharmony_ci			*-hms*)
18617db96d56Sopenharmony_ci				vendor=hitachi
18627db96d56Sopenharmony_ci				;;
18637db96d56Sopenharmony_ci			*-mpw* | *-macos*)
18647db96d56Sopenharmony_ci				vendor=apple
18657db96d56Sopenharmony_ci				;;
18667db96d56Sopenharmony_ci			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
18677db96d56Sopenharmony_ci				vendor=atari
18687db96d56Sopenharmony_ci				;;
18697db96d56Sopenharmony_ci			*-vos*)
18707db96d56Sopenharmony_ci				vendor=stratus
18717db96d56Sopenharmony_ci				;;
18727db96d56Sopenharmony_ci		esac
18737db96d56Sopenharmony_ci		;;
18747db96d56Sopenharmony_ciesac
18757db96d56Sopenharmony_ci
18767db96d56Sopenharmony_ciecho "$cpu-$vendor-${kernel:+$kernel-}$os"
18777db96d56Sopenharmony_ciexit
18787db96d56Sopenharmony_ci
18797db96d56Sopenharmony_ci# Local variables:
18807db96d56Sopenharmony_ci# eval: (add-hook 'before-save-hook 'time-stamp)
18817db96d56Sopenharmony_ci# time-stamp-start: "timestamp='"
18827db96d56Sopenharmony_ci# time-stamp-format: "%:y-%02m-%02d"
18837db96d56Sopenharmony_ci# time-stamp-end: "'"
18847db96d56Sopenharmony_ci# End:
1885