config.sub revision 7b5fefc8
12227fc13Smrg#! /bin/sh 22227fc13Smrg# Configuration validation subroutine script. 37b5fefc8Smrg# Copyright 1992-2023 Free Software Foundation, Inc. 42227fc13Smrg 57b5fefc8Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale 62227fc13Smrg 77b5fefc8Smrgtimestamp='2023-01-21' 87b5fefc8Smrg 97b5fefc8Smrg# This file is free software; you can redistribute it and/or modify it 107b5fefc8Smrg# under the terms of the GNU General Public License as published by 117b5fefc8Smrg# the Free Software Foundation, either version 3 of the License, or 122227fc13Smrg# (at your option) any later version. 132227fc13Smrg# 147b5fefc8Smrg# This program is distributed in the hope that it will be useful, but 157b5fefc8Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 167b5fefc8Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 177b5fefc8Smrg# General Public License for more details. 182227fc13Smrg# 192227fc13Smrg# You should have received a copy of the GNU General Public License 207b5fefc8Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 212227fc13Smrg# 222227fc13Smrg# As a special exception to the GNU General Public License, if you 232227fc13Smrg# distribute this file as part of a program that contains a 242227fc13Smrg# configuration script generated by Autoconf, you may include it under 257b5fefc8Smrg# the same distribution terms that you use for the rest of that 267b5fefc8Smrg# program. This Exception is an additional permission under section 7 277b5fefc8Smrg# of the GNU General Public License, version 3 ("GPLv3"). 282227fc13Smrg 292227fc13Smrg 307b5fefc8Smrg# Please send patches to <config-patches@gnu.org>. 312227fc13Smrg# 322227fc13Smrg# Configuration subroutine to validate and canonicalize a configuration type. 332227fc13Smrg# Supply the specified configuration type as an argument. 342227fc13Smrg# If it is invalid, we print an error message on stderr and exit with code 1. 352227fc13Smrg# Otherwise, we print the canonical config type on stdout and succeed. 362227fc13Smrg 372227fc13Smrg# You can get the latest version of this script from: 387b5fefc8Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub 392227fc13Smrg 402227fc13Smrg# This file is supposed to be the same for all GNU packages 412227fc13Smrg# and recognize all the CPU types, system types and aliases 422227fc13Smrg# that are meaningful with *any* GNU software. 432227fc13Smrg# Each package is responsible for reporting which valid configurations 442227fc13Smrg# it does not support. The user should be able to distinguish 452227fc13Smrg# a failure to support a valid configuration from a meaningless 462227fc13Smrg# configuration. 472227fc13Smrg 482227fc13Smrg# The goal of this file is to map all the various variations of a given 492227fc13Smrg# machine specification into a single specification in the form: 502227fc13Smrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 512227fc13Smrg# or in some cases, the newer four-part form: 522227fc13Smrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 532227fc13Smrg# It is wrong to echo any other type of specification. 542227fc13Smrg 557b5fefc8Smrg# The "shellcheck disable" line above the timestamp inhibits complaints 567b5fefc8Smrg# about features and limitations of the classic Bourne shell that were 577b5fefc8Smrg# superseded or lifted in POSIX. However, this script identifies a wide 587b5fefc8Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and 597b5fefc8Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still 607b5fefc8Smrg# have a pre-POSIX /bin/sh. 617b5fefc8Smrg 622227fc13Smrgme=`echo "$0" | sed -e 's,.*/,,'` 632227fc13Smrg 642227fc13Smrgusage="\ 657b5fefc8SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 662227fc13Smrg 672227fc13SmrgCanonicalize a configuration name. 682227fc13Smrg 697b5fefc8SmrgOptions: 702227fc13Smrg -h, --help print this help, then exit 712227fc13Smrg -t, --time-stamp print date of last modification, then exit 722227fc13Smrg -v, --version print version number, then exit 732227fc13Smrg 742227fc13SmrgReport bugs and patches to <config-patches@gnu.org>." 752227fc13Smrg 762227fc13Smrgversion="\ 772227fc13SmrgGNU config.sub ($timestamp) 782227fc13Smrg 797b5fefc8SmrgCopyright 1992-2023 Free Software Foundation, Inc. 802227fc13Smrg 812227fc13SmrgThis is free software; see the source for copying conditions. There is NO 822227fc13Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 832227fc13Smrg 842227fc13Smrghelp=" 852227fc13SmrgTry \`$me --help' for more information." 862227fc13Smrg 872227fc13Smrg# Parse command line 882227fc13Smrgwhile test $# -gt 0 ; do 892227fc13Smrg case $1 in 902227fc13Smrg --time-stamp | --time* | -t ) 912227fc13Smrg echo "$timestamp" ; exit ;; 922227fc13Smrg --version | -v ) 932227fc13Smrg echo "$version" ; exit ;; 942227fc13Smrg --help | --h* | -h ) 952227fc13Smrg echo "$usage"; exit ;; 962227fc13Smrg -- ) # Stop option processing 972227fc13Smrg shift; break ;; 982227fc13Smrg - ) # Use stdin as input. 992227fc13Smrg break ;; 1002227fc13Smrg -* ) 1017b5fefc8Smrg echo "$me: invalid option $1$help" >&2 1022227fc13Smrg exit 1 ;; 1032227fc13Smrg 1042227fc13Smrg *local*) 1052227fc13Smrg # First pass through any local machine types. 1067b5fefc8Smrg echo "$1" 1072227fc13Smrg exit ;; 1082227fc13Smrg 1092227fc13Smrg * ) 1102227fc13Smrg break ;; 1112227fc13Smrg esac 1122227fc13Smrgdone 1132227fc13Smrg 1142227fc13Smrgcase $# in 1152227fc13Smrg 0) echo "$me: missing argument$help" >&2 1162227fc13Smrg exit 1;; 1172227fc13Smrg 1) ;; 1182227fc13Smrg *) echo "$me: too many arguments$help" >&2 1192227fc13Smrg exit 1;; 1202227fc13Smrgesac 1212227fc13Smrg 1227b5fefc8Smrg# Split fields of configuration type 1237b5fefc8Smrg# shellcheck disable=SC2162 1247b5fefc8Smrgsaved_IFS=$IFS 1257b5fefc8SmrgIFS="-" read field1 field2 field3 field4 <<EOF 1267b5fefc8Smrg$1 1277b5fefc8SmrgEOF 1287b5fefc8SmrgIFS=$saved_IFS 1292227fc13Smrg 1307b5fefc8Smrg# Separate into logical components for further validation 1317b5fefc8Smrgcase $1 in 1327b5fefc8Smrg *-*-*-*-*) 1337b5fefc8Smrg echo Invalid configuration \`"$1"\': more than four components >&2 1347b5fefc8Smrg exit 1 1352227fc13Smrg ;; 1367b5fefc8Smrg *-*-*-*) 1377b5fefc8Smrg basic_machine=$field1-$field2 1387b5fefc8Smrg basic_os=$field3-$field4 1392227fc13Smrg ;; 1407b5fefc8Smrg *-*-*) 1417b5fefc8Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 1427b5fefc8Smrg # parts 1437b5fefc8Smrg maybe_os=$field2-$field3 1447b5fefc8Smrg case $maybe_os in 1457b5fefc8Smrg nto-qnx* | linux-* | uclinux-uclibc* \ 1467b5fefc8Smrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 1477b5fefc8Smrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 1487b5fefc8Smrg | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) 1497b5fefc8Smrg basic_machine=$field1 1507b5fefc8Smrg basic_os=$maybe_os 1517b5fefc8Smrg ;; 1527b5fefc8Smrg android-linux) 1537b5fefc8Smrg basic_machine=$field1-unknown 1547b5fefc8Smrg basic_os=linux-android 1557b5fefc8Smrg ;; 1567b5fefc8Smrg *) 1577b5fefc8Smrg basic_machine=$field1-$field2 1587b5fefc8Smrg basic_os=$field3 1597b5fefc8Smrg ;; 1607b5fefc8Smrg esac 1612227fc13Smrg ;; 1627b5fefc8Smrg *-*) 1637b5fefc8Smrg # A lone config we happen to match not fitting any pattern 1647b5fefc8Smrg case $field1-$field2 in 1657b5fefc8Smrg decstation-3100) 1667b5fefc8Smrg basic_machine=mips-dec 1677b5fefc8Smrg basic_os= 1687b5fefc8Smrg ;; 1697b5fefc8Smrg *-*) 1707b5fefc8Smrg # Second component is usually, but not always the OS 1717b5fefc8Smrg case $field2 in 1727b5fefc8Smrg # Prevent following clause from handling this valid os 1737b5fefc8Smrg sun*os*) 1747b5fefc8Smrg basic_machine=$field1 1757b5fefc8Smrg basic_os=$field2 1767b5fefc8Smrg ;; 1777b5fefc8Smrg zephyr*) 1787b5fefc8Smrg basic_machine=$field1-unknown 1797b5fefc8Smrg basic_os=$field2 1807b5fefc8Smrg ;; 1817b5fefc8Smrg # Manufacturers 1827b5fefc8Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 1837b5fefc8Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 1847b5fefc8Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 1857b5fefc8Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 1867b5fefc8Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 1877b5fefc8Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 1887b5fefc8Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 1897b5fefc8Smrg | microblaze* | sim | cisco \ 1907b5fefc8Smrg | oki | wec | wrs | winbond) 1917b5fefc8Smrg basic_machine=$field1-$field2 1927b5fefc8Smrg basic_os= 1937b5fefc8Smrg ;; 1947b5fefc8Smrg *) 1957b5fefc8Smrg basic_machine=$field1 1967b5fefc8Smrg basic_os=$field2 1977b5fefc8Smrg ;; 1987b5fefc8Smrg esac 1997b5fefc8Smrg ;; 2007b5fefc8Smrg esac 2012227fc13Smrg ;; 2027b5fefc8Smrg *) 2037b5fefc8Smrg # Convert single-component short-hands not valid as part of 2047b5fefc8Smrg # multi-component configurations. 2057b5fefc8Smrg case $field1 in 2067b5fefc8Smrg 386bsd) 2077b5fefc8Smrg basic_machine=i386-pc 2087b5fefc8Smrg basic_os=bsd 2097b5fefc8Smrg ;; 2107b5fefc8Smrg a29khif) 2117b5fefc8Smrg basic_machine=a29k-amd 2127b5fefc8Smrg basic_os=udi 2137b5fefc8Smrg ;; 2147b5fefc8Smrg adobe68k) 2157b5fefc8Smrg basic_machine=m68010-adobe 2167b5fefc8Smrg basic_os=scout 2177b5fefc8Smrg ;; 2187b5fefc8Smrg alliant) 2197b5fefc8Smrg basic_machine=fx80-alliant 2207b5fefc8Smrg basic_os= 2217b5fefc8Smrg ;; 2227b5fefc8Smrg altos | altos3068) 2237b5fefc8Smrg basic_machine=m68k-altos 2247b5fefc8Smrg basic_os= 2257b5fefc8Smrg ;; 2267b5fefc8Smrg am29k) 2277b5fefc8Smrg basic_machine=a29k-none 2287b5fefc8Smrg basic_os=bsd 2297b5fefc8Smrg ;; 2307b5fefc8Smrg amdahl) 2317b5fefc8Smrg basic_machine=580-amdahl 2327b5fefc8Smrg basic_os=sysv 2337b5fefc8Smrg ;; 2347b5fefc8Smrg amiga) 2357b5fefc8Smrg basic_machine=m68k-unknown 2367b5fefc8Smrg basic_os= 2377b5fefc8Smrg ;; 2387b5fefc8Smrg amigaos | amigados) 2397b5fefc8Smrg basic_machine=m68k-unknown 2407b5fefc8Smrg basic_os=amigaos 2417b5fefc8Smrg ;; 2427b5fefc8Smrg amigaunix | amix) 2437b5fefc8Smrg basic_machine=m68k-unknown 2447b5fefc8Smrg basic_os=sysv4 2457b5fefc8Smrg ;; 2467b5fefc8Smrg apollo68) 2477b5fefc8Smrg basic_machine=m68k-apollo 2487b5fefc8Smrg basic_os=sysv 2497b5fefc8Smrg ;; 2507b5fefc8Smrg apollo68bsd) 2517b5fefc8Smrg basic_machine=m68k-apollo 2527b5fefc8Smrg basic_os=bsd 2537b5fefc8Smrg ;; 2547b5fefc8Smrg aros) 2557b5fefc8Smrg basic_machine=i386-pc 2567b5fefc8Smrg basic_os=aros 2577b5fefc8Smrg ;; 2587b5fefc8Smrg aux) 2597b5fefc8Smrg basic_machine=m68k-apple 2607b5fefc8Smrg basic_os=aux 2617b5fefc8Smrg ;; 2627b5fefc8Smrg balance) 2637b5fefc8Smrg basic_machine=ns32k-sequent 2647b5fefc8Smrg basic_os=dynix 2657b5fefc8Smrg ;; 2667b5fefc8Smrg blackfin) 2677b5fefc8Smrg basic_machine=bfin-unknown 2687b5fefc8Smrg basic_os=linux 2697b5fefc8Smrg ;; 2707b5fefc8Smrg cegcc) 2717b5fefc8Smrg basic_machine=arm-unknown 2727b5fefc8Smrg basic_os=cegcc 2737b5fefc8Smrg ;; 2747b5fefc8Smrg convex-c1) 2757b5fefc8Smrg basic_machine=c1-convex 2767b5fefc8Smrg basic_os=bsd 2777b5fefc8Smrg ;; 2787b5fefc8Smrg convex-c2) 2797b5fefc8Smrg basic_machine=c2-convex 2807b5fefc8Smrg basic_os=bsd 2817b5fefc8Smrg ;; 2827b5fefc8Smrg convex-c32) 2837b5fefc8Smrg basic_machine=c32-convex 2847b5fefc8Smrg basic_os=bsd 2857b5fefc8Smrg ;; 2867b5fefc8Smrg convex-c34) 2877b5fefc8Smrg basic_machine=c34-convex 2887b5fefc8Smrg basic_os=bsd 2897b5fefc8Smrg ;; 2907b5fefc8Smrg convex-c38) 2917b5fefc8Smrg basic_machine=c38-convex 2927b5fefc8Smrg basic_os=bsd 2937b5fefc8Smrg ;; 2947b5fefc8Smrg cray) 2957b5fefc8Smrg basic_machine=j90-cray 2967b5fefc8Smrg basic_os=unicos 2977b5fefc8Smrg ;; 2987b5fefc8Smrg crds | unos) 2997b5fefc8Smrg basic_machine=m68k-crds 3007b5fefc8Smrg basic_os= 3017b5fefc8Smrg ;; 3027b5fefc8Smrg da30) 3037b5fefc8Smrg basic_machine=m68k-da30 3047b5fefc8Smrg basic_os= 3057b5fefc8Smrg ;; 3067b5fefc8Smrg decstation | pmax | pmin | dec3100 | decstatn) 3077b5fefc8Smrg basic_machine=mips-dec 3087b5fefc8Smrg basic_os= 3097b5fefc8Smrg ;; 3107b5fefc8Smrg delta88) 3117b5fefc8Smrg basic_machine=m88k-motorola 3127b5fefc8Smrg basic_os=sysv3 3137b5fefc8Smrg ;; 3147b5fefc8Smrg dicos) 3157b5fefc8Smrg basic_machine=i686-pc 3167b5fefc8Smrg basic_os=dicos 3177b5fefc8Smrg ;; 3187b5fefc8Smrg djgpp) 3197b5fefc8Smrg basic_machine=i586-pc 3207b5fefc8Smrg basic_os=msdosdjgpp 3217b5fefc8Smrg ;; 3227b5fefc8Smrg ebmon29k) 3237b5fefc8Smrg basic_machine=a29k-amd 3247b5fefc8Smrg basic_os=ebmon 3257b5fefc8Smrg ;; 3267b5fefc8Smrg es1800 | OSE68k | ose68k | ose | OSE) 3277b5fefc8Smrg basic_machine=m68k-ericsson 3287b5fefc8Smrg basic_os=ose 3297b5fefc8Smrg ;; 3307b5fefc8Smrg gmicro) 3317b5fefc8Smrg basic_machine=tron-gmicro 3327b5fefc8Smrg basic_os=sysv 3337b5fefc8Smrg ;; 3347b5fefc8Smrg go32) 3357b5fefc8Smrg basic_machine=i386-pc 3367b5fefc8Smrg basic_os=go32 3377b5fefc8Smrg ;; 3387b5fefc8Smrg h8300hms) 3397b5fefc8Smrg basic_machine=h8300-hitachi 3407b5fefc8Smrg basic_os=hms 3417b5fefc8Smrg ;; 3427b5fefc8Smrg h8300xray) 3437b5fefc8Smrg basic_machine=h8300-hitachi 3447b5fefc8Smrg basic_os=xray 3457b5fefc8Smrg ;; 3467b5fefc8Smrg h8500hms) 3477b5fefc8Smrg basic_machine=h8500-hitachi 3487b5fefc8Smrg basic_os=hms 3497b5fefc8Smrg ;; 3507b5fefc8Smrg harris) 3517b5fefc8Smrg basic_machine=m88k-harris 3527b5fefc8Smrg basic_os=sysv3 3537b5fefc8Smrg ;; 3547b5fefc8Smrg hp300 | hp300hpux) 3557b5fefc8Smrg basic_machine=m68k-hp 3567b5fefc8Smrg basic_os=hpux 3577b5fefc8Smrg ;; 3587b5fefc8Smrg hp300bsd) 3597b5fefc8Smrg basic_machine=m68k-hp 3607b5fefc8Smrg basic_os=bsd 3617b5fefc8Smrg ;; 3627b5fefc8Smrg hppaosf) 3637b5fefc8Smrg basic_machine=hppa1.1-hp 3647b5fefc8Smrg basic_os=osf 3657b5fefc8Smrg ;; 3667b5fefc8Smrg hppro) 3677b5fefc8Smrg basic_machine=hppa1.1-hp 3687b5fefc8Smrg basic_os=proelf 3697b5fefc8Smrg ;; 3707b5fefc8Smrg i386mach) 3717b5fefc8Smrg basic_machine=i386-mach 3727b5fefc8Smrg basic_os=mach 3737b5fefc8Smrg ;; 3747b5fefc8Smrg isi68 | isi) 3757b5fefc8Smrg basic_machine=m68k-isi 3767b5fefc8Smrg basic_os=sysv 3777b5fefc8Smrg ;; 3787b5fefc8Smrg m68knommu) 3797b5fefc8Smrg basic_machine=m68k-unknown 3807b5fefc8Smrg basic_os=linux 3817b5fefc8Smrg ;; 3827b5fefc8Smrg magnum | m3230) 3837b5fefc8Smrg basic_machine=mips-mips 3847b5fefc8Smrg basic_os=sysv 3857b5fefc8Smrg ;; 3867b5fefc8Smrg merlin) 3877b5fefc8Smrg basic_machine=ns32k-utek 3887b5fefc8Smrg basic_os=sysv 3897b5fefc8Smrg ;; 3907b5fefc8Smrg mingw64) 3917b5fefc8Smrg basic_machine=x86_64-pc 3927b5fefc8Smrg basic_os=mingw64 3937b5fefc8Smrg ;; 3947b5fefc8Smrg mingw32) 3957b5fefc8Smrg basic_machine=i686-pc 3967b5fefc8Smrg basic_os=mingw32 3977b5fefc8Smrg ;; 3987b5fefc8Smrg mingw32ce) 3997b5fefc8Smrg basic_machine=arm-unknown 4007b5fefc8Smrg basic_os=mingw32ce 4017b5fefc8Smrg ;; 4027b5fefc8Smrg monitor) 4037b5fefc8Smrg basic_machine=m68k-rom68k 4047b5fefc8Smrg basic_os=coff 4057b5fefc8Smrg ;; 4067b5fefc8Smrg morphos) 4077b5fefc8Smrg basic_machine=powerpc-unknown 4087b5fefc8Smrg basic_os=morphos 4097b5fefc8Smrg ;; 4107b5fefc8Smrg moxiebox) 4117b5fefc8Smrg basic_machine=moxie-unknown 4127b5fefc8Smrg basic_os=moxiebox 4137b5fefc8Smrg ;; 4147b5fefc8Smrg msdos) 4157b5fefc8Smrg basic_machine=i386-pc 4167b5fefc8Smrg basic_os=msdos 4177b5fefc8Smrg ;; 4187b5fefc8Smrg msys) 4197b5fefc8Smrg basic_machine=i686-pc 4207b5fefc8Smrg basic_os=msys 4217b5fefc8Smrg ;; 4227b5fefc8Smrg mvs) 4237b5fefc8Smrg basic_machine=i370-ibm 4247b5fefc8Smrg basic_os=mvs 4257b5fefc8Smrg ;; 4267b5fefc8Smrg nacl) 4277b5fefc8Smrg basic_machine=le32-unknown 4287b5fefc8Smrg basic_os=nacl 4297b5fefc8Smrg ;; 4307b5fefc8Smrg ncr3000) 4317b5fefc8Smrg basic_machine=i486-ncr 4327b5fefc8Smrg basic_os=sysv4 4337b5fefc8Smrg ;; 4347b5fefc8Smrg netbsd386) 4357b5fefc8Smrg basic_machine=i386-pc 4367b5fefc8Smrg basic_os=netbsd 4377b5fefc8Smrg ;; 4387b5fefc8Smrg netwinder) 4397b5fefc8Smrg basic_machine=armv4l-rebel 4407b5fefc8Smrg basic_os=linux 4417b5fefc8Smrg ;; 4427b5fefc8Smrg news | news700 | news800 | news900) 4437b5fefc8Smrg basic_machine=m68k-sony 4447b5fefc8Smrg basic_os=newsos 4457b5fefc8Smrg ;; 4467b5fefc8Smrg news1000) 4477b5fefc8Smrg basic_machine=m68030-sony 4487b5fefc8Smrg basic_os=newsos 4497b5fefc8Smrg ;; 4507b5fefc8Smrg necv70) 4517b5fefc8Smrg basic_machine=v70-nec 4527b5fefc8Smrg basic_os=sysv 4537b5fefc8Smrg ;; 4547b5fefc8Smrg nh3000) 4557b5fefc8Smrg basic_machine=m68k-harris 4567b5fefc8Smrg basic_os=cxux 4577b5fefc8Smrg ;; 4587b5fefc8Smrg nh[45]000) 4597b5fefc8Smrg basic_machine=m88k-harris 4607b5fefc8Smrg basic_os=cxux 4617b5fefc8Smrg ;; 4627b5fefc8Smrg nindy960) 4637b5fefc8Smrg basic_machine=i960-intel 4647b5fefc8Smrg basic_os=nindy 4657b5fefc8Smrg ;; 4667b5fefc8Smrg mon960) 4677b5fefc8Smrg basic_machine=i960-intel 4687b5fefc8Smrg basic_os=mon960 4697b5fefc8Smrg ;; 4707b5fefc8Smrg nonstopux) 4717b5fefc8Smrg basic_machine=mips-compaq 4727b5fefc8Smrg basic_os=nonstopux 4737b5fefc8Smrg ;; 4747b5fefc8Smrg os400) 4757b5fefc8Smrg basic_machine=powerpc-ibm 4767b5fefc8Smrg basic_os=os400 4777b5fefc8Smrg ;; 4787b5fefc8Smrg OSE68000 | ose68000) 4797b5fefc8Smrg basic_machine=m68000-ericsson 4807b5fefc8Smrg basic_os=ose 4817b5fefc8Smrg ;; 4827b5fefc8Smrg os68k) 4837b5fefc8Smrg basic_machine=m68k-none 4847b5fefc8Smrg basic_os=os68k 4857b5fefc8Smrg ;; 4867b5fefc8Smrg paragon) 4877b5fefc8Smrg basic_machine=i860-intel 4887b5fefc8Smrg basic_os=osf 4897b5fefc8Smrg ;; 4907b5fefc8Smrg parisc) 4917b5fefc8Smrg basic_machine=hppa-unknown 4927b5fefc8Smrg basic_os=linux 4937b5fefc8Smrg ;; 4947b5fefc8Smrg psp) 4957b5fefc8Smrg basic_machine=mipsallegrexel-sony 4967b5fefc8Smrg basic_os=psp 4977b5fefc8Smrg ;; 4987b5fefc8Smrg pw32) 4997b5fefc8Smrg basic_machine=i586-unknown 5007b5fefc8Smrg basic_os=pw32 5017b5fefc8Smrg ;; 5027b5fefc8Smrg rdos | rdos64) 5037b5fefc8Smrg basic_machine=x86_64-pc 5047b5fefc8Smrg basic_os=rdos 5057b5fefc8Smrg ;; 5067b5fefc8Smrg rdos32) 5077b5fefc8Smrg basic_machine=i386-pc 5087b5fefc8Smrg basic_os=rdos 5097b5fefc8Smrg ;; 5107b5fefc8Smrg rom68k) 5117b5fefc8Smrg basic_machine=m68k-rom68k 5127b5fefc8Smrg basic_os=coff 5137b5fefc8Smrg ;; 5147b5fefc8Smrg sa29200) 5157b5fefc8Smrg basic_machine=a29k-amd 5167b5fefc8Smrg basic_os=udi 5177b5fefc8Smrg ;; 5187b5fefc8Smrg sei) 5197b5fefc8Smrg basic_machine=mips-sei 5207b5fefc8Smrg basic_os=seiux 5217b5fefc8Smrg ;; 5227b5fefc8Smrg sequent) 5237b5fefc8Smrg basic_machine=i386-sequent 5247b5fefc8Smrg basic_os= 5257b5fefc8Smrg ;; 5267b5fefc8Smrg sps7) 5277b5fefc8Smrg basic_machine=m68k-bull 5287b5fefc8Smrg basic_os=sysv2 5297b5fefc8Smrg ;; 5307b5fefc8Smrg st2000) 5317b5fefc8Smrg basic_machine=m68k-tandem 5327b5fefc8Smrg basic_os= 5337b5fefc8Smrg ;; 5347b5fefc8Smrg stratus) 5357b5fefc8Smrg basic_machine=i860-stratus 5367b5fefc8Smrg basic_os=sysv4 5377b5fefc8Smrg ;; 5387b5fefc8Smrg sun2) 5397b5fefc8Smrg basic_machine=m68000-sun 5407b5fefc8Smrg basic_os= 5417b5fefc8Smrg ;; 5427b5fefc8Smrg sun2os3) 5437b5fefc8Smrg basic_machine=m68000-sun 5447b5fefc8Smrg basic_os=sunos3 5457b5fefc8Smrg ;; 5467b5fefc8Smrg sun2os4) 5477b5fefc8Smrg basic_machine=m68000-sun 5487b5fefc8Smrg basic_os=sunos4 5497b5fefc8Smrg ;; 5507b5fefc8Smrg sun3) 5517b5fefc8Smrg basic_machine=m68k-sun 5527b5fefc8Smrg basic_os= 5537b5fefc8Smrg ;; 5547b5fefc8Smrg sun3os3) 5557b5fefc8Smrg basic_machine=m68k-sun 5567b5fefc8Smrg basic_os=sunos3 5577b5fefc8Smrg ;; 5587b5fefc8Smrg sun3os4) 5597b5fefc8Smrg basic_machine=m68k-sun 5607b5fefc8Smrg basic_os=sunos4 5617b5fefc8Smrg ;; 5627b5fefc8Smrg sun4) 5637b5fefc8Smrg basic_machine=sparc-sun 5647b5fefc8Smrg basic_os= 5657b5fefc8Smrg ;; 5667b5fefc8Smrg sun4os3) 5677b5fefc8Smrg basic_machine=sparc-sun 5687b5fefc8Smrg basic_os=sunos3 5697b5fefc8Smrg ;; 5707b5fefc8Smrg sun4os4) 5717b5fefc8Smrg basic_machine=sparc-sun 5727b5fefc8Smrg basic_os=sunos4 5737b5fefc8Smrg ;; 5747b5fefc8Smrg sun4sol2) 5757b5fefc8Smrg basic_machine=sparc-sun 5767b5fefc8Smrg basic_os=solaris2 5777b5fefc8Smrg ;; 5787b5fefc8Smrg sun386 | sun386i | roadrunner) 5797b5fefc8Smrg basic_machine=i386-sun 5807b5fefc8Smrg basic_os= 5817b5fefc8Smrg ;; 5827b5fefc8Smrg sv1) 5837b5fefc8Smrg basic_machine=sv1-cray 5847b5fefc8Smrg basic_os=unicos 5857b5fefc8Smrg ;; 5867b5fefc8Smrg symmetry) 5877b5fefc8Smrg basic_machine=i386-sequent 5887b5fefc8Smrg basic_os=dynix 5897b5fefc8Smrg ;; 5907b5fefc8Smrg t3e) 5917b5fefc8Smrg basic_machine=alphaev5-cray 5927b5fefc8Smrg basic_os=unicos 5937b5fefc8Smrg ;; 5947b5fefc8Smrg t90) 5957b5fefc8Smrg basic_machine=t90-cray 5967b5fefc8Smrg basic_os=unicos 5977b5fefc8Smrg ;; 5987b5fefc8Smrg toad1) 5997b5fefc8Smrg basic_machine=pdp10-xkl 6007b5fefc8Smrg basic_os=tops20 6017b5fefc8Smrg ;; 6027b5fefc8Smrg tpf) 6037b5fefc8Smrg basic_machine=s390x-ibm 6047b5fefc8Smrg basic_os=tpf 6057b5fefc8Smrg ;; 6067b5fefc8Smrg udi29k) 6077b5fefc8Smrg basic_machine=a29k-amd 6087b5fefc8Smrg basic_os=udi 6097b5fefc8Smrg ;; 6107b5fefc8Smrg ultra3) 6117b5fefc8Smrg basic_machine=a29k-nyu 6127b5fefc8Smrg basic_os=sym1 6137b5fefc8Smrg ;; 6147b5fefc8Smrg v810 | necv810) 6157b5fefc8Smrg basic_machine=v810-nec 6167b5fefc8Smrg basic_os=none 6177b5fefc8Smrg ;; 6187b5fefc8Smrg vaxv) 6197b5fefc8Smrg basic_machine=vax-dec 6207b5fefc8Smrg basic_os=sysv 6217b5fefc8Smrg ;; 6227b5fefc8Smrg vms) 6237b5fefc8Smrg basic_machine=vax-dec 6247b5fefc8Smrg basic_os=vms 6257b5fefc8Smrg ;; 6267b5fefc8Smrg vsta) 6277b5fefc8Smrg basic_machine=i386-pc 6287b5fefc8Smrg basic_os=vsta 6297b5fefc8Smrg ;; 6307b5fefc8Smrg vxworks960) 6317b5fefc8Smrg basic_machine=i960-wrs 6327b5fefc8Smrg basic_os=vxworks 6337b5fefc8Smrg ;; 6347b5fefc8Smrg vxworks68) 6357b5fefc8Smrg basic_machine=m68k-wrs 6367b5fefc8Smrg basic_os=vxworks 6377b5fefc8Smrg ;; 6387b5fefc8Smrg vxworks29k) 6397b5fefc8Smrg basic_machine=a29k-wrs 6407b5fefc8Smrg basic_os=vxworks 6417b5fefc8Smrg ;; 6427b5fefc8Smrg xbox) 6437b5fefc8Smrg basic_machine=i686-pc 6447b5fefc8Smrg basic_os=mingw32 6457b5fefc8Smrg ;; 6467b5fefc8Smrg ymp) 6477b5fefc8Smrg basic_machine=ymp-cray 6487b5fefc8Smrg basic_os=unicos 6497b5fefc8Smrg ;; 6507b5fefc8Smrg *) 6517b5fefc8Smrg basic_machine=$1 6527b5fefc8Smrg basic_os= 6537b5fefc8Smrg ;; 6547b5fefc8Smrg esac 6552227fc13Smrg ;; 6567b5fefc8Smrgesac 6577b5fefc8Smrg 6587b5fefc8Smrg# Decode 1-component or ad-hoc basic machines 6597b5fefc8Smrgcase $basic_machine in 6607b5fefc8Smrg # Here we handle the default manufacturer of certain CPU types. It is in 6617b5fefc8Smrg # some cases the only manufacturer, in others, it is the most popular. 6627b5fefc8Smrg w89k) 6637b5fefc8Smrg cpu=hppa1.1 6647b5fefc8Smrg vendor=winbond 6652227fc13Smrg ;; 6667b5fefc8Smrg op50n) 6677b5fefc8Smrg cpu=hppa1.1 6687b5fefc8Smrg vendor=oki 6692227fc13Smrg ;; 6707b5fefc8Smrg op60c) 6717b5fefc8Smrg cpu=hppa1.1 6727b5fefc8Smrg vendor=oki 6732227fc13Smrg ;; 6747b5fefc8Smrg ibm*) 6757b5fefc8Smrg cpu=i370 6767b5fefc8Smrg vendor=ibm 6772227fc13Smrg ;; 6787b5fefc8Smrg orion105) 6797b5fefc8Smrg cpu=clipper 6807b5fefc8Smrg vendor=highlevel 6812227fc13Smrg ;; 6827b5fefc8Smrg mac | mpw | mac-mpw) 6837b5fefc8Smrg cpu=m68k 6847b5fefc8Smrg vendor=apple 6852227fc13Smrg ;; 6867b5fefc8Smrg pmac | pmac-mpw) 6877b5fefc8Smrg cpu=powerpc 6887b5fefc8Smrg vendor=apple 6892227fc13Smrg ;; 6902227fc13Smrg 6912227fc13Smrg # Recognize the various machine names and aliases which stand 6922227fc13Smrg # for a CPU type and a company and sometimes even an OS. 6932227fc13Smrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 6947b5fefc8Smrg cpu=m68000 6957b5fefc8Smrg vendor=att 6962227fc13Smrg ;; 6972227fc13Smrg 3b*) 6987b5fefc8Smrg cpu=we32k 6997b5fefc8Smrg vendor=att 7002227fc13Smrg ;; 7012227fc13Smrg bluegene*) 7027b5fefc8Smrg cpu=powerpc 7037b5fefc8Smrg vendor=ibm 7047b5fefc8Smrg basic_os=cnk 7052227fc13Smrg ;; 7062227fc13Smrg decsystem10* | dec10*) 7077b5fefc8Smrg cpu=pdp10 7087b5fefc8Smrg vendor=dec 7097b5fefc8Smrg basic_os=tops10 7102227fc13Smrg ;; 7112227fc13Smrg decsystem20* | dec20*) 7127b5fefc8Smrg cpu=pdp10 7137b5fefc8Smrg vendor=dec 7147b5fefc8Smrg basic_os=tops20 7152227fc13Smrg ;; 7162227fc13Smrg delta | 3300 | motorola-3300 | motorola-delta \ 7172227fc13Smrg | 3300-motorola | delta-motorola) 7187b5fefc8Smrg cpu=m68k 7197b5fefc8Smrg vendor=motorola 7202227fc13Smrg ;; 7217b5fefc8Smrg dpx2*) 7227b5fefc8Smrg cpu=m68k 7237b5fefc8Smrg vendor=bull 7247b5fefc8Smrg basic_os=sysv3 7252227fc13Smrg ;; 7262227fc13Smrg encore | umax | mmax) 7277b5fefc8Smrg cpu=ns32k 7287b5fefc8Smrg vendor=encore 7292227fc13Smrg ;; 7307b5fefc8Smrg elxsi) 7317b5fefc8Smrg cpu=elxsi 7327b5fefc8Smrg vendor=elxsi 7337b5fefc8Smrg basic_os=${basic_os:-bsd} 7342227fc13Smrg ;; 7352227fc13Smrg fx2800) 7367b5fefc8Smrg cpu=i860 7377b5fefc8Smrg vendor=alliant 7382227fc13Smrg ;; 7392227fc13Smrg genix) 7407b5fefc8Smrg cpu=ns32k 7417b5fefc8Smrg vendor=ns 7422227fc13Smrg ;; 7432227fc13Smrg h3050r* | hiux*) 7447b5fefc8Smrg cpu=hppa1.1 7457b5fefc8Smrg vendor=hitachi 7467b5fefc8Smrg basic_os=hiuxwe2 7472227fc13Smrg ;; 7482227fc13Smrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 7497b5fefc8Smrg cpu=hppa1.0 7507b5fefc8Smrg vendor=hp 7512227fc13Smrg ;; 7522227fc13Smrg hp9k2[0-9][0-9] | hp9k31[0-9]) 7537b5fefc8Smrg cpu=m68000 7547b5fefc8Smrg vendor=hp 7552227fc13Smrg ;; 7562227fc13Smrg hp9k3[2-9][0-9]) 7577b5fefc8Smrg cpu=m68k 7587b5fefc8Smrg vendor=hp 7592227fc13Smrg ;; 7602227fc13Smrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 7617b5fefc8Smrg cpu=hppa1.0 7627b5fefc8Smrg vendor=hp 7632227fc13Smrg ;; 7642227fc13Smrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 7657b5fefc8Smrg cpu=hppa1.1 7667b5fefc8Smrg vendor=hp 7672227fc13Smrg ;; 7682227fc13Smrg hp9k78[0-9] | hp78[0-9]) 7692227fc13Smrg # FIXME: really hppa2.0-hp 7707b5fefc8Smrg cpu=hppa1.1 7717b5fefc8Smrg vendor=hp 7722227fc13Smrg ;; 7732227fc13Smrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 7742227fc13Smrg # FIXME: really hppa2.0-hp 7757b5fefc8Smrg cpu=hppa1.1 7767b5fefc8Smrg vendor=hp 7772227fc13Smrg ;; 7782227fc13Smrg hp9k8[0-9][13679] | hp8[0-9][13679]) 7797b5fefc8Smrg cpu=hppa1.1 7807b5fefc8Smrg vendor=hp 7812227fc13Smrg ;; 7822227fc13Smrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 7837b5fefc8Smrg cpu=hppa1.0 7847b5fefc8Smrg vendor=hp 7852227fc13Smrg ;; 7862227fc13Smrg i*86v32) 7877b5fefc8Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7887b5fefc8Smrg vendor=pc 7897b5fefc8Smrg basic_os=sysv32 7902227fc13Smrg ;; 7912227fc13Smrg i*86v4*) 7927b5fefc8Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7937b5fefc8Smrg vendor=pc 7947b5fefc8Smrg basic_os=sysv4 7952227fc13Smrg ;; 7962227fc13Smrg i*86v) 7977b5fefc8Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7987b5fefc8Smrg vendor=pc 7997b5fefc8Smrg basic_os=sysv 8002227fc13Smrg ;; 8012227fc13Smrg i*86sol2) 8027b5fefc8Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 8037b5fefc8Smrg vendor=pc 8047b5fefc8Smrg basic_os=solaris2 8052227fc13Smrg ;; 8067b5fefc8Smrg j90 | j90-cray) 8077b5fefc8Smrg cpu=j90 8087b5fefc8Smrg vendor=cray 8097b5fefc8Smrg basic_os=${basic_os:-unicos} 8102227fc13Smrg ;; 8112227fc13Smrg iris | iris4d) 8127b5fefc8Smrg cpu=mips 8137b5fefc8Smrg vendor=sgi 8147b5fefc8Smrg case $basic_os in 8157b5fefc8Smrg irix*) 8162227fc13Smrg ;; 8172227fc13Smrg *) 8187b5fefc8Smrg basic_os=irix4 8192227fc13Smrg ;; 8202227fc13Smrg esac 8212227fc13Smrg ;; 8222227fc13Smrg miniframe) 8237b5fefc8Smrg cpu=m68000 8247b5fefc8Smrg vendor=convergent 8252227fc13Smrg ;; 8267b5fefc8Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 8277b5fefc8Smrg cpu=m68k 8287b5fefc8Smrg vendor=atari 8297b5fefc8Smrg basic_os=mint 8302227fc13Smrg ;; 8312227fc13Smrg news-3600 | risc-news) 8327b5fefc8Smrg cpu=mips 8337b5fefc8Smrg vendor=sony 8347b5fefc8Smrg basic_os=newsos 8357b5fefc8Smrg ;; 8367b5fefc8Smrg next | m*-next) 8377b5fefc8Smrg cpu=m68k 8387b5fefc8Smrg vendor=next 8397b5fefc8Smrg case $basic_os in 8407b5fefc8Smrg openstep*) 8417b5fefc8Smrg ;; 8427b5fefc8Smrg nextstep*) 8432227fc13Smrg ;; 8447b5fefc8Smrg ns2*) 8457b5fefc8Smrg basic_os=nextstep2 8462227fc13Smrg ;; 8472227fc13Smrg *) 8487b5fefc8Smrg basic_os=nextstep3 8492227fc13Smrg ;; 8502227fc13Smrg esac 8512227fc13Smrg ;; 8522227fc13Smrg np1) 8537b5fefc8Smrg cpu=np1 8547b5fefc8Smrg vendor=gould 8552227fc13Smrg ;; 8562227fc13Smrg op50n-* | op60c-*) 8577b5fefc8Smrg cpu=hppa1.1 8587b5fefc8Smrg vendor=oki 8597b5fefc8Smrg basic_os=proelf 8602227fc13Smrg ;; 8612227fc13Smrg pa-hitachi) 8627b5fefc8Smrg cpu=hppa1.1 8637b5fefc8Smrg vendor=hitachi 8647b5fefc8Smrg basic_os=hiuxwe2 8652227fc13Smrg ;; 8662227fc13Smrg pbd) 8677b5fefc8Smrg cpu=sparc 8687b5fefc8Smrg vendor=tti 8692227fc13Smrg ;; 8702227fc13Smrg pbb) 8717b5fefc8Smrg cpu=m68k 8727b5fefc8Smrg vendor=tti 8732227fc13Smrg ;; 8747b5fefc8Smrg pc532) 8757b5fefc8Smrg cpu=ns32k 8767b5fefc8Smrg vendor=pc532 8772227fc13Smrg ;; 8782227fc13Smrg pn) 8797b5fefc8Smrg cpu=pn 8807b5fefc8Smrg vendor=gould 8812227fc13Smrg ;; 8827b5fefc8Smrg power) 8837b5fefc8Smrg cpu=power 8847b5fefc8Smrg vendor=ibm 8852227fc13Smrg ;; 8862227fc13Smrg ps2) 8877b5fefc8Smrg cpu=i386 8887b5fefc8Smrg vendor=ibm 8892227fc13Smrg ;; 8902227fc13Smrg rm[46]00) 8917b5fefc8Smrg cpu=mips 8927b5fefc8Smrg vendor=siemens 8932227fc13Smrg ;; 8942227fc13Smrg rtpc | rtpc-*) 8957b5fefc8Smrg cpu=romp 8967b5fefc8Smrg vendor=ibm 8972227fc13Smrg ;; 8987b5fefc8Smrg sde) 8997b5fefc8Smrg cpu=mipsisa32 9007b5fefc8Smrg vendor=sde 9017b5fefc8Smrg basic_os=${basic_os:-elf} 9022227fc13Smrg ;; 9037b5fefc8Smrg simso-wrs) 9047b5fefc8Smrg cpu=sparclite 9057b5fefc8Smrg vendor=wrs 9067b5fefc8Smrg basic_os=vxworks 9072227fc13Smrg ;; 9087b5fefc8Smrg tower | tower-32) 9097b5fefc8Smrg cpu=m68k 9107b5fefc8Smrg vendor=ncr 9112227fc13Smrg ;; 9127b5fefc8Smrg vpp*|vx|vx-*) 9137b5fefc8Smrg cpu=f301 9147b5fefc8Smrg vendor=fujitsu 9152227fc13Smrg ;; 9167b5fefc8Smrg w65) 9177b5fefc8Smrg cpu=w65 9187b5fefc8Smrg vendor=wdc 9192227fc13Smrg ;; 9207b5fefc8Smrg w89k-*) 9217b5fefc8Smrg cpu=hppa1.1 9227b5fefc8Smrg vendor=winbond 9237b5fefc8Smrg basic_os=proelf 9242227fc13Smrg ;; 9257b5fefc8Smrg none) 9267b5fefc8Smrg cpu=none 9277b5fefc8Smrg vendor=none 9282227fc13Smrg ;; 9297b5fefc8Smrg leon|leon[3-9]) 9307b5fefc8Smrg cpu=sparc 9317b5fefc8Smrg vendor=$basic_machine 9322227fc13Smrg ;; 9337b5fefc8Smrg leon-*|leon[3-9]-*) 9347b5fefc8Smrg cpu=sparc 9357b5fefc8Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 9362227fc13Smrg ;; 9377b5fefc8Smrg 9387b5fefc8Smrg *-*) 9397b5fefc8Smrg # shellcheck disable=SC2162 9407b5fefc8Smrg saved_IFS=$IFS 9417b5fefc8Smrg IFS="-" read cpu vendor <<EOF 9427b5fefc8Smrg$basic_machine 9437b5fefc8SmrgEOF 9447b5fefc8Smrg IFS=$saved_IFS 9452227fc13Smrg ;; 9467b5fefc8Smrg # We use `pc' rather than `unknown' 9477b5fefc8Smrg # because (1) that's what they normally are, and 9487b5fefc8Smrg # (2) the word "unknown" tends to confuse beginning users. 9497b5fefc8Smrg i*86 | x86_64) 9507b5fefc8Smrg cpu=$basic_machine 9517b5fefc8Smrg vendor=pc 9522227fc13Smrg ;; 9537b5fefc8Smrg # These rules are duplicated from below for sake of the special case above; 9547b5fefc8Smrg # i.e. things that normalized to x86 arches should also default to "pc" 9557b5fefc8Smrg pc98) 9567b5fefc8Smrg cpu=i386 9577b5fefc8Smrg vendor=pc 9582227fc13Smrg ;; 9597b5fefc8Smrg x64 | amd64) 9607b5fefc8Smrg cpu=x86_64 9617b5fefc8Smrg vendor=pc 9622227fc13Smrg ;; 9637b5fefc8Smrg # Recognize the basic CPU types without company name. 9647b5fefc8Smrg *) 9657b5fefc8Smrg cpu=$basic_machine 9667b5fefc8Smrg vendor=unknown 9672227fc13Smrg ;; 9687b5fefc8Smrgesac 9697b5fefc8Smrg 9707b5fefc8Smrgunset -v basic_machine 9717b5fefc8Smrg 9727b5fefc8Smrg# Decode basic machines in the full and proper CPU-Company form. 9737b5fefc8Smrgcase $cpu-$vendor in 9747b5fefc8Smrg # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 9757b5fefc8Smrg # some cases the only manufacturer, in others, it is the most popular. 9767b5fefc8Smrg craynv-unknown) 9777b5fefc8Smrg vendor=cray 9787b5fefc8Smrg basic_os=${basic_os:-unicosmp} 9792227fc13Smrg ;; 9807b5fefc8Smrg c90-unknown | c90-cray) 9817b5fefc8Smrg vendor=cray 9827b5fefc8Smrg basic_os=${Basic_os:-unicos} 9832227fc13Smrg ;; 9847b5fefc8Smrg fx80-unknown) 9857b5fefc8Smrg vendor=alliant 9862227fc13Smrg ;; 9877b5fefc8Smrg romp-unknown) 9887b5fefc8Smrg vendor=ibm 9892227fc13Smrg ;; 9907b5fefc8Smrg mmix-unknown) 9917b5fefc8Smrg vendor=knuth 9922227fc13Smrg ;; 9937b5fefc8Smrg microblaze-unknown | microblazeel-unknown) 9947b5fefc8Smrg vendor=xilinx 9952227fc13Smrg ;; 9967b5fefc8Smrg rs6000-unknown) 9977b5fefc8Smrg vendor=ibm 9982227fc13Smrg ;; 9997b5fefc8Smrg vax-unknown) 10007b5fefc8Smrg vendor=dec 10012227fc13Smrg ;; 10027b5fefc8Smrg pdp11-unknown) 10037b5fefc8Smrg vendor=dec 10042227fc13Smrg ;; 10057b5fefc8Smrg we32k-unknown) 10067b5fefc8Smrg vendor=att 10072227fc13Smrg ;; 10087b5fefc8Smrg cydra-unknown) 10097b5fefc8Smrg vendor=cydrome 10102227fc13Smrg ;; 10117b5fefc8Smrg i370-ibm*) 10127b5fefc8Smrg vendor=ibm 10132227fc13Smrg ;; 10147b5fefc8Smrg orion-unknown) 10157b5fefc8Smrg vendor=highlevel 10162227fc13Smrg ;; 10177b5fefc8Smrg xps-unknown | xps100-unknown) 10187b5fefc8Smrg cpu=xps100 10197b5fefc8Smrg vendor=honeywell 10202227fc13Smrg ;; 10217b5fefc8Smrg 10227b5fefc8Smrg # Here we normalize CPU types with a missing or matching vendor 10237b5fefc8Smrg armh-unknown | armh-alt) 10247b5fefc8Smrg cpu=armv7l 10257b5fefc8Smrg vendor=alt 10267b5fefc8Smrg basic_os=${basic_os:-linux-gnueabihf} 10272227fc13Smrg ;; 10287b5fefc8Smrg dpx20-unknown | dpx20-bull) 10297b5fefc8Smrg cpu=rs6000 10307b5fefc8Smrg vendor=bull 10317b5fefc8Smrg basic_os=${basic_os:-bosx} 10322227fc13Smrg ;; 10337b5fefc8Smrg 10347b5fefc8Smrg # Here we normalize CPU types irrespective of the vendor 10357b5fefc8Smrg amd64-*) 10367b5fefc8Smrg cpu=x86_64 10372227fc13Smrg ;; 10387b5fefc8Smrg blackfin-*) 10397b5fefc8Smrg cpu=bfin 10407b5fefc8Smrg basic_os=linux 10412227fc13Smrg ;; 10427b5fefc8Smrg c54x-*) 10437b5fefc8Smrg cpu=tic54x 10442227fc13Smrg ;; 10457b5fefc8Smrg c55x-*) 10467b5fefc8Smrg cpu=tic55x 10472227fc13Smrg ;; 10487b5fefc8Smrg c6x-*) 10497b5fefc8Smrg cpu=tic6x 10502227fc13Smrg ;; 10517b5fefc8Smrg e500v[12]-*) 10527b5fefc8Smrg cpu=powerpc 10537b5fefc8Smrg basic_os=${basic_os}"spe" 10542227fc13Smrg ;; 10557b5fefc8Smrg mips3*-*) 10567b5fefc8Smrg cpu=mips64 10572227fc13Smrg ;; 10587b5fefc8Smrg ms1-*) 10597b5fefc8Smrg cpu=mt 10602227fc13Smrg ;; 10617b5fefc8Smrg m68knommu-*) 10627b5fefc8Smrg cpu=m68k 10637b5fefc8Smrg basic_os=linux 10642227fc13Smrg ;; 10657b5fefc8Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 10667b5fefc8Smrg cpu=s12z 10672227fc13Smrg ;; 10687b5fefc8Smrg openrisc-*) 10697b5fefc8Smrg cpu=or32 10702227fc13Smrg ;; 10717b5fefc8Smrg parisc-*) 10727b5fefc8Smrg cpu=hppa 10737b5fefc8Smrg basic_os=linux 10742227fc13Smrg ;; 10757b5fefc8Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 10767b5fefc8Smrg cpu=i586 10772227fc13Smrg ;; 10787b5fefc8Smrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) 10797b5fefc8Smrg cpu=i686 10802227fc13Smrg ;; 10817b5fefc8Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 10827b5fefc8Smrg cpu=i686 10832227fc13Smrg ;; 10847b5fefc8Smrg pentium4-*) 10857b5fefc8Smrg cpu=i786 10862227fc13Smrg ;; 10877b5fefc8Smrg pc98-*) 10887b5fefc8Smrg cpu=i386 10892227fc13Smrg ;; 10907b5fefc8Smrg ppc-* | ppcbe-*) 10917b5fefc8Smrg cpu=powerpc 10922227fc13Smrg ;; 10937b5fefc8Smrg ppcle-* | powerpclittle-*) 10947b5fefc8Smrg cpu=powerpcle 10952227fc13Smrg ;; 10967b5fefc8Smrg ppc64-*) 10977b5fefc8Smrg cpu=powerpc64 10982227fc13Smrg ;; 10997b5fefc8Smrg ppc64le-* | powerpc64little-*) 11007b5fefc8Smrg cpu=powerpc64le 11012227fc13Smrg ;; 11027b5fefc8Smrg sb1-*) 11037b5fefc8Smrg cpu=mipsisa64sb1 11042227fc13Smrg ;; 11057b5fefc8Smrg sb1el-*) 11067b5fefc8Smrg cpu=mipsisa64sb1el 11072227fc13Smrg ;; 11087b5fefc8Smrg sh5e[lb]-*) 11097b5fefc8Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 11102227fc13Smrg ;; 11117b5fefc8Smrg spur-*) 11127b5fefc8Smrg cpu=spur 11132227fc13Smrg ;; 11147b5fefc8Smrg strongarm-* | thumb-*) 11157b5fefc8Smrg cpu=arm 11162227fc13Smrg ;; 11177b5fefc8Smrg tx39-*) 11187b5fefc8Smrg cpu=mipstx39 11192227fc13Smrg ;; 11207b5fefc8Smrg tx39el-*) 11217b5fefc8Smrg cpu=mipstx39el 11222227fc13Smrg ;; 11237b5fefc8Smrg x64-*) 11247b5fefc8Smrg cpu=x86_64 11252227fc13Smrg ;; 11267b5fefc8Smrg xscale-* | xscalee[bl]-*) 11277b5fefc8Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 11282227fc13Smrg ;; 11297b5fefc8Smrg arm64-* | aarch64le-*) 11307b5fefc8Smrg cpu=aarch64 11312227fc13Smrg ;; 11327b5fefc8Smrg 11337b5fefc8Smrg # Recognize the canonical CPU Types that limit and/or modify the 11347b5fefc8Smrg # company names they are paired with. 11357b5fefc8Smrg cr16-*) 11367b5fefc8Smrg basic_os=${basic_os:-elf} 11372227fc13Smrg ;; 11387b5fefc8Smrg crisv32-* | etraxfs*-*) 11397b5fefc8Smrg cpu=crisv32 11407b5fefc8Smrg vendor=axis 11412227fc13Smrg ;; 11427b5fefc8Smrg cris-* | etrax*-*) 11437b5fefc8Smrg cpu=cris 11447b5fefc8Smrg vendor=axis 11452227fc13Smrg ;; 11467b5fefc8Smrg crx-*) 11477b5fefc8Smrg basic_os=${basic_os:-elf} 11482227fc13Smrg ;; 11497b5fefc8Smrg neo-tandem) 11507b5fefc8Smrg cpu=neo 11517b5fefc8Smrg vendor=tandem 11522227fc13Smrg ;; 11537b5fefc8Smrg nse-tandem) 11547b5fefc8Smrg cpu=nse 11557b5fefc8Smrg vendor=tandem 11562227fc13Smrg ;; 11577b5fefc8Smrg nsr-tandem) 11587b5fefc8Smrg cpu=nsr 11597b5fefc8Smrg vendor=tandem 11602227fc13Smrg ;; 11617b5fefc8Smrg nsv-tandem) 11627b5fefc8Smrg cpu=nsv 11637b5fefc8Smrg vendor=tandem 11642227fc13Smrg ;; 11657b5fefc8Smrg nsx-tandem) 11667b5fefc8Smrg cpu=nsx 11677b5fefc8Smrg vendor=tandem 11682227fc13Smrg ;; 11697b5fefc8Smrg mipsallegrexel-sony) 11707b5fefc8Smrg cpu=mipsallegrexel 11717b5fefc8Smrg vendor=sony 11722227fc13Smrg ;; 11737b5fefc8Smrg tile*-*) 11747b5fefc8Smrg basic_os=${basic_os:-linux-gnu} 11752227fc13Smrg ;; 11767b5fefc8Smrg 11772227fc13Smrg *) 11787b5fefc8Smrg # Recognize the canonical CPU types that are allowed with any 11797b5fefc8Smrg # company name. 11807b5fefc8Smrg case $cpu in 11817b5fefc8Smrg 1750a | 580 \ 11827b5fefc8Smrg | a29k \ 11837b5fefc8Smrg | aarch64 | aarch64_be \ 11847b5fefc8Smrg | abacus \ 11857b5fefc8Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 11867b5fefc8Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 11877b5fefc8Smrg | alphapca5[67] | alpha64pca5[67] \ 11887b5fefc8Smrg | am33_2.0 \ 11897b5fefc8Smrg | amdgcn \ 11907b5fefc8Smrg | arc | arceb | arc32 | arc64 \ 11917b5fefc8Smrg | arm | arm[lb]e | arme[lb] | armv* \ 11927b5fefc8Smrg | avr | avr32 \ 11937b5fefc8Smrg | asmjs \ 11947b5fefc8Smrg | ba \ 11957b5fefc8Smrg | be32 | be64 \ 11967b5fefc8Smrg | bfin | bpf | bs2000 \ 11977b5fefc8Smrg | c[123]* | c30 | [cjt]90 | c4x \ 11987b5fefc8Smrg | c8051 | clipper | craynv | csky | cydra \ 11997b5fefc8Smrg | d10v | d30v | dlx | dsp16xx \ 12007b5fefc8Smrg | e2k | elxsi | epiphany \ 12017b5fefc8Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 12027b5fefc8Smrg | h8300 | h8500 \ 12037b5fefc8Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 12047b5fefc8Smrg | hexagon \ 12057b5fefc8Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 12067b5fefc8Smrg | ip2k | iq2000 \ 12077b5fefc8Smrg | k1om \ 12087b5fefc8Smrg | le32 | le64 \ 12097b5fefc8Smrg | lm32 \ 12107b5fefc8Smrg | loongarch32 | loongarch64 \ 12117b5fefc8Smrg | m32c | m32r | m32rle \ 12127b5fefc8Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 12137b5fefc8Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 12147b5fefc8Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 12157b5fefc8Smrg | microblaze | microblazeel \ 12167b5fefc8Smrg | mips | mipsbe | mipseb | mipsel | mipsle \ 12177b5fefc8Smrg | mips16 \ 12187b5fefc8Smrg | mips64 | mips64eb | mips64el \ 12197b5fefc8Smrg | mips64octeon | mips64octeonel \ 12207b5fefc8Smrg | mips64orion | mips64orionel \ 12217b5fefc8Smrg | mips64r5900 | mips64r5900el \ 12227b5fefc8Smrg | mips64vr | mips64vrel \ 12237b5fefc8Smrg | mips64vr4100 | mips64vr4100el \ 12247b5fefc8Smrg | mips64vr4300 | mips64vr4300el \ 12257b5fefc8Smrg | mips64vr5000 | mips64vr5000el \ 12267b5fefc8Smrg | mips64vr5900 | mips64vr5900el \ 12277b5fefc8Smrg | mipsisa32 | mipsisa32el \ 12287b5fefc8Smrg | mipsisa32r2 | mipsisa32r2el \ 12297b5fefc8Smrg | mipsisa32r3 | mipsisa32r3el \ 12307b5fefc8Smrg | mipsisa32r5 | mipsisa32r5el \ 12317b5fefc8Smrg | mipsisa32r6 | mipsisa32r6el \ 12327b5fefc8Smrg | mipsisa64 | mipsisa64el \ 12337b5fefc8Smrg | mipsisa64r2 | mipsisa64r2el \ 12347b5fefc8Smrg | mipsisa64r3 | mipsisa64r3el \ 12357b5fefc8Smrg | mipsisa64r5 | mipsisa64r5el \ 12367b5fefc8Smrg | mipsisa64r6 | mipsisa64r6el \ 12377b5fefc8Smrg | mipsisa64sb1 | mipsisa64sb1el \ 12387b5fefc8Smrg | mipsisa64sr71k | mipsisa64sr71kel \ 12397b5fefc8Smrg | mipsr5900 | mipsr5900el \ 12407b5fefc8Smrg | mipstx39 | mipstx39el \ 12417b5fefc8Smrg | mmix \ 12427b5fefc8Smrg | mn10200 | mn10300 \ 12437b5fefc8Smrg | moxie \ 12447b5fefc8Smrg | mt \ 12457b5fefc8Smrg | msp430 \ 12467b5fefc8Smrg | nds32 | nds32le | nds32be \ 12477b5fefc8Smrg | nfp \ 12487b5fefc8Smrg | nios | nios2 | nios2eb | nios2el \ 12497b5fefc8Smrg | none | np1 | ns16k | ns32k | nvptx \ 12507b5fefc8Smrg | open8 \ 12517b5fefc8Smrg | or1k* \ 12527b5fefc8Smrg | or32 \ 12537b5fefc8Smrg | orion \ 12547b5fefc8Smrg | picochip \ 12557b5fefc8Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 12567b5fefc8Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 12577b5fefc8Smrg | pru \ 12587b5fefc8Smrg | pyramid \ 12597b5fefc8Smrg | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ 12607b5fefc8Smrg | rl78 | romp | rs6000 | rx \ 12617b5fefc8Smrg | s390 | s390x \ 12627b5fefc8Smrg | score \ 12637b5fefc8Smrg | sh | shl \ 12647b5fefc8Smrg | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 12657b5fefc8Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 12667b5fefc8Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 12677b5fefc8Smrg | sparclite \ 12687b5fefc8Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 12697b5fefc8Smrg | spu \ 12707b5fefc8Smrg | tahoe \ 12717b5fefc8Smrg | thumbv7* \ 12727b5fefc8Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 12737b5fefc8Smrg | tron \ 12747b5fefc8Smrg | ubicom32 \ 12757b5fefc8Smrg | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 12767b5fefc8Smrg | vax \ 12777b5fefc8Smrg | visium \ 12787b5fefc8Smrg | w65 \ 12797b5fefc8Smrg | wasm32 | wasm64 \ 12807b5fefc8Smrg | we32k \ 12817b5fefc8Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 12827b5fefc8Smrg | xstormy16 | xtensa* \ 12837b5fefc8Smrg | ymp \ 12847b5fefc8Smrg | z8k | z80) 12857b5fefc8Smrg ;; 12867b5fefc8Smrg 12877b5fefc8Smrg *) 12887b5fefc8Smrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 12897b5fefc8Smrg exit 1 12907b5fefc8Smrg ;; 12917b5fefc8Smrg esac 12922227fc13Smrg ;; 12932227fc13Smrgesac 12942227fc13Smrg 12952227fc13Smrg# Here we canonicalize certain aliases for manufacturers. 12967b5fefc8Smrgcase $vendor in 12977b5fefc8Smrg digital*) 12987b5fefc8Smrg vendor=dec 12992227fc13Smrg ;; 13007b5fefc8Smrg commodore*) 13017b5fefc8Smrg vendor=cbm 13022227fc13Smrg ;; 13032227fc13Smrg *) 13042227fc13Smrg ;; 13052227fc13Smrgesac 13062227fc13Smrg 13072227fc13Smrg# Decode manufacturer-specific aliases for certain operating systems. 13082227fc13Smrg 13097b5fefc8Smrgif test x$basic_os != x 13102227fc13Smrgthen 13117b5fefc8Smrg 13127b5fefc8Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just 13137b5fefc8Smrg# set os. 13147b5fefc8Smrgcase $basic_os in 13157b5fefc8Smrg gnu/linux*) 13167b5fefc8Smrg kernel=linux 13177b5fefc8Smrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 13187b5fefc8Smrg ;; 13197b5fefc8Smrg os2-emx) 13207b5fefc8Smrg kernel=os2 13217b5fefc8Smrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 13227b5fefc8Smrg ;; 13237b5fefc8Smrg nto-qnx*) 13247b5fefc8Smrg kernel=nto 13257b5fefc8Smrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 13267b5fefc8Smrg ;; 13277b5fefc8Smrg *-*) 13287b5fefc8Smrg # shellcheck disable=SC2162 13297b5fefc8Smrg saved_IFS=$IFS 13307b5fefc8Smrg IFS="-" read kernel os <<EOF 13317b5fefc8Smrg$basic_os 13327b5fefc8SmrgEOF 13337b5fefc8Smrg IFS=$saved_IFS 13347b5fefc8Smrg ;; 13357b5fefc8Smrg # Default OS when just kernel was specified 13367b5fefc8Smrg nto*) 13377b5fefc8Smrg kernel=nto 13387b5fefc8Smrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 13397b5fefc8Smrg ;; 13407b5fefc8Smrg linux*) 13417b5fefc8Smrg kernel=linux 13427b5fefc8Smrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 13437b5fefc8Smrg ;; 13447b5fefc8Smrg managarm*) 13457b5fefc8Smrg kernel=managarm 13467b5fefc8Smrg os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` 13477b5fefc8Smrg ;; 13487b5fefc8Smrg *) 13497b5fefc8Smrg kernel= 13507b5fefc8Smrg os=$basic_os 13517b5fefc8Smrg ;; 13527b5fefc8Smrgesac 13537b5fefc8Smrg 13547b5fefc8Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 13557b5fefc8Smrg# etc.) 13562227fc13Smrgcase $os in 13577b5fefc8Smrg # First match some system type aliases that might get confused 13587b5fefc8Smrg # with valid system types. 13597b5fefc8Smrg # solaris* is a basic system type, with this one exception. 13607b5fefc8Smrg auroraux) 13617b5fefc8Smrg os=auroraux 13622227fc13Smrg ;; 13637b5fefc8Smrg bluegene*) 13647b5fefc8Smrg os=cnk 13652227fc13Smrg ;; 13667b5fefc8Smrg solaris1 | solaris1.*) 13677b5fefc8Smrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 13682227fc13Smrg ;; 13697b5fefc8Smrg solaris) 13707b5fefc8Smrg os=solaris2 13712227fc13Smrg ;; 13727b5fefc8Smrg unixware*) 13737b5fefc8Smrg os=sysv4.2uw 13742227fc13Smrg ;; 13757b5fefc8Smrg # es1800 is here to avoid being matched by es* (a different OS) 13767b5fefc8Smrg es1800*) 13777b5fefc8Smrg os=ose 13782227fc13Smrg ;; 13797b5fefc8Smrg # Some version numbers need modification 13807b5fefc8Smrg chorusos*) 13817b5fefc8Smrg os=chorusos 13822227fc13Smrg ;; 13837b5fefc8Smrg isc) 13847b5fefc8Smrg os=isc2.2 13852227fc13Smrg ;; 13867b5fefc8Smrg sco6) 13877b5fefc8Smrg os=sco5v6 13882227fc13Smrg ;; 13897b5fefc8Smrg sco5) 13907b5fefc8Smrg os=sco3.2v5 13912227fc13Smrg ;; 13927b5fefc8Smrg sco4) 13937b5fefc8Smrg os=sco3.2v4 13942227fc13Smrg ;; 13957b5fefc8Smrg sco3.2.[4-9]*) 13967b5fefc8Smrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 13972227fc13Smrg ;; 13987b5fefc8Smrg sco*v* | scout) 13997b5fefc8Smrg # Don't match below 14002227fc13Smrg ;; 14017b5fefc8Smrg sco*) 14027b5fefc8Smrg os=sco3.2v2 14032227fc13Smrg ;; 14047b5fefc8Smrg psos*) 14057b5fefc8Smrg os=psos 14062227fc13Smrg ;; 14077b5fefc8Smrg qnx*) 14087b5fefc8Smrg os=qnx 14092227fc13Smrg ;; 14107b5fefc8Smrg hiux*) 14117b5fefc8Smrg os=hiuxwe2 14122227fc13Smrg ;; 14137b5fefc8Smrg lynx*178) 14147b5fefc8Smrg os=lynxos178 14152227fc13Smrg ;; 14167b5fefc8Smrg lynx*5) 14177b5fefc8Smrg os=lynxos5 14182227fc13Smrg ;; 14197b5fefc8Smrg lynxos*) 14207b5fefc8Smrg # don't get caught up in next wildcard 14212227fc13Smrg ;; 14227b5fefc8Smrg lynx*) 14237b5fefc8Smrg os=lynxos 14242227fc13Smrg ;; 14257b5fefc8Smrg mac[0-9]*) 14267b5fefc8Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 14272227fc13Smrg ;; 14287b5fefc8Smrg opened*) 14297b5fefc8Smrg os=openedition 14302227fc13Smrg ;; 14317b5fefc8Smrg os400*) 14327b5fefc8Smrg os=os400 14332227fc13Smrg ;; 14347b5fefc8Smrg sunos5*) 14357b5fefc8Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 14362227fc13Smrg ;; 14377b5fefc8Smrg sunos6*) 14387b5fefc8Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 14392227fc13Smrg ;; 14407b5fefc8Smrg wince*) 14417b5fefc8Smrg os=wince 14422227fc13Smrg ;; 14437b5fefc8Smrg utek*) 14447b5fefc8Smrg os=bsd 14452227fc13Smrg ;; 14467b5fefc8Smrg dynix*) 14477b5fefc8Smrg os=bsd 14482227fc13Smrg ;; 14497b5fefc8Smrg acis*) 14507b5fefc8Smrg os=aos 14512227fc13Smrg ;; 14527b5fefc8Smrg atheos*) 14537b5fefc8Smrg os=atheos 14542227fc13Smrg ;; 14557b5fefc8Smrg syllable*) 14567b5fefc8Smrg os=syllable 14572227fc13Smrg ;; 14587b5fefc8Smrg 386bsd) 14597b5fefc8Smrg os=bsd 14602227fc13Smrg ;; 14617b5fefc8Smrg ctix* | uts*) 14627b5fefc8Smrg os=sysv 14632227fc13Smrg ;; 14647b5fefc8Smrg nova*) 14657b5fefc8Smrg os=rtmk-nova 14662227fc13Smrg ;; 14677b5fefc8Smrg ns2) 14687b5fefc8Smrg os=nextstep2 14692227fc13Smrg ;; 14707b5fefc8Smrg # Preserve the version number of sinix5. 14717b5fefc8Smrg sinix5.*) 14727b5fefc8Smrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 14732227fc13Smrg ;; 14747b5fefc8Smrg sinix*) 14757b5fefc8Smrg os=sysv4 14762227fc13Smrg ;; 14777b5fefc8Smrg tpf*) 14787b5fefc8Smrg os=tpf 14792227fc13Smrg ;; 14807b5fefc8Smrg triton*) 14817b5fefc8Smrg os=sysv3 14822227fc13Smrg ;; 14837b5fefc8Smrg oss*) 14847b5fefc8Smrg os=sysv3 14852227fc13Smrg ;; 14867b5fefc8Smrg svr4*) 14877b5fefc8Smrg os=sysv4 14882227fc13Smrg ;; 14897b5fefc8Smrg svr3) 14907b5fefc8Smrg os=sysv3 14912227fc13Smrg ;; 14927b5fefc8Smrg sysvr4) 14937b5fefc8Smrg os=sysv4 14942227fc13Smrg ;; 14957b5fefc8Smrg ose*) 14967b5fefc8Smrg os=ose 14972227fc13Smrg ;; 14987b5fefc8Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 14997b5fefc8Smrg os=mint 15002227fc13Smrg ;; 15017b5fefc8Smrg dicos*) 15027b5fefc8Smrg os=dicos 15032227fc13Smrg ;; 15047b5fefc8Smrg pikeos*) 15057b5fefc8Smrg # Until real need of OS specific support for 15067b5fefc8Smrg # particular features comes up, bare metal 15077b5fefc8Smrg # configurations are quite functional. 15087b5fefc8Smrg case $cpu in 15097b5fefc8Smrg arm*) 15107b5fefc8Smrg os=eabi 15117b5fefc8Smrg ;; 15127b5fefc8Smrg *) 15137b5fefc8Smrg os=elf 15147b5fefc8Smrg ;; 15157b5fefc8Smrg esac 15162227fc13Smrg ;; 15172227fc13Smrg *) 15187b5fefc8Smrg # No normalization, but not necessarily accepted, that comes below. 15192227fc13Smrg ;; 15202227fc13Smrgesac 15217b5fefc8Smrg 15222227fc13Smrgelse 15232227fc13Smrg 15242227fc13Smrg# Here we handle the default operating systems that come with various machines. 15252227fc13Smrg# The value should be what the vendor currently ships out the door with their 15262227fc13Smrg# machine or put another way, the most popular os provided with the machine. 15272227fc13Smrg 15282227fc13Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 15292227fc13Smrg# "-sun"), then you have to tell the case statement up towards the top 15302227fc13Smrg# that MANUFACTURER isn't an operating system. Otherwise, code above 15312227fc13Smrg# will signal an error saying that MANUFACTURER isn't an operating 15322227fc13Smrg# system, and we'll never get to this point. 15332227fc13Smrg 15347b5fefc8Smrgkernel= 15357b5fefc8Smrgcase $cpu-$vendor in 15367b5fefc8Smrg score-*) 15377b5fefc8Smrg os=elf 15382227fc13Smrg ;; 15397b5fefc8Smrg spu-*) 15407b5fefc8Smrg os=elf 15412227fc13Smrg ;; 15422227fc13Smrg *-acorn) 15437b5fefc8Smrg os=riscix1.2 15442227fc13Smrg ;; 15452227fc13Smrg arm*-rebel) 15467b5fefc8Smrg kernel=linux 15477b5fefc8Smrg os=gnu 15482227fc13Smrg ;; 15492227fc13Smrg arm*-semi) 15507b5fefc8Smrg os=aout 15517b5fefc8Smrg ;; 15527b5fefc8Smrg c4x-* | tic4x-*) 15537b5fefc8Smrg os=coff 15547b5fefc8Smrg ;; 15557b5fefc8Smrg c8051-*) 15567b5fefc8Smrg os=elf 15577b5fefc8Smrg ;; 15587b5fefc8Smrg clipper-intergraph) 15597b5fefc8Smrg os=clix 15602227fc13Smrg ;; 15617b5fefc8Smrg hexagon-*) 15627b5fefc8Smrg os=elf 15632227fc13Smrg ;; 15642227fc13Smrg tic54x-*) 15657b5fefc8Smrg os=coff 15662227fc13Smrg ;; 15672227fc13Smrg tic55x-*) 15687b5fefc8Smrg os=coff 15692227fc13Smrg ;; 15702227fc13Smrg tic6x-*) 15717b5fefc8Smrg os=coff 15722227fc13Smrg ;; 15732227fc13Smrg # This must come before the *-dec entry. 15742227fc13Smrg pdp10-*) 15757b5fefc8Smrg os=tops20 15762227fc13Smrg ;; 15772227fc13Smrg pdp11-*) 15787b5fefc8Smrg os=none 15792227fc13Smrg ;; 15802227fc13Smrg *-dec | vax-*) 15817b5fefc8Smrg os=ultrix4.2 15822227fc13Smrg ;; 15832227fc13Smrg m68*-apollo) 15847b5fefc8Smrg os=domain 15852227fc13Smrg ;; 15862227fc13Smrg i386-sun) 15877b5fefc8Smrg os=sunos4.0.2 15882227fc13Smrg ;; 15892227fc13Smrg m68000-sun) 15907b5fefc8Smrg os=sunos3 15912227fc13Smrg ;; 15922227fc13Smrg m68*-cisco) 15937b5fefc8Smrg os=aout 15942227fc13Smrg ;; 15957b5fefc8Smrg mep-*) 15967b5fefc8Smrg os=elf 15972227fc13Smrg ;; 15982227fc13Smrg mips*-cisco) 15997b5fefc8Smrg os=elf 16002227fc13Smrg ;; 16012227fc13Smrg mips*-*) 16027b5fefc8Smrg os=elf 16032227fc13Smrg ;; 16042227fc13Smrg or32-*) 16057b5fefc8Smrg os=coff 16062227fc13Smrg ;; 16072227fc13Smrg *-tti) # must be before sparc entry or we get the wrong os. 16087b5fefc8Smrg os=sysv3 16092227fc13Smrg ;; 16102227fc13Smrg sparc-* | *-sun) 16117b5fefc8Smrg os=sunos4.1.1 16122227fc13Smrg ;; 16137b5fefc8Smrg pru-*) 16147b5fefc8Smrg os=elf 16152227fc13Smrg ;; 16167b5fefc8Smrg *-be) 16177b5fefc8Smrg os=beos 16182227fc13Smrg ;; 16192227fc13Smrg *-ibm) 16207b5fefc8Smrg os=aix 16212227fc13Smrg ;; 16227b5fefc8Smrg *-knuth) 16237b5fefc8Smrg os=mmixware 16242227fc13Smrg ;; 16252227fc13Smrg *-wec) 16267b5fefc8Smrg os=proelf 16272227fc13Smrg ;; 16282227fc13Smrg *-winbond) 16297b5fefc8Smrg os=proelf 16302227fc13Smrg ;; 16312227fc13Smrg *-oki) 16327b5fefc8Smrg os=proelf 16332227fc13Smrg ;; 16342227fc13Smrg *-hp) 16357b5fefc8Smrg os=hpux 16362227fc13Smrg ;; 16372227fc13Smrg *-hitachi) 16387b5fefc8Smrg os=hiux 16392227fc13Smrg ;; 16402227fc13Smrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 16417b5fefc8Smrg os=sysv 16422227fc13Smrg ;; 16432227fc13Smrg *-cbm) 16447b5fefc8Smrg os=amigaos 16452227fc13Smrg ;; 16462227fc13Smrg *-dg) 16477b5fefc8Smrg os=dgux 16482227fc13Smrg ;; 16492227fc13Smrg *-dolphin) 16507b5fefc8Smrg os=sysv3 16512227fc13Smrg ;; 16522227fc13Smrg m68k-ccur) 16537b5fefc8Smrg os=rtu 16542227fc13Smrg ;; 16552227fc13Smrg m88k-omron*) 16567b5fefc8Smrg os=luna 16572227fc13Smrg ;; 16587b5fefc8Smrg *-next) 16597b5fefc8Smrg os=nextstep 16602227fc13Smrg ;; 16612227fc13Smrg *-sequent) 16627b5fefc8Smrg os=ptx 16632227fc13Smrg ;; 16642227fc13Smrg *-crds) 16657b5fefc8Smrg os=unos 16662227fc13Smrg ;; 16672227fc13Smrg *-ns) 16687b5fefc8Smrg os=genix 16692227fc13Smrg ;; 16702227fc13Smrg i370-*) 16717b5fefc8Smrg os=mvs 16722227fc13Smrg ;; 16732227fc13Smrg *-gould) 16747b5fefc8Smrg os=sysv 16752227fc13Smrg ;; 16762227fc13Smrg *-highlevel) 16777b5fefc8Smrg os=bsd 16782227fc13Smrg ;; 16792227fc13Smrg *-encore) 16807b5fefc8Smrg os=bsd 16812227fc13Smrg ;; 16822227fc13Smrg *-sgi) 16837b5fefc8Smrg os=irix 16842227fc13Smrg ;; 16852227fc13Smrg *-siemens) 16867b5fefc8Smrg os=sysv4 16872227fc13Smrg ;; 16882227fc13Smrg *-masscomp) 16897b5fefc8Smrg os=rtu 16902227fc13Smrg ;; 16912227fc13Smrg f30[01]-fujitsu | f700-fujitsu) 16927b5fefc8Smrg os=uxpv 16932227fc13Smrg ;; 16942227fc13Smrg *-rom68k) 16957b5fefc8Smrg os=coff 16962227fc13Smrg ;; 16972227fc13Smrg *-*bug) 16987b5fefc8Smrg os=coff 16992227fc13Smrg ;; 17002227fc13Smrg *-apple) 17017b5fefc8Smrg os=macos 17022227fc13Smrg ;; 17032227fc13Smrg *-atari*) 17047b5fefc8Smrg os=mint 17057b5fefc8Smrg ;; 17067b5fefc8Smrg *-wrs) 17077b5fefc8Smrg os=vxworks 17082227fc13Smrg ;; 17092227fc13Smrg *) 17107b5fefc8Smrg os=none 17112227fc13Smrg ;; 17122227fc13Smrgesac 17137b5fefc8Smrg 17142227fc13Smrgfi 17152227fc13Smrg 17167b5fefc8Smrg# Now, validate our (potentially fixed-up) OS. 17177b5fefc8Smrgcase $os in 17187b5fefc8Smrg # Sometimes we do "kernel-libc", so those need to count as OSes. 17197b5fefc8Smrg musl* | newlib* | relibc* | uclibc*) 17207b5fefc8Smrg ;; 17217b5fefc8Smrg # Likewise for "kernel-abi" 17227b5fefc8Smrg eabi* | gnueabi*) 17237b5fefc8Smrg ;; 17247b5fefc8Smrg # VxWorks passes extra cpu info in the 4th filed. 17257b5fefc8Smrg simlinux | simwindows | spe) 17267b5fefc8Smrg ;; 17277b5fefc8Smrg # Now accept the basic system types. 17287b5fefc8Smrg # The portable systems comes first. 17297b5fefc8Smrg # Each alternative MUST end in a * to match a version number. 17307b5fefc8Smrg gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 17317b5fefc8Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ 17327b5fefc8Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 17337b5fefc8Smrg | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ 17347b5fefc8Smrg | hiux* | abug | nacl* | netware* | windows* \ 17357b5fefc8Smrg | os9* | macos* | osx* | ios* \ 17367b5fefc8Smrg | mpw* | magic* | mmixware* | mon960* | lnews* \ 17377b5fefc8Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 17387b5fefc8Smrg | aos* | aros* | cloudabi* | sortix* | twizzler* \ 17397b5fefc8Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 17407b5fefc8Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 17417b5fefc8Smrg | mirbsd* | netbsd* | dicos* | openedition* | ose* \ 17427b5fefc8Smrg | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ 17437b5fefc8Smrg | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ 17447b5fefc8Smrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 17457b5fefc8Smrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 17467b5fefc8Smrg | udi* | lites* | ieee* | go32* | aux* | hcos* \ 17477b5fefc8Smrg | chorusrdb* | cegcc* | glidix* | serenity* \ 17487b5fefc8Smrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 17497b5fefc8Smrg | midipix* | mingw32* | mingw64* | mint* \ 17507b5fefc8Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 17517b5fefc8Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 17527b5fefc8Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 17537b5fefc8Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 17547b5fefc8Smrg | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ 17557b5fefc8Smrg | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ 17567b5fefc8Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 17577b5fefc8Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 17587b5fefc8Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 17597b5fefc8Smrg | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 17607b5fefc8Smrg | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ 17617b5fefc8Smrg | fiwix* | mlibc* ) 17627b5fefc8Smrg ;; 17637b5fefc8Smrg # This one is extra strict with allowed versions 17647b5fefc8Smrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 17657b5fefc8Smrg # Don't forget version if it is 3.2v4 or newer. 17667b5fefc8Smrg ;; 17677b5fefc8Smrg none) 17687b5fefc8Smrg ;; 17697b5fefc8Smrg kernel* ) 17707b5fefc8Smrg # Restricted further below 17717b5fefc8Smrg ;; 17727b5fefc8Smrg *) 17737b5fefc8Smrg echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 17747b5fefc8Smrg exit 1 17757b5fefc8Smrg ;; 17767b5fefc8Smrgesac 17777b5fefc8Smrg 17787b5fefc8Smrg# As a final step for OS-related things, validate the OS-kernel combination 17797b5fefc8Smrg# (given a valid OS), if there is a kernel. 17807b5fefc8Smrgcase $kernel-$os in 17817b5fefc8Smrg linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ 17827b5fefc8Smrg | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) 17837b5fefc8Smrg ;; 17847b5fefc8Smrg uclinux-uclibc* ) 17857b5fefc8Smrg ;; 17867b5fefc8Smrg managarm-mlibc* | managarm-kernel* ) 17877b5fefc8Smrg ;; 17887b5fefc8Smrg -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) 17897b5fefc8Smrg # These are just libc implementations, not actual OSes, and thus 17907b5fefc8Smrg # require a kernel. 17917b5fefc8Smrg echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 17927b5fefc8Smrg exit 1 17937b5fefc8Smrg ;; 17947b5fefc8Smrg -kernel* ) 17957b5fefc8Smrg echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 17967b5fefc8Smrg exit 1 17977b5fefc8Smrg ;; 17987b5fefc8Smrg *-kernel* ) 17997b5fefc8Smrg echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 18007b5fefc8Smrg exit 1 18017b5fefc8Smrg ;; 18027b5fefc8Smrg kfreebsd*-gnu* | kopensolaris*-gnu*) 18037b5fefc8Smrg ;; 18047b5fefc8Smrg vxworks-simlinux | vxworks-simwindows | vxworks-spe) 18057b5fefc8Smrg ;; 18067b5fefc8Smrg nto-qnx*) 18077b5fefc8Smrg ;; 18087b5fefc8Smrg os2-emx) 18097b5fefc8Smrg ;; 18107b5fefc8Smrg *-eabi* | *-gnueabi*) 18117b5fefc8Smrg ;; 18127b5fefc8Smrg -*) 18137b5fefc8Smrg # Blank kernel with real OS is always fine. 18147b5fefc8Smrg ;; 18157b5fefc8Smrg *-*) 18167b5fefc8Smrg echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 18177b5fefc8Smrg exit 1 18187b5fefc8Smrg ;; 18197b5fefc8Smrgesac 18207b5fefc8Smrg 18212227fc13Smrg# Here we handle the case where we know the os, and the CPU type, but not the 18222227fc13Smrg# manufacturer. We pick the logical manufacturer. 18237b5fefc8Smrgcase $vendor in 18247b5fefc8Smrg unknown) 18257b5fefc8Smrg case $cpu-$os in 18267b5fefc8Smrg *-riscix*) 18272227fc13Smrg vendor=acorn 18282227fc13Smrg ;; 18297b5fefc8Smrg *-sunos*) 18302227fc13Smrg vendor=sun 18312227fc13Smrg ;; 18327b5fefc8Smrg *-cnk* | *-aix*) 18332227fc13Smrg vendor=ibm 18342227fc13Smrg ;; 18357b5fefc8Smrg *-beos*) 18362227fc13Smrg vendor=be 18372227fc13Smrg ;; 18387b5fefc8Smrg *-hpux*) 18392227fc13Smrg vendor=hp 18402227fc13Smrg ;; 18417b5fefc8Smrg *-mpeix*) 18422227fc13Smrg vendor=hp 18432227fc13Smrg ;; 18447b5fefc8Smrg *-hiux*) 18452227fc13Smrg vendor=hitachi 18462227fc13Smrg ;; 18477b5fefc8Smrg *-unos*) 18482227fc13Smrg vendor=crds 18492227fc13Smrg ;; 18507b5fefc8Smrg *-dgux*) 18512227fc13Smrg vendor=dg 18522227fc13Smrg ;; 18537b5fefc8Smrg *-luna*) 18542227fc13Smrg vendor=omron 18552227fc13Smrg ;; 18567b5fefc8Smrg *-genix*) 18572227fc13Smrg vendor=ns 18582227fc13Smrg ;; 18597b5fefc8Smrg *-clix*) 18607b5fefc8Smrg vendor=intergraph 18617b5fefc8Smrg ;; 18627b5fefc8Smrg *-mvs* | *-opened*) 18637b5fefc8Smrg vendor=ibm 18647b5fefc8Smrg ;; 18657b5fefc8Smrg *-os400*) 18662227fc13Smrg vendor=ibm 18672227fc13Smrg ;; 18687b5fefc8Smrg s390-* | s390x-*) 18692227fc13Smrg vendor=ibm 18702227fc13Smrg ;; 18717b5fefc8Smrg *-ptx*) 18722227fc13Smrg vendor=sequent 18732227fc13Smrg ;; 18747b5fefc8Smrg *-tpf*) 18752227fc13Smrg vendor=ibm 18762227fc13Smrg ;; 18777b5fefc8Smrg *-vxsim* | *-vxworks* | *-windiss*) 18782227fc13Smrg vendor=wrs 18792227fc13Smrg ;; 18807b5fefc8Smrg *-aux*) 18812227fc13Smrg vendor=apple 18822227fc13Smrg ;; 18837b5fefc8Smrg *-hms*) 18842227fc13Smrg vendor=hitachi 18852227fc13Smrg ;; 18867b5fefc8Smrg *-mpw* | *-macos*) 18872227fc13Smrg vendor=apple 18882227fc13Smrg ;; 18897b5fefc8Smrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 18902227fc13Smrg vendor=atari 18912227fc13Smrg ;; 18927b5fefc8Smrg *-vos*) 18932227fc13Smrg vendor=stratus 18942227fc13Smrg ;; 18952227fc13Smrg esac 18962227fc13Smrg ;; 18972227fc13Smrgesac 18982227fc13Smrg 18997b5fefc8Smrgecho "$cpu-$vendor-${kernel:+$kernel-}$os" 19002227fc13Smrgexit 19012227fc13Smrg 19022227fc13Smrg# Local variables: 19037b5fefc8Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 19042227fc13Smrg# time-stamp-start: "timestamp='" 19052227fc13Smrg# time-stamp-format: "%:y-%02m-%02d" 19062227fc13Smrg# time-stamp-end: "'" 19072227fc13Smrg# End: 1908