unrealircd

- supernets unrealircd source & configuration
git clone git://git.acid.vegas/unrealircd.git
Log | Files | Refs | Archive | README | LICENSE

config.sub (35276B)

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