config.sub revision 33adc6ac
1fda9279dSmrg#! /bin/sh 2fda9279dSmrg# Configuration validation subroutine script. 333adc6acSmrg# Copyright 1992-2024 Free Software Foundation, Inc. 4fda9279dSmrg 533adc6acSmrg# shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale 633adc6acSmrg 733adc6acSmrgtimestamp='2024-05-27' 8fda9279dSmrg 9fda9279dSmrg# This file is free software; you can redistribute it and/or modify it 10fda9279dSmrg# under the terms of the GNU General Public License as published by 1133adc6acSmrg# the Free Software Foundation, either version 3 of the License, or 12fda9279dSmrg# (at your option) any later version. 13fda9279dSmrg# 14fda9279dSmrg# This program is distributed in the hope that it will be useful, but 15fda9279dSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of 16fda9279dSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17fda9279dSmrg# General Public License for more details. 18fda9279dSmrg# 19fda9279dSmrg# You should have received a copy of the GNU General Public License 2092405695Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 21fda9279dSmrg# 22fda9279dSmrg# As a special exception to the GNU General Public License, if you 23fda9279dSmrg# distribute this file as part of a program that contains a 24fda9279dSmrg# configuration script generated by Autoconf, you may include it under 25fda9279dSmrg# the same distribution terms that you use for the rest of that 26fda9279dSmrg# program. This Exception is an additional permission under section 7 27fda9279dSmrg# of the GNU General Public License, version 3 ("GPLv3"). 28fda9279dSmrg 29fda9279dSmrg 3016ee1e9aSmrg# Please send patches to <config-patches@gnu.org>. 31fda9279dSmrg# 32fda9279dSmrg# Configuration subroutine to validate and canonicalize a configuration type. 33fda9279dSmrg# Supply the specified configuration type as an argument. 34fda9279dSmrg# If it is invalid, we print an error message on stderr and exit with code 1. 35fda9279dSmrg# Otherwise, we print the canonical config type on stdout and succeed. 36fda9279dSmrg 37fda9279dSmrg# You can get the latest version of this script from: 3833adc6acSmrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub 39fda9279dSmrg 40fda9279dSmrg# This file is supposed to be the same for all GNU packages 41fda9279dSmrg# and recognize all the CPU types, system types and aliases 42fda9279dSmrg# that are meaningful with *any* GNU software. 43fda9279dSmrg# Each package is responsible for reporting which valid configurations 44fda9279dSmrg# it does not support. The user should be able to distinguish 45fda9279dSmrg# a failure to support a valid configuration from a meaningless 46fda9279dSmrg# configuration. 47fda9279dSmrg 48fda9279dSmrg# The goal of this file is to map all the various variations of a given 49fda9279dSmrg# machine specification into a single specification in the form: 50fda9279dSmrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 51fda9279dSmrg# or in some cases, the newer four-part form: 52fda9279dSmrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 53fda9279dSmrg# It is wrong to echo any other type of specification. 54fda9279dSmrg 5533adc6acSmrg# The "shellcheck disable" line above the timestamp inhibits complaints 5633adc6acSmrg# about features and limitations of the classic Bourne shell that were 5733adc6acSmrg# superseded or lifted in POSIX. However, this script identifies a wide 5833adc6acSmrg# variety of pre-POSIX systems that do not have POSIX shells at all, and 5933adc6acSmrg# even some reasonably current systems (Solaris 10 as case-in-point) still 6033adc6acSmrg# have a pre-POSIX /bin/sh. 6133adc6acSmrg 62fda9279dSmrgme=`echo "$0" | sed -e 's,.*/,,'` 63fda9279dSmrg 64fda9279dSmrgusage="\ 65dd52494dSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 66fda9279dSmrg 67fda9279dSmrgCanonicalize a configuration name. 68fda9279dSmrg 6992405695SmrgOptions: 70fda9279dSmrg -h, --help print this help, then exit 71fda9279dSmrg -t, --time-stamp print date of last modification, then exit 72fda9279dSmrg -v, --version print version number, then exit 73fda9279dSmrg 74fda9279dSmrgReport bugs and patches to <config-patches@gnu.org>." 75fda9279dSmrg 76fda9279dSmrgversion="\ 77fda9279dSmrgGNU config.sub ($timestamp) 78fda9279dSmrg 7933adc6acSmrgCopyright 1992-2024 Free Software Foundation, Inc. 80fda9279dSmrg 81fda9279dSmrgThis is free software; see the source for copying conditions. There is NO 82fda9279dSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 83fda9279dSmrg 84fda9279dSmrghelp=" 8533adc6acSmrgTry '$me --help' for more information." 86fda9279dSmrg 87fda9279dSmrg# Parse command line 88fda9279dSmrgwhile test $# -gt 0 ; do 89fda9279dSmrg case $1 in 90fda9279dSmrg --time-stamp | --time* | -t ) 91fda9279dSmrg echo "$timestamp" ; exit ;; 92fda9279dSmrg --version | -v ) 93fda9279dSmrg echo "$version" ; exit ;; 94fda9279dSmrg --help | --h* | -h ) 95fda9279dSmrg echo "$usage"; exit ;; 96fda9279dSmrg -- ) # Stop option processing 97fda9279dSmrg shift; break ;; 98fda9279dSmrg - ) # Use stdin as input. 99fda9279dSmrg break ;; 100fda9279dSmrg -* ) 10192405695Smrg echo "$me: invalid option $1$help" >&2 102fda9279dSmrg exit 1 ;; 103fda9279dSmrg 104fda9279dSmrg *local*) 105fda9279dSmrg # First pass through any local machine types. 10692405695Smrg echo "$1" 107fda9279dSmrg exit ;; 108fda9279dSmrg 109fda9279dSmrg * ) 110fda9279dSmrg break ;; 111fda9279dSmrg esac 112fda9279dSmrgdone 113fda9279dSmrg 114fda9279dSmrgcase $# in 115fda9279dSmrg 0) echo "$me: missing argument$help" >&2 116fda9279dSmrg exit 1;; 117fda9279dSmrg 1) ;; 118fda9279dSmrg *) echo "$me: too many arguments$help" >&2 119fda9279dSmrg exit 1;; 120fda9279dSmrgesac 121fda9279dSmrg 12292405695Smrg# Split fields of configuration type 12333adc6acSmrgsaved_IFS=$IFS 12492405695SmrgIFS="-" read field1 field2 field3 field4 <<EOF 12592405695Smrg$1 12692405695SmrgEOF 12733adc6acSmrgIFS=$saved_IFS 128fda9279dSmrg 12992405695Smrg# Separate into logical components for further validation 13092405695Smrgcase $1 in 13192405695Smrg *-*-*-*-*) 13233adc6acSmrg echo "Invalid configuration '$1': more than four components" >&2 13392405695Smrg exit 1 134fda9279dSmrg ;; 13592405695Smrg *-*-*-*) 13692405695Smrg basic_machine=$field1-$field2 13733adc6acSmrg basic_os=$field3-$field4 138fda9279dSmrg ;; 13992405695Smrg *-*-*) 14092405695Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 14192405695Smrg # parts 14292405695Smrg maybe_os=$field2-$field3 14392405695Smrg case $maybe_os in 14433adc6acSmrg cloudabi*-eabi* \ 14533adc6acSmrg | kfreebsd*-gnu* \ 14633adc6acSmrg | knetbsd*-gnu* \ 14733adc6acSmrg | kopensolaris*-gnu* \ 14833adc6acSmrg | linux-* \ 14933adc6acSmrg | managarm-* \ 15033adc6acSmrg | netbsd*-eabi* \ 15133adc6acSmrg | netbsd*-gnu* \ 15233adc6acSmrg | nto-qnx* \ 15333adc6acSmrg | os2-emx* \ 15433adc6acSmrg | rtmk-nova* \ 15533adc6acSmrg | storm-chaos* \ 15633adc6acSmrg | uclinux-gnu* \ 15733adc6acSmrg | uclinux-uclibc* \ 15833adc6acSmrg | windows-* ) 15992405695Smrg basic_machine=$field1 16033adc6acSmrg basic_os=$maybe_os 16192405695Smrg ;; 16292405695Smrg android-linux) 16392405695Smrg basic_machine=$field1-unknown 16433adc6acSmrg basic_os=linux-android 16592405695Smrg ;; 16692405695Smrg *) 16792405695Smrg basic_machine=$field1-$field2 16833adc6acSmrg basic_os=$field3 16992405695Smrg ;; 17092405695Smrg esac 171fda9279dSmrg ;; 17292405695Smrg *-*) 17392405695Smrg case $field1-$field2 in 17433adc6acSmrg # Shorthands that happen to contain a single dash 17533adc6acSmrg convex-c[12] | convex-c3[248]) 17633adc6acSmrg basic_machine=$field2-convex 17733adc6acSmrg basic_os= 17833adc6acSmrg ;; 17992405695Smrg decstation-3100) 18092405695Smrg basic_machine=mips-dec 18133adc6acSmrg basic_os= 18292405695Smrg ;; 18392405695Smrg *-*) 18492405695Smrg # Second component is usually, but not always the OS 18592405695Smrg case $field2 in 18633adc6acSmrg # Do not treat sunos as a manufacturer 18792405695Smrg sun*os*) 18892405695Smrg basic_machine=$field1 18933adc6acSmrg basic_os=$field2 19092405695Smrg ;; 19192405695Smrg # Manufacturers 19233adc6acSmrg 3100* \ 19333adc6acSmrg | 32* \ 19433adc6acSmrg | 3300* \ 19533adc6acSmrg | 3600* \ 19633adc6acSmrg | 7300* \ 19733adc6acSmrg | acorn \ 19833adc6acSmrg | altos* \ 19933adc6acSmrg | apollo \ 20033adc6acSmrg | apple \ 20133adc6acSmrg | atari \ 20233adc6acSmrg | att* \ 20333adc6acSmrg | axis \ 20433adc6acSmrg | be \ 20533adc6acSmrg | bull \ 20633adc6acSmrg | cbm \ 20733adc6acSmrg | ccur \ 20833adc6acSmrg | cisco \ 20933adc6acSmrg | commodore \ 21033adc6acSmrg | convergent* \ 21133adc6acSmrg | convex* \ 21233adc6acSmrg | cray \ 21333adc6acSmrg | crds \ 21433adc6acSmrg | dec* \ 21533adc6acSmrg | delta* \ 21633adc6acSmrg | dg \ 21733adc6acSmrg | digital \ 21833adc6acSmrg | dolphin \ 21933adc6acSmrg | encore* \ 22033adc6acSmrg | gould \ 22133adc6acSmrg | harris \ 22233adc6acSmrg | highlevel \ 22333adc6acSmrg | hitachi* \ 22433adc6acSmrg | hp \ 22533adc6acSmrg | ibm* \ 22633adc6acSmrg | intergraph \ 22733adc6acSmrg | isi* \ 22833adc6acSmrg | knuth \ 22933adc6acSmrg | masscomp \ 23033adc6acSmrg | microblaze* \ 23133adc6acSmrg | mips* \ 23233adc6acSmrg | motorola* \ 23333adc6acSmrg | ncr* \ 23433adc6acSmrg | news \ 23533adc6acSmrg | next \ 23633adc6acSmrg | ns \ 23733adc6acSmrg | oki \ 23833adc6acSmrg | omron* \ 23933adc6acSmrg | pc533* \ 24033adc6acSmrg | rebel \ 24133adc6acSmrg | rom68k \ 24233adc6acSmrg | rombug \ 24333adc6acSmrg | semi \ 24433adc6acSmrg | sequent* \ 24533adc6acSmrg | siemens \ 24633adc6acSmrg | sgi* \ 24733adc6acSmrg | siemens \ 24833adc6acSmrg | sim \ 24933adc6acSmrg | sni \ 25033adc6acSmrg | sony* \ 25133adc6acSmrg | stratus \ 25233adc6acSmrg | sun \ 25333adc6acSmrg | sun[234]* \ 25433adc6acSmrg | tektronix \ 25533adc6acSmrg | tti* \ 25633adc6acSmrg | ultra \ 25733adc6acSmrg | unicom* \ 25833adc6acSmrg | wec \ 25933adc6acSmrg | winbond \ 26033adc6acSmrg | wrs) 26192405695Smrg basic_machine=$field1-$field2 26233adc6acSmrg basic_os= 26333adc6acSmrg ;; 26433adc6acSmrg zephyr*) 26533adc6acSmrg basic_machine=$field1-unknown 26633adc6acSmrg basic_os=$field2 26792405695Smrg ;; 26892405695Smrg *) 26992405695Smrg basic_machine=$field1 27033adc6acSmrg basic_os=$field2 27192405695Smrg ;; 27292405695Smrg esac 27392405695Smrg ;; 27492405695Smrg esac 275fda9279dSmrg ;; 27692405695Smrg *) 27792405695Smrg # Convert single-component short-hands not valid as part of 27892405695Smrg # multi-component configurations. 27992405695Smrg case $field1 in 28092405695Smrg 386bsd) 28192405695Smrg basic_machine=i386-pc 28233adc6acSmrg basic_os=bsd 28392405695Smrg ;; 28492405695Smrg a29khif) 28592405695Smrg basic_machine=a29k-amd 28633adc6acSmrg basic_os=udi 28792405695Smrg ;; 28892405695Smrg adobe68k) 28992405695Smrg basic_machine=m68010-adobe 29033adc6acSmrg basic_os=scout 29192405695Smrg ;; 29292405695Smrg alliant) 29392405695Smrg basic_machine=fx80-alliant 29433adc6acSmrg basic_os= 29592405695Smrg ;; 29692405695Smrg altos | altos3068) 29792405695Smrg basic_machine=m68k-altos 29833adc6acSmrg basic_os= 29992405695Smrg ;; 30092405695Smrg am29k) 30192405695Smrg basic_machine=a29k-none 30233adc6acSmrg basic_os=bsd 30392405695Smrg ;; 30492405695Smrg amdahl) 30592405695Smrg basic_machine=580-amdahl 30633adc6acSmrg basic_os=sysv 30792405695Smrg ;; 30892405695Smrg amiga) 30992405695Smrg basic_machine=m68k-unknown 31033adc6acSmrg basic_os= 31192405695Smrg ;; 31292405695Smrg amigaos | amigados) 31392405695Smrg basic_machine=m68k-unknown 31433adc6acSmrg basic_os=amigaos 31592405695Smrg ;; 31692405695Smrg amigaunix | amix) 31792405695Smrg basic_machine=m68k-unknown 31833adc6acSmrg basic_os=sysv4 31992405695Smrg ;; 32092405695Smrg apollo68) 32192405695Smrg basic_machine=m68k-apollo 32233adc6acSmrg basic_os=sysv 32392405695Smrg ;; 32492405695Smrg apollo68bsd) 32592405695Smrg basic_machine=m68k-apollo 32633adc6acSmrg basic_os=bsd 32792405695Smrg ;; 32892405695Smrg aros) 32992405695Smrg basic_machine=i386-pc 33033adc6acSmrg basic_os=aros 33192405695Smrg ;; 33292405695Smrg aux) 33392405695Smrg basic_machine=m68k-apple 33433adc6acSmrg basic_os=aux 33592405695Smrg ;; 33692405695Smrg balance) 33792405695Smrg basic_machine=ns32k-sequent 33833adc6acSmrg basic_os=dynix 33992405695Smrg ;; 34092405695Smrg blackfin) 34192405695Smrg basic_machine=bfin-unknown 34233adc6acSmrg basic_os=linux 34392405695Smrg ;; 34492405695Smrg cegcc) 34592405695Smrg basic_machine=arm-unknown 34633adc6acSmrg basic_os=cegcc 34792405695Smrg ;; 34892405695Smrg cray) 34992405695Smrg basic_machine=j90-cray 35033adc6acSmrg basic_os=unicos 35192405695Smrg ;; 35292405695Smrg crds | unos) 35392405695Smrg basic_machine=m68k-crds 35433adc6acSmrg basic_os= 35592405695Smrg ;; 35692405695Smrg da30) 35792405695Smrg basic_machine=m68k-da30 35833adc6acSmrg basic_os= 35992405695Smrg ;; 36092405695Smrg decstation | pmax | pmin | dec3100 | decstatn) 36192405695Smrg basic_machine=mips-dec 36233adc6acSmrg basic_os= 36392405695Smrg ;; 36492405695Smrg delta88) 36592405695Smrg basic_machine=m88k-motorola 36633adc6acSmrg basic_os=sysv3 36792405695Smrg ;; 36892405695Smrg dicos) 36992405695Smrg basic_machine=i686-pc 37033adc6acSmrg basic_os=dicos 37192405695Smrg ;; 37292405695Smrg djgpp) 37392405695Smrg basic_machine=i586-pc 37433adc6acSmrg basic_os=msdosdjgpp 37592405695Smrg ;; 37692405695Smrg ebmon29k) 37792405695Smrg basic_machine=a29k-amd 37833adc6acSmrg basic_os=ebmon 37992405695Smrg ;; 38092405695Smrg es1800 | OSE68k | ose68k | ose | OSE) 38192405695Smrg basic_machine=m68k-ericsson 38233adc6acSmrg basic_os=ose 38392405695Smrg ;; 38492405695Smrg gmicro) 38592405695Smrg basic_machine=tron-gmicro 38633adc6acSmrg basic_os=sysv 38792405695Smrg ;; 38892405695Smrg go32) 38992405695Smrg basic_machine=i386-pc 39033adc6acSmrg basic_os=go32 39192405695Smrg ;; 39292405695Smrg h8300hms) 39392405695Smrg basic_machine=h8300-hitachi 39433adc6acSmrg basic_os=hms 39592405695Smrg ;; 39692405695Smrg h8300xray) 39792405695Smrg basic_machine=h8300-hitachi 39833adc6acSmrg basic_os=xray 39992405695Smrg ;; 40092405695Smrg h8500hms) 40192405695Smrg basic_machine=h8500-hitachi 40233adc6acSmrg basic_os=hms 40392405695Smrg ;; 40492405695Smrg harris) 40592405695Smrg basic_machine=m88k-harris 40633adc6acSmrg basic_os=sysv3 40792405695Smrg ;; 40892405695Smrg hp300 | hp300hpux) 40992405695Smrg basic_machine=m68k-hp 41033adc6acSmrg basic_os=hpux 41192405695Smrg ;; 41292405695Smrg hp300bsd) 41392405695Smrg basic_machine=m68k-hp 41433adc6acSmrg basic_os=bsd 41592405695Smrg ;; 41692405695Smrg hppaosf) 41792405695Smrg basic_machine=hppa1.1-hp 41833adc6acSmrg basic_os=osf 41992405695Smrg ;; 42092405695Smrg hppro) 42192405695Smrg basic_machine=hppa1.1-hp 42233adc6acSmrg basic_os=proelf 42392405695Smrg ;; 42492405695Smrg i386mach) 42592405695Smrg basic_machine=i386-mach 42633adc6acSmrg basic_os=mach 42792405695Smrg ;; 42892405695Smrg isi68 | isi) 42992405695Smrg basic_machine=m68k-isi 43033adc6acSmrg basic_os=sysv 43192405695Smrg ;; 43292405695Smrg m68knommu) 43392405695Smrg basic_machine=m68k-unknown 43433adc6acSmrg basic_os=linux 43592405695Smrg ;; 43692405695Smrg magnum | m3230) 43792405695Smrg basic_machine=mips-mips 43833adc6acSmrg basic_os=sysv 43992405695Smrg ;; 44092405695Smrg merlin) 44192405695Smrg basic_machine=ns32k-utek 44233adc6acSmrg basic_os=sysv 44392405695Smrg ;; 44492405695Smrg mingw64) 44592405695Smrg basic_machine=x86_64-pc 44633adc6acSmrg basic_os=mingw64 44792405695Smrg ;; 44892405695Smrg mingw32) 44992405695Smrg basic_machine=i686-pc 45033adc6acSmrg basic_os=mingw32 45192405695Smrg ;; 45292405695Smrg mingw32ce) 45392405695Smrg basic_machine=arm-unknown 45433adc6acSmrg basic_os=mingw32ce 45592405695Smrg ;; 45692405695Smrg monitor) 45792405695Smrg basic_machine=m68k-rom68k 45833adc6acSmrg basic_os=coff 45992405695Smrg ;; 46092405695Smrg morphos) 46192405695Smrg basic_machine=powerpc-unknown 46233adc6acSmrg basic_os=morphos 46392405695Smrg ;; 46492405695Smrg moxiebox) 46592405695Smrg basic_machine=moxie-unknown 46633adc6acSmrg basic_os=moxiebox 46792405695Smrg ;; 46892405695Smrg msdos) 46992405695Smrg basic_machine=i386-pc 47033adc6acSmrg basic_os=msdos 47192405695Smrg ;; 47292405695Smrg msys) 47392405695Smrg basic_machine=i686-pc 47433adc6acSmrg basic_os=msys 47592405695Smrg ;; 47692405695Smrg mvs) 47792405695Smrg basic_machine=i370-ibm 47833adc6acSmrg basic_os=mvs 47992405695Smrg ;; 48092405695Smrg nacl) 48192405695Smrg basic_machine=le32-unknown 48233adc6acSmrg basic_os=nacl 48392405695Smrg ;; 48492405695Smrg ncr3000) 48592405695Smrg basic_machine=i486-ncr 48633adc6acSmrg basic_os=sysv4 48792405695Smrg ;; 48892405695Smrg netbsd386) 48992405695Smrg basic_machine=i386-pc 49033adc6acSmrg basic_os=netbsd 49192405695Smrg ;; 49292405695Smrg netwinder) 49392405695Smrg basic_machine=armv4l-rebel 49433adc6acSmrg basic_os=linux 49592405695Smrg ;; 49692405695Smrg news | news700 | news800 | news900) 49792405695Smrg basic_machine=m68k-sony 49833adc6acSmrg basic_os=newsos 49992405695Smrg ;; 50092405695Smrg news1000) 50192405695Smrg basic_machine=m68030-sony 50233adc6acSmrg basic_os=newsos 50392405695Smrg ;; 50492405695Smrg necv70) 50592405695Smrg basic_machine=v70-nec 50633adc6acSmrg basic_os=sysv 50792405695Smrg ;; 50892405695Smrg nh3000) 50992405695Smrg basic_machine=m68k-harris 51033adc6acSmrg basic_os=cxux 51192405695Smrg ;; 51292405695Smrg nh[45]000) 51392405695Smrg basic_machine=m88k-harris 51433adc6acSmrg basic_os=cxux 51592405695Smrg ;; 51692405695Smrg nindy960) 51792405695Smrg basic_machine=i960-intel 51833adc6acSmrg basic_os=nindy 51992405695Smrg ;; 52092405695Smrg mon960) 52192405695Smrg basic_machine=i960-intel 52233adc6acSmrg basic_os=mon960 52392405695Smrg ;; 52492405695Smrg nonstopux) 52592405695Smrg basic_machine=mips-compaq 52633adc6acSmrg basic_os=nonstopux 52792405695Smrg ;; 52892405695Smrg os400) 52992405695Smrg basic_machine=powerpc-ibm 53033adc6acSmrg basic_os=os400 53192405695Smrg ;; 53292405695Smrg OSE68000 | ose68000) 53392405695Smrg basic_machine=m68000-ericsson 53433adc6acSmrg basic_os=ose 53592405695Smrg ;; 53692405695Smrg os68k) 53792405695Smrg basic_machine=m68k-none 53833adc6acSmrg basic_os=os68k 53992405695Smrg ;; 54092405695Smrg paragon) 54192405695Smrg basic_machine=i860-intel 54233adc6acSmrg basic_os=osf 54392405695Smrg ;; 54492405695Smrg parisc) 54592405695Smrg basic_machine=hppa-unknown 54633adc6acSmrg basic_os=linux 54792405695Smrg ;; 54892405695Smrg psp) 54992405695Smrg basic_machine=mipsallegrexel-sony 55033adc6acSmrg basic_os=psp 55192405695Smrg ;; 55292405695Smrg pw32) 55392405695Smrg basic_machine=i586-unknown 55433adc6acSmrg basic_os=pw32 55592405695Smrg ;; 55692405695Smrg rdos | rdos64) 55792405695Smrg basic_machine=x86_64-pc 55833adc6acSmrg basic_os=rdos 55992405695Smrg ;; 56092405695Smrg rdos32) 56192405695Smrg basic_machine=i386-pc 56233adc6acSmrg basic_os=rdos 56392405695Smrg ;; 56492405695Smrg rom68k) 56592405695Smrg basic_machine=m68k-rom68k 56633adc6acSmrg basic_os=coff 56792405695Smrg ;; 56892405695Smrg sa29200) 56992405695Smrg basic_machine=a29k-amd 57033adc6acSmrg basic_os=udi 57192405695Smrg ;; 57292405695Smrg sei) 57392405695Smrg basic_machine=mips-sei 57433adc6acSmrg basic_os=seiux 57592405695Smrg ;; 57692405695Smrg sequent) 57792405695Smrg basic_machine=i386-sequent 57833adc6acSmrg basic_os= 57992405695Smrg ;; 58092405695Smrg sps7) 58192405695Smrg basic_machine=m68k-bull 58233adc6acSmrg basic_os=sysv2 58392405695Smrg ;; 58492405695Smrg st2000) 58592405695Smrg basic_machine=m68k-tandem 58633adc6acSmrg basic_os= 58792405695Smrg ;; 58892405695Smrg stratus) 58992405695Smrg basic_machine=i860-stratus 59033adc6acSmrg basic_os=sysv4 59192405695Smrg ;; 59292405695Smrg sun2) 59392405695Smrg basic_machine=m68000-sun 59433adc6acSmrg basic_os= 59592405695Smrg ;; 59692405695Smrg sun2os3) 59792405695Smrg basic_machine=m68000-sun 59833adc6acSmrg basic_os=sunos3 59992405695Smrg ;; 60092405695Smrg sun2os4) 60192405695Smrg basic_machine=m68000-sun 60233adc6acSmrg basic_os=sunos4 60392405695Smrg ;; 60492405695Smrg sun3) 60592405695Smrg basic_machine=m68k-sun 60633adc6acSmrg basic_os= 60792405695Smrg ;; 60892405695Smrg sun3os3) 60992405695Smrg basic_machine=m68k-sun 61033adc6acSmrg basic_os=sunos3 61192405695Smrg ;; 61292405695Smrg sun3os4) 61392405695Smrg basic_machine=m68k-sun 61433adc6acSmrg basic_os=sunos4 61592405695Smrg ;; 61692405695Smrg sun4) 61792405695Smrg basic_machine=sparc-sun 61833adc6acSmrg basic_os= 61992405695Smrg ;; 62092405695Smrg sun4os3) 62192405695Smrg basic_machine=sparc-sun 62233adc6acSmrg basic_os=sunos3 62392405695Smrg ;; 62492405695Smrg sun4os4) 62592405695Smrg basic_machine=sparc-sun 62633adc6acSmrg basic_os=sunos4 62792405695Smrg ;; 62892405695Smrg sun4sol2) 62992405695Smrg basic_machine=sparc-sun 63033adc6acSmrg basic_os=solaris2 63192405695Smrg ;; 63292405695Smrg sun386 | sun386i | roadrunner) 63392405695Smrg basic_machine=i386-sun 63433adc6acSmrg basic_os= 63592405695Smrg ;; 63692405695Smrg sv1) 63792405695Smrg basic_machine=sv1-cray 63833adc6acSmrg basic_os=unicos 63992405695Smrg ;; 64092405695Smrg symmetry) 64192405695Smrg basic_machine=i386-sequent 64233adc6acSmrg basic_os=dynix 64392405695Smrg ;; 64492405695Smrg t3e) 64592405695Smrg basic_machine=alphaev5-cray 64633adc6acSmrg basic_os=unicos 64792405695Smrg ;; 64892405695Smrg t90) 64992405695Smrg basic_machine=t90-cray 65033adc6acSmrg basic_os=unicos 65192405695Smrg ;; 65292405695Smrg toad1) 65392405695Smrg basic_machine=pdp10-xkl 65433adc6acSmrg basic_os=tops20 65592405695Smrg ;; 65692405695Smrg tpf) 65792405695Smrg basic_machine=s390x-ibm 65833adc6acSmrg basic_os=tpf 65992405695Smrg ;; 66092405695Smrg udi29k) 66192405695Smrg basic_machine=a29k-amd 66233adc6acSmrg basic_os=udi 66392405695Smrg ;; 66492405695Smrg ultra3) 66592405695Smrg basic_machine=a29k-nyu 66633adc6acSmrg basic_os=sym1 66792405695Smrg ;; 66892405695Smrg v810 | necv810) 66992405695Smrg basic_machine=v810-nec 67033adc6acSmrg basic_os=none 67192405695Smrg ;; 67292405695Smrg vaxv) 67392405695Smrg basic_machine=vax-dec 67433adc6acSmrg basic_os=sysv 67592405695Smrg ;; 67692405695Smrg vms) 67792405695Smrg basic_machine=vax-dec 67833adc6acSmrg basic_os=vms 67992405695Smrg ;; 68092405695Smrg vsta) 68192405695Smrg basic_machine=i386-pc 68233adc6acSmrg basic_os=vsta 68392405695Smrg ;; 68492405695Smrg vxworks960) 68592405695Smrg basic_machine=i960-wrs 68633adc6acSmrg basic_os=vxworks 68792405695Smrg ;; 68892405695Smrg vxworks68) 68992405695Smrg basic_machine=m68k-wrs 69033adc6acSmrg basic_os=vxworks 69192405695Smrg ;; 69292405695Smrg vxworks29k) 69392405695Smrg basic_machine=a29k-wrs 69433adc6acSmrg basic_os=vxworks 69592405695Smrg ;; 69692405695Smrg xbox) 69792405695Smrg basic_machine=i686-pc 69833adc6acSmrg basic_os=mingw32 69992405695Smrg ;; 70092405695Smrg ymp) 70192405695Smrg basic_machine=ymp-cray 70233adc6acSmrg basic_os=unicos 70392405695Smrg ;; 70492405695Smrg *) 70592405695Smrg basic_machine=$1 70633adc6acSmrg basic_os= 70792405695Smrg ;; 70892405695Smrg esac 709fda9279dSmrg ;; 710fda9279dSmrgesac 711fda9279dSmrg 71292405695Smrg# Decode 1-component or ad-hoc basic machines 713fda9279dSmrgcase $basic_machine in 71492405695Smrg # Here we handle the default manufacturer of certain CPU types. It is in 71592405695Smrg # some cases the only manufacturer, in others, it is the most popular. 71692405695Smrg w89k) 71792405695Smrg cpu=hppa1.1 71892405695Smrg vendor=winbond 719fda9279dSmrg ;; 72092405695Smrg op50n) 72192405695Smrg cpu=hppa1.1 72292405695Smrg vendor=oki 723fda9279dSmrg ;; 72492405695Smrg op60c) 72592405695Smrg cpu=hppa1.1 72692405695Smrg vendor=oki 727fda9279dSmrg ;; 72892405695Smrg ibm*) 72992405695Smrg cpu=i370 73092405695Smrg vendor=ibm 731fda9279dSmrg ;; 73292405695Smrg orion105) 73392405695Smrg cpu=clipper 73492405695Smrg vendor=highlevel 735fda9279dSmrg ;; 73692405695Smrg mac | mpw | mac-mpw) 73792405695Smrg cpu=m68k 73892405695Smrg vendor=apple 739fda9279dSmrg ;; 74092405695Smrg pmac | pmac-mpw) 74192405695Smrg cpu=powerpc 74292405695Smrg vendor=apple 743fda9279dSmrg ;; 744fda9279dSmrg 745fda9279dSmrg # Recognize the various machine names and aliases which stand 746fda9279dSmrg # for a CPU type and a company and sometimes even an OS. 747fda9279dSmrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 74892405695Smrg cpu=m68000 74992405695Smrg vendor=att 750fda9279dSmrg ;; 751fda9279dSmrg 3b*) 75292405695Smrg cpu=we32k 75392405695Smrg vendor=att 754fda9279dSmrg ;; 755fda9279dSmrg bluegene*) 75692405695Smrg cpu=powerpc 75792405695Smrg vendor=ibm 75833adc6acSmrg basic_os=cnk 759fda9279dSmrg ;; 760fda9279dSmrg decsystem10* | dec10*) 76192405695Smrg cpu=pdp10 76292405695Smrg vendor=dec 76333adc6acSmrg basic_os=tops10 764fda9279dSmrg ;; 765fda9279dSmrg decsystem20* | dec20*) 76692405695Smrg cpu=pdp10 76792405695Smrg vendor=dec 76833adc6acSmrg basic_os=tops20 769fda9279dSmrg ;; 77033adc6acSmrg delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300) 77192405695Smrg cpu=m68k 77292405695Smrg vendor=motorola 773fda9279dSmrg ;; 77433adc6acSmrg # This used to be dpx2*, but that gets the RS6000-based 77533adc6acSmrg # DPX/20 and the x86-based DPX/2-100 wrong. See 77633adc6acSmrg # https://oldskool.silicium.org/stations/bull_dpx20.htm 77733adc6acSmrg # https://www.feb-patrimoine.com/english/bull_dpx2.htm 77833adc6acSmrg # https://www.feb-patrimoine.com/english/unix_and_bull.htm 77933adc6acSmrg dpx2 | dpx2[23]00 | dpx2[23]xx) 78092405695Smrg cpu=m68k 78192405695Smrg vendor=bull 78233adc6acSmrg ;; 78333adc6acSmrg dpx2100 | dpx21xx) 78433adc6acSmrg cpu=i386 78533adc6acSmrg vendor=bull 78633adc6acSmrg ;; 78733adc6acSmrg dpx20) 78833adc6acSmrg cpu=rs6000 78933adc6acSmrg vendor=bull 790fda9279dSmrg ;; 791fda9279dSmrg encore | umax | mmax) 79292405695Smrg cpu=ns32k 79392405695Smrg vendor=encore 794fda9279dSmrg ;; 79592405695Smrg elxsi) 79692405695Smrg cpu=elxsi 79792405695Smrg vendor=elxsi 79833adc6acSmrg basic_os=${basic_os:-bsd} 799fda9279dSmrg ;; 800fda9279dSmrg fx2800) 80192405695Smrg cpu=i860 80292405695Smrg vendor=alliant 803fda9279dSmrg ;; 804fda9279dSmrg genix) 80592405695Smrg cpu=ns32k 80692405695Smrg vendor=ns 807fda9279dSmrg ;; 808fda9279dSmrg h3050r* | hiux*) 80992405695Smrg cpu=hppa1.1 81092405695Smrg vendor=hitachi 81133adc6acSmrg basic_os=hiuxwe2 812fda9279dSmrg ;; 813fda9279dSmrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 81492405695Smrg cpu=hppa1.0 81592405695Smrg vendor=hp 816fda9279dSmrg ;; 817fda9279dSmrg hp9k2[0-9][0-9] | hp9k31[0-9]) 81892405695Smrg cpu=m68000 81992405695Smrg vendor=hp 820fda9279dSmrg ;; 821fda9279dSmrg hp9k3[2-9][0-9]) 82292405695Smrg cpu=m68k 82392405695Smrg vendor=hp 824fda9279dSmrg ;; 825fda9279dSmrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 82692405695Smrg cpu=hppa1.0 82792405695Smrg vendor=hp 828fda9279dSmrg ;; 829fda9279dSmrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 83092405695Smrg cpu=hppa1.1 83192405695Smrg vendor=hp 832fda9279dSmrg ;; 833fda9279dSmrg hp9k78[0-9] | hp78[0-9]) 834fda9279dSmrg # FIXME: really hppa2.0-hp 83592405695Smrg cpu=hppa1.1 83692405695Smrg vendor=hp 837fda9279dSmrg ;; 838fda9279dSmrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 839fda9279dSmrg # FIXME: really hppa2.0-hp 84092405695Smrg cpu=hppa1.1 84192405695Smrg vendor=hp 842fda9279dSmrg ;; 843fda9279dSmrg hp9k8[0-9][13679] | hp8[0-9][13679]) 84492405695Smrg cpu=hppa1.1 84592405695Smrg vendor=hp 846fda9279dSmrg ;; 847fda9279dSmrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 84892405695Smrg cpu=hppa1.0 84992405695Smrg vendor=hp 850fda9279dSmrg ;; 851fda9279dSmrg i*86v32) 85292405695Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 85392405695Smrg vendor=pc 85433adc6acSmrg basic_os=sysv32 855fda9279dSmrg ;; 856fda9279dSmrg i*86v4*) 85792405695Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 85892405695Smrg vendor=pc 85933adc6acSmrg basic_os=sysv4 860fda9279dSmrg ;; 861fda9279dSmrg i*86v) 86292405695Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 86392405695Smrg vendor=pc 86433adc6acSmrg basic_os=sysv 865fda9279dSmrg ;; 866fda9279dSmrg i*86sol2) 86792405695Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 86892405695Smrg vendor=pc 86933adc6acSmrg basic_os=solaris2 870fda9279dSmrg ;; 87192405695Smrg j90 | j90-cray) 87292405695Smrg cpu=j90 87392405695Smrg vendor=cray 87433adc6acSmrg basic_os=${basic_os:-unicos} 875fda9279dSmrg ;; 876fda9279dSmrg iris | iris4d) 87792405695Smrg cpu=mips 87892405695Smrg vendor=sgi 87933adc6acSmrg case $basic_os in 88092405695Smrg irix*) 881fda9279dSmrg ;; 882fda9279dSmrg *) 88333adc6acSmrg basic_os=irix4 884fda9279dSmrg ;; 885fda9279dSmrg esac 886fda9279dSmrg ;; 887fda9279dSmrg miniframe) 88892405695Smrg cpu=m68000 88992405695Smrg vendor=convergent 890fda9279dSmrg ;; 89192405695Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 89292405695Smrg cpu=m68k 89392405695Smrg vendor=atari 89433adc6acSmrg basic_os=mint 895fda9279dSmrg ;; 896fda9279dSmrg news-3600 | risc-news) 89792405695Smrg cpu=mips 89892405695Smrg vendor=sony 89933adc6acSmrg basic_os=newsos 900fda9279dSmrg ;; 90192405695Smrg next | m*-next) 90292405695Smrg cpu=m68k 90392405695Smrg vendor=next 904fda9279dSmrg ;; 905fda9279dSmrg np1) 90692405695Smrg cpu=np1 90792405695Smrg vendor=gould 908fda9279dSmrg ;; 909fda9279dSmrg op50n-* | op60c-*) 91092405695Smrg cpu=hppa1.1 91192405695Smrg vendor=oki 91233adc6acSmrg basic_os=proelf 913fda9279dSmrg ;; 914fda9279dSmrg pa-hitachi) 91592405695Smrg cpu=hppa1.1 91692405695Smrg vendor=hitachi 91733adc6acSmrg basic_os=hiuxwe2 918fda9279dSmrg ;; 919fda9279dSmrg pbd) 92092405695Smrg cpu=sparc 92192405695Smrg vendor=tti 922fda9279dSmrg ;; 923fda9279dSmrg pbb) 92492405695Smrg cpu=m68k 92592405695Smrg vendor=tti 926fda9279dSmrg ;; 92792405695Smrg pc532) 92892405695Smrg cpu=ns32k 92992405695Smrg vendor=pc532 930fda9279dSmrg ;; 931fda9279dSmrg pn) 93292405695Smrg cpu=pn 93392405695Smrg vendor=gould 934fda9279dSmrg ;; 93592405695Smrg power) 93692405695Smrg cpu=power 93792405695Smrg vendor=ibm 938fda9279dSmrg ;; 939fda9279dSmrg ps2) 94092405695Smrg cpu=i386 94192405695Smrg vendor=ibm 942fda9279dSmrg ;; 943fda9279dSmrg rm[46]00) 94492405695Smrg cpu=mips 94592405695Smrg vendor=siemens 946fda9279dSmrg ;; 947fda9279dSmrg rtpc | rtpc-*) 94892405695Smrg cpu=romp 94992405695Smrg vendor=ibm 950fda9279dSmrg ;; 951fda9279dSmrg sde) 95292405695Smrg cpu=mipsisa32 95392405695Smrg vendor=sde 95433adc6acSmrg basic_os=${basic_os:-elf} 955fda9279dSmrg ;; 95692405695Smrg simso-wrs) 95792405695Smrg cpu=sparclite 95892405695Smrg vendor=wrs 95933adc6acSmrg basic_os=vxworks 960fda9279dSmrg ;; 96192405695Smrg tower | tower-32) 96292405695Smrg cpu=m68k 96392405695Smrg vendor=ncr 964fda9279dSmrg ;; 96592405695Smrg vpp*|vx|vx-*) 96692405695Smrg cpu=f301 96792405695Smrg vendor=fujitsu 968fda9279dSmrg ;; 96992405695Smrg w65) 97092405695Smrg cpu=w65 97192405695Smrg vendor=wdc 972fda9279dSmrg ;; 97392405695Smrg w89k-*) 97492405695Smrg cpu=hppa1.1 97592405695Smrg vendor=winbond 97633adc6acSmrg basic_os=proelf 977fda9279dSmrg ;; 97892405695Smrg none) 97992405695Smrg cpu=none 98092405695Smrg vendor=none 981fda9279dSmrg ;; 98292405695Smrg leon|leon[3-9]) 98392405695Smrg cpu=sparc 98492405695Smrg vendor=$basic_machine 985fda9279dSmrg ;; 98692405695Smrg leon-*|leon[3-9]-*) 98792405695Smrg cpu=sparc 98892405695Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 989fda9279dSmrg ;; 99092405695Smrg 99192405695Smrg *-*) 99233adc6acSmrg saved_IFS=$IFS 99392405695Smrg IFS="-" read cpu vendor <<EOF 99492405695Smrg$basic_machine 99592405695SmrgEOF 99633adc6acSmrg IFS=$saved_IFS 997fda9279dSmrg ;; 99833adc6acSmrg # We use 'pc' rather than 'unknown' 99992405695Smrg # because (1) that's what they normally are, and 100092405695Smrg # (2) the word "unknown" tends to confuse beginning users. 100192405695Smrg i*86 | x86_64) 100292405695Smrg cpu=$basic_machine 100392405695Smrg vendor=pc 1004fda9279dSmrg ;; 100592405695Smrg # These rules are duplicated from below for sake of the special case above; 100692405695Smrg # i.e. things that normalized to x86 arches should also default to "pc" 100792405695Smrg pc98) 100892405695Smrg cpu=i386 100992405695Smrg vendor=pc 1010fda9279dSmrg ;; 101192405695Smrg x64 | amd64) 101292405695Smrg cpu=x86_64 101392405695Smrg vendor=pc 1014fda9279dSmrg ;; 101592405695Smrg # Recognize the basic CPU types without company name. 101692405695Smrg *) 101792405695Smrg cpu=$basic_machine 101892405695Smrg vendor=unknown 1019fda9279dSmrg ;; 102092405695Smrgesac 102192405695Smrg 102292405695Smrgunset -v basic_machine 102392405695Smrg 102492405695Smrg# Decode basic machines in the full and proper CPU-Company form. 102592405695Smrgcase $cpu-$vendor in 102633adc6acSmrg # Here we handle the default manufacturer of certain CPU types in canonical form. 102733adc6acSmrg # It is in some cases the only manufacturer, in others, it is the most popular. 102833adc6acSmrg c[12]-convex | c[12]-unknown | c3[248]-convex | c3[248]-unknown) 102933adc6acSmrg vendor=convex 103033adc6acSmrg basic_os=${basic_os:-bsd} 103133adc6acSmrg ;; 103292405695Smrg craynv-unknown) 103392405695Smrg vendor=cray 103433adc6acSmrg basic_os=${basic_os:-unicosmp} 1035fda9279dSmrg ;; 103692405695Smrg c90-unknown | c90-cray) 103792405695Smrg vendor=cray 103833adc6acSmrg basic_os=${basic_os:-unicos} 1039fda9279dSmrg ;; 104092405695Smrg fx80-unknown) 104192405695Smrg vendor=alliant 1042fda9279dSmrg ;; 104392405695Smrg romp-unknown) 104492405695Smrg vendor=ibm 1045fda9279dSmrg ;; 104692405695Smrg mmix-unknown) 104792405695Smrg vendor=knuth 1048fda9279dSmrg ;; 104992405695Smrg microblaze-unknown | microblazeel-unknown) 105092405695Smrg vendor=xilinx 1051fda9279dSmrg ;; 105292405695Smrg rs6000-unknown) 105392405695Smrg vendor=ibm 1054fda9279dSmrg ;; 105592405695Smrg vax-unknown) 105692405695Smrg vendor=dec 1057fda9279dSmrg ;; 105892405695Smrg pdp11-unknown) 105992405695Smrg vendor=dec 1060fda9279dSmrg ;; 106192405695Smrg we32k-unknown) 106292405695Smrg vendor=att 1063fda9279dSmrg ;; 106492405695Smrg cydra-unknown) 106592405695Smrg vendor=cydrome 1066fda9279dSmrg ;; 106792405695Smrg i370-ibm*) 106892405695Smrg vendor=ibm 1069fda9279dSmrg ;; 107092405695Smrg orion-unknown) 107192405695Smrg vendor=highlevel 1072fda9279dSmrg ;; 107392405695Smrg xps-unknown | xps100-unknown) 107492405695Smrg cpu=xps100 107592405695Smrg vendor=honeywell 1076fda9279dSmrg ;; 107792405695Smrg 107892405695Smrg # Here we normalize CPU types with a missing or matching vendor 107933adc6acSmrg armh-unknown | armh-alt) 108033adc6acSmrg cpu=armv7l 108133adc6acSmrg vendor=alt 108233adc6acSmrg basic_os=${basic_os:-linux-gnueabihf} 108333adc6acSmrg ;; 108433adc6acSmrg 108533adc6acSmrg # Normalized CPU+vendor pairs that imply an OS, if not otherwise specified 108633adc6acSmrg m68k-isi) 108733adc6acSmrg basic_os=${basic_os:-sysv} 108833adc6acSmrg ;; 108933adc6acSmrg m68k-sony) 109033adc6acSmrg basic_os=${basic_os:-newsos} 109133adc6acSmrg ;; 109233adc6acSmrg m68k-tektronix) 109333adc6acSmrg basic_os=${basic_os:-bsd} 109433adc6acSmrg ;; 109533adc6acSmrg m88k-harris) 109633adc6acSmrg basic_os=${basic_os:-sysv3} 109733adc6acSmrg ;; 109833adc6acSmrg i386-bull | m68k-bull) 109933adc6acSmrg basic_os=${basic_os:-sysv3} 110033adc6acSmrg ;; 110133adc6acSmrg rs6000-bull) 110233adc6acSmrg basic_os=${basic_os:-bosx} 110333adc6acSmrg ;; 110433adc6acSmrg mips-sni) 110533adc6acSmrg basic_os=${basic_os:-sysv4} 1106fda9279dSmrg ;; 110792405695Smrg 110892405695Smrg # Here we normalize CPU types irrespective of the vendor 110992405695Smrg amd64-*) 111092405695Smrg cpu=x86_64 1111fda9279dSmrg ;; 111292405695Smrg blackfin-*) 111392405695Smrg cpu=bfin 111433adc6acSmrg basic_os=${basic_os:-linux} 1115fda9279dSmrg ;; 111692405695Smrg c54x-*) 111792405695Smrg cpu=tic54x 1118fda9279dSmrg ;; 111992405695Smrg c55x-*) 112092405695Smrg cpu=tic55x 1121fda9279dSmrg ;; 112292405695Smrg c6x-*) 112392405695Smrg cpu=tic6x 1124fda9279dSmrg ;; 112592405695Smrg e500v[12]-*) 112692405695Smrg cpu=powerpc 112733adc6acSmrg basic_os=${basic_os}"spe" 1128fda9279dSmrg ;; 112992405695Smrg mips3*-*) 113092405695Smrg cpu=mips64 1131fda9279dSmrg ;; 113292405695Smrg ms1-*) 113392405695Smrg cpu=mt 1134fda9279dSmrg ;; 113592405695Smrg m68knommu-*) 113692405695Smrg cpu=m68k 113733adc6acSmrg basic_os=${basic_os:-linux} 1138fda9279dSmrg ;; 113992405695Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 114092405695Smrg cpu=s12z 1141fda9279dSmrg ;; 114292405695Smrg openrisc-*) 114392405695Smrg cpu=or32 1144fda9279dSmrg ;; 114592405695Smrg parisc-*) 114692405695Smrg cpu=hppa 114733adc6acSmrg basic_os=${basic_os:-linux} 1148fda9279dSmrg ;; 114992405695Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 115092405695Smrg cpu=i586 1151fda9279dSmrg ;; 115233adc6acSmrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) 115392405695Smrg cpu=i686 1154fda9279dSmrg ;; 115592405695Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 115692405695Smrg cpu=i686 1157fda9279dSmrg ;; 115892405695Smrg pentium4-*) 115992405695Smrg cpu=i786 1160fda9279dSmrg ;; 116192405695Smrg ppc-* | ppcbe-*) 116292405695Smrg cpu=powerpc 1163fda9279dSmrg ;; 116492405695Smrg ppcle-* | powerpclittle-*) 116592405695Smrg cpu=powerpcle 1166fda9279dSmrg ;; 116792405695Smrg ppc64-*) 116892405695Smrg cpu=powerpc64 1169fda9279dSmrg ;; 117092405695Smrg ppc64le-* | powerpc64little-*) 117192405695Smrg cpu=powerpc64le 1172fda9279dSmrg ;; 117392405695Smrg sb1-*) 117492405695Smrg cpu=mipsisa64sb1 1175fda9279dSmrg ;; 117692405695Smrg sb1el-*) 117792405695Smrg cpu=mipsisa64sb1el 1178fda9279dSmrg ;; 117992405695Smrg sh5e[lb]-*) 118092405695Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 1181fda9279dSmrg ;; 118292405695Smrg spur-*) 118392405695Smrg cpu=spur 1184fda9279dSmrg ;; 118592405695Smrg strongarm-* | thumb-*) 118692405695Smrg cpu=arm 1187fda9279dSmrg ;; 118892405695Smrg tx39-*) 118992405695Smrg cpu=mipstx39 1190fda9279dSmrg ;; 119192405695Smrg tx39el-*) 119292405695Smrg cpu=mipstx39el 1193fda9279dSmrg ;; 119492405695Smrg xscale-* | xscalee[bl]-*) 119592405695Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 1196fda9279dSmrg ;; 119733adc6acSmrg arm64-* | aarch64le-*) 119833adc6acSmrg cpu=aarch64 119933adc6acSmrg ;; 120092405695Smrg 120192405695Smrg # Recognize the canonical CPU Types that limit and/or modify the 120292405695Smrg # company names they are paired with. 120392405695Smrg cr16-*) 120433adc6acSmrg basic_os=${basic_os:-elf} 120592405695Smrg ;; 120692405695Smrg crisv32-* | etraxfs*-*) 120792405695Smrg cpu=crisv32 120892405695Smrg vendor=axis 1209fda9279dSmrg ;; 121092405695Smrg cris-* | etrax*-*) 121192405695Smrg cpu=cris 121292405695Smrg vendor=axis 1213fda9279dSmrg ;; 121492405695Smrg crx-*) 121533adc6acSmrg basic_os=${basic_os:-elf} 1216fda9279dSmrg ;; 121792405695Smrg neo-tandem) 121892405695Smrg cpu=neo 121992405695Smrg vendor=tandem 1220fda9279dSmrg ;; 122192405695Smrg nse-tandem) 122292405695Smrg cpu=nse 122392405695Smrg vendor=tandem 1224fda9279dSmrg ;; 122592405695Smrg nsr-tandem) 122692405695Smrg cpu=nsr 122792405695Smrg vendor=tandem 1228fda9279dSmrg ;; 122992405695Smrg nsv-tandem) 123092405695Smrg cpu=nsv 123192405695Smrg vendor=tandem 1232fda9279dSmrg ;; 123392405695Smrg nsx-tandem) 123492405695Smrg cpu=nsx 123592405695Smrg vendor=tandem 1236fda9279dSmrg ;; 123792405695Smrg mipsallegrexel-sony) 123892405695Smrg cpu=mipsallegrexel 123992405695Smrg vendor=sony 1240fda9279dSmrg ;; 124192405695Smrg tile*-*) 124233adc6acSmrg basic_os=${basic_os:-linux-gnu} 1243fda9279dSmrg ;; 124492405695Smrg 1245fda9279dSmrg *) 124692405695Smrg # Recognize the canonical CPU types that are allowed with any 124792405695Smrg # company name. 124892405695Smrg case $cpu in 124933adc6acSmrg 1750a \ 125033adc6acSmrg | 580 \ 125133adc6acSmrg | [cjt]90 \ 125292405695Smrg | a29k \ 125333adc6acSmrg | aarch64 \ 125433adc6acSmrg | aarch64_be \ 125533adc6acSmrg | aarch64c \ 125692405695Smrg | abacus \ 125733adc6acSmrg | alpha \ 125833adc6acSmrg | alpha64 \ 125933adc6acSmrg | alpha64ev56 \ 126033adc6acSmrg | alpha64ev6[78] \ 126133adc6acSmrg | alpha64ev[4-8] \ 126233adc6acSmrg | alpha64pca5[67] \ 126333adc6acSmrg | alphaev56 \ 126433adc6acSmrg | alphaev6[78] \ 126533adc6acSmrg | alphaev[4-8] \ 126633adc6acSmrg | alphapca5[67] \ 126792405695Smrg | am33_2.0 \ 126892405695Smrg | amdgcn \ 126933adc6acSmrg | arc \ 127033adc6acSmrg | arc32 \ 127133adc6acSmrg | arc64 \ 127233adc6acSmrg | arceb \ 127333adc6acSmrg | arm \ 127433adc6acSmrg | arm64e \ 127533adc6acSmrg | arm64ec \ 127633adc6acSmrg | arm[lb]e \ 127733adc6acSmrg | arme[lb] \ 127833adc6acSmrg | armv* \ 127992405695Smrg | asmjs \ 128033adc6acSmrg | avr \ 128133adc6acSmrg | avr32 \ 128292405695Smrg | ba \ 128333adc6acSmrg | be32 \ 128433adc6acSmrg | be64 \ 128533adc6acSmrg | bfin \ 128633adc6acSmrg | bpf \ 128733adc6acSmrg | bs2000 \ 128833adc6acSmrg | c30 \ 128933adc6acSmrg | c4x \ 129033adc6acSmrg | c8051 \ 129133adc6acSmrg | c[123]* \ 129233adc6acSmrg | clipper \ 129333adc6acSmrg | craynv \ 129433adc6acSmrg | csky \ 129533adc6acSmrg | cydra \ 129633adc6acSmrg | d10v \ 129733adc6acSmrg | d30v \ 129833adc6acSmrg | dlx \ 129933adc6acSmrg | dsp16xx \ 130033adc6acSmrg | e2k \ 130133adc6acSmrg | elxsi \ 130233adc6acSmrg | epiphany \ 130333adc6acSmrg | f30[01] \ 130433adc6acSmrg | f700 \ 130533adc6acSmrg | fido \ 130633adc6acSmrg | fr30 \ 130733adc6acSmrg | frv \ 130833adc6acSmrg | ft32 \ 130933adc6acSmrg | fx80 \ 131033adc6acSmrg | h8300 \ 131133adc6acSmrg | h8500 \ 131292405695Smrg | hexagon \ 131333adc6acSmrg | hppa \ 131433adc6acSmrg | hppa1.[01] \ 131533adc6acSmrg | hppa2.0 \ 131633adc6acSmrg | hppa2.0[nw] \ 131733adc6acSmrg | hppa64 \ 131833adc6acSmrg | i*86 \ 131933adc6acSmrg | i370 \ 132033adc6acSmrg | i860 \ 132133adc6acSmrg | i960 \ 132233adc6acSmrg | ia16 \ 132333adc6acSmrg | ia64 \ 132433adc6acSmrg | ip2k \ 132533adc6acSmrg | iq2000 \ 132633adc6acSmrg | javascript \ 132792405695Smrg | k1om \ 132833adc6acSmrg | kvx \ 132933adc6acSmrg | le32 \ 133033adc6acSmrg | le64 \ 133192405695Smrg | lm32 \ 133233adc6acSmrg | loongarch32 \ 133333adc6acSmrg | loongarch64 \ 133433adc6acSmrg | m32c \ 133533adc6acSmrg | m32r \ 133633adc6acSmrg | m32rle \ 133733adc6acSmrg | m5200 \ 133833adc6acSmrg | m68000 \ 133933adc6acSmrg | m680[012346]0 \ 134033adc6acSmrg | m6811 \ 134133adc6acSmrg | m6812 \ 134233adc6acSmrg | m68360 \ 134333adc6acSmrg | m683?2 \ 134433adc6acSmrg | m68hc11 \ 134533adc6acSmrg | m68hc12 \ 134633adc6acSmrg | m68hcs12x \ 134733adc6acSmrg | m68k \ 134833adc6acSmrg | m88110 \ 134933adc6acSmrg | m88k \ 135033adc6acSmrg | maxq \ 135133adc6acSmrg | mb \ 135233adc6acSmrg | mcore \ 135333adc6acSmrg | mep \ 135433adc6acSmrg | metag \ 135533adc6acSmrg | microblaze \ 135633adc6acSmrg | microblazeel \ 135733adc6acSmrg | mips* \ 135892405695Smrg | mmix \ 135933adc6acSmrg | mn10200 \ 136033adc6acSmrg | mn10300 \ 136192405695Smrg | moxie \ 136292405695Smrg | msp430 \ 136333adc6acSmrg | mt \ 136433adc6acSmrg | nanomips* \ 136533adc6acSmrg | nds32 \ 136633adc6acSmrg | nds32be \ 136733adc6acSmrg | nds32le \ 136892405695Smrg | nfp \ 136933adc6acSmrg | nios \ 137033adc6acSmrg | nios2 \ 137133adc6acSmrg | nios2eb \ 137233adc6acSmrg | nios2el \ 137333adc6acSmrg | none \ 137433adc6acSmrg | np1 \ 137533adc6acSmrg | ns16k \ 137633adc6acSmrg | ns32k \ 137733adc6acSmrg | nvptx \ 137892405695Smrg | open8 \ 137992405695Smrg | or1k* \ 138092405695Smrg | or32 \ 138192405695Smrg | orion \ 138233adc6acSmrg | pdp10 \ 138333adc6acSmrg | pdp11 \ 138492405695Smrg | picochip \ 138533adc6acSmrg | pj \ 138633adc6acSmrg | pjl \ 138733adc6acSmrg | pn \ 138833adc6acSmrg | power \ 138933adc6acSmrg | powerpc \ 139033adc6acSmrg | powerpc64 \ 139133adc6acSmrg | powerpc64le \ 139233adc6acSmrg | powerpcle \ 139333adc6acSmrg | powerpcspe \ 139492405695Smrg | pru \ 139592405695Smrg | pyramid \ 139633adc6acSmrg | riscv \ 139733adc6acSmrg | riscv32 \ 139833adc6acSmrg | riscv32be \ 139933adc6acSmrg | riscv64 \ 140033adc6acSmrg | riscv64be \ 140133adc6acSmrg | rl78 \ 140233adc6acSmrg | romp \ 140333adc6acSmrg | rs6000 \ 140433adc6acSmrg | rx \ 140533adc6acSmrg | s390 \ 140633adc6acSmrg | s390x \ 140792405695Smrg | score \ 140833adc6acSmrg | sh \ 140933adc6acSmrg | sh64 \ 141033adc6acSmrg | sh64le \ 141133adc6acSmrg | sh[12345][lb]e \ 141233adc6acSmrg | sh[1234] \ 141333adc6acSmrg | sh[1234]e[lb] \ 141433adc6acSmrg | sh[23]e \ 141533adc6acSmrg | sh[23]ele \ 141633adc6acSmrg | sh[24]a \ 141733adc6acSmrg | sh[24]ae[lb] \ 141833adc6acSmrg | sh[lb]e \ 141933adc6acSmrg | she[lb] \ 142033adc6acSmrg | shl \ 142133adc6acSmrg | sparc \ 142233adc6acSmrg | sparc64 \ 142333adc6acSmrg | sparc64b \ 142433adc6acSmrg | sparc64v \ 142533adc6acSmrg | sparc86x \ 142633adc6acSmrg | sparclet \ 142792405695Smrg | sparclite \ 142833adc6acSmrg | sparcv8 \ 142933adc6acSmrg | sparcv9 \ 143033adc6acSmrg | sparcv9b \ 143133adc6acSmrg | sparcv9v \ 143292405695Smrg | spu \ 143333adc6acSmrg | sv1 \ 143433adc6acSmrg | sx* \ 143592405695Smrg | tahoe \ 143633adc6acSmrg | thumbv7* \ 143733adc6acSmrg | tic30 \ 143833adc6acSmrg | tic4x \ 143933adc6acSmrg | tic54x \ 144033adc6acSmrg | tic55x \ 144133adc6acSmrg | tic6x \ 144233adc6acSmrg | tic80 \ 144392405695Smrg | tron \ 144492405695Smrg | ubicom32 \ 144533adc6acSmrg | v70 \ 144633adc6acSmrg | v810 \ 144733adc6acSmrg | v850 \ 144833adc6acSmrg | v850e \ 144933adc6acSmrg | v850e1 \ 145033adc6acSmrg | v850e2 \ 145133adc6acSmrg | v850e2v3 \ 145233adc6acSmrg | v850es \ 145392405695Smrg | vax \ 145433adc6acSmrg | vc4 \ 145592405695Smrg | visium \ 145692405695Smrg | w65 \ 145733adc6acSmrg | wasm32 \ 145833adc6acSmrg | wasm64 \ 145992405695Smrg | we32k \ 146033adc6acSmrg | x86 \ 146133adc6acSmrg | x86_64 \ 146233adc6acSmrg | xc16x \ 146333adc6acSmrg | xgate \ 146433adc6acSmrg | xps100 \ 146533adc6acSmrg | xstormy16 \ 146633adc6acSmrg | xtensa* \ 146792405695Smrg | ymp \ 146833adc6acSmrg | z80 \ 146933adc6acSmrg | z8k) 147092405695Smrg ;; 147192405695Smrg 147292405695Smrg *) 147333adc6acSmrg echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 147492405695Smrg exit 1 147592405695Smrg ;; 147692405695Smrg esac 1477fda9279dSmrg ;; 1478fda9279dSmrgesac 1479fda9279dSmrg 1480fda9279dSmrg# Here we canonicalize certain aliases for manufacturers. 148192405695Smrgcase $vendor in 148292405695Smrg digital*) 148392405695Smrg vendor=dec 1484fda9279dSmrg ;; 148592405695Smrg commodore*) 148692405695Smrg vendor=cbm 1487fda9279dSmrg ;; 1488fda9279dSmrg *) 1489fda9279dSmrg ;; 1490fda9279dSmrgesac 1491fda9279dSmrg 1492fda9279dSmrg# Decode manufacturer-specific aliases for certain operating systems. 1493fda9279dSmrg 149433adc6acSmrgif test x"$basic_os" != x 1495fda9279dSmrgthen 149633adc6acSmrg 149733adc6acSmrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just 149833adc6acSmrg# set os. 149933adc6acSmrgobj= 150033adc6acSmrgcase $basic_os in 150133adc6acSmrg gnu/linux*) 150233adc6acSmrg kernel=linux 150333adc6acSmrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 150433adc6acSmrg ;; 150533adc6acSmrg os2-emx) 150633adc6acSmrg kernel=os2 150733adc6acSmrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 150833adc6acSmrg ;; 150933adc6acSmrg nto-qnx*) 151033adc6acSmrg kernel=nto 151133adc6acSmrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 151233adc6acSmrg ;; 151333adc6acSmrg *-*) 151433adc6acSmrg saved_IFS=$IFS 151533adc6acSmrg IFS="-" read kernel os <<EOF 151633adc6acSmrg$basic_os 151733adc6acSmrgEOF 151833adc6acSmrg IFS=$saved_IFS 151933adc6acSmrg ;; 152033adc6acSmrg # Default OS when just kernel was specified 152133adc6acSmrg nto*) 152233adc6acSmrg kernel=nto 152333adc6acSmrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 152433adc6acSmrg ;; 152533adc6acSmrg linux*) 152633adc6acSmrg kernel=linux 152733adc6acSmrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 152833adc6acSmrg ;; 152933adc6acSmrg managarm*) 153033adc6acSmrg kernel=managarm 153133adc6acSmrg os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` 153233adc6acSmrg ;; 153333adc6acSmrg *) 153433adc6acSmrg kernel= 153533adc6acSmrg os=$basic_os 153633adc6acSmrg ;; 153733adc6acSmrgesac 153833adc6acSmrg 153933adc6acSmrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 154033adc6acSmrg# etc.) 1541fda9279dSmrgcase $os in 154292405695Smrg # First match some system type aliases that might get confused 154392405695Smrg # with valid system types. 154492405695Smrg # solaris* is a basic system type, with this one exception. 154592405695Smrg auroraux) 154692405695Smrg os=auroraux 1547fda9279dSmrg ;; 154892405695Smrg bluegene*) 154992405695Smrg os=cnk 1550fda9279dSmrg ;; 155192405695Smrg solaris1 | solaris1.*) 155233adc6acSmrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 1553fda9279dSmrg ;; 155492405695Smrg solaris) 155592405695Smrg os=solaris2 1556fda9279dSmrg ;; 155792405695Smrg unixware*) 155892405695Smrg os=sysv4.2uw 1559fda9279dSmrg ;; 156033adc6acSmrg # The marketing names for NeXT's operating systems were 156133adc6acSmrg # NeXTSTEP, NeXTSTEP 2, OpenSTEP 3, OpenSTEP 4. 'openstep' is 156233adc6acSmrg # mapped to 'openstep3', but 'openstep1' and 'openstep2' are 156333adc6acSmrg # mapped to 'nextstep' and 'nextstep2', consistent with the 156433adc6acSmrg # treatment of SunOS/Solaris. 156533adc6acSmrg ns | ns1 | nextstep | nextstep1 | openstep1) 156633adc6acSmrg os=nextstep 156733adc6acSmrg ;; 156833adc6acSmrg ns2 | nextstep2 | openstep2) 156933adc6acSmrg os=nextstep2 157033adc6acSmrg ;; 157133adc6acSmrg ns3 | nextstep3 | openstep | openstep3) 157233adc6acSmrg os=openstep3 157333adc6acSmrg ;; 157433adc6acSmrg ns4 | nextstep4 | openstep4) 157533adc6acSmrg os=openstep4 1576fda9279dSmrg ;; 157792405695Smrg # es1800 is here to avoid being matched by es* (a different OS) 157892405695Smrg es1800*) 157992405695Smrg os=ose 158092405695Smrg ;; 158192405695Smrg # Some version numbers need modification 158292405695Smrg chorusos*) 158392405695Smrg os=chorusos 158492405695Smrg ;; 158592405695Smrg isc) 158692405695Smrg os=isc2.2 158792405695Smrg ;; 158892405695Smrg sco6) 158992405695Smrg os=sco5v6 159092405695Smrg ;; 159192405695Smrg sco5) 159292405695Smrg os=sco3.2v5 159392405695Smrg ;; 159492405695Smrg sco4) 159592405695Smrg os=sco3.2v4 159692405695Smrg ;; 159792405695Smrg sco3.2.[4-9]*) 159833adc6acSmrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 159992405695Smrg ;; 160033adc6acSmrg sco*v* | scout) 160192405695Smrg # Don't match below 160292405695Smrg ;; 160392405695Smrg sco*) 160492405695Smrg os=sco3.2v2 160592405695Smrg ;; 160692405695Smrg psos*) 160792405695Smrg os=psos 160892405695Smrg ;; 160992405695Smrg qnx*) 161033adc6acSmrg os=qnx 1611fda9279dSmrg ;; 161292405695Smrg hiux*) 161392405695Smrg os=hiuxwe2 1614fda9279dSmrg ;; 161592405695Smrg lynx*178) 161692405695Smrg os=lynxos178 1617fda9279dSmrg ;; 161892405695Smrg lynx*5) 161992405695Smrg os=lynxos5 1620fda9279dSmrg ;; 162133adc6acSmrg lynxos*) 162233adc6acSmrg # don't get caught up in next wildcard 162333adc6acSmrg ;; 162492405695Smrg lynx*) 162592405695Smrg os=lynxos 1626fda9279dSmrg ;; 162733adc6acSmrg mac[0-9]*) 162892405695Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 1629fda9279dSmrg ;; 163092405695Smrg opened*) 163192405695Smrg os=openedition 1632fda9279dSmrg ;; 163392405695Smrg os400*) 163492405695Smrg os=os400 1635fda9279dSmrg ;; 163692405695Smrg sunos5*) 163792405695Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1638fda9279dSmrg ;; 163992405695Smrg sunos6*) 164092405695Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1641fda9279dSmrg ;; 164292405695Smrg wince*) 164392405695Smrg os=wince 1644fda9279dSmrg ;; 164592405695Smrg utek*) 164692405695Smrg os=bsd 164733adc6acSmrg vendor=`echo "$vendor" | sed -e 's|^unknown$|tektronix|'` 1648fda9279dSmrg ;; 164992405695Smrg dynix*) 165092405695Smrg os=bsd 1651fda9279dSmrg ;; 165292405695Smrg acis*) 165392405695Smrg os=aos 1654fda9279dSmrg ;; 165592405695Smrg atheos*) 165692405695Smrg os=atheos 1657fda9279dSmrg ;; 165892405695Smrg syllable*) 165992405695Smrg os=syllable 1660fda9279dSmrg ;; 166192405695Smrg 386bsd) 166292405695Smrg os=bsd 166392405695Smrg ;; 166433adc6acSmrg ctix*) 166592405695Smrg os=sysv 166633adc6acSmrg vendor=`echo "$vendor" | sed -e 's|^unknown$|convergent|'` 1667fda9279dSmrg ;; 166833adc6acSmrg uts*) 166933adc6acSmrg os=sysv 1670fda9279dSmrg ;; 167133adc6acSmrg nova*) 167233adc6acSmrg kernel=rtmk 167333adc6acSmrg os=nova 1674fda9279dSmrg ;; 1675fda9279dSmrg # Preserve the version number of sinix5. 167692405695Smrg sinix5.*) 167733adc6acSmrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 167833adc6acSmrg vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'` 1679fda9279dSmrg ;; 168092405695Smrg sinix*) 168192405695Smrg os=sysv4 168233adc6acSmrg vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'` 1683fda9279dSmrg ;; 168492405695Smrg tpf*) 168592405695Smrg os=tpf 1686fda9279dSmrg ;; 168792405695Smrg triton*) 168892405695Smrg os=sysv3 1689fda9279dSmrg ;; 169092405695Smrg oss*) 169192405695Smrg os=sysv3 1692fda9279dSmrg ;; 169392405695Smrg svr4*) 169492405695Smrg os=sysv4 1695fda9279dSmrg ;; 169692405695Smrg svr3) 169792405695Smrg os=sysv3 1698fda9279dSmrg ;; 169992405695Smrg sysvr4) 170092405695Smrg os=sysv4 1701fda9279dSmrg ;; 170292405695Smrg ose*) 170392405695Smrg os=ose 1704fda9279dSmrg ;; 170592405695Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 170692405695Smrg os=mint 1707fda9279dSmrg ;; 170892405695Smrg dicos*) 170992405695Smrg os=dicos 1710fda9279dSmrg ;; 171192405695Smrg pikeos*) 171292405695Smrg # Until real need of OS specific support for 171392405695Smrg # particular features comes up, bare metal 171492405695Smrg # configurations are quite functional. 171592405695Smrg case $cpu in 171692405695Smrg arm*) 171792405695Smrg os=eabi 171892405695Smrg ;; 171992405695Smrg *) 172033adc6acSmrg os= 172133adc6acSmrg obj=elf 172292405695Smrg ;; 172392405695Smrg esac 1724fda9279dSmrg ;; 172533adc6acSmrg aout* | coff* | elf* | pe*) 172633adc6acSmrg # These are machine code file formats, not OSes 172733adc6acSmrg obj=$os 172833adc6acSmrg os= 1729fda9279dSmrg ;; 1730fda9279dSmrg *) 173133adc6acSmrg # No normalization, but not necessarily accepted, that comes below. 1732fda9279dSmrg ;; 1733fda9279dSmrgesac 173433adc6acSmrg 1735fda9279dSmrgelse 1736fda9279dSmrg 1737fda9279dSmrg# Here we handle the default operating systems that come with various machines. 1738fda9279dSmrg# The value should be what the vendor currently ships out the door with their 1739fda9279dSmrg# machine or put another way, the most popular os provided with the machine. 1740fda9279dSmrg 1741fda9279dSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 1742fda9279dSmrg# "-sun"), then you have to tell the case statement up towards the top 1743fda9279dSmrg# that MANUFACTURER isn't an operating system. Otherwise, code above 1744fda9279dSmrg# will signal an error saying that MANUFACTURER isn't an operating 1745fda9279dSmrg# system, and we'll never get to this point. 1746fda9279dSmrg 174733adc6acSmrgkernel= 174833adc6acSmrgobj= 174992405695Smrgcase $cpu-$vendor in 1750fda9279dSmrg score-*) 175133adc6acSmrg os= 175233adc6acSmrg obj=elf 1753fda9279dSmrg ;; 1754fda9279dSmrg spu-*) 175533adc6acSmrg os= 175633adc6acSmrg obj=elf 1757fda9279dSmrg ;; 1758fda9279dSmrg *-acorn) 175992405695Smrg os=riscix1.2 1760fda9279dSmrg ;; 1761fda9279dSmrg arm*-rebel) 176233adc6acSmrg kernel=linux 176333adc6acSmrg os=gnu 1764fda9279dSmrg ;; 1765fda9279dSmrg arm*-semi) 176633adc6acSmrg os= 176733adc6acSmrg obj=aout 1768fda9279dSmrg ;; 1769fda9279dSmrg c4x-* | tic4x-*) 177033adc6acSmrg os= 177133adc6acSmrg obj=coff 1772fda9279dSmrg ;; 1773fda9279dSmrg c8051-*) 177433adc6acSmrg os= 177533adc6acSmrg obj=elf 177692405695Smrg ;; 177792405695Smrg clipper-intergraph) 177892405695Smrg os=clix 1779fda9279dSmrg ;; 1780fda9279dSmrg hexagon-*) 178133adc6acSmrg os= 178233adc6acSmrg obj=elf 1783fda9279dSmrg ;; 1784fda9279dSmrg tic54x-*) 178533adc6acSmrg os= 178633adc6acSmrg obj=coff 1787fda9279dSmrg ;; 1788fda9279dSmrg tic55x-*) 178933adc6acSmrg os= 179033adc6acSmrg obj=coff 1791fda9279dSmrg ;; 1792fda9279dSmrg tic6x-*) 179333adc6acSmrg os= 179433adc6acSmrg obj=coff 1795fda9279dSmrg ;; 1796fda9279dSmrg # This must come before the *-dec entry. 1797fda9279dSmrg pdp10-*) 179892405695Smrg os=tops20 1799fda9279dSmrg ;; 1800fda9279dSmrg pdp11-*) 180192405695Smrg os=none 1802fda9279dSmrg ;; 1803fda9279dSmrg *-dec | vax-*) 180492405695Smrg os=ultrix4.2 1805fda9279dSmrg ;; 1806fda9279dSmrg m68*-apollo) 180792405695Smrg os=domain 1808fda9279dSmrg ;; 1809fda9279dSmrg i386-sun) 181092405695Smrg os=sunos4.0.2 1811fda9279dSmrg ;; 1812fda9279dSmrg m68000-sun) 181392405695Smrg os=sunos3 1814fda9279dSmrg ;; 1815fda9279dSmrg m68*-cisco) 181633adc6acSmrg os= 181733adc6acSmrg obj=aout 1818fda9279dSmrg ;; 1819fda9279dSmrg mep-*) 182033adc6acSmrg os= 182133adc6acSmrg obj=elf 182233adc6acSmrg ;; 182333adc6acSmrg # The -sgi and -siemens entries must be before the mips- entry 182433adc6acSmrg # or we get the wrong os. 182533adc6acSmrg *-sgi) 182633adc6acSmrg os=irix 182733adc6acSmrg ;; 182833adc6acSmrg *-siemens) 182933adc6acSmrg os=sysv4 1830fda9279dSmrg ;; 1831fda9279dSmrg mips*-cisco) 183233adc6acSmrg os= 183333adc6acSmrg obj=elf 1834fda9279dSmrg ;; 183533adc6acSmrg mips*-*|nanomips*-*) 183633adc6acSmrg os= 183733adc6acSmrg obj=elf 1838fda9279dSmrg ;; 1839fda9279dSmrg or32-*) 184033adc6acSmrg os= 184133adc6acSmrg obj=coff 1842fda9279dSmrg ;; 184333adc6acSmrg # This must be before the sparc-* entry or we get the wrong os. 184433adc6acSmrg *-tti) 184592405695Smrg os=sysv3 1846fda9279dSmrg ;; 1847fda9279dSmrg sparc-* | *-sun) 184892405695Smrg os=sunos4.1.1 1849fda9279dSmrg ;; 1850dd52494dSmrg pru-*) 185133adc6acSmrg os= 185233adc6acSmrg obj=elf 1853dd52494dSmrg ;; 1854fda9279dSmrg *-be) 185592405695Smrg os=beos 1856fda9279dSmrg ;; 1857fda9279dSmrg *-ibm) 185892405695Smrg os=aix 1859fda9279dSmrg ;; 1860fda9279dSmrg *-knuth) 186192405695Smrg os=mmixware 1862fda9279dSmrg ;; 1863fda9279dSmrg *-wec) 186492405695Smrg os=proelf 1865fda9279dSmrg ;; 1866fda9279dSmrg *-winbond) 186792405695Smrg os=proelf 1868fda9279dSmrg ;; 1869fda9279dSmrg *-oki) 187092405695Smrg os=proelf 1871fda9279dSmrg ;; 1872fda9279dSmrg *-hp) 187392405695Smrg os=hpux 1874fda9279dSmrg ;; 1875fda9279dSmrg *-hitachi) 187633adc6acSmrg os=hiuxwe2 1877fda9279dSmrg ;; 1878fda9279dSmrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 187992405695Smrg os=sysv 1880fda9279dSmrg ;; 1881fda9279dSmrg *-cbm) 188292405695Smrg os=amigaos 1883fda9279dSmrg ;; 1884fda9279dSmrg *-dg) 188592405695Smrg os=dgux 1886fda9279dSmrg ;; 1887fda9279dSmrg *-dolphin) 188892405695Smrg os=sysv3 1889fda9279dSmrg ;; 1890fda9279dSmrg m68k-ccur) 189192405695Smrg os=rtu 1892fda9279dSmrg ;; 1893fda9279dSmrg m88k-omron*) 189492405695Smrg os=luna 1895fda9279dSmrg ;; 189692405695Smrg *-next) 189792405695Smrg os=nextstep 1898fda9279dSmrg ;; 1899fda9279dSmrg *-sequent) 190092405695Smrg os=ptx 1901fda9279dSmrg ;; 1902fda9279dSmrg *-crds) 190392405695Smrg os=unos 1904fda9279dSmrg ;; 1905fda9279dSmrg *-ns) 190692405695Smrg os=genix 1907fda9279dSmrg ;; 1908fda9279dSmrg i370-*) 190992405695Smrg os=mvs 1910fda9279dSmrg ;; 1911fda9279dSmrg *-gould) 191292405695Smrg os=sysv 1913fda9279dSmrg ;; 1914fda9279dSmrg *-highlevel) 191592405695Smrg os=bsd 1916fda9279dSmrg ;; 1917fda9279dSmrg *-encore) 191892405695Smrg os=bsd 1919fda9279dSmrg ;; 1920fda9279dSmrg *-masscomp) 192192405695Smrg os=rtu 1922fda9279dSmrg ;; 1923fda9279dSmrg f30[01]-fujitsu | f700-fujitsu) 192492405695Smrg os=uxpv 1925fda9279dSmrg ;; 1926fda9279dSmrg *-rom68k) 192733adc6acSmrg os= 192833adc6acSmrg obj=coff 1929fda9279dSmrg ;; 1930fda9279dSmrg *-*bug) 193133adc6acSmrg os= 193233adc6acSmrg obj=coff 1933fda9279dSmrg ;; 1934fda9279dSmrg *-apple) 193592405695Smrg os=macos 1936fda9279dSmrg ;; 1937fda9279dSmrg *-atari*) 193892405695Smrg os=mint 193992405695Smrg ;; 194092405695Smrg *-wrs) 194192405695Smrg os=vxworks 1942fda9279dSmrg ;; 1943fda9279dSmrg *) 194492405695Smrg os=none 1945fda9279dSmrg ;; 1946fda9279dSmrgesac 194733adc6acSmrg 1948fda9279dSmrgfi 1949fda9279dSmrg 195033adc6acSmrg# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). 195133adc6acSmrg 195233adc6acSmrgcase $os in 195333adc6acSmrg # Sometimes we do "kernel-libc", so those need to count as OSes. 195433adc6acSmrg llvm* | musl* | newlib* | relibc* | uclibc*) 195533adc6acSmrg ;; 195633adc6acSmrg # Likewise for "kernel-abi" 195733adc6acSmrg eabi* | gnueabi*) 195833adc6acSmrg ;; 195933adc6acSmrg # VxWorks passes extra cpu info in the 4th filed. 196033adc6acSmrg simlinux | simwindows | spe) 196133adc6acSmrg ;; 196233adc6acSmrg # See `case $cpu-$os` validation below 196333adc6acSmrg ghcjs) 196433adc6acSmrg ;; 196533adc6acSmrg # Now accept the basic system types. 196633adc6acSmrg # Each alternative MUST end in a * to match a version number. 196733adc6acSmrg abug \ 196833adc6acSmrg | aix* \ 196933adc6acSmrg | amdhsa* \ 197033adc6acSmrg | amigados* \ 197133adc6acSmrg | amigaos* \ 197233adc6acSmrg | android* \ 197333adc6acSmrg | aof* \ 197433adc6acSmrg | aos* \ 197533adc6acSmrg | aros* \ 197633adc6acSmrg | atheos* \ 197733adc6acSmrg | auroraux* \ 197833adc6acSmrg | aux* \ 197933adc6acSmrg | beos* \ 198033adc6acSmrg | bitrig* \ 198133adc6acSmrg | bme* \ 198233adc6acSmrg | bosx* \ 198333adc6acSmrg | bsd* \ 198433adc6acSmrg | cegcc* \ 198533adc6acSmrg | chorusos* \ 198633adc6acSmrg | chorusrdb* \ 198733adc6acSmrg | clix* \ 198833adc6acSmrg | cloudabi* \ 198933adc6acSmrg | cnk* \ 199033adc6acSmrg | conix* \ 199133adc6acSmrg | cos* \ 199233adc6acSmrg | cxux* \ 199333adc6acSmrg | cygwin* \ 199433adc6acSmrg | darwin* \ 199533adc6acSmrg | dgux* \ 199633adc6acSmrg | dicos* \ 199733adc6acSmrg | dnix* \ 199833adc6acSmrg | domain* \ 199933adc6acSmrg | dragonfly* \ 200033adc6acSmrg | drops* \ 200133adc6acSmrg | ebmon* \ 200233adc6acSmrg | ecoff* \ 200333adc6acSmrg | ekkobsd* \ 200433adc6acSmrg | emscripten* \ 200533adc6acSmrg | emx* \ 200633adc6acSmrg | es* \ 200733adc6acSmrg | fiwix* \ 200833adc6acSmrg | freebsd* \ 200933adc6acSmrg | fuchsia* \ 201033adc6acSmrg | genix* \ 201133adc6acSmrg | genode* \ 201233adc6acSmrg | glidix* \ 201333adc6acSmrg | gnu* \ 201433adc6acSmrg | go32* \ 201533adc6acSmrg | haiku* \ 201633adc6acSmrg | hcos* \ 201733adc6acSmrg | hiux* \ 201833adc6acSmrg | hms* \ 201933adc6acSmrg | hpux* \ 202033adc6acSmrg | ieee* \ 202133adc6acSmrg | interix* \ 202233adc6acSmrg | ios* \ 202333adc6acSmrg | iris* \ 202433adc6acSmrg | irix* \ 202533adc6acSmrg | ironclad* \ 202633adc6acSmrg | isc* \ 202733adc6acSmrg | its* \ 202833adc6acSmrg | l4re* \ 202933adc6acSmrg | libertybsd* \ 203033adc6acSmrg | lites* \ 203133adc6acSmrg | lnews* \ 203233adc6acSmrg | luna* \ 203333adc6acSmrg | lynxos* \ 203433adc6acSmrg | mach* \ 203533adc6acSmrg | macos* \ 203633adc6acSmrg | magic* \ 203733adc6acSmrg | mbr* \ 203833adc6acSmrg | midipix* \ 203933adc6acSmrg | midnightbsd* \ 204033adc6acSmrg | mingw32* \ 204133adc6acSmrg | mingw64* \ 204233adc6acSmrg | minix* \ 204333adc6acSmrg | mint* \ 204433adc6acSmrg | mirbsd* \ 204533adc6acSmrg | mks* \ 204633adc6acSmrg | mlibc* \ 204733adc6acSmrg | mmixware* \ 204833adc6acSmrg | mon960* \ 204933adc6acSmrg | morphos* \ 205033adc6acSmrg | moss* \ 205133adc6acSmrg | moxiebox* \ 205233adc6acSmrg | mpeix* \ 205333adc6acSmrg | mpw* \ 205433adc6acSmrg | msdos* \ 205533adc6acSmrg | msys* \ 205633adc6acSmrg | mvs* \ 205733adc6acSmrg | nacl* \ 205833adc6acSmrg | netbsd* \ 205933adc6acSmrg | netware* \ 206033adc6acSmrg | newsos* \ 206133adc6acSmrg | nextstep* \ 206233adc6acSmrg | nindy* \ 206333adc6acSmrg | nonstopux* \ 206433adc6acSmrg | nova* \ 206533adc6acSmrg | nsk* \ 206633adc6acSmrg | nucleus* \ 206733adc6acSmrg | nx6 \ 206833adc6acSmrg | nx7 \ 206933adc6acSmrg | oabi* \ 207033adc6acSmrg | ohos* \ 207133adc6acSmrg | onefs* \ 207233adc6acSmrg | openbsd* \ 207333adc6acSmrg | openedition* \ 207433adc6acSmrg | openstep* \ 207533adc6acSmrg | os108* \ 207633adc6acSmrg | os2* \ 207733adc6acSmrg | os400* \ 207833adc6acSmrg | os68k* \ 207933adc6acSmrg | os9* \ 208033adc6acSmrg | ose* \ 208133adc6acSmrg | osf* \ 208233adc6acSmrg | oskit* \ 208333adc6acSmrg | osx* \ 208433adc6acSmrg | palmos* \ 208533adc6acSmrg | phoenix* \ 208633adc6acSmrg | plan9* \ 208733adc6acSmrg | powermax* \ 208833adc6acSmrg | powerunix* \ 208933adc6acSmrg | proelf* \ 209033adc6acSmrg | psos* \ 209133adc6acSmrg | psp* \ 209233adc6acSmrg | ptx* \ 209333adc6acSmrg | pw32* \ 209433adc6acSmrg | qnx* \ 209533adc6acSmrg | rdos* \ 209633adc6acSmrg | redox* \ 209733adc6acSmrg | rhapsody* \ 209833adc6acSmrg | riscix* \ 209933adc6acSmrg | riscos* \ 210033adc6acSmrg | rtems* \ 210133adc6acSmrg | rtmk* \ 210233adc6acSmrg | rtu* \ 210333adc6acSmrg | scout* \ 210433adc6acSmrg | secbsd* \ 210533adc6acSmrg | sei* \ 210633adc6acSmrg | serenity* \ 210733adc6acSmrg | sim* \ 210833adc6acSmrg | skyos* \ 210933adc6acSmrg | solaris* \ 211033adc6acSmrg | solidbsd* \ 211133adc6acSmrg | sortix* \ 211233adc6acSmrg | storm-chaos* \ 211333adc6acSmrg | sunos \ 211433adc6acSmrg | sunos[34]* \ 211533adc6acSmrg | superux* \ 211633adc6acSmrg | syllable* \ 211733adc6acSmrg | sym* \ 211833adc6acSmrg | sysv* \ 211933adc6acSmrg | tenex* \ 212033adc6acSmrg | tirtos* \ 212133adc6acSmrg | toppers* \ 212233adc6acSmrg | tops10* \ 212333adc6acSmrg | tops20* \ 212433adc6acSmrg | tpf* \ 212533adc6acSmrg | tvos* \ 212633adc6acSmrg | twizzler* \ 212733adc6acSmrg | uclinux* \ 212833adc6acSmrg | udi* \ 212933adc6acSmrg | udk* \ 213033adc6acSmrg | ultrix* \ 213133adc6acSmrg | unicos* \ 213233adc6acSmrg | uniplus* \ 213333adc6acSmrg | unleashed* \ 213433adc6acSmrg | unos* \ 213533adc6acSmrg | uwin* \ 213633adc6acSmrg | uxpv* \ 213733adc6acSmrg | v88r* \ 213833adc6acSmrg |*vms* \ 213933adc6acSmrg | vos* \ 214033adc6acSmrg | vsta* \ 214133adc6acSmrg | vxsim* \ 214233adc6acSmrg | vxworks* \ 214333adc6acSmrg | wasi* \ 214433adc6acSmrg | watchos* \ 214533adc6acSmrg | wince* \ 214633adc6acSmrg | windiss* \ 214733adc6acSmrg | windows* \ 214833adc6acSmrg | winnt* \ 214933adc6acSmrg | xenix* \ 215033adc6acSmrg | xray* \ 215133adc6acSmrg | zephyr* \ 215233adc6acSmrg | zvmoe* ) 215333adc6acSmrg ;; 215433adc6acSmrg # This one is extra strict with allowed versions 215533adc6acSmrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 215633adc6acSmrg # Don't forget version if it is 3.2v4 or newer. 215733adc6acSmrg ;; 215833adc6acSmrg # This refers to builds using the UEFI calling convention 215933adc6acSmrg # (which depends on the architecture) and PE file format. 216033adc6acSmrg # Note that this is both a different calling convention and 216133adc6acSmrg # different file format than that of GNU-EFI 216233adc6acSmrg # (x86_64-w64-mingw32). 216333adc6acSmrg uefi) 216433adc6acSmrg ;; 216533adc6acSmrg none) 216633adc6acSmrg ;; 216733adc6acSmrg kernel* | msvc* ) 216833adc6acSmrg # Restricted further below 216933adc6acSmrg ;; 217033adc6acSmrg '') 217133adc6acSmrg if test x"$obj" = x 217233adc6acSmrg then 217333adc6acSmrg echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 217433adc6acSmrg fi 217533adc6acSmrg ;; 217633adc6acSmrg *) 217733adc6acSmrg echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 217833adc6acSmrg exit 1 217933adc6acSmrg ;; 218033adc6acSmrgesac 218133adc6acSmrg 218233adc6acSmrgcase $obj in 218333adc6acSmrg aout* | coff* | elf* | pe*) 218433adc6acSmrg ;; 218533adc6acSmrg '') 218633adc6acSmrg # empty is fine 218733adc6acSmrg ;; 218833adc6acSmrg *) 218933adc6acSmrg echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 219033adc6acSmrg exit 1 219133adc6acSmrg ;; 219233adc6acSmrgesac 219333adc6acSmrg 219433adc6acSmrg# Here we handle the constraint that a (synthetic) cpu and os are 219533adc6acSmrg# valid only in combination with each other and nowhere else. 219633adc6acSmrgcase $cpu-$os in 219733adc6acSmrg # The "javascript-unknown-ghcjs" triple is used by GHC; we 219833adc6acSmrg # accept it here in order to tolerate that, but reject any 219933adc6acSmrg # variations. 220033adc6acSmrg javascript-ghcjs) 220133adc6acSmrg ;; 220233adc6acSmrg javascript-* | *-ghcjs) 220333adc6acSmrg echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 220433adc6acSmrg exit 1 220533adc6acSmrg ;; 220633adc6acSmrgesac 220733adc6acSmrg 220833adc6acSmrg# As a final step for OS-related things, validate the OS-kernel combination 220933adc6acSmrg# (given a valid OS), if there is a kernel. 221033adc6acSmrgcase $kernel-$os-$obj in 221133adc6acSmrg linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ 221233adc6acSmrg | linux-mlibc*- | linux-musl*- | linux-newlib*- \ 221333adc6acSmrg | linux-relibc*- | linux-uclibc*- | linux-ohos*- ) 221433adc6acSmrg ;; 221533adc6acSmrg uclinux-uclibc*- | uclinux-gnu*- ) 221633adc6acSmrg ;; 221733adc6acSmrg managarm-mlibc*- | managarm-kernel*- ) 221833adc6acSmrg ;; 221933adc6acSmrg windows*-msvc*-) 222033adc6acSmrg ;; 222133adc6acSmrg -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ 222233adc6acSmrg | -uclibc*- ) 222333adc6acSmrg # These are just libc implementations, not actual OSes, and thus 222433adc6acSmrg # require a kernel. 222533adc6acSmrg echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 222633adc6acSmrg exit 1 222733adc6acSmrg ;; 222833adc6acSmrg -kernel*- ) 222933adc6acSmrg echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 223033adc6acSmrg exit 1 223133adc6acSmrg ;; 223233adc6acSmrg *-kernel*- ) 223333adc6acSmrg echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 223433adc6acSmrg exit 1 223533adc6acSmrg ;; 223633adc6acSmrg *-msvc*- ) 223733adc6acSmrg echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 223833adc6acSmrg exit 1 223933adc6acSmrg ;; 224033adc6acSmrg kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-) 224133adc6acSmrg ;; 224233adc6acSmrg vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) 224333adc6acSmrg ;; 224433adc6acSmrg nto-qnx*-) 224533adc6acSmrg ;; 224633adc6acSmrg os2-emx-) 224733adc6acSmrg ;; 224833adc6acSmrg rtmk-nova-) 224933adc6acSmrg ;; 225033adc6acSmrg *-eabi*- | *-gnueabi*-) 225133adc6acSmrg ;; 225233adc6acSmrg none--*) 225333adc6acSmrg # None (no kernel, i.e. freestanding / bare metal), 225433adc6acSmrg # can be paired with an machine code file format 225533adc6acSmrg ;; 225633adc6acSmrg -*-) 225733adc6acSmrg # Blank kernel with real OS is always fine. 225833adc6acSmrg ;; 225933adc6acSmrg --*) 226033adc6acSmrg # Blank kernel and OS with real machine code file format is always fine. 226133adc6acSmrg ;; 226233adc6acSmrg *-*-*) 226333adc6acSmrg echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 226433adc6acSmrg exit 1 226533adc6acSmrg ;; 226633adc6acSmrgesac 226733adc6acSmrg 2268fda9279dSmrg# Here we handle the case where we know the os, and the CPU type, but not the 2269fda9279dSmrg# manufacturer. We pick the logical manufacturer. 227092405695Smrgcase $vendor in 227192405695Smrg unknown) 227233adc6acSmrg case $cpu-$os in 227333adc6acSmrg *-riscix*) 2274fda9279dSmrg vendor=acorn 2275fda9279dSmrg ;; 227633adc6acSmrg *-sunos* | *-solaris*) 2277fda9279dSmrg vendor=sun 2278fda9279dSmrg ;; 227933adc6acSmrg *-cnk* | *-aix*) 2280fda9279dSmrg vendor=ibm 2281fda9279dSmrg ;; 228233adc6acSmrg *-beos*) 2283fda9279dSmrg vendor=be 2284fda9279dSmrg ;; 228533adc6acSmrg *-hpux*) 2286fda9279dSmrg vendor=hp 2287fda9279dSmrg ;; 228833adc6acSmrg *-mpeix*) 2289fda9279dSmrg vendor=hp 2290fda9279dSmrg ;; 229133adc6acSmrg *-hiux*) 2292fda9279dSmrg vendor=hitachi 2293fda9279dSmrg ;; 229433adc6acSmrg *-unos*) 2295fda9279dSmrg vendor=crds 2296fda9279dSmrg ;; 229733adc6acSmrg *-dgux*) 2298fda9279dSmrg vendor=dg 2299fda9279dSmrg ;; 230033adc6acSmrg *-luna*) 2301fda9279dSmrg vendor=omron 2302fda9279dSmrg ;; 230333adc6acSmrg *-genix*) 2304fda9279dSmrg vendor=ns 2305fda9279dSmrg ;; 230633adc6acSmrg *-clix*) 230792405695Smrg vendor=intergraph 230892405695Smrg ;; 230933adc6acSmrg *-mvs* | *-opened*) 231033adc6acSmrg vendor=ibm 231133adc6acSmrg ;; 231233adc6acSmrg *-os400*) 2313fda9279dSmrg vendor=ibm 2314fda9279dSmrg ;; 231533adc6acSmrg s390-* | s390x-*) 2316fda9279dSmrg vendor=ibm 2317fda9279dSmrg ;; 231833adc6acSmrg *-ptx*) 2319fda9279dSmrg vendor=sequent 2320fda9279dSmrg ;; 232133adc6acSmrg *-tpf*) 2322fda9279dSmrg vendor=ibm 2323fda9279dSmrg ;; 232433adc6acSmrg *-vxsim* | *-vxworks* | *-windiss*) 2325fda9279dSmrg vendor=wrs 2326fda9279dSmrg ;; 232733adc6acSmrg *-aux*) 2328fda9279dSmrg vendor=apple 2329fda9279dSmrg ;; 233033adc6acSmrg *-hms*) 2331fda9279dSmrg vendor=hitachi 2332fda9279dSmrg ;; 233333adc6acSmrg *-mpw* | *-macos*) 2334fda9279dSmrg vendor=apple 2335fda9279dSmrg ;; 233633adc6acSmrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 2337fda9279dSmrg vendor=atari 2338fda9279dSmrg ;; 233933adc6acSmrg *-vos*) 2340fda9279dSmrg vendor=stratus 2341fda9279dSmrg ;; 2342fda9279dSmrg esac 2343fda9279dSmrg ;; 2344fda9279dSmrgesac 2345fda9279dSmrg 234633adc6acSmrgecho "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" 2347fda9279dSmrgexit 2348fda9279dSmrg 2349fda9279dSmrg# Local variables: 235092405695Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 2351fda9279dSmrg# time-stamp-start: "timestamp='" 2352fda9279dSmrg# time-stamp-format: "%:y-%02m-%02d" 2353fda9279dSmrg# time-stamp-end: "'" 2354fda9279dSmrg# End: 2355