xref: /aosp_15_r20/external/google-breakpad/autotools/config.sub (revision 9712c20fc9bbfbac4935993a2ca0b3958c5adad2)
1*9712c20fSFrederick Mayle#! /bin/sh
2*9712c20fSFrederick Mayle# Configuration validation subroutine script.
3*9712c20fSFrederick Mayle#   Copyright 1992-2021 Free Software Foundation, Inc.
4*9712c20fSFrederick Mayle
5*9712c20fSFrederick Mayletimestamp='2021-01-07'
6*9712c20fSFrederick Mayle
7*9712c20fSFrederick Mayle# This file is free software; you can redistribute it and/or modify it
8*9712c20fSFrederick Mayle# under the terms of the GNU General Public License as published by
9*9712c20fSFrederick Mayle# the Free Software Foundation; either version 3 of the License, or
10*9712c20fSFrederick Mayle# (at your option) any later version.
11*9712c20fSFrederick Mayle#
12*9712c20fSFrederick Mayle# This program is distributed in the hope that it will be useful, but
13*9712c20fSFrederick Mayle# WITHOUT ANY WARRANTY; without even the implied warranty of
14*9712c20fSFrederick Mayle# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15*9712c20fSFrederick Mayle# General Public License for more details.
16*9712c20fSFrederick Mayle#
17*9712c20fSFrederick Mayle# You should have received a copy of the GNU General Public License
18*9712c20fSFrederick Mayle# along with this program; if not, see <https://www.gnu.org/licenses/>.
19*9712c20fSFrederick Mayle#
20*9712c20fSFrederick Mayle# As a special exception to the GNU General Public License, if you
21*9712c20fSFrederick Mayle# distribute this file as part of a program that contains a
22*9712c20fSFrederick Mayle# configuration script generated by Autoconf, you may include it under
23*9712c20fSFrederick Mayle# the same distribution terms that you use for the rest of that
24*9712c20fSFrederick Mayle# program.  This Exception is an additional permission under section 7
25*9712c20fSFrederick Mayle# of the GNU General Public License, version 3 ("GPLv3").
26*9712c20fSFrederick Mayle
27*9712c20fSFrederick Mayle
28*9712c20fSFrederick Mayle# Please send patches to <[email protected]>.
29*9712c20fSFrederick Mayle#
30*9712c20fSFrederick Mayle# Configuration subroutine to validate and canonicalize a configuration type.
31*9712c20fSFrederick Mayle# Supply the specified configuration type as an argument.
32*9712c20fSFrederick Mayle# If it is invalid, we print an error message on stderr and exit with code 1.
33*9712c20fSFrederick Mayle# Otherwise, we print the canonical config type on stdout and succeed.
34*9712c20fSFrederick Mayle
35*9712c20fSFrederick Mayle# You can get the latest version of this script from:
36*9712c20fSFrederick Mayle# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
37*9712c20fSFrederick Mayle
38*9712c20fSFrederick Mayle# This file is supposed to be the same for all GNU packages
39*9712c20fSFrederick Mayle# and recognize all the CPU types, system types and aliases
40*9712c20fSFrederick Mayle# that are meaningful with *any* GNU software.
41*9712c20fSFrederick Mayle# Each package is responsible for reporting which valid configurations
42*9712c20fSFrederick Mayle# it does not support.  The user should be able to distinguish
43*9712c20fSFrederick Mayle# a failure to support a valid configuration from a meaningless
44*9712c20fSFrederick Mayle# configuration.
45*9712c20fSFrederick Mayle
46*9712c20fSFrederick Mayle# The goal of this file is to map all the various variations of a given
47*9712c20fSFrederick Mayle# machine specification into a single specification in the form:
48*9712c20fSFrederick Mayle#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49*9712c20fSFrederick Mayle# or in some cases, the newer four-part form:
50*9712c20fSFrederick Mayle#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51*9712c20fSFrederick Mayle# It is wrong to echo any other type of specification.
52*9712c20fSFrederick Mayle
53*9712c20fSFrederick Mayleme=$(echo "$0" | sed -e 's,.*/,,')
54*9712c20fSFrederick Mayle
55*9712c20fSFrederick Mayleusage="\
56*9712c20fSFrederick MayleUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57*9712c20fSFrederick Mayle
58*9712c20fSFrederick MayleCanonicalize a configuration name.
59*9712c20fSFrederick Mayle
60*9712c20fSFrederick MayleOptions:
61*9712c20fSFrederick Mayle  -h, --help         print this help, then exit
62*9712c20fSFrederick Mayle  -t, --time-stamp   print date of last modification, then exit
63*9712c20fSFrederick Mayle  -v, --version      print version number, then exit
64*9712c20fSFrederick Mayle
65*9712c20fSFrederick MayleReport bugs and patches to <[email protected]>."
66*9712c20fSFrederick Mayle
67*9712c20fSFrederick Mayleversion="\
68*9712c20fSFrederick MayleGNU config.sub ($timestamp)
69*9712c20fSFrederick Mayle
70*9712c20fSFrederick MayleCopyright 1992-2021 Free Software Foundation, Inc.
71*9712c20fSFrederick Mayle
72*9712c20fSFrederick MayleThis is free software; see the source for copying conditions.  There is NO
73*9712c20fSFrederick Maylewarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74*9712c20fSFrederick Mayle
75*9712c20fSFrederick Maylehelp="
76*9712c20fSFrederick MayleTry \`$me --help' for more information."
77*9712c20fSFrederick Mayle
78*9712c20fSFrederick Mayle# Parse command line
79*9712c20fSFrederick Maylewhile test $# -gt 0 ; do
80*9712c20fSFrederick Mayle  case $1 in
81*9712c20fSFrederick Mayle    --time-stamp | --time* | -t )
82*9712c20fSFrederick Mayle       echo "$timestamp" ; exit ;;
83*9712c20fSFrederick Mayle    --version | -v )
84*9712c20fSFrederick Mayle       echo "$version" ; exit ;;
85*9712c20fSFrederick Mayle    --help | --h* | -h )
86*9712c20fSFrederick Mayle       echo "$usage"; exit ;;
87*9712c20fSFrederick Mayle    -- )     # Stop option processing
88*9712c20fSFrederick Mayle       shift; break ;;
89*9712c20fSFrederick Mayle    - )	# Use stdin as input.
90*9712c20fSFrederick Mayle       break ;;
91*9712c20fSFrederick Mayle    -* )
92*9712c20fSFrederick Mayle       echo "$me: invalid option $1$help" >&2
93*9712c20fSFrederick Mayle       exit 1 ;;
94*9712c20fSFrederick Mayle
95*9712c20fSFrederick Mayle    *local*)
96*9712c20fSFrederick Mayle       # First pass through any local machine types.
97*9712c20fSFrederick Mayle       echo "$1"
98*9712c20fSFrederick Mayle       exit ;;
99*9712c20fSFrederick Mayle
100*9712c20fSFrederick Mayle    * )
101*9712c20fSFrederick Mayle       break ;;
102*9712c20fSFrederick Mayle  esac
103*9712c20fSFrederick Mayledone
104*9712c20fSFrederick Mayle
105*9712c20fSFrederick Maylecase $# in
106*9712c20fSFrederick Mayle 0) echo "$me: missing argument$help" >&2
107*9712c20fSFrederick Mayle    exit 1;;
108*9712c20fSFrederick Mayle 1) ;;
109*9712c20fSFrederick Mayle *) echo "$me: too many arguments$help" >&2
110*9712c20fSFrederick Mayle    exit 1;;
111*9712c20fSFrederick Mayleesac
112*9712c20fSFrederick Mayle
113*9712c20fSFrederick Mayle# Split fields of configuration type
114*9712c20fSFrederick Mayle# shellcheck disable=SC2162
115*9712c20fSFrederick MayleIFS="-" read field1 field2 field3 field4 <<EOF
116*9712c20fSFrederick Mayle$1
117*9712c20fSFrederick MayleEOF
118*9712c20fSFrederick Mayle
119*9712c20fSFrederick Mayle# Separate into logical components for further validation
120*9712c20fSFrederick Maylecase $1 in
121*9712c20fSFrederick Mayle	*-*-*-*-*)
122*9712c20fSFrederick Mayle		echo Invalid configuration \`"$1"\': more than four components >&2
123*9712c20fSFrederick Mayle		exit 1
124*9712c20fSFrederick Mayle		;;
125*9712c20fSFrederick Mayle	*-*-*-*)
126*9712c20fSFrederick Mayle		basic_machine=$field1-$field2
127*9712c20fSFrederick Mayle		basic_os=$field3-$field4
128*9712c20fSFrederick Mayle		;;
129*9712c20fSFrederick Mayle	*-*-*)
130*9712c20fSFrederick Mayle		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
131*9712c20fSFrederick Mayle		# parts
132*9712c20fSFrederick Mayle		maybe_os=$field2-$field3
133*9712c20fSFrederick Mayle		case $maybe_os in
134*9712c20fSFrederick Mayle			nto-qnx* | linux-* | uclinux-uclibc* \
135*9712c20fSFrederick Mayle			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
136*9712c20fSFrederick Mayle			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
137*9712c20fSFrederick Mayle			| storm-chaos* | os2-emx* | rtmk-nova*)
138*9712c20fSFrederick Mayle				basic_machine=$field1
139*9712c20fSFrederick Mayle				basic_os=$maybe_os
140*9712c20fSFrederick Mayle				;;
141*9712c20fSFrederick Mayle			android-linux)
142*9712c20fSFrederick Mayle				basic_machine=$field1-unknown
143*9712c20fSFrederick Mayle				basic_os=linux-android
144*9712c20fSFrederick Mayle				;;
145*9712c20fSFrederick Mayle			*)
146*9712c20fSFrederick Mayle				basic_machine=$field1-$field2
147*9712c20fSFrederick Mayle				basic_os=$field3
148*9712c20fSFrederick Mayle				;;
149*9712c20fSFrederick Mayle		esac
150*9712c20fSFrederick Mayle		;;
151*9712c20fSFrederick Mayle	*-*)
152*9712c20fSFrederick Mayle		# A lone config we happen to match not fitting any pattern
153*9712c20fSFrederick Mayle		case $field1-$field2 in
154*9712c20fSFrederick Mayle			decstation-3100)
155*9712c20fSFrederick Mayle				basic_machine=mips-dec
156*9712c20fSFrederick Mayle				basic_os=
157*9712c20fSFrederick Mayle				;;
158*9712c20fSFrederick Mayle			*-*)
159*9712c20fSFrederick Mayle				# Second component is usually, but not always the OS
160*9712c20fSFrederick Mayle				case $field2 in
161*9712c20fSFrederick Mayle					# Prevent following clause from handling this valid os
162*9712c20fSFrederick Mayle					sun*os*)
163*9712c20fSFrederick Mayle						basic_machine=$field1
164*9712c20fSFrederick Mayle						basic_os=$field2
165*9712c20fSFrederick Mayle						;;
166*9712c20fSFrederick Mayle					# Manufacturers
167*9712c20fSFrederick Mayle					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
168*9712c20fSFrederick Mayle					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
169*9712c20fSFrederick Mayle					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
170*9712c20fSFrederick Mayle					| convergent* | ncr* | news | 32* | 3600* | 3100* \
171*9712c20fSFrederick Mayle					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
172*9712c20fSFrederick Mayle					| ultra | tti* | harris | dolphin | highlevel | gould \
173*9712c20fSFrederick Mayle					| cbm | ns | masscomp | apple | axis | knuth | cray \
174*9712c20fSFrederick Mayle					| microblaze* | sim | cisco \
175*9712c20fSFrederick Mayle					| oki | wec | wrs | winbond)
176*9712c20fSFrederick Mayle						basic_machine=$field1-$field2
177*9712c20fSFrederick Mayle						basic_os=
178*9712c20fSFrederick Mayle						;;
179*9712c20fSFrederick Mayle					*)
180*9712c20fSFrederick Mayle						basic_machine=$field1
181*9712c20fSFrederick Mayle						basic_os=$field2
182*9712c20fSFrederick Mayle						;;
183*9712c20fSFrederick Mayle				esac
184*9712c20fSFrederick Mayle			;;
185*9712c20fSFrederick Mayle		esac
186*9712c20fSFrederick Mayle		;;
187*9712c20fSFrederick Mayle	*)
188*9712c20fSFrederick Mayle		# Convert single-component short-hands not valid as part of
189*9712c20fSFrederick Mayle		# multi-component configurations.
190*9712c20fSFrederick Mayle		case $field1 in
191*9712c20fSFrederick Mayle			386bsd)
192*9712c20fSFrederick Mayle				basic_machine=i386-pc
193*9712c20fSFrederick Mayle				basic_os=bsd
194*9712c20fSFrederick Mayle				;;
195*9712c20fSFrederick Mayle			a29khif)
196*9712c20fSFrederick Mayle				basic_machine=a29k-amd
197*9712c20fSFrederick Mayle				basic_os=udi
198*9712c20fSFrederick Mayle				;;
199*9712c20fSFrederick Mayle			adobe68k)
200*9712c20fSFrederick Mayle				basic_machine=m68010-adobe
201*9712c20fSFrederick Mayle				basic_os=scout
202*9712c20fSFrederick Mayle				;;
203*9712c20fSFrederick Mayle			alliant)
204*9712c20fSFrederick Mayle				basic_machine=fx80-alliant
205*9712c20fSFrederick Mayle				basic_os=
206*9712c20fSFrederick Mayle				;;
207*9712c20fSFrederick Mayle			altos | altos3068)
208*9712c20fSFrederick Mayle				basic_machine=m68k-altos
209*9712c20fSFrederick Mayle				basic_os=
210*9712c20fSFrederick Mayle				;;
211*9712c20fSFrederick Mayle			am29k)
212*9712c20fSFrederick Mayle				basic_machine=a29k-none
213*9712c20fSFrederick Mayle				basic_os=bsd
214*9712c20fSFrederick Mayle				;;
215*9712c20fSFrederick Mayle			amdahl)
216*9712c20fSFrederick Mayle				basic_machine=580-amdahl
217*9712c20fSFrederick Mayle				basic_os=sysv
218*9712c20fSFrederick Mayle				;;
219*9712c20fSFrederick Mayle			amiga)
220*9712c20fSFrederick Mayle				basic_machine=m68k-unknown
221*9712c20fSFrederick Mayle				basic_os=
222*9712c20fSFrederick Mayle				;;
223*9712c20fSFrederick Mayle			amigaos | amigados)
224*9712c20fSFrederick Mayle				basic_machine=m68k-unknown
225*9712c20fSFrederick Mayle				basic_os=amigaos
226*9712c20fSFrederick Mayle				;;
227*9712c20fSFrederick Mayle			amigaunix | amix)
228*9712c20fSFrederick Mayle				basic_machine=m68k-unknown
229*9712c20fSFrederick Mayle				basic_os=sysv4
230*9712c20fSFrederick Mayle				;;
231*9712c20fSFrederick Mayle			apollo68)
232*9712c20fSFrederick Mayle				basic_machine=m68k-apollo
233*9712c20fSFrederick Mayle				basic_os=sysv
234*9712c20fSFrederick Mayle				;;
235*9712c20fSFrederick Mayle			apollo68bsd)
236*9712c20fSFrederick Mayle				basic_machine=m68k-apollo
237*9712c20fSFrederick Mayle				basic_os=bsd
238*9712c20fSFrederick Mayle				;;
239*9712c20fSFrederick Mayle			aros)
240*9712c20fSFrederick Mayle				basic_machine=i386-pc
241*9712c20fSFrederick Mayle				basic_os=aros
242*9712c20fSFrederick Mayle				;;
243*9712c20fSFrederick Mayle			aux)
244*9712c20fSFrederick Mayle				basic_machine=m68k-apple
245*9712c20fSFrederick Mayle				basic_os=aux
246*9712c20fSFrederick Mayle				;;
247*9712c20fSFrederick Mayle			balance)
248*9712c20fSFrederick Mayle				basic_machine=ns32k-sequent
249*9712c20fSFrederick Mayle				basic_os=dynix
250*9712c20fSFrederick Mayle				;;
251*9712c20fSFrederick Mayle			blackfin)
252*9712c20fSFrederick Mayle				basic_machine=bfin-unknown
253*9712c20fSFrederick Mayle				basic_os=linux
254*9712c20fSFrederick Mayle				;;
255*9712c20fSFrederick Mayle			cegcc)
256*9712c20fSFrederick Mayle				basic_machine=arm-unknown
257*9712c20fSFrederick Mayle				basic_os=cegcc
258*9712c20fSFrederick Mayle				;;
259*9712c20fSFrederick Mayle			convex-c1)
260*9712c20fSFrederick Mayle				basic_machine=c1-convex
261*9712c20fSFrederick Mayle				basic_os=bsd
262*9712c20fSFrederick Mayle				;;
263*9712c20fSFrederick Mayle			convex-c2)
264*9712c20fSFrederick Mayle				basic_machine=c2-convex
265*9712c20fSFrederick Mayle				basic_os=bsd
266*9712c20fSFrederick Mayle				;;
267*9712c20fSFrederick Mayle			convex-c32)
268*9712c20fSFrederick Mayle				basic_machine=c32-convex
269*9712c20fSFrederick Mayle				basic_os=bsd
270*9712c20fSFrederick Mayle				;;
271*9712c20fSFrederick Mayle			convex-c34)
272*9712c20fSFrederick Mayle				basic_machine=c34-convex
273*9712c20fSFrederick Mayle				basic_os=bsd
274*9712c20fSFrederick Mayle				;;
275*9712c20fSFrederick Mayle			convex-c38)
276*9712c20fSFrederick Mayle				basic_machine=c38-convex
277*9712c20fSFrederick Mayle				basic_os=bsd
278*9712c20fSFrederick Mayle				;;
279*9712c20fSFrederick Mayle			cray)
280*9712c20fSFrederick Mayle				basic_machine=j90-cray
281*9712c20fSFrederick Mayle				basic_os=unicos
282*9712c20fSFrederick Mayle				;;
283*9712c20fSFrederick Mayle			crds | unos)
284*9712c20fSFrederick Mayle				basic_machine=m68k-crds
285*9712c20fSFrederick Mayle				basic_os=
286*9712c20fSFrederick Mayle				;;
287*9712c20fSFrederick Mayle			da30)
288*9712c20fSFrederick Mayle				basic_machine=m68k-da30
289*9712c20fSFrederick Mayle				basic_os=
290*9712c20fSFrederick Mayle				;;
291*9712c20fSFrederick Mayle			decstation | pmax | pmin | dec3100 | decstatn)
292*9712c20fSFrederick Mayle				basic_machine=mips-dec
293*9712c20fSFrederick Mayle				basic_os=
294*9712c20fSFrederick Mayle				;;
295*9712c20fSFrederick Mayle			delta88)
296*9712c20fSFrederick Mayle				basic_machine=m88k-motorola
297*9712c20fSFrederick Mayle				basic_os=sysv3
298*9712c20fSFrederick Mayle				;;
299*9712c20fSFrederick Mayle			dicos)
300*9712c20fSFrederick Mayle				basic_machine=i686-pc
301*9712c20fSFrederick Mayle				basic_os=dicos
302*9712c20fSFrederick Mayle				;;
303*9712c20fSFrederick Mayle			djgpp)
304*9712c20fSFrederick Mayle				basic_machine=i586-pc
305*9712c20fSFrederick Mayle				basic_os=msdosdjgpp
306*9712c20fSFrederick Mayle				;;
307*9712c20fSFrederick Mayle			ebmon29k)
308*9712c20fSFrederick Mayle				basic_machine=a29k-amd
309*9712c20fSFrederick Mayle				basic_os=ebmon
310*9712c20fSFrederick Mayle				;;
311*9712c20fSFrederick Mayle			es1800 | OSE68k | ose68k | ose | OSE)
312*9712c20fSFrederick Mayle				basic_machine=m68k-ericsson
313*9712c20fSFrederick Mayle				basic_os=ose
314*9712c20fSFrederick Mayle				;;
315*9712c20fSFrederick Mayle			gmicro)
316*9712c20fSFrederick Mayle				basic_machine=tron-gmicro
317*9712c20fSFrederick Mayle				basic_os=sysv
318*9712c20fSFrederick Mayle				;;
319*9712c20fSFrederick Mayle			go32)
320*9712c20fSFrederick Mayle				basic_machine=i386-pc
321*9712c20fSFrederick Mayle				basic_os=go32
322*9712c20fSFrederick Mayle				;;
323*9712c20fSFrederick Mayle			h8300hms)
324*9712c20fSFrederick Mayle				basic_machine=h8300-hitachi
325*9712c20fSFrederick Mayle				basic_os=hms
326*9712c20fSFrederick Mayle				;;
327*9712c20fSFrederick Mayle			h8300xray)
328*9712c20fSFrederick Mayle				basic_machine=h8300-hitachi
329*9712c20fSFrederick Mayle				basic_os=xray
330*9712c20fSFrederick Mayle				;;
331*9712c20fSFrederick Mayle			h8500hms)
332*9712c20fSFrederick Mayle				basic_machine=h8500-hitachi
333*9712c20fSFrederick Mayle				basic_os=hms
334*9712c20fSFrederick Mayle				;;
335*9712c20fSFrederick Mayle			harris)
336*9712c20fSFrederick Mayle				basic_machine=m88k-harris
337*9712c20fSFrederick Mayle				basic_os=sysv3
338*9712c20fSFrederick Mayle				;;
339*9712c20fSFrederick Mayle			hp300 | hp300hpux)
340*9712c20fSFrederick Mayle				basic_machine=m68k-hp
341*9712c20fSFrederick Mayle				basic_os=hpux
342*9712c20fSFrederick Mayle				;;
343*9712c20fSFrederick Mayle			hp300bsd)
344*9712c20fSFrederick Mayle				basic_machine=m68k-hp
345*9712c20fSFrederick Mayle				basic_os=bsd
346*9712c20fSFrederick Mayle				;;
347*9712c20fSFrederick Mayle			hppaosf)
348*9712c20fSFrederick Mayle				basic_machine=hppa1.1-hp
349*9712c20fSFrederick Mayle				basic_os=osf
350*9712c20fSFrederick Mayle				;;
351*9712c20fSFrederick Mayle			hppro)
352*9712c20fSFrederick Mayle				basic_machine=hppa1.1-hp
353*9712c20fSFrederick Mayle				basic_os=proelf
354*9712c20fSFrederick Mayle				;;
355*9712c20fSFrederick Mayle			i386mach)
356*9712c20fSFrederick Mayle				basic_machine=i386-mach
357*9712c20fSFrederick Mayle				basic_os=mach
358*9712c20fSFrederick Mayle				;;
359*9712c20fSFrederick Mayle			isi68 | isi)
360*9712c20fSFrederick Mayle				basic_machine=m68k-isi
361*9712c20fSFrederick Mayle				basic_os=sysv
362*9712c20fSFrederick Mayle				;;
363*9712c20fSFrederick Mayle			m68knommu)
364*9712c20fSFrederick Mayle				basic_machine=m68k-unknown
365*9712c20fSFrederick Mayle				basic_os=linux
366*9712c20fSFrederick Mayle				;;
367*9712c20fSFrederick Mayle			magnum | m3230)
368*9712c20fSFrederick Mayle				basic_machine=mips-mips
369*9712c20fSFrederick Mayle				basic_os=sysv
370*9712c20fSFrederick Mayle				;;
371*9712c20fSFrederick Mayle			merlin)
372*9712c20fSFrederick Mayle				basic_machine=ns32k-utek
373*9712c20fSFrederick Mayle				basic_os=sysv
374*9712c20fSFrederick Mayle				;;
375*9712c20fSFrederick Mayle			mingw64)
376*9712c20fSFrederick Mayle				basic_machine=x86_64-pc
377*9712c20fSFrederick Mayle				basic_os=mingw64
378*9712c20fSFrederick Mayle				;;
379*9712c20fSFrederick Mayle			mingw32)
380*9712c20fSFrederick Mayle				basic_machine=i686-pc
381*9712c20fSFrederick Mayle				basic_os=mingw32
382*9712c20fSFrederick Mayle				;;
383*9712c20fSFrederick Mayle			mingw32ce)
384*9712c20fSFrederick Mayle				basic_machine=arm-unknown
385*9712c20fSFrederick Mayle				basic_os=mingw32ce
386*9712c20fSFrederick Mayle				;;
387*9712c20fSFrederick Mayle			monitor)
388*9712c20fSFrederick Mayle				basic_machine=m68k-rom68k
389*9712c20fSFrederick Mayle				basic_os=coff
390*9712c20fSFrederick Mayle				;;
391*9712c20fSFrederick Mayle			morphos)
392*9712c20fSFrederick Mayle				basic_machine=powerpc-unknown
393*9712c20fSFrederick Mayle				basic_os=morphos
394*9712c20fSFrederick Mayle				;;
395*9712c20fSFrederick Mayle			moxiebox)
396*9712c20fSFrederick Mayle				basic_machine=moxie-unknown
397*9712c20fSFrederick Mayle				basic_os=moxiebox
398*9712c20fSFrederick Mayle				;;
399*9712c20fSFrederick Mayle			msdos)
400*9712c20fSFrederick Mayle				basic_machine=i386-pc
401*9712c20fSFrederick Mayle				basic_os=msdos
402*9712c20fSFrederick Mayle				;;
403*9712c20fSFrederick Mayle			msys)
404*9712c20fSFrederick Mayle				basic_machine=i686-pc
405*9712c20fSFrederick Mayle				basic_os=msys
406*9712c20fSFrederick Mayle				;;
407*9712c20fSFrederick Mayle			mvs)
408*9712c20fSFrederick Mayle				basic_machine=i370-ibm
409*9712c20fSFrederick Mayle				basic_os=mvs
410*9712c20fSFrederick Mayle				;;
411*9712c20fSFrederick Mayle			nacl)
412*9712c20fSFrederick Mayle				basic_machine=le32-unknown
413*9712c20fSFrederick Mayle				basic_os=nacl
414*9712c20fSFrederick Mayle				;;
415*9712c20fSFrederick Mayle			ncr3000)
416*9712c20fSFrederick Mayle				basic_machine=i486-ncr
417*9712c20fSFrederick Mayle				basic_os=sysv4
418*9712c20fSFrederick Mayle				;;
419*9712c20fSFrederick Mayle			netbsd386)
420*9712c20fSFrederick Mayle				basic_machine=i386-pc
421*9712c20fSFrederick Mayle				basic_os=netbsd
422*9712c20fSFrederick Mayle				;;
423*9712c20fSFrederick Mayle			netwinder)
424*9712c20fSFrederick Mayle				basic_machine=armv4l-rebel
425*9712c20fSFrederick Mayle				basic_os=linux
426*9712c20fSFrederick Mayle				;;
427*9712c20fSFrederick Mayle			news | news700 | news800 | news900)
428*9712c20fSFrederick Mayle				basic_machine=m68k-sony
429*9712c20fSFrederick Mayle				basic_os=newsos
430*9712c20fSFrederick Mayle				;;
431*9712c20fSFrederick Mayle			news1000)
432*9712c20fSFrederick Mayle				basic_machine=m68030-sony
433*9712c20fSFrederick Mayle				basic_os=newsos
434*9712c20fSFrederick Mayle				;;
435*9712c20fSFrederick Mayle			necv70)
436*9712c20fSFrederick Mayle				basic_machine=v70-nec
437*9712c20fSFrederick Mayle				basic_os=sysv
438*9712c20fSFrederick Mayle				;;
439*9712c20fSFrederick Mayle			nh3000)
440*9712c20fSFrederick Mayle				basic_machine=m68k-harris
441*9712c20fSFrederick Mayle				basic_os=cxux
442*9712c20fSFrederick Mayle				;;
443*9712c20fSFrederick Mayle			nh[45]000)
444*9712c20fSFrederick Mayle				basic_machine=m88k-harris
445*9712c20fSFrederick Mayle				basic_os=cxux
446*9712c20fSFrederick Mayle				;;
447*9712c20fSFrederick Mayle			nindy960)
448*9712c20fSFrederick Mayle				basic_machine=i960-intel
449*9712c20fSFrederick Mayle				basic_os=nindy
450*9712c20fSFrederick Mayle				;;
451*9712c20fSFrederick Mayle			mon960)
452*9712c20fSFrederick Mayle				basic_machine=i960-intel
453*9712c20fSFrederick Mayle				basic_os=mon960
454*9712c20fSFrederick Mayle				;;
455*9712c20fSFrederick Mayle			nonstopux)
456*9712c20fSFrederick Mayle				basic_machine=mips-compaq
457*9712c20fSFrederick Mayle				basic_os=nonstopux
458*9712c20fSFrederick Mayle				;;
459*9712c20fSFrederick Mayle			os400)
460*9712c20fSFrederick Mayle				basic_machine=powerpc-ibm
461*9712c20fSFrederick Mayle				basic_os=os400
462*9712c20fSFrederick Mayle				;;
463*9712c20fSFrederick Mayle			OSE68000 | ose68000)
464*9712c20fSFrederick Mayle				basic_machine=m68000-ericsson
465*9712c20fSFrederick Mayle				basic_os=ose
466*9712c20fSFrederick Mayle				;;
467*9712c20fSFrederick Mayle			os68k)
468*9712c20fSFrederick Mayle				basic_machine=m68k-none
469*9712c20fSFrederick Mayle				basic_os=os68k
470*9712c20fSFrederick Mayle				;;
471*9712c20fSFrederick Mayle			paragon)
472*9712c20fSFrederick Mayle				basic_machine=i860-intel
473*9712c20fSFrederick Mayle				basic_os=osf
474*9712c20fSFrederick Mayle				;;
475*9712c20fSFrederick Mayle			parisc)
476*9712c20fSFrederick Mayle				basic_machine=hppa-unknown
477*9712c20fSFrederick Mayle				basic_os=linux
478*9712c20fSFrederick Mayle				;;
479*9712c20fSFrederick Mayle			psp)
480*9712c20fSFrederick Mayle				basic_machine=mipsallegrexel-sony
481*9712c20fSFrederick Mayle				basic_os=psp
482*9712c20fSFrederick Mayle				;;
483*9712c20fSFrederick Mayle			pw32)
484*9712c20fSFrederick Mayle				basic_machine=i586-unknown
485*9712c20fSFrederick Mayle				basic_os=pw32
486*9712c20fSFrederick Mayle				;;
487*9712c20fSFrederick Mayle			rdos | rdos64)
488*9712c20fSFrederick Mayle				basic_machine=x86_64-pc
489*9712c20fSFrederick Mayle				basic_os=rdos
490*9712c20fSFrederick Mayle				;;
491*9712c20fSFrederick Mayle			rdos32)
492*9712c20fSFrederick Mayle				basic_machine=i386-pc
493*9712c20fSFrederick Mayle				basic_os=rdos
494*9712c20fSFrederick Mayle				;;
495*9712c20fSFrederick Mayle			rom68k)
496*9712c20fSFrederick Mayle				basic_machine=m68k-rom68k
497*9712c20fSFrederick Mayle				basic_os=coff
498*9712c20fSFrederick Mayle				;;
499*9712c20fSFrederick Mayle			sa29200)
500*9712c20fSFrederick Mayle				basic_machine=a29k-amd
501*9712c20fSFrederick Mayle				basic_os=udi
502*9712c20fSFrederick Mayle				;;
503*9712c20fSFrederick Mayle			sei)
504*9712c20fSFrederick Mayle				basic_machine=mips-sei
505*9712c20fSFrederick Mayle				basic_os=seiux
506*9712c20fSFrederick Mayle				;;
507*9712c20fSFrederick Mayle			sequent)
508*9712c20fSFrederick Mayle				basic_machine=i386-sequent
509*9712c20fSFrederick Mayle				basic_os=
510*9712c20fSFrederick Mayle				;;
511*9712c20fSFrederick Mayle			sps7)
512*9712c20fSFrederick Mayle				basic_machine=m68k-bull
513*9712c20fSFrederick Mayle				basic_os=sysv2
514*9712c20fSFrederick Mayle				;;
515*9712c20fSFrederick Mayle			st2000)
516*9712c20fSFrederick Mayle				basic_machine=m68k-tandem
517*9712c20fSFrederick Mayle				basic_os=
518*9712c20fSFrederick Mayle				;;
519*9712c20fSFrederick Mayle			stratus)
520*9712c20fSFrederick Mayle				basic_machine=i860-stratus
521*9712c20fSFrederick Mayle				basic_os=sysv4
522*9712c20fSFrederick Mayle				;;
523*9712c20fSFrederick Mayle			sun2)
524*9712c20fSFrederick Mayle				basic_machine=m68000-sun
525*9712c20fSFrederick Mayle				basic_os=
526*9712c20fSFrederick Mayle				;;
527*9712c20fSFrederick Mayle			sun2os3)
528*9712c20fSFrederick Mayle				basic_machine=m68000-sun
529*9712c20fSFrederick Mayle				basic_os=sunos3
530*9712c20fSFrederick Mayle				;;
531*9712c20fSFrederick Mayle			sun2os4)
532*9712c20fSFrederick Mayle				basic_machine=m68000-sun
533*9712c20fSFrederick Mayle				basic_os=sunos4
534*9712c20fSFrederick Mayle				;;
535*9712c20fSFrederick Mayle			sun3)
536*9712c20fSFrederick Mayle				basic_machine=m68k-sun
537*9712c20fSFrederick Mayle				basic_os=
538*9712c20fSFrederick Mayle				;;
539*9712c20fSFrederick Mayle			sun3os3)
540*9712c20fSFrederick Mayle				basic_machine=m68k-sun
541*9712c20fSFrederick Mayle				basic_os=sunos3
542*9712c20fSFrederick Mayle				;;
543*9712c20fSFrederick Mayle			sun3os4)
544*9712c20fSFrederick Mayle				basic_machine=m68k-sun
545*9712c20fSFrederick Mayle				basic_os=sunos4
546*9712c20fSFrederick Mayle				;;
547*9712c20fSFrederick Mayle			sun4)
548*9712c20fSFrederick Mayle				basic_machine=sparc-sun
549*9712c20fSFrederick Mayle				basic_os=
550*9712c20fSFrederick Mayle				;;
551*9712c20fSFrederick Mayle			sun4os3)
552*9712c20fSFrederick Mayle				basic_machine=sparc-sun
553*9712c20fSFrederick Mayle				basic_os=sunos3
554*9712c20fSFrederick Mayle				;;
555*9712c20fSFrederick Mayle			sun4os4)
556*9712c20fSFrederick Mayle				basic_machine=sparc-sun
557*9712c20fSFrederick Mayle				basic_os=sunos4
558*9712c20fSFrederick Mayle				;;
559*9712c20fSFrederick Mayle			sun4sol2)
560*9712c20fSFrederick Mayle				basic_machine=sparc-sun
561*9712c20fSFrederick Mayle				basic_os=solaris2
562*9712c20fSFrederick Mayle				;;
563*9712c20fSFrederick Mayle			sun386 | sun386i | roadrunner)
564*9712c20fSFrederick Mayle				basic_machine=i386-sun
565*9712c20fSFrederick Mayle				basic_os=
566*9712c20fSFrederick Mayle				;;
567*9712c20fSFrederick Mayle			sv1)
568*9712c20fSFrederick Mayle				basic_machine=sv1-cray
569*9712c20fSFrederick Mayle				basic_os=unicos
570*9712c20fSFrederick Mayle				;;
571*9712c20fSFrederick Mayle			symmetry)
572*9712c20fSFrederick Mayle				basic_machine=i386-sequent
573*9712c20fSFrederick Mayle				basic_os=dynix
574*9712c20fSFrederick Mayle				;;
575*9712c20fSFrederick Mayle			t3e)
576*9712c20fSFrederick Mayle				basic_machine=alphaev5-cray
577*9712c20fSFrederick Mayle				basic_os=unicos
578*9712c20fSFrederick Mayle				;;
579*9712c20fSFrederick Mayle			t90)
580*9712c20fSFrederick Mayle				basic_machine=t90-cray
581*9712c20fSFrederick Mayle				basic_os=unicos
582*9712c20fSFrederick Mayle				;;
583*9712c20fSFrederick Mayle			toad1)
584*9712c20fSFrederick Mayle				basic_machine=pdp10-xkl
585*9712c20fSFrederick Mayle				basic_os=tops20
586*9712c20fSFrederick Mayle				;;
587*9712c20fSFrederick Mayle			tpf)
588*9712c20fSFrederick Mayle				basic_machine=s390x-ibm
589*9712c20fSFrederick Mayle				basic_os=tpf
590*9712c20fSFrederick Mayle				;;
591*9712c20fSFrederick Mayle			udi29k)
592*9712c20fSFrederick Mayle				basic_machine=a29k-amd
593*9712c20fSFrederick Mayle				basic_os=udi
594*9712c20fSFrederick Mayle				;;
595*9712c20fSFrederick Mayle			ultra3)
596*9712c20fSFrederick Mayle				basic_machine=a29k-nyu
597*9712c20fSFrederick Mayle				basic_os=sym1
598*9712c20fSFrederick Mayle				;;
599*9712c20fSFrederick Mayle			v810 | necv810)
600*9712c20fSFrederick Mayle				basic_machine=v810-nec
601*9712c20fSFrederick Mayle				basic_os=none
602*9712c20fSFrederick Mayle				;;
603*9712c20fSFrederick Mayle			vaxv)
604*9712c20fSFrederick Mayle				basic_machine=vax-dec
605*9712c20fSFrederick Mayle				basic_os=sysv
606*9712c20fSFrederick Mayle				;;
607*9712c20fSFrederick Mayle			vms)
608*9712c20fSFrederick Mayle				basic_machine=vax-dec
609*9712c20fSFrederick Mayle				basic_os=vms
610*9712c20fSFrederick Mayle				;;
611*9712c20fSFrederick Mayle			vsta)
612*9712c20fSFrederick Mayle				basic_machine=i386-pc
613*9712c20fSFrederick Mayle				basic_os=vsta
614*9712c20fSFrederick Mayle				;;
615*9712c20fSFrederick Mayle			vxworks960)
616*9712c20fSFrederick Mayle				basic_machine=i960-wrs
617*9712c20fSFrederick Mayle				basic_os=vxworks
618*9712c20fSFrederick Mayle				;;
619*9712c20fSFrederick Mayle			vxworks68)
620*9712c20fSFrederick Mayle				basic_machine=m68k-wrs
621*9712c20fSFrederick Mayle				basic_os=vxworks
622*9712c20fSFrederick Mayle				;;
623*9712c20fSFrederick Mayle			vxworks29k)
624*9712c20fSFrederick Mayle				basic_machine=a29k-wrs
625*9712c20fSFrederick Mayle				basic_os=vxworks
626*9712c20fSFrederick Mayle				;;
627*9712c20fSFrederick Mayle			xbox)
628*9712c20fSFrederick Mayle				basic_machine=i686-pc
629*9712c20fSFrederick Mayle				basic_os=mingw32
630*9712c20fSFrederick Mayle				;;
631*9712c20fSFrederick Mayle			ymp)
632*9712c20fSFrederick Mayle				basic_machine=ymp-cray
633*9712c20fSFrederick Mayle				basic_os=unicos
634*9712c20fSFrederick Mayle				;;
635*9712c20fSFrederick Mayle			*)
636*9712c20fSFrederick Mayle				basic_machine=$1
637*9712c20fSFrederick Mayle				basic_os=
638*9712c20fSFrederick Mayle				;;
639*9712c20fSFrederick Mayle		esac
640*9712c20fSFrederick Mayle		;;
641*9712c20fSFrederick Mayleesac
642*9712c20fSFrederick Mayle
643*9712c20fSFrederick Mayle# Decode 1-component or ad-hoc basic machines
644*9712c20fSFrederick Maylecase $basic_machine in
645*9712c20fSFrederick Mayle	# Here we handle the default manufacturer of certain CPU types.  It is in
646*9712c20fSFrederick Mayle	# some cases the only manufacturer, in others, it is the most popular.
647*9712c20fSFrederick Mayle	w89k)
648*9712c20fSFrederick Mayle		cpu=hppa1.1
649*9712c20fSFrederick Mayle		vendor=winbond
650*9712c20fSFrederick Mayle		;;
651*9712c20fSFrederick Mayle	op50n)
652*9712c20fSFrederick Mayle		cpu=hppa1.1
653*9712c20fSFrederick Mayle		vendor=oki
654*9712c20fSFrederick Mayle		;;
655*9712c20fSFrederick Mayle	op60c)
656*9712c20fSFrederick Mayle		cpu=hppa1.1
657*9712c20fSFrederick Mayle		vendor=oki
658*9712c20fSFrederick Mayle		;;
659*9712c20fSFrederick Mayle	ibm*)
660*9712c20fSFrederick Mayle		cpu=i370
661*9712c20fSFrederick Mayle		vendor=ibm
662*9712c20fSFrederick Mayle		;;
663*9712c20fSFrederick Mayle	orion105)
664*9712c20fSFrederick Mayle		cpu=clipper
665*9712c20fSFrederick Mayle		vendor=highlevel
666*9712c20fSFrederick Mayle		;;
667*9712c20fSFrederick Mayle	mac | mpw | mac-mpw)
668*9712c20fSFrederick Mayle		cpu=m68k
669*9712c20fSFrederick Mayle		vendor=apple
670*9712c20fSFrederick Mayle		;;
671*9712c20fSFrederick Mayle	pmac | pmac-mpw)
672*9712c20fSFrederick Mayle		cpu=powerpc
673*9712c20fSFrederick Mayle		vendor=apple
674*9712c20fSFrederick Mayle		;;
675*9712c20fSFrederick Mayle
676*9712c20fSFrederick Mayle	# Recognize the various machine names and aliases which stand
677*9712c20fSFrederick Mayle	# for a CPU type and a company and sometimes even an OS.
678*9712c20fSFrederick Mayle	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
679*9712c20fSFrederick Mayle		cpu=m68000
680*9712c20fSFrederick Mayle		vendor=att
681*9712c20fSFrederick Mayle		;;
682*9712c20fSFrederick Mayle	3b*)
683*9712c20fSFrederick Mayle		cpu=we32k
684*9712c20fSFrederick Mayle		vendor=att
685*9712c20fSFrederick Mayle		;;
686*9712c20fSFrederick Mayle	bluegene*)
687*9712c20fSFrederick Mayle		cpu=powerpc
688*9712c20fSFrederick Mayle		vendor=ibm
689*9712c20fSFrederick Mayle		basic_os=cnk
690*9712c20fSFrederick Mayle		;;
691*9712c20fSFrederick Mayle	decsystem10* | dec10*)
692*9712c20fSFrederick Mayle		cpu=pdp10
693*9712c20fSFrederick Mayle		vendor=dec
694*9712c20fSFrederick Mayle		basic_os=tops10
695*9712c20fSFrederick Mayle		;;
696*9712c20fSFrederick Mayle	decsystem20* | dec20*)
697*9712c20fSFrederick Mayle		cpu=pdp10
698*9712c20fSFrederick Mayle		vendor=dec
699*9712c20fSFrederick Mayle		basic_os=tops20
700*9712c20fSFrederick Mayle		;;
701*9712c20fSFrederick Mayle	delta | 3300 | motorola-3300 | motorola-delta \
702*9712c20fSFrederick Mayle	      | 3300-motorola | delta-motorola)
703*9712c20fSFrederick Mayle		cpu=m68k
704*9712c20fSFrederick Mayle		vendor=motorola
705*9712c20fSFrederick Mayle		;;
706*9712c20fSFrederick Mayle	dpx2*)
707*9712c20fSFrederick Mayle		cpu=m68k
708*9712c20fSFrederick Mayle		vendor=bull
709*9712c20fSFrederick Mayle		basic_os=sysv3
710*9712c20fSFrederick Mayle		;;
711*9712c20fSFrederick Mayle	encore | umax | mmax)
712*9712c20fSFrederick Mayle		cpu=ns32k
713*9712c20fSFrederick Mayle		vendor=encore
714*9712c20fSFrederick Mayle		;;
715*9712c20fSFrederick Mayle	elxsi)
716*9712c20fSFrederick Mayle		cpu=elxsi
717*9712c20fSFrederick Mayle		vendor=elxsi
718*9712c20fSFrederick Mayle		basic_os=${basic_os:-bsd}
719*9712c20fSFrederick Mayle		;;
720*9712c20fSFrederick Mayle	fx2800)
721*9712c20fSFrederick Mayle		cpu=i860
722*9712c20fSFrederick Mayle		vendor=alliant
723*9712c20fSFrederick Mayle		;;
724*9712c20fSFrederick Mayle	genix)
725*9712c20fSFrederick Mayle		cpu=ns32k
726*9712c20fSFrederick Mayle		vendor=ns
727*9712c20fSFrederick Mayle		;;
728*9712c20fSFrederick Mayle	h3050r* | hiux*)
729*9712c20fSFrederick Mayle		cpu=hppa1.1
730*9712c20fSFrederick Mayle		vendor=hitachi
731*9712c20fSFrederick Mayle		basic_os=hiuxwe2
732*9712c20fSFrederick Mayle		;;
733*9712c20fSFrederick Mayle	hp3k9[0-9][0-9] | hp9[0-9][0-9])
734*9712c20fSFrederick Mayle		cpu=hppa1.0
735*9712c20fSFrederick Mayle		vendor=hp
736*9712c20fSFrederick Mayle		;;
737*9712c20fSFrederick Mayle	hp9k2[0-9][0-9] | hp9k31[0-9])
738*9712c20fSFrederick Mayle		cpu=m68000
739*9712c20fSFrederick Mayle		vendor=hp
740*9712c20fSFrederick Mayle		;;
741*9712c20fSFrederick Mayle	hp9k3[2-9][0-9])
742*9712c20fSFrederick Mayle		cpu=m68k
743*9712c20fSFrederick Mayle		vendor=hp
744*9712c20fSFrederick Mayle		;;
745*9712c20fSFrederick Mayle	hp9k6[0-9][0-9] | hp6[0-9][0-9])
746*9712c20fSFrederick Mayle		cpu=hppa1.0
747*9712c20fSFrederick Mayle		vendor=hp
748*9712c20fSFrederick Mayle		;;
749*9712c20fSFrederick Mayle	hp9k7[0-79][0-9] | hp7[0-79][0-9])
750*9712c20fSFrederick Mayle		cpu=hppa1.1
751*9712c20fSFrederick Mayle		vendor=hp
752*9712c20fSFrederick Mayle		;;
753*9712c20fSFrederick Mayle	hp9k78[0-9] | hp78[0-9])
754*9712c20fSFrederick Mayle		# FIXME: really hppa2.0-hp
755*9712c20fSFrederick Mayle		cpu=hppa1.1
756*9712c20fSFrederick Mayle		vendor=hp
757*9712c20fSFrederick Mayle		;;
758*9712c20fSFrederick Mayle	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
759*9712c20fSFrederick Mayle		# FIXME: really hppa2.0-hp
760*9712c20fSFrederick Mayle		cpu=hppa1.1
761*9712c20fSFrederick Mayle		vendor=hp
762*9712c20fSFrederick Mayle		;;
763*9712c20fSFrederick Mayle	hp9k8[0-9][13679] | hp8[0-9][13679])
764*9712c20fSFrederick Mayle		cpu=hppa1.1
765*9712c20fSFrederick Mayle		vendor=hp
766*9712c20fSFrederick Mayle		;;
767*9712c20fSFrederick Mayle	hp9k8[0-9][0-9] | hp8[0-9][0-9])
768*9712c20fSFrederick Mayle		cpu=hppa1.0
769*9712c20fSFrederick Mayle		vendor=hp
770*9712c20fSFrederick Mayle		;;
771*9712c20fSFrederick Mayle	i*86v32)
772*9712c20fSFrederick Mayle		cpu=$(echo "$1" | sed -e 's/86.*/86/')
773*9712c20fSFrederick Mayle		vendor=pc
774*9712c20fSFrederick Mayle		basic_os=sysv32
775*9712c20fSFrederick Mayle		;;
776*9712c20fSFrederick Mayle	i*86v4*)
777*9712c20fSFrederick Mayle		cpu=$(echo "$1" | sed -e 's/86.*/86/')
778*9712c20fSFrederick Mayle		vendor=pc
779*9712c20fSFrederick Mayle		basic_os=sysv4
780*9712c20fSFrederick Mayle		;;
781*9712c20fSFrederick Mayle	i*86v)
782*9712c20fSFrederick Mayle		cpu=$(echo "$1" | sed -e 's/86.*/86/')
783*9712c20fSFrederick Mayle		vendor=pc
784*9712c20fSFrederick Mayle		basic_os=sysv
785*9712c20fSFrederick Mayle		;;
786*9712c20fSFrederick Mayle	i*86sol2)
787*9712c20fSFrederick Mayle		cpu=$(echo "$1" | sed -e 's/86.*/86/')
788*9712c20fSFrederick Mayle		vendor=pc
789*9712c20fSFrederick Mayle		basic_os=solaris2
790*9712c20fSFrederick Mayle		;;
791*9712c20fSFrederick Mayle	j90 | j90-cray)
792*9712c20fSFrederick Mayle		cpu=j90
793*9712c20fSFrederick Mayle		vendor=cray
794*9712c20fSFrederick Mayle		basic_os=${basic_os:-unicos}
795*9712c20fSFrederick Mayle		;;
796*9712c20fSFrederick Mayle	iris | iris4d)
797*9712c20fSFrederick Mayle		cpu=mips
798*9712c20fSFrederick Mayle		vendor=sgi
799*9712c20fSFrederick Mayle		case $basic_os in
800*9712c20fSFrederick Mayle		    irix*)
801*9712c20fSFrederick Mayle			;;
802*9712c20fSFrederick Mayle		    *)
803*9712c20fSFrederick Mayle			basic_os=irix4
804*9712c20fSFrederick Mayle			;;
805*9712c20fSFrederick Mayle		esac
806*9712c20fSFrederick Mayle		;;
807*9712c20fSFrederick Mayle	miniframe)
808*9712c20fSFrederick Mayle		cpu=m68000
809*9712c20fSFrederick Mayle		vendor=convergent
810*9712c20fSFrederick Mayle		;;
811*9712c20fSFrederick Mayle	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
812*9712c20fSFrederick Mayle		cpu=m68k
813*9712c20fSFrederick Mayle		vendor=atari
814*9712c20fSFrederick Mayle		basic_os=mint
815*9712c20fSFrederick Mayle		;;
816*9712c20fSFrederick Mayle	mipsEE* | ee)
817*9712c20fSFrederick Mayle		cpu=mips64r5900el
818*9712c20fSFrederick Mayle		vendor=scei
819*9712c20fSFrederick Mayle		case $os in
820*9712c20fSFrederick Mayle		    linux*)
821*9712c20fSFrederick Mayle			;;
822*9712c20fSFrederick Mayle		    *)
823*9712c20fSFrederick Mayle			os=elf
824*9712c20fSFrederick Mayle			;;
825*9712c20fSFrederick Mayle		esac
826*9712c20fSFrederick Mayle		;;
827*9712c20fSFrederick Mayle	iop)
828*9712c20fSFrederick Mayle		cpu=mipsel
829*9712c20fSFrederick Mayle		vendor=scei
830*9712c20fSFrederick Mayle		os=irx
831*9712c20fSFrederick Mayle		;;
832*9712c20fSFrederick Mayle	dvp)
833*9712c20fSFrederick Mayle		cpu=dvp
834*9712c20fSFrederick Mayle		vendor=scei
835*9712c20fSFrederick Mayle		os=elf
836*9712c20fSFrederick Mayle		;;
837*9712c20fSFrederick Mayle	news-3600 | risc-news)
838*9712c20fSFrederick Mayle		cpu=mips
839*9712c20fSFrederick Mayle		vendor=sony
840*9712c20fSFrederick Mayle		basic_os=newsos
841*9712c20fSFrederick Mayle		;;
842*9712c20fSFrederick Mayle	next | m*-next)
843*9712c20fSFrederick Mayle		cpu=m68k
844*9712c20fSFrederick Mayle		vendor=next
845*9712c20fSFrederick Mayle		case $basic_os in
846*9712c20fSFrederick Mayle		    openstep*)
847*9712c20fSFrederick Mayle		        ;;
848*9712c20fSFrederick Mayle		    nextstep*)
849*9712c20fSFrederick Mayle			;;
850*9712c20fSFrederick Mayle		    ns2*)
851*9712c20fSFrederick Mayle		      basic_os=nextstep2
852*9712c20fSFrederick Mayle			;;
853*9712c20fSFrederick Mayle		    *)
854*9712c20fSFrederick Mayle		      basic_os=nextstep3
855*9712c20fSFrederick Mayle			;;
856*9712c20fSFrederick Mayle		esac
857*9712c20fSFrederick Mayle		;;
858*9712c20fSFrederick Mayle	np1)
859*9712c20fSFrederick Mayle		cpu=np1
860*9712c20fSFrederick Mayle		vendor=gould
861*9712c20fSFrederick Mayle		;;
862*9712c20fSFrederick Mayle	op50n-* | op60c-*)
863*9712c20fSFrederick Mayle		cpu=hppa1.1
864*9712c20fSFrederick Mayle		vendor=oki
865*9712c20fSFrederick Mayle		basic_os=proelf
866*9712c20fSFrederick Mayle		;;
867*9712c20fSFrederick Mayle	pa-hitachi)
868*9712c20fSFrederick Mayle		cpu=hppa1.1
869*9712c20fSFrederick Mayle		vendor=hitachi
870*9712c20fSFrederick Mayle		basic_os=hiuxwe2
871*9712c20fSFrederick Mayle		;;
872*9712c20fSFrederick Mayle	pbd)
873*9712c20fSFrederick Mayle		cpu=sparc
874*9712c20fSFrederick Mayle		vendor=tti
875*9712c20fSFrederick Mayle		;;
876*9712c20fSFrederick Mayle	pbb)
877*9712c20fSFrederick Mayle		cpu=m68k
878*9712c20fSFrederick Mayle		vendor=tti
879*9712c20fSFrederick Mayle		;;
880*9712c20fSFrederick Mayle	pc532)
881*9712c20fSFrederick Mayle		cpu=ns32k
882*9712c20fSFrederick Mayle		vendor=pc532
883*9712c20fSFrederick Mayle		;;
884*9712c20fSFrederick Mayle	pn)
885*9712c20fSFrederick Mayle		cpu=pn
886*9712c20fSFrederick Mayle		vendor=gould
887*9712c20fSFrederick Mayle		;;
888*9712c20fSFrederick Mayle	power)
889*9712c20fSFrederick Mayle		cpu=power
890*9712c20fSFrederick Mayle		vendor=ibm
891*9712c20fSFrederick Mayle		;;
892*9712c20fSFrederick Mayle	ps2)
893*9712c20fSFrederick Mayle		cpu=i386
894*9712c20fSFrederick Mayle		vendor=ibm
895*9712c20fSFrederick Mayle		;;
896*9712c20fSFrederick Mayle	rm[46]00)
897*9712c20fSFrederick Mayle		cpu=mips
898*9712c20fSFrederick Mayle		vendor=siemens
899*9712c20fSFrederick Mayle		;;
900*9712c20fSFrederick Mayle	rtpc | rtpc-*)
901*9712c20fSFrederick Mayle		cpu=romp
902*9712c20fSFrederick Mayle		vendor=ibm
903*9712c20fSFrederick Mayle		;;
904*9712c20fSFrederick Mayle	sde)
905*9712c20fSFrederick Mayle		cpu=mipsisa32
906*9712c20fSFrederick Mayle		vendor=sde
907*9712c20fSFrederick Mayle		basic_os=${basic_os:-elf}
908*9712c20fSFrederick Mayle		;;
909*9712c20fSFrederick Mayle	simso-wrs)
910*9712c20fSFrederick Mayle		cpu=sparclite
911*9712c20fSFrederick Mayle		vendor=wrs
912*9712c20fSFrederick Mayle		basic_os=vxworks
913*9712c20fSFrederick Mayle		;;
914*9712c20fSFrederick Mayle	tower | tower-32)
915*9712c20fSFrederick Mayle		cpu=m68k
916*9712c20fSFrederick Mayle		vendor=ncr
917*9712c20fSFrederick Mayle		;;
918*9712c20fSFrederick Mayle	vpp*|vx|vx-*)
919*9712c20fSFrederick Mayle		cpu=f301
920*9712c20fSFrederick Mayle		vendor=fujitsu
921*9712c20fSFrederick Mayle		;;
922*9712c20fSFrederick Mayle	w65)
923*9712c20fSFrederick Mayle		cpu=w65
924*9712c20fSFrederick Mayle		vendor=wdc
925*9712c20fSFrederick Mayle		;;
926*9712c20fSFrederick Mayle	w89k-*)
927*9712c20fSFrederick Mayle		cpu=hppa1.1
928*9712c20fSFrederick Mayle		vendor=winbond
929*9712c20fSFrederick Mayle		basic_os=proelf
930*9712c20fSFrederick Mayle		;;
931*9712c20fSFrederick Mayle	none)
932*9712c20fSFrederick Mayle		cpu=none
933*9712c20fSFrederick Mayle		vendor=none
934*9712c20fSFrederick Mayle		;;
935*9712c20fSFrederick Mayle	leon|leon[3-9])
936*9712c20fSFrederick Mayle		cpu=sparc
937*9712c20fSFrederick Mayle		vendor=$basic_machine
938*9712c20fSFrederick Mayle		;;
939*9712c20fSFrederick Mayle	leon-*|leon[3-9]-*)
940*9712c20fSFrederick Mayle		cpu=sparc
941*9712c20fSFrederick Mayle		vendor=$(echo "$basic_machine" | sed 's/-.*//')
942*9712c20fSFrederick Mayle		;;
943*9712c20fSFrederick Mayle
944*9712c20fSFrederick Mayle	*-*)
945*9712c20fSFrederick Mayle		# shellcheck disable=SC2162
946*9712c20fSFrederick Mayle		IFS="-" read cpu vendor <<EOF
947*9712c20fSFrederick Mayle$basic_machine
948*9712c20fSFrederick MayleEOF
949*9712c20fSFrederick Mayle		;;
950*9712c20fSFrederick Mayle	# We use `pc' rather than `unknown'
951*9712c20fSFrederick Mayle	# because (1) that's what they normally are, and
952*9712c20fSFrederick Mayle	# (2) the word "unknown" tends to confuse beginning users.
953*9712c20fSFrederick Mayle	i*86 | x86_64)
954*9712c20fSFrederick Mayle		cpu=$basic_machine
955*9712c20fSFrederick Mayle		vendor=pc
956*9712c20fSFrederick Mayle		;;
957*9712c20fSFrederick Mayle	# These rules are duplicated from below for sake of the special case above;
958*9712c20fSFrederick Mayle	# i.e. things that normalized to x86 arches should also default to "pc"
959*9712c20fSFrederick Mayle	pc98)
960*9712c20fSFrederick Mayle		cpu=i386
961*9712c20fSFrederick Mayle		vendor=pc
962*9712c20fSFrederick Mayle		;;
963*9712c20fSFrederick Mayle	x64 | amd64)
964*9712c20fSFrederick Mayle		cpu=x86_64
965*9712c20fSFrederick Mayle		vendor=pc
966*9712c20fSFrederick Mayle		;;
967*9712c20fSFrederick Mayle	# Recognize the basic CPU types without company name.
968*9712c20fSFrederick Mayle	*)
969*9712c20fSFrederick Mayle		cpu=$basic_machine
970*9712c20fSFrederick Mayle		vendor=unknown
971*9712c20fSFrederick Mayle		;;
972*9712c20fSFrederick Mayleesac
973*9712c20fSFrederick Mayle
974*9712c20fSFrederick Mayleunset -v basic_machine
975*9712c20fSFrederick Mayle
976*9712c20fSFrederick Mayle# Decode basic machines in the full and proper CPU-Company form.
977*9712c20fSFrederick Maylecase $cpu-$vendor in
978*9712c20fSFrederick Mayle	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
979*9712c20fSFrederick Mayle	# some cases the only manufacturer, in others, it is the most popular.
980*9712c20fSFrederick Mayle	craynv-unknown)
981*9712c20fSFrederick Mayle		vendor=cray
982*9712c20fSFrederick Mayle		basic_os=${basic_os:-unicosmp}
983*9712c20fSFrederick Mayle		;;
984*9712c20fSFrederick Mayle	c90-unknown | c90-cray)
985*9712c20fSFrederick Mayle		vendor=cray
986*9712c20fSFrederick Mayle		basic_os=${Basic_os:-unicos}
987*9712c20fSFrederick Mayle		;;
988*9712c20fSFrederick Mayle	fx80-unknown)
989*9712c20fSFrederick Mayle		vendor=alliant
990*9712c20fSFrederick Mayle		;;
991*9712c20fSFrederick Mayle	romp-unknown)
992*9712c20fSFrederick Mayle		vendor=ibm
993*9712c20fSFrederick Mayle		;;
994*9712c20fSFrederick Mayle	mmix-unknown)
995*9712c20fSFrederick Mayle		vendor=knuth
996*9712c20fSFrederick Mayle		;;
997*9712c20fSFrederick Mayle	microblaze-unknown | microblazeel-unknown)
998*9712c20fSFrederick Mayle		vendor=xilinx
999*9712c20fSFrederick Mayle		;;
1000*9712c20fSFrederick Mayle	rs6000-unknown)
1001*9712c20fSFrederick Mayle		vendor=ibm
1002*9712c20fSFrederick Mayle		;;
1003*9712c20fSFrederick Mayle	vax-unknown)
1004*9712c20fSFrederick Mayle		vendor=dec
1005*9712c20fSFrederick Mayle		;;
1006*9712c20fSFrederick Mayle	pdp11-unknown)
1007*9712c20fSFrederick Mayle		vendor=dec
1008*9712c20fSFrederick Mayle		;;
1009*9712c20fSFrederick Mayle	we32k-unknown)
1010*9712c20fSFrederick Mayle		vendor=att
1011*9712c20fSFrederick Mayle		;;
1012*9712c20fSFrederick Mayle	cydra-unknown)
1013*9712c20fSFrederick Mayle		vendor=cydrome
1014*9712c20fSFrederick Mayle		;;
1015*9712c20fSFrederick Mayle	i370-ibm*)
1016*9712c20fSFrederick Mayle		vendor=ibm
1017*9712c20fSFrederick Mayle		;;
1018*9712c20fSFrederick Mayle	orion-unknown)
1019*9712c20fSFrederick Mayle		vendor=highlevel
1020*9712c20fSFrederick Mayle		;;
1021*9712c20fSFrederick Mayle	xps-unknown | xps100-unknown)
1022*9712c20fSFrederick Mayle		cpu=xps100
1023*9712c20fSFrederick Mayle		vendor=honeywell
1024*9712c20fSFrederick Mayle		;;
1025*9712c20fSFrederick Mayle
1026*9712c20fSFrederick Mayle	# Here we normalize CPU types with a missing or matching vendor
1027*9712c20fSFrederick Mayle	dpx20-unknown | dpx20-bull)
1028*9712c20fSFrederick Mayle		cpu=rs6000
1029*9712c20fSFrederick Mayle		vendor=bull
1030*9712c20fSFrederick Mayle		basic_os=${basic_os:-bosx}
1031*9712c20fSFrederick Mayle		;;
1032*9712c20fSFrederick Mayle
1033*9712c20fSFrederick Mayle	# Here we normalize CPU types irrespective of the vendor
1034*9712c20fSFrederick Mayle	amd64-*)
1035*9712c20fSFrederick Mayle		cpu=x86_64
1036*9712c20fSFrederick Mayle		;;
1037*9712c20fSFrederick Mayle	blackfin-*)
1038*9712c20fSFrederick Mayle		cpu=bfin
1039*9712c20fSFrederick Mayle		basic_os=linux
1040*9712c20fSFrederick Mayle		;;
1041*9712c20fSFrederick Mayle	c54x-*)
1042*9712c20fSFrederick Mayle		cpu=tic54x
1043*9712c20fSFrederick Mayle		;;
1044*9712c20fSFrederick Mayle	c55x-*)
1045*9712c20fSFrederick Mayle		cpu=tic55x
1046*9712c20fSFrederick Mayle		;;
1047*9712c20fSFrederick Mayle	c6x-*)
1048*9712c20fSFrederick Mayle		cpu=tic6x
1049*9712c20fSFrederick Mayle		;;
1050*9712c20fSFrederick Mayle	e500v[12]-*)
1051*9712c20fSFrederick Mayle		cpu=powerpc
1052*9712c20fSFrederick Mayle		basic_os=${basic_os}"spe"
1053*9712c20fSFrederick Mayle		;;
1054*9712c20fSFrederick Mayle	mips3*-*)
1055*9712c20fSFrederick Mayle		cpu=mips64
1056*9712c20fSFrederick Mayle		;;
1057*9712c20fSFrederick Mayle	ms1-*)
1058*9712c20fSFrederick Mayle		cpu=mt
1059*9712c20fSFrederick Mayle		;;
1060*9712c20fSFrederick Mayle	m68knommu-*)
1061*9712c20fSFrederick Mayle		cpu=m68k
1062*9712c20fSFrederick Mayle		basic_os=linux
1063*9712c20fSFrederick Mayle		;;
1064*9712c20fSFrederick Mayle	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1065*9712c20fSFrederick Mayle		cpu=s12z
1066*9712c20fSFrederick Mayle		;;
1067*9712c20fSFrederick Mayle	openrisc-*)
1068*9712c20fSFrederick Mayle		cpu=or32
1069*9712c20fSFrederick Mayle		;;
1070*9712c20fSFrederick Mayle	parisc-*)
1071*9712c20fSFrederick Mayle		cpu=hppa
1072*9712c20fSFrederick Mayle		basic_os=linux
1073*9712c20fSFrederick Mayle		;;
1074*9712c20fSFrederick Mayle	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1075*9712c20fSFrederick Mayle		cpu=i586
1076*9712c20fSFrederick Mayle		;;
1077*9712c20fSFrederick Mayle	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1078*9712c20fSFrederick Mayle		cpu=i686
1079*9712c20fSFrederick Mayle		;;
1080*9712c20fSFrederick Mayle	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1081*9712c20fSFrederick Mayle		cpu=i686
1082*9712c20fSFrederick Mayle		;;
1083*9712c20fSFrederick Mayle	pentium4-*)
1084*9712c20fSFrederick Mayle		cpu=i786
1085*9712c20fSFrederick Mayle		;;
1086*9712c20fSFrederick Mayle	pc98-*)
1087*9712c20fSFrederick Mayle		cpu=i386
1088*9712c20fSFrederick Mayle		;;
1089*9712c20fSFrederick Mayle	ppc-* | ppcbe-*)
1090*9712c20fSFrederick Mayle		cpu=powerpc
1091*9712c20fSFrederick Mayle		;;
1092*9712c20fSFrederick Mayle	ppcle-* | powerpclittle-*)
1093*9712c20fSFrederick Mayle		cpu=powerpcle
1094*9712c20fSFrederick Mayle		;;
1095*9712c20fSFrederick Mayle	ppc64-*)
1096*9712c20fSFrederick Mayle		cpu=powerpc64
1097*9712c20fSFrederick Mayle		;;
1098*9712c20fSFrederick Mayle	ppc64le-* | powerpc64little-*)
1099*9712c20fSFrederick Mayle		cpu=powerpc64le
1100*9712c20fSFrederick Mayle		;;
1101*9712c20fSFrederick Mayle	sb1-*)
1102*9712c20fSFrederick Mayle		cpu=mipsisa64sb1
1103*9712c20fSFrederick Mayle		;;
1104*9712c20fSFrederick Mayle	sb1el-*)
1105*9712c20fSFrederick Mayle		cpu=mipsisa64sb1el
1106*9712c20fSFrederick Mayle		;;
1107*9712c20fSFrederick Mayle	sh5e[lb]-*)
1108*9712c20fSFrederick Mayle		cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
1109*9712c20fSFrederick Mayle		;;
1110*9712c20fSFrederick Mayle	spur-*)
1111*9712c20fSFrederick Mayle		cpu=spur
1112*9712c20fSFrederick Mayle		;;
1113*9712c20fSFrederick Mayle	strongarm-* | thumb-*)
1114*9712c20fSFrederick Mayle		cpu=arm
1115*9712c20fSFrederick Mayle		;;
1116*9712c20fSFrederick Mayle	tx39-*)
1117*9712c20fSFrederick Mayle		cpu=mipstx39
1118*9712c20fSFrederick Mayle		;;
1119*9712c20fSFrederick Mayle	tx39el-*)
1120*9712c20fSFrederick Mayle		cpu=mipstx39el
1121*9712c20fSFrederick Mayle		;;
1122*9712c20fSFrederick Mayle	x64-*)
1123*9712c20fSFrederick Mayle		cpu=x86_64
1124*9712c20fSFrederick Mayle		;;
1125*9712c20fSFrederick Mayle	xscale-* | xscalee[bl]-*)
1126*9712c20fSFrederick Mayle		cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
1127*9712c20fSFrederick Mayle		;;
1128*9712c20fSFrederick Mayle	arm64-*)
1129*9712c20fSFrederick Mayle		cpu=aarch64
1130*9712c20fSFrederick Mayle		;;
1131*9712c20fSFrederick Mayle
1132*9712c20fSFrederick Mayle	# Recognize the canonical CPU Types that limit and/or modify the
1133*9712c20fSFrederick Mayle	# company names they are paired with.
1134*9712c20fSFrederick Mayle	cr16-*)
1135*9712c20fSFrederick Mayle		basic_os=${basic_os:-elf}
1136*9712c20fSFrederick Mayle		;;
1137*9712c20fSFrederick Mayle	crisv32-* | etraxfs*-*)
1138*9712c20fSFrederick Mayle		cpu=crisv32
1139*9712c20fSFrederick Mayle		vendor=axis
1140*9712c20fSFrederick Mayle		;;
1141*9712c20fSFrederick Mayle	cris-* | etrax*-*)
1142*9712c20fSFrederick Mayle		cpu=cris
1143*9712c20fSFrederick Mayle		vendor=axis
1144*9712c20fSFrederick Mayle		;;
1145*9712c20fSFrederick Mayle	crx-*)
1146*9712c20fSFrederick Mayle		basic_os=${basic_os:-elf}
1147*9712c20fSFrederick Mayle		;;
1148*9712c20fSFrederick Mayle	neo-tandem)
1149*9712c20fSFrederick Mayle		cpu=neo
1150*9712c20fSFrederick Mayle		vendor=tandem
1151*9712c20fSFrederick Mayle		;;
1152*9712c20fSFrederick Mayle	nse-tandem)
1153*9712c20fSFrederick Mayle		cpu=nse
1154*9712c20fSFrederick Mayle		vendor=tandem
1155*9712c20fSFrederick Mayle		;;
1156*9712c20fSFrederick Mayle	nsr-tandem)
1157*9712c20fSFrederick Mayle		cpu=nsr
1158*9712c20fSFrederick Mayle		vendor=tandem
1159*9712c20fSFrederick Mayle		;;
1160*9712c20fSFrederick Mayle	nsv-tandem)
1161*9712c20fSFrederick Mayle		cpu=nsv
1162*9712c20fSFrederick Mayle		vendor=tandem
1163*9712c20fSFrederick Mayle		;;
1164*9712c20fSFrederick Mayle	nsx-tandem)
1165*9712c20fSFrederick Mayle		cpu=nsx
1166*9712c20fSFrederick Mayle		vendor=tandem
1167*9712c20fSFrederick Mayle		;;
1168*9712c20fSFrederick Mayle	mipsallegrexel-sony)
1169*9712c20fSFrederick Mayle		cpu=mipsallegrexel
1170*9712c20fSFrederick Mayle		vendor=sony
1171*9712c20fSFrederick Mayle		;;
1172*9712c20fSFrederick Mayle	tile*-*)
1173*9712c20fSFrederick Mayle		basic_os=${basic_os:-linux-gnu}
1174*9712c20fSFrederick Mayle		;;
1175*9712c20fSFrederick Mayle
1176*9712c20fSFrederick Mayle	*)
1177*9712c20fSFrederick Mayle		# Recognize the canonical CPU types that are allowed with any
1178*9712c20fSFrederick Mayle		# company name.
1179*9712c20fSFrederick Mayle		case $cpu in
1180*9712c20fSFrederick Mayle			1750a | 580 \
1181*9712c20fSFrederick Mayle			| a29k \
1182*9712c20fSFrederick Mayle			| aarch64 | aarch64_be \
1183*9712c20fSFrederick Mayle			| abacus \
1184*9712c20fSFrederick Mayle			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1185*9712c20fSFrederick Mayle			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1186*9712c20fSFrederick Mayle			| alphapca5[67] | alpha64pca5[67] \
1187*9712c20fSFrederick Mayle			| am33_2.0 \
1188*9712c20fSFrederick Mayle			| amdgcn \
1189*9712c20fSFrederick Mayle			| arc | arceb \
1190*9712c20fSFrederick Mayle			| arm | arm[lb]e | arme[lb] | armv* \
1191*9712c20fSFrederick Mayle			| avr | avr32 \
1192*9712c20fSFrederick Mayle			| asmjs \
1193*9712c20fSFrederick Mayle			| ba \
1194*9712c20fSFrederick Mayle			| be32 | be64 \
1195*9712c20fSFrederick Mayle			| bfin | bpf | bs2000 \
1196*9712c20fSFrederick Mayle			| c[123]* | c30 | [cjt]90 | c4x \
1197*9712c20fSFrederick Mayle			| c8051 | clipper | craynv | csky | cydra \
1198*9712c20fSFrederick Mayle			| d10v | d30v | dlx | dsp16xx | dvp \
1199*9712c20fSFrederick Mayle			| e2k | elxsi | epiphany \
1200*9712c20fSFrederick Mayle			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1201*9712c20fSFrederick Mayle			| h8300 | h8500 \
1202*9712c20fSFrederick Mayle			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1203*9712c20fSFrederick Mayle			| hexagon \
1204*9712c20fSFrederick Mayle			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1205*9712c20fSFrederick Mayle			| ip2k | iq2000 \
1206*9712c20fSFrederick Mayle			| k1om \
1207*9712c20fSFrederick Mayle			| le32 | le64 \
1208*9712c20fSFrederick Mayle			| lm32 \
1209*9712c20fSFrederick Mayle			| loongarch32 | loongarch64 | loongarchx32 \
1210*9712c20fSFrederick Mayle			| m32c | m32r | m32rle \
1211*9712c20fSFrederick Mayle			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1212*9712c20fSFrederick Mayle			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1213*9712c20fSFrederick Mayle			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1214*9712c20fSFrederick Mayle			| microblaze | microblazeel \
1215*9712c20fSFrederick Mayle			| mips | mipsbe | mipseb | mipsel | mipsle \
1216*9712c20fSFrederick Mayle			| mips16 \
1217*9712c20fSFrederick Mayle			| mips64 | mips64eb | mips64el \
1218*9712c20fSFrederick Mayle			| mips64octeon | mips64octeonel \
1219*9712c20fSFrederick Mayle			| mips64orion | mips64orionel \
1220*9712c20fSFrederick Mayle			| mips64r5900 | mips64r5900el \
1221*9712c20fSFrederick Mayle			| mips64vr | mips64vrel \
1222*9712c20fSFrederick Mayle			| mips64vr4100 | mips64vr4100el \
1223*9712c20fSFrederick Mayle			| mips64vr4300 | mips64vr4300el \
1224*9712c20fSFrederick Mayle			| mips64vr5000 | mips64vr5000el \
1225*9712c20fSFrederick Mayle			| mips64vr5900 | mips64vr5900el \
1226*9712c20fSFrederick Mayle			| mipsisa32 | mipsisa32el \
1227*9712c20fSFrederick Mayle			| mipsisa32r2 | mipsisa32r2el \
1228*9712c20fSFrederick Mayle			| mipsisa32r6 | mipsisa32r6el \
1229*9712c20fSFrederick Mayle			| mipsisa64 | mipsisa64el \
1230*9712c20fSFrederick Mayle			| mipsisa64r2 | mipsisa64r2el \
1231*9712c20fSFrederick Mayle			| mipsisa64r6 | mipsisa64r6el \
1232*9712c20fSFrederick Mayle			| mipsisa64sb1 | mipsisa64sb1el \
1233*9712c20fSFrederick Mayle			| mipsisa64sr71k | mipsisa64sr71kel \
1234*9712c20fSFrederick Mayle			| mipsr5900 | mipsr5900el \
1235*9712c20fSFrederick Mayle			| mipstx39 | mipstx39el \
1236*9712c20fSFrederick Mayle			| mmix \
1237*9712c20fSFrederick Mayle			| mn10200 | mn10300 \
1238*9712c20fSFrederick Mayle			| moxie \
1239*9712c20fSFrederick Mayle			| mt \
1240*9712c20fSFrederick Mayle			| msp430 \
1241*9712c20fSFrederick Mayle			| nds32 | nds32le | nds32be \
1242*9712c20fSFrederick Mayle			| nfp \
1243*9712c20fSFrederick Mayle			| nios | nios2 | nios2eb | nios2el \
1244*9712c20fSFrederick Mayle			| none | np1 | ns16k | ns32k | nvptx \
1245*9712c20fSFrederick Mayle			| open8 \
1246*9712c20fSFrederick Mayle			| or1k* \
1247*9712c20fSFrederick Mayle			| or32 \
1248*9712c20fSFrederick Mayle			| orion \
1249*9712c20fSFrederick Mayle			| picochip \
1250*9712c20fSFrederick Mayle			| pdp10 | pdp11 | pj | pjl | pn | power \
1251*9712c20fSFrederick Mayle			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1252*9712c20fSFrederick Mayle			| pru \
1253*9712c20fSFrederick Mayle			| pyramid \
1254*9712c20fSFrederick Mayle			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1255*9712c20fSFrederick Mayle			| rl78 | romp | rs6000 | rx \
1256*9712c20fSFrederick Mayle			| s390 | s390x \
1257*9712c20fSFrederick Mayle			| score \
1258*9712c20fSFrederick Mayle			| sh | shl \
1259*9712c20fSFrederick Mayle			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1260*9712c20fSFrederick Mayle			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1261*9712c20fSFrederick Mayle			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1262*9712c20fSFrederick Mayle			| sparclite \
1263*9712c20fSFrederick Mayle			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1264*9712c20fSFrederick Mayle			| spu \
1265*9712c20fSFrederick Mayle			| tahoe \
1266*9712c20fSFrederick Mayle			| thumbv7* \
1267*9712c20fSFrederick Mayle			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1268*9712c20fSFrederick Mayle			| tron \
1269*9712c20fSFrederick Mayle			| ubicom32 \
1270*9712c20fSFrederick Mayle			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1271*9712c20fSFrederick Mayle			| vax \
1272*9712c20fSFrederick Mayle			| visium \
1273*9712c20fSFrederick Mayle			| w65 \
1274*9712c20fSFrederick Mayle			| wasm32 | wasm64 \
1275*9712c20fSFrederick Mayle			| we32k \
1276*9712c20fSFrederick Mayle			| x86 | x86_64 | xc16x | xgate | xps100 \
1277*9712c20fSFrederick Mayle			| xstormy16 | xtensa* \
1278*9712c20fSFrederick Mayle			| ymp \
1279*9712c20fSFrederick Mayle			| z8k | z80)
1280*9712c20fSFrederick Mayle				;;
1281*9712c20fSFrederick Mayle
1282*9712c20fSFrederick Mayle			*)
1283*9712c20fSFrederick Mayle				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1284*9712c20fSFrederick Mayle				exit 1
1285*9712c20fSFrederick Mayle				;;
1286*9712c20fSFrederick Mayle		esac
1287*9712c20fSFrederick Mayle		;;
1288*9712c20fSFrederick Mayleesac
1289*9712c20fSFrederick Mayle
1290*9712c20fSFrederick Mayle# Here we canonicalize certain aliases for manufacturers.
1291*9712c20fSFrederick Maylecase $vendor in
1292*9712c20fSFrederick Mayle	digital*)
1293*9712c20fSFrederick Mayle		vendor=dec
1294*9712c20fSFrederick Mayle		;;
1295*9712c20fSFrederick Mayle	commodore*)
1296*9712c20fSFrederick Mayle		vendor=cbm
1297*9712c20fSFrederick Mayle		;;
1298*9712c20fSFrederick Mayle	*)
1299*9712c20fSFrederick Mayle		;;
1300*9712c20fSFrederick Mayleesac
1301*9712c20fSFrederick Mayle
1302*9712c20fSFrederick Mayle# Decode manufacturer-specific aliases for certain operating systems.
1303*9712c20fSFrederick Mayle
1304*9712c20fSFrederick Mayleif test x$basic_os != x
1305*9712c20fSFrederick Maylethen
1306*9712c20fSFrederick Mayle
1307*9712c20fSFrederick Mayle# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
1308*9712c20fSFrederick Mayle# set os.
1309*9712c20fSFrederick Maylecase $basic_os in
1310*9712c20fSFrederick Mayle	gnu/linux*)
1311*9712c20fSFrederick Mayle		kernel=linux
1312*9712c20fSFrederick Mayle		os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
1313*9712c20fSFrederick Mayle		;;
1314*9712c20fSFrederick Mayle	os2-emx)
1315*9712c20fSFrederick Mayle		kernel=os2
1316*9712c20fSFrederick Mayle		os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
1317*9712c20fSFrederick Mayle		;;
1318*9712c20fSFrederick Mayle	nto-qnx*)
1319*9712c20fSFrederick Mayle		kernel=nto
1320*9712c20fSFrederick Mayle		os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
1321*9712c20fSFrederick Mayle		;;
1322*9712c20fSFrederick Mayle	*-*)
1323*9712c20fSFrederick Mayle		# shellcheck disable=SC2162
1324*9712c20fSFrederick Mayle		IFS="-" read kernel os <<EOF
1325*9712c20fSFrederick Mayle$basic_os
1326*9712c20fSFrederick MayleEOF
1327*9712c20fSFrederick Mayle		;;
1328*9712c20fSFrederick Mayle	# Default OS when just kernel was specified
1329*9712c20fSFrederick Mayle	nto*)
1330*9712c20fSFrederick Mayle		kernel=nto
1331*9712c20fSFrederick Mayle		os=$(echo $basic_os | sed -e 's|nto|qnx|')
1332*9712c20fSFrederick Mayle		;;
1333*9712c20fSFrederick Mayle	linux*)
1334*9712c20fSFrederick Mayle		kernel=linux
1335*9712c20fSFrederick Mayle		os=$(echo $basic_os | sed -e 's|linux|gnu|')
1336*9712c20fSFrederick Mayle		;;
1337*9712c20fSFrederick Mayle	*)
1338*9712c20fSFrederick Mayle		kernel=
1339*9712c20fSFrederick Mayle		os=$basic_os
1340*9712c20fSFrederick Mayle		;;
1341*9712c20fSFrederick Mayleesac
1342*9712c20fSFrederick Mayle
1343*9712c20fSFrederick Mayle# Now, normalize the OS (knowing we just have one component, it's not a kernel,
1344*9712c20fSFrederick Mayle# etc.)
1345*9712c20fSFrederick Maylecase $os in
1346*9712c20fSFrederick Mayle	# First match some system type aliases that might get confused
1347*9712c20fSFrederick Mayle	# with valid system types.
1348*9712c20fSFrederick Mayle	# solaris* is a basic system type, with this one exception.
1349*9712c20fSFrederick Mayle	auroraux)
1350*9712c20fSFrederick Mayle		os=auroraux
1351*9712c20fSFrederick Mayle		;;
1352*9712c20fSFrederick Mayle	bluegene*)
1353*9712c20fSFrederick Mayle		os=cnk
1354*9712c20fSFrederick Mayle		;;
1355*9712c20fSFrederick Mayle	solaris1 | solaris1.*)
1356*9712c20fSFrederick Mayle		os=$(echo $os | sed -e 's|solaris1|sunos4|')
1357*9712c20fSFrederick Mayle		;;
1358*9712c20fSFrederick Mayle	solaris)
1359*9712c20fSFrederick Mayle		os=solaris2
1360*9712c20fSFrederick Mayle		;;
1361*9712c20fSFrederick Mayle	unixware*)
1362*9712c20fSFrederick Mayle		os=sysv4.2uw
1363*9712c20fSFrederick Mayle		;;
1364*9712c20fSFrederick Mayle	# es1800 is here to avoid being matched by es* (a different OS)
1365*9712c20fSFrederick Mayle	es1800*)
1366*9712c20fSFrederick Mayle		os=ose
1367*9712c20fSFrederick Mayle		;;
1368*9712c20fSFrederick Mayle	# Some version numbers need modification
1369*9712c20fSFrederick Mayle	chorusos*)
1370*9712c20fSFrederick Mayle		os=chorusos
1371*9712c20fSFrederick Mayle		;;
1372*9712c20fSFrederick Mayle	isc)
1373*9712c20fSFrederick Mayle		os=isc2.2
1374*9712c20fSFrederick Mayle		;;
1375*9712c20fSFrederick Mayle	sco6)
1376*9712c20fSFrederick Mayle		os=sco5v6
1377*9712c20fSFrederick Mayle		;;
1378*9712c20fSFrederick Mayle	sco5)
1379*9712c20fSFrederick Mayle		os=sco3.2v5
1380*9712c20fSFrederick Mayle		;;
1381*9712c20fSFrederick Mayle	sco4)
1382*9712c20fSFrederick Mayle		os=sco3.2v4
1383*9712c20fSFrederick Mayle		;;
1384*9712c20fSFrederick Mayle	sco3.2.[4-9]*)
1385*9712c20fSFrederick Mayle		os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
1386*9712c20fSFrederick Mayle		;;
1387*9712c20fSFrederick Mayle	sco*v* | scout)
1388*9712c20fSFrederick Mayle		# Don't match below
1389*9712c20fSFrederick Mayle		;;
1390*9712c20fSFrederick Mayle	sco*)
1391*9712c20fSFrederick Mayle		os=sco3.2v2
1392*9712c20fSFrederick Mayle		;;
1393*9712c20fSFrederick Mayle	psos*)
1394*9712c20fSFrederick Mayle		os=psos
1395*9712c20fSFrederick Mayle		;;
1396*9712c20fSFrederick Mayle	qnx*)
1397*9712c20fSFrederick Mayle		os=qnx
1398*9712c20fSFrederick Mayle		;;
1399*9712c20fSFrederick Mayle	hiux*)
1400*9712c20fSFrederick Mayle		os=hiuxwe2
1401*9712c20fSFrederick Mayle		;;
1402*9712c20fSFrederick Mayle	lynx*178)
1403*9712c20fSFrederick Mayle		os=lynxos178
1404*9712c20fSFrederick Mayle		;;
1405*9712c20fSFrederick Mayle	lynx*5)
1406*9712c20fSFrederick Mayle		os=lynxos5
1407*9712c20fSFrederick Mayle		;;
1408*9712c20fSFrederick Mayle	lynxos*)
1409*9712c20fSFrederick Mayle		# don't get caught up in next wildcard
1410*9712c20fSFrederick Mayle		;;
1411*9712c20fSFrederick Mayle	lynx*)
1412*9712c20fSFrederick Mayle		os=lynxos
1413*9712c20fSFrederick Mayle		;;
1414*9712c20fSFrederick Mayle	mac[0-9]*)
1415*9712c20fSFrederick Mayle		os=$(echo "$os" | sed -e 's|mac|macos|')
1416*9712c20fSFrederick Mayle		;;
1417*9712c20fSFrederick Mayle	opened*)
1418*9712c20fSFrederick Mayle		os=openedition
1419*9712c20fSFrederick Mayle		;;
1420*9712c20fSFrederick Mayle	os400*)
1421*9712c20fSFrederick Mayle		os=os400
1422*9712c20fSFrederick Mayle		;;
1423*9712c20fSFrederick Mayle	sunos5*)
1424*9712c20fSFrederick Mayle		os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
1425*9712c20fSFrederick Mayle		;;
1426*9712c20fSFrederick Mayle	sunos6*)
1427*9712c20fSFrederick Mayle		os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
1428*9712c20fSFrederick Mayle		;;
1429*9712c20fSFrederick Mayle	wince*)
1430*9712c20fSFrederick Mayle		os=wince
1431*9712c20fSFrederick Mayle		;;
1432*9712c20fSFrederick Mayle	utek*)
1433*9712c20fSFrederick Mayle		os=bsd
1434*9712c20fSFrederick Mayle		;;
1435*9712c20fSFrederick Mayle	dynix*)
1436*9712c20fSFrederick Mayle		os=bsd
1437*9712c20fSFrederick Mayle		;;
1438*9712c20fSFrederick Mayle	acis*)
1439*9712c20fSFrederick Mayle		os=aos
1440*9712c20fSFrederick Mayle		;;
1441*9712c20fSFrederick Mayle	atheos*)
1442*9712c20fSFrederick Mayle		os=atheos
1443*9712c20fSFrederick Mayle		;;
1444*9712c20fSFrederick Mayle	syllable*)
1445*9712c20fSFrederick Mayle		os=syllable
1446*9712c20fSFrederick Mayle		;;
1447*9712c20fSFrederick Mayle	386bsd)
1448*9712c20fSFrederick Mayle		os=bsd
1449*9712c20fSFrederick Mayle		;;
1450*9712c20fSFrederick Mayle	ctix* | uts*)
1451*9712c20fSFrederick Mayle		os=sysv
1452*9712c20fSFrederick Mayle		;;
1453*9712c20fSFrederick Mayle	nova*)
1454*9712c20fSFrederick Mayle		os=rtmk-nova
1455*9712c20fSFrederick Mayle		;;
1456*9712c20fSFrederick Mayle	ns2)
1457*9712c20fSFrederick Mayle		os=nextstep2
1458*9712c20fSFrederick Mayle		;;
1459*9712c20fSFrederick Mayle	# Preserve the version number of sinix5.
1460*9712c20fSFrederick Mayle	sinix5.*)
1461*9712c20fSFrederick Mayle		os=$(echo $os | sed -e 's|sinix|sysv|')
1462*9712c20fSFrederick Mayle		;;
1463*9712c20fSFrederick Mayle	sinix*)
1464*9712c20fSFrederick Mayle		os=sysv4
1465*9712c20fSFrederick Mayle		;;
1466*9712c20fSFrederick Mayle	tpf*)
1467*9712c20fSFrederick Mayle		os=tpf
1468*9712c20fSFrederick Mayle		;;
1469*9712c20fSFrederick Mayle	triton*)
1470*9712c20fSFrederick Mayle		os=sysv3
1471*9712c20fSFrederick Mayle		;;
1472*9712c20fSFrederick Mayle	oss*)
1473*9712c20fSFrederick Mayle		os=sysv3
1474*9712c20fSFrederick Mayle		;;
1475*9712c20fSFrederick Mayle	svr4*)
1476*9712c20fSFrederick Mayle		os=sysv4
1477*9712c20fSFrederick Mayle		;;
1478*9712c20fSFrederick Mayle	svr3)
1479*9712c20fSFrederick Mayle		os=sysv3
1480*9712c20fSFrederick Mayle		;;
1481*9712c20fSFrederick Mayle	sysvr4)
1482*9712c20fSFrederick Mayle		os=sysv4
1483*9712c20fSFrederick Mayle		;;
1484*9712c20fSFrederick Mayle	ose*)
1485*9712c20fSFrederick Mayle		os=ose
1486*9712c20fSFrederick Mayle		;;
1487*9712c20fSFrederick Mayle	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1488*9712c20fSFrederick Mayle		os=mint
1489*9712c20fSFrederick Mayle		;;
1490*9712c20fSFrederick Mayle	dicos*)
1491*9712c20fSFrederick Mayle		os=dicos
1492*9712c20fSFrederick Mayle		;;
1493*9712c20fSFrederick Mayle	pikeos*)
1494*9712c20fSFrederick Mayle		# Until real need of OS specific support for
1495*9712c20fSFrederick Mayle		# particular features comes up, bare metal
1496*9712c20fSFrederick Mayle		# configurations are quite functional.
1497*9712c20fSFrederick Mayle		case $cpu in
1498*9712c20fSFrederick Mayle		    arm*)
1499*9712c20fSFrederick Mayle			os=eabi
1500*9712c20fSFrederick Mayle			;;
1501*9712c20fSFrederick Mayle		    *)
1502*9712c20fSFrederick Mayle			os=elf
1503*9712c20fSFrederick Mayle			;;
1504*9712c20fSFrederick Mayle		esac
1505*9712c20fSFrederick Mayle		;;
1506*9712c20fSFrederick Mayle	*)
1507*9712c20fSFrederick Mayle		# No normalization, but not necessarily accepted, that comes below.
1508*9712c20fSFrederick Mayle		;;
1509*9712c20fSFrederick Mayleesac
1510*9712c20fSFrederick Mayle
1511*9712c20fSFrederick Mayleelse
1512*9712c20fSFrederick Mayle
1513*9712c20fSFrederick Mayle# Here we handle the default operating systems that come with various machines.
1514*9712c20fSFrederick Mayle# The value should be what the vendor currently ships out the door with their
1515*9712c20fSFrederick Mayle# machine or put another way, the most popular os provided with the machine.
1516*9712c20fSFrederick Mayle
1517*9712c20fSFrederick Mayle# Note that if you're going to try to match "-MANUFACTURER" here (say,
1518*9712c20fSFrederick Mayle# "-sun"), then you have to tell the case statement up towards the top
1519*9712c20fSFrederick Mayle# that MANUFACTURER isn't an operating system.  Otherwise, code above
1520*9712c20fSFrederick Mayle# will signal an error saying that MANUFACTURER isn't an operating
1521*9712c20fSFrederick Mayle# system, and we'll never get to this point.
1522*9712c20fSFrederick Mayle
1523*9712c20fSFrederick Maylekernel=
1524*9712c20fSFrederick Maylecase $cpu-$vendor in
1525*9712c20fSFrederick Mayle	score-*)
1526*9712c20fSFrederick Mayle		os=elf
1527*9712c20fSFrederick Mayle		;;
1528*9712c20fSFrederick Mayle	spu-*)
1529*9712c20fSFrederick Mayle		os=elf
1530*9712c20fSFrederick Mayle		;;
1531*9712c20fSFrederick Mayle	*-acorn)
1532*9712c20fSFrederick Mayle		os=riscix1.2
1533*9712c20fSFrederick Mayle		;;
1534*9712c20fSFrederick Mayle	arm*-rebel)
1535*9712c20fSFrederick Mayle		kernel=linux
1536*9712c20fSFrederick Mayle		os=gnu
1537*9712c20fSFrederick Mayle		;;
1538*9712c20fSFrederick Mayle	arm*-semi)
1539*9712c20fSFrederick Mayle		os=aout
1540*9712c20fSFrederick Mayle		;;
1541*9712c20fSFrederick Mayle	c4x-* | tic4x-*)
1542*9712c20fSFrederick Mayle		os=coff
1543*9712c20fSFrederick Mayle		;;
1544*9712c20fSFrederick Mayle	c8051-*)
1545*9712c20fSFrederick Mayle		os=elf
1546*9712c20fSFrederick Mayle		;;
1547*9712c20fSFrederick Mayle	clipper-intergraph)
1548*9712c20fSFrederick Mayle		os=clix
1549*9712c20fSFrederick Mayle		;;
1550*9712c20fSFrederick Mayle	hexagon-*)
1551*9712c20fSFrederick Mayle		os=elf
1552*9712c20fSFrederick Mayle		;;
1553*9712c20fSFrederick Mayle	tic54x-*)
1554*9712c20fSFrederick Mayle		os=coff
1555*9712c20fSFrederick Mayle		;;
1556*9712c20fSFrederick Mayle	tic55x-*)
1557*9712c20fSFrederick Mayle		os=coff
1558*9712c20fSFrederick Mayle		;;
1559*9712c20fSFrederick Mayle	tic6x-*)
1560*9712c20fSFrederick Mayle		os=coff
1561*9712c20fSFrederick Mayle		;;
1562*9712c20fSFrederick Mayle	# This must come before the *-dec entry.
1563*9712c20fSFrederick Mayle	pdp10-*)
1564*9712c20fSFrederick Mayle		os=tops20
1565*9712c20fSFrederick Mayle		;;
1566*9712c20fSFrederick Mayle	pdp11-*)
1567*9712c20fSFrederick Mayle		os=none
1568*9712c20fSFrederick Mayle		;;
1569*9712c20fSFrederick Mayle	*-dec | vax-*)
1570*9712c20fSFrederick Mayle		os=ultrix4.2
1571*9712c20fSFrederick Mayle		;;
1572*9712c20fSFrederick Mayle	m68*-apollo)
1573*9712c20fSFrederick Mayle		os=domain
1574*9712c20fSFrederick Mayle		;;
1575*9712c20fSFrederick Mayle	i386-sun)
1576*9712c20fSFrederick Mayle		os=sunos4.0.2
1577*9712c20fSFrederick Mayle		;;
1578*9712c20fSFrederick Mayle	m68000-sun)
1579*9712c20fSFrederick Mayle		os=sunos3
1580*9712c20fSFrederick Mayle		;;
1581*9712c20fSFrederick Mayle	m68*-cisco)
1582*9712c20fSFrederick Mayle		os=aout
1583*9712c20fSFrederick Mayle		;;
1584*9712c20fSFrederick Mayle	mep-*)
1585*9712c20fSFrederick Mayle		os=elf
1586*9712c20fSFrederick Mayle		;;
1587*9712c20fSFrederick Mayle	mips*-cisco)
1588*9712c20fSFrederick Mayle		os=elf
1589*9712c20fSFrederick Mayle		;;
1590*9712c20fSFrederick Mayle	mips*-*)
1591*9712c20fSFrederick Mayle		os=elf
1592*9712c20fSFrederick Mayle		;;
1593*9712c20fSFrederick Mayle	or32-*)
1594*9712c20fSFrederick Mayle		os=coff
1595*9712c20fSFrederick Mayle		;;
1596*9712c20fSFrederick Mayle	*-tti)	# must be before sparc entry or we get the wrong os.
1597*9712c20fSFrederick Mayle		os=sysv3
1598*9712c20fSFrederick Mayle		;;
1599*9712c20fSFrederick Mayle	sparc-* | *-sun)
1600*9712c20fSFrederick Mayle		os=sunos4.1.1
1601*9712c20fSFrederick Mayle		;;
1602*9712c20fSFrederick Mayle	pru-*)
1603*9712c20fSFrederick Mayle		os=elf
1604*9712c20fSFrederick Mayle		;;
1605*9712c20fSFrederick Mayle	*-be)
1606*9712c20fSFrederick Mayle		os=beos
1607*9712c20fSFrederick Mayle		;;
1608*9712c20fSFrederick Mayle	*-ibm)
1609*9712c20fSFrederick Mayle		os=aix
1610*9712c20fSFrederick Mayle		;;
1611*9712c20fSFrederick Mayle	*-knuth)
1612*9712c20fSFrederick Mayle		os=mmixware
1613*9712c20fSFrederick Mayle		;;
1614*9712c20fSFrederick Mayle	*-wec)
1615*9712c20fSFrederick Mayle		os=proelf
1616*9712c20fSFrederick Mayle		;;
1617*9712c20fSFrederick Mayle	*-winbond)
1618*9712c20fSFrederick Mayle		os=proelf
1619*9712c20fSFrederick Mayle		;;
1620*9712c20fSFrederick Mayle	*-oki)
1621*9712c20fSFrederick Mayle		os=proelf
1622*9712c20fSFrederick Mayle		;;
1623*9712c20fSFrederick Mayle	*-hp)
1624*9712c20fSFrederick Mayle		os=hpux
1625*9712c20fSFrederick Mayle		;;
1626*9712c20fSFrederick Mayle	*-hitachi)
1627*9712c20fSFrederick Mayle		os=hiux
1628*9712c20fSFrederick Mayle		;;
1629*9712c20fSFrederick Mayle	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1630*9712c20fSFrederick Mayle		os=sysv
1631*9712c20fSFrederick Mayle		;;
1632*9712c20fSFrederick Mayle	*-cbm)
1633*9712c20fSFrederick Mayle		os=amigaos
1634*9712c20fSFrederick Mayle		;;
1635*9712c20fSFrederick Mayle	*-dg)
1636*9712c20fSFrederick Mayle		os=dgux
1637*9712c20fSFrederick Mayle		;;
1638*9712c20fSFrederick Mayle	*-dolphin)
1639*9712c20fSFrederick Mayle		os=sysv3
1640*9712c20fSFrederick Mayle		;;
1641*9712c20fSFrederick Mayle	m68k-ccur)
1642*9712c20fSFrederick Mayle		os=rtu
1643*9712c20fSFrederick Mayle		;;
1644*9712c20fSFrederick Mayle	m88k-omron*)
1645*9712c20fSFrederick Mayle		os=luna
1646*9712c20fSFrederick Mayle		;;
1647*9712c20fSFrederick Mayle	*-next)
1648*9712c20fSFrederick Mayle		os=nextstep
1649*9712c20fSFrederick Mayle		;;
1650*9712c20fSFrederick Mayle	*-sequent)
1651*9712c20fSFrederick Mayle		os=ptx
1652*9712c20fSFrederick Mayle		;;
1653*9712c20fSFrederick Mayle	*-crds)
1654*9712c20fSFrederick Mayle		os=unos
1655*9712c20fSFrederick Mayle		;;
1656*9712c20fSFrederick Mayle	*-ns)
1657*9712c20fSFrederick Mayle		os=genix
1658*9712c20fSFrederick Mayle		;;
1659*9712c20fSFrederick Mayle	i370-*)
1660*9712c20fSFrederick Mayle		os=mvs
1661*9712c20fSFrederick Mayle		;;
1662*9712c20fSFrederick Mayle	*-gould)
1663*9712c20fSFrederick Mayle		os=sysv
1664*9712c20fSFrederick Mayle		;;
1665*9712c20fSFrederick Mayle	*-highlevel)
1666*9712c20fSFrederick Mayle		os=bsd
1667*9712c20fSFrederick Mayle		;;
1668*9712c20fSFrederick Mayle	*-encore)
1669*9712c20fSFrederick Mayle		os=bsd
1670*9712c20fSFrederick Mayle		;;
1671*9712c20fSFrederick Mayle	*-sgi)
1672*9712c20fSFrederick Mayle		os=irix
1673*9712c20fSFrederick Mayle		;;
1674*9712c20fSFrederick Mayle	*-siemens)
1675*9712c20fSFrederick Mayle		os=sysv4
1676*9712c20fSFrederick Mayle		;;
1677*9712c20fSFrederick Mayle	*-masscomp)
1678*9712c20fSFrederick Mayle		os=rtu
1679*9712c20fSFrederick Mayle		;;
1680*9712c20fSFrederick Mayle	f30[01]-fujitsu | f700-fujitsu)
1681*9712c20fSFrederick Mayle		os=uxpv
1682*9712c20fSFrederick Mayle		;;
1683*9712c20fSFrederick Mayle	*-rom68k)
1684*9712c20fSFrederick Mayle		os=coff
1685*9712c20fSFrederick Mayle		;;
1686*9712c20fSFrederick Mayle	*-*bug)
1687*9712c20fSFrederick Mayle		os=coff
1688*9712c20fSFrederick Mayle		;;
1689*9712c20fSFrederick Mayle	*-apple)
1690*9712c20fSFrederick Mayle		os=macos
1691*9712c20fSFrederick Mayle		;;
1692*9712c20fSFrederick Mayle	*-atari*)
1693*9712c20fSFrederick Mayle		os=mint
1694*9712c20fSFrederick Mayle		;;
1695*9712c20fSFrederick Mayle	*-wrs)
1696*9712c20fSFrederick Mayle		os=vxworks
1697*9712c20fSFrederick Mayle		;;
1698*9712c20fSFrederick Mayle	*)
1699*9712c20fSFrederick Mayle		os=none
1700*9712c20fSFrederick Mayle		;;
1701*9712c20fSFrederick Mayleesac
1702*9712c20fSFrederick Mayle
1703*9712c20fSFrederick Maylefi
1704*9712c20fSFrederick Mayle
1705*9712c20fSFrederick Mayle# Now, validate our (potentially fixed-up) OS.
1706*9712c20fSFrederick Maylecase $os in
1707*9712c20fSFrederick Mayle	# Sometimes we do "kernel-abi", so those need to count as OSes.
1708*9712c20fSFrederick Mayle	musl* | newlib* | uclibc*)
1709*9712c20fSFrederick Mayle		;;
1710*9712c20fSFrederick Mayle	# Likewise for "kernel-libc"
1711*9712c20fSFrederick Mayle	eabi* | gnueabi*)
1712*9712c20fSFrederick Mayle		;;
1713*9712c20fSFrederick Mayle	# Now accept the basic system types.
1714*9712c20fSFrederick Mayle	# The portable systems comes first.
1715*9712c20fSFrederick Mayle	# Each alternative MUST end in a * to match a version number.
1716*9712c20fSFrederick Mayle	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1717*9712c20fSFrederick Mayle	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
1718*9712c20fSFrederick Mayle	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1719*9712c20fSFrederick Mayle	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
1720*9712c20fSFrederick Mayle	     | hiux* | abug | nacl* | netware* | windows* \
1721*9712c20fSFrederick Mayle	     | os9* | macos* | osx* | ios* \
1722*9712c20fSFrederick Mayle	     | mpw* | magic* | mmixware* | mon960* | lnews* \
1723*9712c20fSFrederick Mayle	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1724*9712c20fSFrederick Mayle	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
1725*9712c20fSFrederick Mayle	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1726*9712c20fSFrederick Mayle	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1727*9712c20fSFrederick Mayle	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1728*9712c20fSFrederick Mayle	     | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
1729*9712c20fSFrederick Mayle	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1730*9712c20fSFrederick Mayle	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1731*9712c20fSFrederick Mayle	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1732*9712c20fSFrederick Mayle	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
1733*9712c20fSFrederick Mayle	     | chorusrdb* | cegcc* | glidix* \
1734*9712c20fSFrederick Mayle	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1735*9712c20fSFrederick Mayle	     | midipix* | mingw32* | mingw64* | mint* \
1736*9712c20fSFrederick Mayle	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1737*9712c20fSFrederick Mayle	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1738*9712c20fSFrederick Mayle	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1739*9712c20fSFrederick Mayle	     | storm-chaos* | tops10* | tenex* | tops20* | its* | irx* \
1740*9712c20fSFrederick Mayle	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
1741*9712c20fSFrederick Mayle	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
1742*9712c20fSFrederick Mayle	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1743*9712c20fSFrederick Mayle	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1744*9712c20fSFrederick Mayle	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1745*9712c20fSFrederick Mayle	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1746*9712c20fSFrederick Mayle	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
1747*9712c20fSFrederick Mayle		;;
1748*9712c20fSFrederick Mayle	# This one is extra strict with allowed versions
1749*9712c20fSFrederick Mayle	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
1750*9712c20fSFrederick Mayle		# Don't forget version if it is 3.2v4 or newer.
1751*9712c20fSFrederick Mayle		;;
1752*9712c20fSFrederick Mayle	none)
1753*9712c20fSFrederick Mayle		;;
1754*9712c20fSFrederick Mayle	*)
1755*9712c20fSFrederick Mayle		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
1756*9712c20fSFrederick Mayle		exit 1
1757*9712c20fSFrederick Mayle		;;
1758*9712c20fSFrederick Mayleesac
1759*9712c20fSFrederick Mayle
1760*9712c20fSFrederick Mayle# As a final step for OS-related things, validate the OS-kernel combination
1761*9712c20fSFrederick Mayle# (given a valid OS), if there is a kernel.
1762*9712c20fSFrederick Maylecase $kernel-$os in
1763*9712c20fSFrederick Mayle	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
1764*9712c20fSFrederick Mayle		;;
1765*9712c20fSFrederick Mayle	uclinux-uclibc* )
1766*9712c20fSFrederick Mayle		;;
1767*9712c20fSFrederick Mayle	-dietlibc* | -newlib* | -musl* | -uclibc* )
1768*9712c20fSFrederick Mayle		# These are just libc implementations, not actual OSes, and thus
1769*9712c20fSFrederick Mayle		# require a kernel.
1770*9712c20fSFrederick Mayle		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
1771*9712c20fSFrederick Mayle		exit 1
1772*9712c20fSFrederick Mayle		;;
1773*9712c20fSFrederick Mayle	kfreebsd*-gnu* | kopensolaris*-gnu*)
1774*9712c20fSFrederick Mayle		;;
1775*9712c20fSFrederick Mayle	nto-qnx*)
1776*9712c20fSFrederick Mayle		;;
1777*9712c20fSFrederick Mayle	os2-emx)
1778*9712c20fSFrederick Mayle		;;
1779*9712c20fSFrederick Mayle	*-eabi* | *-gnueabi*)
1780*9712c20fSFrederick Mayle		;;
1781*9712c20fSFrederick Mayle	-*)
1782*9712c20fSFrederick Mayle		# Blank kernel with real OS is always fine.
1783*9712c20fSFrederick Mayle		;;
1784*9712c20fSFrederick Mayle	*-*)
1785*9712c20fSFrederick Mayle		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
1786*9712c20fSFrederick Mayle		exit 1
1787*9712c20fSFrederick Mayle		;;
1788*9712c20fSFrederick Mayleesac
1789*9712c20fSFrederick Mayle
1790*9712c20fSFrederick Mayle# Here we handle the case where we know the os, and the CPU type, but not the
1791*9712c20fSFrederick Mayle# manufacturer.  We pick the logical manufacturer.
1792*9712c20fSFrederick Maylecase $vendor in
1793*9712c20fSFrederick Mayle	unknown)
1794*9712c20fSFrederick Mayle		case $cpu-$os in
1795*9712c20fSFrederick Mayle			*-riscix*)
1796*9712c20fSFrederick Mayle				vendor=acorn
1797*9712c20fSFrederick Mayle				;;
1798*9712c20fSFrederick Mayle			*-sunos*)
1799*9712c20fSFrederick Mayle				vendor=sun
1800*9712c20fSFrederick Mayle				;;
1801*9712c20fSFrederick Mayle			*-cnk* | *-aix*)
1802*9712c20fSFrederick Mayle				vendor=ibm
1803*9712c20fSFrederick Mayle				;;
1804*9712c20fSFrederick Mayle			*-beos*)
1805*9712c20fSFrederick Mayle				vendor=be
1806*9712c20fSFrederick Mayle				;;
1807*9712c20fSFrederick Mayle			*-hpux*)
1808*9712c20fSFrederick Mayle				vendor=hp
1809*9712c20fSFrederick Mayle				;;
1810*9712c20fSFrederick Mayle			*-mpeix*)
1811*9712c20fSFrederick Mayle				vendor=hp
1812*9712c20fSFrederick Mayle				;;
1813*9712c20fSFrederick Mayle			*-hiux*)
1814*9712c20fSFrederick Mayle				vendor=hitachi
1815*9712c20fSFrederick Mayle				;;
1816*9712c20fSFrederick Mayle			*-unos*)
1817*9712c20fSFrederick Mayle				vendor=crds
1818*9712c20fSFrederick Mayle				;;
1819*9712c20fSFrederick Mayle			*-dgux*)
1820*9712c20fSFrederick Mayle				vendor=dg
1821*9712c20fSFrederick Mayle				;;
1822*9712c20fSFrederick Mayle			*-luna*)
1823*9712c20fSFrederick Mayle				vendor=omron
1824*9712c20fSFrederick Mayle				;;
1825*9712c20fSFrederick Mayle			*-genix*)
1826*9712c20fSFrederick Mayle				vendor=ns
1827*9712c20fSFrederick Mayle				;;
1828*9712c20fSFrederick Mayle			*-clix*)
1829*9712c20fSFrederick Mayle				vendor=intergraph
1830*9712c20fSFrederick Mayle				;;
1831*9712c20fSFrederick Mayle			*-mvs* | *-opened*)
1832*9712c20fSFrederick Mayle				vendor=ibm
1833*9712c20fSFrederick Mayle				;;
1834*9712c20fSFrederick Mayle			*-os400*)
1835*9712c20fSFrederick Mayle				vendor=ibm
1836*9712c20fSFrederick Mayle				;;
1837*9712c20fSFrederick Mayle			s390-* | s390x-*)
1838*9712c20fSFrederick Mayle				vendor=ibm
1839*9712c20fSFrederick Mayle				;;
1840*9712c20fSFrederick Mayle			*-ptx*)
1841*9712c20fSFrederick Mayle				vendor=sequent
1842*9712c20fSFrederick Mayle				;;
1843*9712c20fSFrederick Mayle			*-tpf*)
1844*9712c20fSFrederick Mayle				vendor=ibm
1845*9712c20fSFrederick Mayle				;;
1846*9712c20fSFrederick Mayle			*-vxsim* | *-vxworks* | *-windiss*)
1847*9712c20fSFrederick Mayle				vendor=wrs
1848*9712c20fSFrederick Mayle				;;
1849*9712c20fSFrederick Mayle			*-aux*)
1850*9712c20fSFrederick Mayle				vendor=apple
1851*9712c20fSFrederick Mayle				;;
1852*9712c20fSFrederick Mayle			*-hms*)
1853*9712c20fSFrederick Mayle				vendor=hitachi
1854*9712c20fSFrederick Mayle				;;
1855*9712c20fSFrederick Mayle			*-mpw* | *-macos*)
1856*9712c20fSFrederick Mayle				vendor=apple
1857*9712c20fSFrederick Mayle				;;
1858*9712c20fSFrederick Mayle			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1859*9712c20fSFrederick Mayle				vendor=atari
1860*9712c20fSFrederick Mayle				;;
1861*9712c20fSFrederick Mayle			*-vos*)
1862*9712c20fSFrederick Mayle				vendor=stratus
1863*9712c20fSFrederick Mayle				;;
1864*9712c20fSFrederick Mayle		esac
1865*9712c20fSFrederick Mayle		;;
1866*9712c20fSFrederick Mayleesac
1867*9712c20fSFrederick Mayle
1868*9712c20fSFrederick Mayleecho "$cpu-$vendor-${kernel:+$kernel-}$os"
1869*9712c20fSFrederick Mayleexit
1870*9712c20fSFrederick Mayle
1871*9712c20fSFrederick Mayle# Local variables:
1872*9712c20fSFrederick Mayle# eval: (add-hook 'before-save-hook 'time-stamp)
1873*9712c20fSFrederick Mayle# time-stamp-start: "timestamp='"
1874*9712c20fSFrederick Mayle# time-stamp-format: "%:y-%02m-%02d"
1875*9712c20fSFrederick Mayle# time-stamp-end: "'"
1876*9712c20fSFrederick Mayle# End:
1877