quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

config.sub (39943B)


      1 #! /bin/sh
      2 # Configuration validation subroutine script.
      3 #   Copyright 1992-2025 Free Software Foundation, Inc.
      4 
      5 # shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale
      6 
      7 timestamp='2025-07-10'
      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-2025 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 saved_IFS=$IFS
    124 IFS="-" read field1 field2 field3 field4 <<EOF
    125 $1
    126 EOF
    127 IFS=$saved_IFS
    128 
    129 # Separate into logical components for further validation
    130 case $1 in
    131 	*-*-*-*-*)
    132 		echo "Invalid configuration '$1': more than four components" >&2
    133 		exit 1
    134 		;;
    135 	*-*-*-*)
    136 		basic_machine=$field1-$field2
    137 		basic_os=$field3-$field4
    138 		;;
    139 	*-*-*)
    140 		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
    141 		# parts
    142 		maybe_os=$field2-$field3
    143 		case $maybe_os in
    144 			  cloudabi*-eabi* \
    145 			| kfreebsd*-gnu* \
    146 			| knetbsd*-gnu* \
    147 			| kopensolaris*-gnu* \
    148 			| ironclad-* \
    149 			| linux-* \
    150 			| managarm-* \
    151 			| netbsd*-eabi* \
    152 			| netbsd*-gnu* \
    153 			| nto-qnx* \
    154 			| os2-emx* \
    155 			| rtmk-nova* \
    156 			| storm-chaos* \
    157 			| uclinux-gnu* \
    158 			| uclinux-uclibc* \
    159 			| windows-* )
    160 				basic_machine=$field1
    161 				basic_os=$maybe_os
    162 				;;
    163 			android-linux)
    164 				basic_machine=$field1-unknown
    165 				basic_os=linux-android
    166 				;;
    167 			*)
    168 				basic_machine=$field1-$field2
    169 				basic_os=$field3
    170 				;;
    171 		esac
    172 		;;
    173 	*-*)
    174 		case $field1-$field2 in
    175 			# Shorthands that happen to contain a single dash
    176 			convex-c[12] | convex-c3[248])
    177 				basic_machine=$field2-convex
    178 				basic_os=
    179 				;;
    180 			decstation-3100)
    181 				basic_machine=mips-dec
    182 				basic_os=
    183 				;;
    184 			*-*)
    185 				# Second component is usually, but not always the OS
    186 				case $field2 in
    187 					# Do not treat sunos as a manufacturer
    188 					sun*os*)
    189 						basic_machine=$field1
    190 						basic_os=$field2
    191 						;;
    192 					# Manufacturers
    193 					  3100* \
    194 					| 32* \
    195 					| 3300* \
    196 					| 3600* \
    197 					| 7300* \
    198 					| acorn \
    199 					| altos* \
    200 					| apollo \
    201 					| apple \
    202 					| atari \
    203 					| att* \
    204 					| axis \
    205 					| be \
    206 					| bull \
    207 					| cbm \
    208 					| ccur \
    209 					| cisco \
    210 					| commodore \
    211 					| convergent* \
    212 					| convex* \
    213 					| cray \
    214 					| crds \
    215 					| dec* \
    216 					| delta* \
    217 					| dg \
    218 					| digital \
    219 					| dolphin \
    220 					| encore* \
    221 					| gould \
    222 					| harris \
    223 					| highlevel \
    224 					| hitachi* \
    225 					| hp \
    226 					| ibm* \
    227 					| intergraph \
    228 					| isi* \
    229 					| knuth \
    230 					| masscomp \
    231 					| microblaze* \
    232 					| mips* \
    233 					| motorola* \
    234 					| ncr* \
    235 					| news \
    236 					| next \
    237 					| ns \
    238 					| oki \
    239 					| omron* \
    240 					| pc533* \
    241 					| rebel \
    242 					| rom68k \
    243 					| rombug \
    244 					| semi \
    245 					| sequent* \
    246 					| sgi* \
    247 					| siemens \
    248 					| sim \
    249 					| sni \
    250 					| sony* \
    251 					| stratus \
    252 					| sun \
    253 					| sun[234]* \
    254 					| tektronix \
    255 					| tti* \
    256 					| ultra \
    257 					| unicom* \
    258 					| wec \
    259 					| winbond \
    260 					| wrs)
    261 						basic_machine=$field1-$field2
    262 						basic_os=
    263 						;;
    264 					tock* | zephyr*)
    265 						basic_machine=$field1-unknown
    266 						basic_os=$field2
    267 						;;
    268 					*)
    269 						basic_machine=$field1
    270 						basic_os=$field2
    271 						;;
    272 				esac
    273 			;;
    274 		esac
    275 		;;
    276 	*)
    277 		# Convert single-component short-hands not valid as part of
    278 		# multi-component configurations.
    279 		case $field1 in
    280 			386bsd)
    281 				basic_machine=i386-pc
    282 				basic_os=bsd
    283 				;;
    284 			a29khif)
    285 				basic_machine=a29k-amd
    286 				basic_os=udi
    287 				;;
    288 			adobe68k)
    289 				basic_machine=m68010-adobe
    290 				basic_os=scout
    291 				;;
    292 			alliant)
    293 				basic_machine=fx80-alliant
    294 				basic_os=
    295 				;;
    296 			altos | altos3068)
    297 				basic_machine=m68k-altos
    298 				basic_os=
    299 				;;
    300 			am29k)
    301 				basic_machine=a29k-none
    302 				basic_os=bsd
    303 				;;
    304 			amdahl)
    305 				basic_machine=580-amdahl
    306 				basic_os=sysv
    307 				;;
    308 			amiga)
    309 				basic_machine=m68k-unknown
    310 				basic_os=
    311 				;;
    312 			amigaos | amigados)
    313 				basic_machine=m68k-unknown
    314 				basic_os=amigaos
    315 				;;
    316 			amigaunix | amix)
    317 				basic_machine=m68k-unknown
    318 				basic_os=sysv4
    319 				;;
    320 			apollo68)
    321 				basic_machine=m68k-apollo
    322 				basic_os=sysv
    323 				;;
    324 			apollo68bsd)
    325 				basic_machine=m68k-apollo
    326 				basic_os=bsd
    327 				;;
    328 			aros)
    329 				basic_machine=i386-pc
    330 				basic_os=aros
    331 				;;
    332 			aux)
    333 				basic_machine=m68k-apple
    334 				basic_os=aux
    335 				;;
    336 			balance)
    337 				basic_machine=ns32k-sequent
    338 				basic_os=dynix
    339 				;;
    340 			blackfin)
    341 				basic_machine=bfin-unknown
    342 				basic_os=linux
    343 				;;
    344 			cegcc)
    345 				basic_machine=arm-unknown
    346 				basic_os=cegcc
    347 				;;
    348 			cray)
    349 				basic_machine=j90-cray
    350 				basic_os=unicos
    351 				;;
    352 			crds | unos)
    353 				basic_machine=m68k-crds
    354 				basic_os=
    355 				;;
    356 			da30)
    357 				basic_machine=m68k-da30
    358 				basic_os=
    359 				;;
    360 			decstation | pmax | pmin | dec3100 | decstatn)
    361 				basic_machine=mips-dec
    362 				basic_os=
    363 				;;
    364 			delta88)
    365 				basic_machine=m88k-motorola
    366 				basic_os=sysv3
    367 				;;
    368 			dicos)
    369 				basic_machine=i686-pc
    370 				basic_os=dicos
    371 				;;
    372 			djgpp)
    373 				basic_machine=i586-pc
    374 				basic_os=msdosdjgpp
    375 				;;
    376 			ebmon29k)
    377 				basic_machine=a29k-amd
    378 				basic_os=ebmon
    379 				;;
    380 			es1800 | OSE68k | ose68k | ose | OSE)
    381 				basic_machine=m68k-ericsson
    382 				basic_os=ose
    383 				;;
    384 			gmicro)
    385 				basic_machine=tron-gmicro
    386 				basic_os=sysv
    387 				;;
    388 			go32)
    389 				basic_machine=i386-pc
    390 				basic_os=go32
    391 				;;
    392 			h8300hms)
    393 				basic_machine=h8300-hitachi
    394 				basic_os=hms
    395 				;;
    396 			h8300xray)
    397 				basic_machine=h8300-hitachi
    398 				basic_os=xray
    399 				;;
    400 			h8500hms)
    401 				basic_machine=h8500-hitachi
    402 				basic_os=hms
    403 				;;
    404 			harris)
    405 				basic_machine=m88k-harris
    406 				basic_os=sysv3
    407 				;;
    408 			hp300 | hp300hpux)
    409 				basic_machine=m68k-hp
    410 				basic_os=hpux
    411 				;;
    412 			hp300bsd)
    413 				basic_machine=m68k-hp
    414 				basic_os=bsd
    415 				;;
    416 			hppaosf)
    417 				basic_machine=hppa1.1-hp
    418 				basic_os=osf
    419 				;;
    420 			hppro)
    421 				basic_machine=hppa1.1-hp
    422 				basic_os=proelf
    423 				;;
    424 			i386mach)
    425 				basic_machine=i386-mach
    426 				basic_os=mach
    427 				;;
    428 			isi68 | isi)
    429 				basic_machine=m68k-isi
    430 				basic_os=sysv
    431 				;;
    432 			m68knommu)
    433 				basic_machine=m68k-unknown
    434 				basic_os=linux
    435 				;;
    436 			magnum | m3230)
    437 				basic_machine=mips-mips
    438 				basic_os=sysv
    439 				;;
    440 			merlin)
    441 				basic_machine=ns32k-utek
    442 				basic_os=sysv
    443 				;;
    444 			mingw64)
    445 				basic_machine=x86_64-pc
    446 				basic_os=mingw64
    447 				;;
    448 			mingw32)
    449 				basic_machine=i686-pc
    450 				basic_os=mingw32
    451 				;;
    452 			mingw32ce)
    453 				basic_machine=arm-unknown
    454 				basic_os=mingw32ce
    455 				;;
    456 			monitor)
    457 				basic_machine=m68k-rom68k
    458 				basic_os=coff
    459 				;;
    460 			morphos)
    461 				basic_machine=powerpc-unknown
    462 				basic_os=morphos
    463 				;;
    464 			moxiebox)
    465 				basic_machine=moxie-unknown
    466 				basic_os=moxiebox
    467 				;;
    468 			msdos)
    469 				basic_machine=i386-pc
    470 				basic_os=msdos
    471 				;;
    472 			msys)
    473 				basic_machine=i686-pc
    474 				basic_os=msys
    475 				;;
    476 			mvs)
    477 				basic_machine=i370-ibm
    478 				basic_os=mvs
    479 				;;
    480 			nacl)
    481 				basic_machine=le32-unknown
    482 				basic_os=nacl
    483 				;;
    484 			ncr3000)
    485 				basic_machine=i486-ncr
    486 				basic_os=sysv4
    487 				;;
    488 			netbsd386)
    489 				basic_machine=i386-pc
    490 				basic_os=netbsd
    491 				;;
    492 			netwinder)
    493 				basic_machine=armv4l-rebel
    494 				basic_os=linux
    495 				;;
    496 			news | news700 | news800 | news900)
    497 				basic_machine=m68k-sony
    498 				basic_os=newsos
    499 				;;
    500 			news1000)
    501 				basic_machine=m68030-sony
    502 				basic_os=newsos
    503 				;;
    504 			necv70)
    505 				basic_machine=v70-nec
    506 				basic_os=sysv
    507 				;;
    508 			nh3000)
    509 				basic_machine=m68k-harris
    510 				basic_os=cxux
    511 				;;
    512 			nh[45]000)
    513 				basic_machine=m88k-harris
    514 				basic_os=cxux
    515 				;;
    516 			nindy960)
    517 				basic_machine=i960-intel
    518 				basic_os=nindy
    519 				;;
    520 			mon960)
    521 				basic_machine=i960-intel
    522 				basic_os=mon960
    523 				;;
    524 			nonstopux)
    525 				basic_machine=mips-compaq
    526 				basic_os=nonstopux
    527 				;;
    528 			os400)
    529 				basic_machine=powerpc-ibm
    530 				basic_os=os400
    531 				;;
    532 			OSE68000 | ose68000)
    533 				basic_machine=m68000-ericsson
    534 				basic_os=ose
    535 				;;
    536 			os68k)
    537 				basic_machine=m68k-none
    538 				basic_os=os68k
    539 				;;
    540 			paragon)
    541 				basic_machine=i860-intel
    542 				basic_os=osf
    543 				;;
    544 			parisc)
    545 				basic_machine=hppa-unknown
    546 				basic_os=linux
    547 				;;
    548 			psp)
    549 				basic_machine=mipsallegrexel-sony
    550 				basic_os=psp
    551 				;;
    552 			pw32)
    553 				basic_machine=i586-unknown
    554 				basic_os=pw32
    555 				;;
    556 			rdos | rdos64)
    557 				basic_machine=x86_64-pc
    558 				basic_os=rdos
    559 				;;
    560 			rdos32)
    561 				basic_machine=i386-pc
    562 				basic_os=rdos
    563 				;;
    564 			rom68k)
    565 				basic_machine=m68k-rom68k
    566 				basic_os=coff
    567 				;;
    568 			sa29200)
    569 				basic_machine=a29k-amd
    570 				basic_os=udi
    571 				;;
    572 			sei)
    573 				basic_machine=mips-sei
    574 				basic_os=seiux
    575 				;;
    576 			sequent)
    577 				basic_machine=i386-sequent
    578 				basic_os=
    579 				;;
    580 			sps7)
    581 				basic_machine=m68k-bull
    582 				basic_os=sysv2
    583 				;;
    584 			st2000)
    585 				basic_machine=m68k-tandem
    586 				basic_os=
    587 				;;
    588 			stratus)
    589 				basic_machine=i860-stratus
    590 				basic_os=sysv4
    591 				;;
    592 			sun2)
    593 				basic_machine=m68000-sun
    594 				basic_os=
    595 				;;
    596 			sun2os3)
    597 				basic_machine=m68000-sun
    598 				basic_os=sunos3
    599 				;;
    600 			sun2os4)
    601 				basic_machine=m68000-sun
    602 				basic_os=sunos4
    603 				;;
    604 			sun3)
    605 				basic_machine=m68k-sun
    606 				basic_os=
    607 				;;
    608 			sun3os3)
    609 				basic_machine=m68k-sun
    610 				basic_os=sunos3
    611 				;;
    612 			sun3os4)
    613 				basic_machine=m68k-sun
    614 				basic_os=sunos4
    615 				;;
    616 			sun4)
    617 				basic_machine=sparc-sun
    618 				basic_os=
    619 				;;
    620 			sun4os3)
    621 				basic_machine=sparc-sun
    622 				basic_os=sunos3
    623 				;;
    624 			sun4os4)
    625 				basic_machine=sparc-sun
    626 				basic_os=sunos4
    627 				;;
    628 			sun4sol2)
    629 				basic_machine=sparc-sun
    630 				basic_os=solaris2
    631 				;;
    632 			sun386 | sun386i | roadrunner)
    633 				basic_machine=i386-sun
    634 				basic_os=
    635 				;;
    636 			sv1)
    637 				basic_machine=sv1-cray
    638 				basic_os=unicos
    639 				;;
    640 			symmetry)
    641 				basic_machine=i386-sequent
    642 				basic_os=dynix
    643 				;;
    644 			t3e)
    645 				basic_machine=alphaev5-cray
    646 				basic_os=unicos
    647 				;;
    648 			t90)
    649 				basic_machine=t90-cray
    650 				basic_os=unicos
    651 				;;
    652 			toad1)
    653 				basic_machine=pdp10-xkl
    654 				basic_os=tops20
    655 				;;
    656 			tpf)
    657 				basic_machine=s390x-ibm
    658 				basic_os=tpf
    659 				;;
    660 			udi29k)
    661 				basic_machine=a29k-amd
    662 				basic_os=udi
    663 				;;
    664 			ultra3)
    665 				basic_machine=a29k-nyu
    666 				basic_os=sym1
    667 				;;
    668 			v810 | necv810)
    669 				basic_machine=v810-nec
    670 				basic_os=none
    671 				;;
    672 			vaxv)
    673 				basic_machine=vax-dec
    674 				basic_os=sysv
    675 				;;
    676 			vms)
    677 				basic_machine=vax-dec
    678 				basic_os=vms
    679 				;;
    680 			vsta)
    681 				basic_machine=i386-pc
    682 				basic_os=vsta
    683 				;;
    684 			vxworks960)
    685 				basic_machine=i960-wrs
    686 				basic_os=vxworks
    687 				;;
    688 			vxworks68)
    689 				basic_machine=m68k-wrs
    690 				basic_os=vxworks
    691 				;;
    692 			vxworks29k)
    693 				basic_machine=a29k-wrs
    694 				basic_os=vxworks
    695 				;;
    696 			xbox)
    697 				basic_machine=i686-pc
    698 				basic_os=mingw32
    699 				;;
    700 			ymp)
    701 				basic_machine=ymp-cray
    702 				basic_os=unicos
    703 				;;
    704 			*)
    705 				basic_machine=$1
    706 				basic_os=
    707 				;;
    708 		esac
    709 		;;
    710 esac
    711 
    712 # Decode 1-component or ad-hoc basic machines
    713 case $basic_machine in
    714 	# Here we handle the default manufacturer of certain CPU types.  It is in
    715 	# some cases the only manufacturer, in others, it is the most popular.
    716 	w89k)
    717 		cpu=hppa1.1
    718 		vendor=winbond
    719 		;;
    720 	op50n)
    721 		cpu=hppa1.1
    722 		vendor=oki
    723 		;;
    724 	op60c)
    725 		cpu=hppa1.1
    726 		vendor=oki
    727 		;;
    728 	ibm*)
    729 		cpu=i370
    730 		vendor=ibm
    731 		;;
    732 	orion105)
    733 		cpu=clipper
    734 		vendor=highlevel
    735 		;;
    736 	mac | mpw | mac-mpw)
    737 		cpu=m68k
    738 		vendor=apple
    739 		;;
    740 	pmac | pmac-mpw)
    741 		cpu=powerpc
    742 		vendor=apple
    743 		;;
    744 
    745 	# Recognize the various machine names and aliases which stand
    746 	# for a CPU type and a company and sometimes even an OS.
    747 	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
    748 		cpu=m68000
    749 		vendor=att
    750 		;;
    751 	3b*)
    752 		cpu=we32k
    753 		vendor=att
    754 		;;
    755 	bluegene*)
    756 		cpu=powerpc
    757 		vendor=ibm
    758 		basic_os=cnk
    759 		;;
    760 	decsystem10* | dec10*)
    761 		cpu=pdp10
    762 		vendor=dec
    763 		basic_os=tops10
    764 		;;
    765 	decsystem20* | dec20*)
    766 		cpu=pdp10
    767 		vendor=dec
    768 		basic_os=tops20
    769 		;;
    770 	delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300)
    771 		cpu=m68k
    772 		vendor=motorola
    773 		;;
    774 	# This used to be dpx2*, but that gets the RS6000-based
    775 	# DPX/20 and the x86-based DPX/2-100 wrong.  See
    776 	# https://oldskool.silicium.org/stations/bull_dpx20.htm
    777 	# https://www.feb-patrimoine.com/english/bull_dpx2.htm
    778 	# https://www.feb-patrimoine.com/english/unix_and_bull.htm
    779 	dpx2 | dpx2[23]00 | dpx2[23]xx)
    780 		cpu=m68k
    781 		vendor=bull
    782 		;;
    783 	dpx2100 | dpx21xx)
    784 		cpu=i386
    785 		vendor=bull
    786 		;;
    787 	dpx20)
    788 		cpu=rs6000
    789 		vendor=bull
    790 		;;
    791 	encore | umax | mmax)
    792 		cpu=ns32k
    793 		vendor=encore
    794 		;;
    795 	elxsi)
    796 		cpu=elxsi
    797 		vendor=elxsi
    798 		basic_os=${basic_os:-bsd}
    799 		;;
    800 	fx2800)
    801 		cpu=i860
    802 		vendor=alliant
    803 		;;
    804 	genix)
    805 		cpu=ns32k
    806 		vendor=ns
    807 		;;
    808 	h3050r* | hiux*)
    809 		cpu=hppa1.1
    810 		vendor=hitachi
    811 		basic_os=hiuxwe2
    812 		;;
    813 	hp3k9[0-9][0-9] | hp9[0-9][0-9])
    814 		cpu=hppa1.0
    815 		vendor=hp
    816 		;;
    817 	hp9k2[0-9][0-9] | hp9k31[0-9])
    818 		cpu=m68000
    819 		vendor=hp
    820 		;;
    821 	hp9k3[2-9][0-9])
    822 		cpu=m68k
    823 		vendor=hp
    824 		;;
    825 	hp9k6[0-9][0-9] | hp6[0-9][0-9])
    826 		cpu=hppa1.0
    827 		vendor=hp
    828 		;;
    829 	hp9k7[0-79][0-9] | hp7[0-79][0-9])
    830 		cpu=hppa1.1
    831 		vendor=hp
    832 		;;
    833 	hp9k78[0-9] | hp78[0-9])
    834 		# FIXME: really hppa2.0-hp
    835 		cpu=hppa1.1
    836 		vendor=hp
    837 		;;
    838 	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
    839 		# FIXME: really hppa2.0-hp
    840 		cpu=hppa1.1
    841 		vendor=hp
    842 		;;
    843 	hp9k8[0-9][13679] | hp8[0-9][13679])
    844 		cpu=hppa1.1
    845 		vendor=hp
    846 		;;
    847 	hp9k8[0-9][0-9] | hp8[0-9][0-9])
    848 		cpu=hppa1.0
    849 		vendor=hp
    850 		;;
    851 	i*86v32)
    852 		cpu=`echo "$1" | sed -e 's/86.*/86/'`
    853 		vendor=pc
    854 		basic_os=sysv32
    855 		;;
    856 	i*86v4*)
    857 		cpu=`echo "$1" | sed -e 's/86.*/86/'`
    858 		vendor=pc
    859 		basic_os=sysv4
    860 		;;
    861 	i*86v)
    862 		cpu=`echo "$1" | sed -e 's/86.*/86/'`
    863 		vendor=pc
    864 		basic_os=sysv
    865 		;;
    866 	i*86sol2)
    867 		cpu=`echo "$1" | sed -e 's/86.*/86/'`
    868 		vendor=pc
    869 		basic_os=solaris2
    870 		;;
    871 	j90 | j90-cray)
    872 		cpu=j90
    873 		vendor=cray
    874 		basic_os=${basic_os:-unicos}
    875 		;;
    876 	iris | iris4d)
    877 		cpu=mips
    878 		vendor=sgi
    879 		case $basic_os in
    880 		    irix*)
    881 			;;
    882 		    *)
    883 			basic_os=irix4
    884 			;;
    885 		esac
    886 		;;
    887 	miniframe)
    888 		cpu=m68000
    889 		vendor=convergent
    890 		;;
    891 	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
    892 		cpu=m68k
    893 		vendor=atari
    894 		basic_os=mint
    895 		;;
    896 	news-3600 | risc-news)
    897 		cpu=mips
    898 		vendor=sony
    899 		basic_os=newsos
    900 		;;
    901 	next | m*-next)
    902 		cpu=m68k
    903 		vendor=next
    904 		;;
    905 	np1)
    906 		cpu=np1
    907 		vendor=gould
    908 		;;
    909 	op50n-* | op60c-*)
    910 		cpu=hppa1.1
    911 		vendor=oki
    912 		basic_os=proelf
    913 		;;
    914 	pa-hitachi)
    915 		cpu=hppa1.1
    916 		vendor=hitachi
    917 		basic_os=hiuxwe2
    918 		;;
    919 	pbd)
    920 		cpu=sparc
    921 		vendor=tti
    922 		;;
    923 	pbb)
    924 		cpu=m68k
    925 		vendor=tti
    926 		;;
    927 	pc532)
    928 		cpu=ns32k
    929 		vendor=pc532
    930 		;;
    931 	pn)
    932 		cpu=pn
    933 		vendor=gould
    934 		;;
    935 	power)
    936 		cpu=power
    937 		vendor=ibm
    938 		;;
    939 	ps2)
    940 		cpu=i386
    941 		vendor=ibm
    942 		;;
    943 	rm[46]00)
    944 		cpu=mips
    945 		vendor=siemens
    946 		;;
    947 	rtpc | rtpc-*)
    948 		cpu=romp
    949 		vendor=ibm
    950 		;;
    951 	sde)
    952 		cpu=mipsisa32
    953 		vendor=sde
    954 		basic_os=${basic_os:-elf}
    955 		;;
    956 	simso-wrs)
    957 		cpu=sparclite
    958 		vendor=wrs
    959 		basic_os=vxworks
    960 		;;
    961 	tower | tower-32)
    962 		cpu=m68k
    963 		vendor=ncr
    964 		;;
    965 	vpp*|vx|vx-*)
    966 		cpu=f301
    967 		vendor=fujitsu
    968 		;;
    969 	w65)
    970 		cpu=w65
    971 		vendor=wdc
    972 		;;
    973 	w89k-*)
    974 		cpu=hppa1.1
    975 		vendor=winbond
    976 		basic_os=proelf
    977 		;;
    978 	none)
    979 		cpu=none
    980 		vendor=none
    981 		;;
    982 	leon|leon[3-9])
    983 		cpu=sparc
    984 		vendor=$basic_machine
    985 		;;
    986 	leon-*|leon[3-9]-*)
    987 		cpu=sparc
    988 		vendor=`echo "$basic_machine" | sed 's/-.*//'`
    989 		;;
    990 
    991 	*-*)
    992 		saved_IFS=$IFS
    993 		IFS="-" read cpu vendor <<EOF
    994 $basic_machine
    995 EOF
    996 		IFS=$saved_IFS
    997 		;;
    998 	# We use 'pc' rather than 'unknown'
    999 	# because (1) that's what they normally are, and
   1000 	# (2) the word "unknown" tends to confuse beginning users.
   1001 	i*86 | x86_64)
   1002 		cpu=$basic_machine
   1003 		vendor=pc
   1004 		;;
   1005 	# These rules are duplicated from below for sake of the special case above;
   1006 	# i.e. things that normalized to x86 arches should also default to "pc"
   1007 	pc98)
   1008 		cpu=i386
   1009 		vendor=pc
   1010 		;;
   1011 	x64 | amd64)
   1012 		cpu=x86_64
   1013 		vendor=pc
   1014 		;;
   1015 	# Recognize the basic CPU types without company name.
   1016 	*)
   1017 		cpu=$basic_machine
   1018 		vendor=unknown
   1019 		;;
   1020 esac
   1021 
   1022 unset -v basic_machine
   1023 
   1024 # Decode basic machines in the full and proper CPU-Company form.
   1025 case $cpu-$vendor in
   1026 	# Here we handle the default manufacturer of certain CPU types in canonical form.
   1027 	# It is in some cases the only manufacturer, in others, it is the most popular.
   1028 	c[12]-convex | c[12]-unknown | c3[248]-convex | c3[248]-unknown)
   1029 		vendor=convex
   1030 		basic_os=${basic_os:-bsd}
   1031 		;;
   1032 	craynv-unknown)
   1033 		vendor=cray
   1034 		basic_os=${basic_os:-unicosmp}
   1035 		;;
   1036 	c90-unknown | c90-cray)
   1037 		vendor=cray
   1038 		basic_os=${basic_os:-unicos}
   1039 		;;
   1040 	fx80-unknown)
   1041 		vendor=alliant
   1042 		;;
   1043 	romp-unknown)
   1044 		vendor=ibm
   1045 		;;
   1046 	mmix-unknown)
   1047 		vendor=knuth
   1048 		;;
   1049 	microblaze-unknown | microblazeel-unknown)
   1050 		vendor=xilinx
   1051 		;;
   1052 	rs6000-unknown)
   1053 		vendor=ibm
   1054 		;;
   1055 	vax-unknown)
   1056 		vendor=dec
   1057 		;;
   1058 	pdp11-unknown)
   1059 		vendor=dec
   1060 		;;
   1061 	we32k-unknown)
   1062 		vendor=att
   1063 		;;
   1064 	cydra-unknown)
   1065 		vendor=cydrome
   1066 		;;
   1067 	i370-ibm*)
   1068 		vendor=ibm
   1069 		;;
   1070 	orion-unknown)
   1071 		vendor=highlevel
   1072 		;;
   1073 	xps-unknown | xps100-unknown)
   1074 		cpu=xps100
   1075 		vendor=honeywell
   1076 		;;
   1077 
   1078 	# Here we normalize CPU types with a missing or matching vendor
   1079 	armh-unknown | armh-alt)
   1080 		cpu=armv7l
   1081 		vendor=alt
   1082 		basic_os=${basic_os:-linux-gnueabihf}
   1083 		;;
   1084 
   1085 	# Normalized CPU+vendor pairs that imply an OS, if not otherwise specified
   1086 	m68k-isi)
   1087 		basic_os=${basic_os:-sysv}
   1088 		;;
   1089 	m68k-sony)
   1090 		basic_os=${basic_os:-newsos}
   1091 		;;
   1092 	m68k-tektronix)
   1093 		basic_os=${basic_os:-bsd}
   1094 		;;
   1095 	m88k-harris)
   1096 		basic_os=${basic_os:-sysv3}
   1097 		;;
   1098 	i386-bull | m68k-bull)
   1099 		basic_os=${basic_os:-sysv3}
   1100 		;;
   1101 	rs6000-bull)
   1102 		basic_os=${basic_os:-bosx}
   1103 		;;
   1104 	mips-sni)
   1105 		basic_os=${basic_os:-sysv4}
   1106 		;;
   1107 
   1108 	# Here we normalize CPU types irrespective of the vendor
   1109 	amd64-*)
   1110 		cpu=x86_64
   1111 		;;
   1112 	blackfin-*)
   1113 		cpu=bfin
   1114 		basic_os=${basic_os:-linux}
   1115 		;;
   1116 	c54x-*)
   1117 		cpu=tic54x
   1118 		;;
   1119 	c55x-*)
   1120 		cpu=tic55x
   1121 		;;
   1122 	c6x-*)
   1123 		cpu=tic6x
   1124 		;;
   1125 	e500v[12]-*)
   1126 		cpu=powerpc
   1127 		basic_os=${basic_os}"spe"
   1128 		;;
   1129 	mips3*-*)
   1130 		cpu=mips64
   1131 		;;
   1132 	ms1-*)
   1133 		cpu=mt
   1134 		;;
   1135 	m68knommu-*)
   1136 		cpu=m68k
   1137 		basic_os=${basic_os:-linux}
   1138 		;;
   1139 	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
   1140 		cpu=s12z
   1141 		;;
   1142 	openrisc-*)
   1143 		cpu=or32
   1144 		;;
   1145 	parisc-*)
   1146 		cpu=hppa
   1147 		basic_os=${basic_os:-linux}
   1148 		;;
   1149 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
   1150 		cpu=i586
   1151 		;;
   1152 	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
   1153 		cpu=i686
   1154 		;;
   1155 	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
   1156 		cpu=i686
   1157 		;;
   1158 	pentium4-*)
   1159 		cpu=i786
   1160 		;;
   1161 	ppc-* | ppcbe-*)
   1162 		cpu=powerpc
   1163 		;;
   1164 	ppcle-* | powerpclittle-*)
   1165 		cpu=powerpcle
   1166 		;;
   1167 	ppc64-*)
   1168 		cpu=powerpc64
   1169 		;;
   1170 	ppc64le-* | powerpc64little-*)
   1171 		cpu=powerpc64le
   1172 		;;
   1173 	sb1-*)
   1174 		cpu=mipsisa64sb1
   1175 		;;
   1176 	sb1el-*)
   1177 		cpu=mipsisa64sb1el
   1178 		;;
   1179 	sh5e[lb]-*)
   1180 		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
   1181 		;;
   1182 	spur-*)
   1183 		cpu=spur
   1184 		;;
   1185 	strongarm-* | thumb-*)
   1186 		cpu=arm
   1187 		;;
   1188 	tx39-*)
   1189 		cpu=mipstx39
   1190 		;;
   1191 	tx39el-*)
   1192 		cpu=mipstx39el
   1193 		;;
   1194 	xscale-* | xscalee[bl]-*)
   1195 		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
   1196 		;;
   1197 	arm64-* | aarch64le-* | arm64_32-*)
   1198 		cpu=aarch64
   1199 		;;
   1200 
   1201 	# Recognize the canonical CPU Types that limit and/or modify the
   1202 	# company names they are paired with.
   1203 	cr16-*)
   1204 		basic_os=${basic_os:-elf}
   1205 		;;
   1206 	crisv32-* | etraxfs*-*)
   1207 		cpu=crisv32
   1208 		vendor=axis
   1209 		;;
   1210 	cris-* | etrax*-*)
   1211 		cpu=cris
   1212 		vendor=axis
   1213 		;;
   1214 	crx-*)
   1215 		basic_os=${basic_os:-elf}
   1216 		;;
   1217 	neo-tandem)
   1218 		cpu=neo
   1219 		vendor=tandem
   1220 		;;
   1221 	nse-tandem)
   1222 		cpu=nse
   1223 		vendor=tandem
   1224 		;;
   1225 	nsr-tandem)
   1226 		cpu=nsr
   1227 		vendor=tandem
   1228 		;;
   1229 	nsv-tandem)
   1230 		cpu=nsv
   1231 		vendor=tandem
   1232 		;;
   1233 	nsx-tandem)
   1234 		cpu=nsx
   1235 		vendor=tandem
   1236 		;;
   1237 	mipsallegrexel-sony)
   1238 		cpu=mipsallegrexel
   1239 		vendor=sony
   1240 		;;
   1241 	tile*-*)
   1242 		basic_os=${basic_os:-linux-gnu}
   1243 		;;
   1244 
   1245 	*)
   1246 		# Recognize the canonical CPU types that are allowed with any
   1247 		# company name.
   1248 		case $cpu in
   1249 			  1750a \
   1250 			| 580 \
   1251 			| [cjt]90 \
   1252 			| a29k \
   1253 			| aarch64 \
   1254 			| aarch64_be \
   1255 			| aarch64c \
   1256 			| abacus \
   1257 			| alpha \
   1258 			| alpha64 \
   1259 			| alpha64ev56 \
   1260 			| alpha64ev6[78] \
   1261 			| alpha64ev[4-8] \
   1262 			| alpha64pca5[67] \
   1263 			| alphaev56 \
   1264 			| alphaev6[78] \
   1265 			| alphaev[4-8] \
   1266 			| alphapca5[67] \
   1267 			| am33_2.0 \
   1268 			| amdgcn \
   1269 			| arc \
   1270 			| arc32 \
   1271 			| arc64 \
   1272 			| arceb \
   1273 			| arm \
   1274 			| arm64e \
   1275 			| arm64ec \
   1276 			| arm[lb]e \
   1277 			| arme[lb] \
   1278 			| armv* \
   1279 			| asmjs \
   1280 			| avr \
   1281 			| avr32 \
   1282 			| ba \
   1283 			| be32 \
   1284 			| be64 \
   1285 			| bfin \
   1286 			| bpf \
   1287 			| bs2000 \
   1288 			| c30 \
   1289 			| c4x \
   1290 			| c8051 \
   1291 			| c[123]* \
   1292 			| clipper \
   1293 			| craynv \
   1294 			| csky \
   1295 			| cydra \
   1296 			| d10v \
   1297 			| d30v \
   1298 			| dlx \
   1299 			| dsp16xx \
   1300 			| e2k \
   1301 			| elxsi \
   1302 			| epiphany \
   1303 			| f30[01] \
   1304 			| f700 \
   1305 			| fido \
   1306 			| fr30 \
   1307 			| frv \
   1308 			| ft32 \
   1309 			| fx80 \
   1310 			| h8300 \
   1311 			| h8500 \
   1312 			| hexagon \
   1313 			| hppa \
   1314 			| hppa1.[01] \
   1315 			| hppa2.0 \
   1316 			| hppa2.0[nw] \
   1317 			| hppa64 \
   1318 			| i*86 \
   1319 			| i370 \
   1320 			| i860 \
   1321 			| i960 \
   1322 			| ia16 \
   1323 			| ia64 \
   1324 			| intelgt \
   1325 			| ip2k \
   1326 			| iq2000 \
   1327 			| javascript \
   1328 			| k1om \
   1329 			| kvx \
   1330 			| le32 \
   1331 			| le64 \
   1332 			| lm32 \
   1333 			| loongarch32 \
   1334 			| loongarch64 \
   1335 			| m32c \
   1336 			| m32r \
   1337 			| m32rle \
   1338 			| m5200 \
   1339 			| m68000 \
   1340 			| m680[012346]0 \
   1341 			| m6811 \
   1342 			| m6812 \
   1343 			| m68360 \
   1344 			| m683?2 \
   1345 			| m68hc11 \
   1346 			| m68hc12 \
   1347 			| m68hcs12x \
   1348 			| m68k \
   1349 			| m88110 \
   1350 			| m88k \
   1351 			| maxq \
   1352 			| mb \
   1353 			| mcore \
   1354 			| mep \
   1355 			| metag \
   1356 			| microblaze \
   1357 			| microblazeel \
   1358 			| mips* \
   1359 			| mmix \
   1360 			| mn10200 \
   1361 			| mn10300 \
   1362 			| moxie \
   1363 			| msp430 \
   1364 			| mt \
   1365 			| nanomips* \
   1366 			| nds32 \
   1367 			| nds32be \
   1368 			| nds32le \
   1369 			| nfp \
   1370 			| nios \
   1371 			| nios2 \
   1372 			| nios2eb \
   1373 			| nios2el \
   1374 			| none \
   1375 			| np1 \
   1376 			| ns16k \
   1377 			| ns32k \
   1378 			| nvptx \
   1379 			| open8 \
   1380 			| or1k* \
   1381 			| or32 \
   1382 			| orion \
   1383 			| pdp10 \
   1384 			| pdp11 \
   1385 			| picochip \
   1386 			| pj \
   1387 			| pjl \
   1388 			| pn \
   1389 			| power \
   1390 			| powerpc \
   1391 			| powerpc64 \
   1392 			| powerpc64le \
   1393 			| powerpcle \
   1394 			| powerpcspe \
   1395 			| pru \
   1396 			| pyramid \
   1397 			| riscv \
   1398 			| riscv32 \
   1399 			| riscv32be \
   1400 			| riscv64 \
   1401 			| riscv64be \
   1402 			| rl78 \
   1403 			| romp \
   1404 			| rs6000 \
   1405 			| rx \
   1406 			| s390 \
   1407 			| s390x \
   1408 			| score \
   1409 			| sh \
   1410 			| sh64 \
   1411 			| sh64le \
   1412 			| sh[12345][lb]e \
   1413 			| sh[1234] \
   1414 			| sh[1234]e[lb] \
   1415 			| sh[23]e \
   1416 			| sh[23]ele \
   1417 			| sh[24]a \
   1418 			| sh[24]ae[lb] \
   1419 			| sh[lb]e \
   1420 			| she[lb] \
   1421 			| shl \
   1422 			| sparc \
   1423 			| sparc64 \
   1424 			| sparc64b \
   1425 			| sparc64v \
   1426 			| sparc86x \
   1427 			| sparclet \
   1428 			| sparclite \
   1429 			| sparcv8 \
   1430 			| sparcv9 \
   1431 			| sparcv9b \
   1432 			| sparcv9v \
   1433 			| spu \
   1434 			| sv1 \
   1435 			| sx* \
   1436 			| tahoe \
   1437 			| thumbv7* \
   1438 			| tic30 \
   1439 			| tic4x \
   1440 			| tic54x \
   1441 			| tic55x \
   1442 			| tic6x \
   1443 			| tic80 \
   1444 			| tron \
   1445 			| ubicom32 \
   1446 			| v70 \
   1447 			| v810 \
   1448 			| v850 \
   1449 			| v850e \
   1450 			| v850e1 \
   1451 			| v850e2 \
   1452 			| v850e2v3 \
   1453 			| v850es \
   1454 			| vax \
   1455 			| vc4 \
   1456 			| visium \
   1457 			| w65 \
   1458 			| wasm32 \
   1459 			| wasm64 \
   1460 			| we32k \
   1461 			| x86 \
   1462 			| x86_64 \
   1463 			| xc16x \
   1464 			| xgate \
   1465 			| xps100 \
   1466 			| xstormy16 \
   1467 			| xtensa* \
   1468 			| ymp \
   1469 			| z80 \
   1470 			| z8k)
   1471 				;;
   1472 
   1473 			*)
   1474 				echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
   1475 				exit 1
   1476 				;;
   1477 		esac
   1478 		;;
   1479 esac
   1480 
   1481 # Here we canonicalize certain aliases for manufacturers.
   1482 case $vendor in
   1483 	digital*)
   1484 		vendor=dec
   1485 		;;
   1486 	commodore*)
   1487 		vendor=cbm
   1488 		;;
   1489 	*)
   1490 		;;
   1491 esac
   1492 
   1493 # Decode manufacturer-specific aliases for certain operating systems.
   1494 
   1495 if test x"$basic_os" != x
   1496 then
   1497 
   1498 # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
   1499 # set os.
   1500 obj=
   1501 case $basic_os in
   1502 	gnu/linux*)
   1503 		kernel=linux
   1504 		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
   1505 		;;
   1506 	os2-emx)
   1507 		kernel=os2
   1508 		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
   1509 		;;
   1510 	nto-qnx*)
   1511 		kernel=nto
   1512 		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
   1513 		;;
   1514 	*-*)
   1515 		saved_IFS=$IFS
   1516 		IFS="-" read kernel os <<EOF
   1517 $basic_os
   1518 EOF
   1519 		IFS=$saved_IFS
   1520 		;;
   1521 	# Default OS when just kernel was specified
   1522 	nto*)
   1523 		kernel=nto
   1524 		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
   1525 		;;
   1526 	ironclad*)
   1527 		kernel=ironclad
   1528 		os=`echo "$basic_os" | sed -e 's|ironclad|mlibc|'`
   1529 		;;
   1530 	linux*)
   1531 		kernel=linux
   1532 		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
   1533 		;;
   1534 	managarm*)
   1535 		kernel=managarm
   1536 		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
   1537 		;;
   1538 	*)
   1539 		kernel=
   1540 		os=$basic_os
   1541 		;;
   1542 esac
   1543 
   1544 # Now, normalize the OS (knowing we just have one component, it's not a kernel,
   1545 # etc.)
   1546 case $os in
   1547 	# First match some system type aliases that might get confused
   1548 	# with valid system types.
   1549 	# solaris* is a basic system type, with this one exception.
   1550 	auroraux)
   1551 		os=auroraux
   1552 		;;
   1553 	bluegene*)
   1554 		os=cnk
   1555 		;;
   1556 	solaris1 | solaris1.*)
   1557 		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
   1558 		;;
   1559 	solaris)
   1560 		os=solaris2
   1561 		;;
   1562 	unixware*)
   1563 		os=sysv4.2uw
   1564 		;;
   1565 	# The marketing names for NeXT's operating systems were
   1566 	# NeXTSTEP, NeXTSTEP 2, OpenSTEP 3, OpenSTEP 4.  'openstep' is
   1567 	# mapped to 'openstep3', but 'openstep1' and 'openstep2' are
   1568 	# mapped to 'nextstep' and 'nextstep2', consistent with the
   1569 	# treatment of SunOS/Solaris.
   1570 	ns | ns1 | nextstep | nextstep1 | openstep1)
   1571 		os=nextstep
   1572 		;;
   1573 	ns2 | nextstep2 | openstep2)
   1574 		os=nextstep2
   1575 		;;
   1576 	ns3 | nextstep3 | openstep | openstep3)
   1577 		os=openstep3
   1578 		;;
   1579 	ns4 | nextstep4 | openstep4)
   1580 		os=openstep4
   1581 		;;
   1582 	# es1800 is here to avoid being matched by es* (a different OS)
   1583 	es1800*)
   1584 		os=ose
   1585 		;;
   1586 	# Some version numbers need modification
   1587 	chorusos*)
   1588 		os=chorusos
   1589 		;;
   1590 	isc)
   1591 		os=isc2.2
   1592 		;;
   1593 	sco6)
   1594 		os=sco5v6
   1595 		;;
   1596 	sco5)
   1597 		os=sco3.2v5
   1598 		;;
   1599 	sco4)
   1600 		os=sco3.2v4
   1601 		;;
   1602 	sco3.2.[4-9]*)
   1603 		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
   1604 		;;
   1605 	sco*v* | scout)
   1606 		# Don't match below
   1607 		;;
   1608 	sco*)
   1609 		os=sco3.2v2
   1610 		;;
   1611 	psos*)
   1612 		os=psos
   1613 		;;
   1614 	qnx*)
   1615 		os=qnx
   1616 		;;
   1617 	hiux*)
   1618 		os=hiuxwe2
   1619 		;;
   1620 	lynx*178)
   1621 		os=lynxos178
   1622 		;;
   1623 	lynx*5)
   1624 		os=lynxos5
   1625 		;;
   1626 	lynxos*)
   1627 		# don't get caught up in next wildcard
   1628 		;;
   1629 	lynx*)
   1630 		os=lynxos
   1631 		;;
   1632 	mac[0-9]*)
   1633 		os=`echo "$os" | sed -e 's|mac|macos|'`
   1634 		;;
   1635 	opened*)
   1636 		os=openedition
   1637 		;;
   1638 	os400*)
   1639 		os=os400
   1640 		;;
   1641 	sunos5*)
   1642 		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
   1643 		;;
   1644 	sunos6*)
   1645 		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
   1646 		;;
   1647 	wince*)
   1648 		os=wince
   1649 		;;
   1650 	utek*)
   1651 		os=bsd
   1652 		vendor=`echo "$vendor" | sed -e 's|^unknown$|tektronix|'`
   1653 		;;
   1654 	dynix*)
   1655 		os=bsd
   1656 		;;
   1657 	acis*)
   1658 		os=aos
   1659 		;;
   1660 	atheos*)
   1661 		os=atheos
   1662 		;;
   1663 	syllable*)
   1664 		os=syllable
   1665 		;;
   1666 	386bsd)
   1667 		os=bsd
   1668 		;;
   1669 	ctix*)
   1670 		os=sysv
   1671 		vendor=`echo "$vendor" | sed -e 's|^unknown$|convergent|'`
   1672 		;;
   1673 	uts*)
   1674 		os=sysv
   1675 		;;
   1676 	nova*)
   1677 		kernel=rtmk
   1678 		os=nova
   1679 		;;
   1680 	# Preserve the version number of sinix5.
   1681 	sinix5.*)
   1682 		os=`echo "$os" | sed -e 's|sinix|sysv|'`
   1683 		vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
   1684 		;;
   1685 	sinix*)
   1686 		os=sysv4
   1687 		vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
   1688 		;;
   1689 	tpf*)
   1690 		os=tpf
   1691 		;;
   1692 	triton*)
   1693 		os=sysv3
   1694 		;;
   1695 	oss*)
   1696 		os=sysv3
   1697 		;;
   1698 	svr4*)
   1699 		os=sysv4
   1700 		;;
   1701 	svr3)
   1702 		os=sysv3
   1703 		;;
   1704 	sysvr4)
   1705 		os=sysv4
   1706 		;;
   1707 	ose*)
   1708 		os=ose
   1709 		;;
   1710 	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
   1711 		os=mint
   1712 		;;
   1713 	dicos*)
   1714 		os=dicos
   1715 		;;
   1716 	pikeos*)
   1717 		# Until real need of OS specific support for
   1718 		# particular features comes up, bare metal
   1719 		# configurations are quite functional.
   1720 		case $cpu in
   1721 		    arm*)
   1722 			os=eabi
   1723 			;;
   1724 		    *)
   1725 			os=
   1726 			obj=elf
   1727 			;;
   1728 		esac
   1729 		;;
   1730 	aout* | coff* | elf* | pe*)
   1731 		# These are machine code file formats, not OSes
   1732 		obj=$os
   1733 		os=
   1734 		;;
   1735 	*)
   1736 		# No normalization, but not necessarily accepted, that comes below.
   1737 		;;
   1738 esac
   1739 
   1740 else
   1741 
   1742 # Here we handle the default operating systems that come with various machines.
   1743 # The value should be what the vendor currently ships out the door with their
   1744 # machine or put another way, the most popular os provided with the machine.
   1745 
   1746 # Note that if you're going to try to match "-MANUFACTURER" here (say,
   1747 # "-sun"), then you have to tell the case statement up towards the top
   1748 # that MANUFACTURER isn't an operating system.  Otherwise, code above
   1749 # will signal an error saying that MANUFACTURER isn't an operating
   1750 # system, and we'll never get to this point.
   1751 
   1752 kernel=
   1753 obj=
   1754 case $cpu-$vendor in
   1755 	score-*)
   1756 		os=
   1757 		obj=elf
   1758 		;;
   1759 	spu-*)
   1760 		os=
   1761 		obj=elf
   1762 		;;
   1763 	*-acorn)
   1764 		os=riscix1.2
   1765 		;;
   1766 	arm*-rebel)
   1767 		kernel=linux
   1768 		os=gnu
   1769 		;;
   1770 	arm*-semi)
   1771 		os=
   1772 		obj=aout
   1773 		;;
   1774 	c4x-* | tic4x-*)
   1775 		os=
   1776 		obj=coff
   1777 		;;
   1778 	c8051-*)
   1779 		os=
   1780 		obj=elf
   1781 		;;
   1782 	clipper-intergraph)
   1783 		os=clix
   1784 		;;
   1785 	hexagon-*)
   1786 		os=
   1787 		obj=elf
   1788 		;;
   1789 	tic54x-*)
   1790 		os=
   1791 		obj=coff
   1792 		;;
   1793 	tic55x-*)
   1794 		os=
   1795 		obj=coff
   1796 		;;
   1797 	tic6x-*)
   1798 		os=
   1799 		obj=coff
   1800 		;;
   1801 	# This must come before the *-dec entry.
   1802 	pdp10-*)
   1803 		os=tops20
   1804 		;;
   1805 	pdp11-*)
   1806 		os=none
   1807 		;;
   1808 	*-dec | vax-*)
   1809 		os=ultrix4.2
   1810 		;;
   1811 	m68*-apollo)
   1812 		os=domain
   1813 		;;
   1814 	i386-sun)
   1815 		os=sunos4.0.2
   1816 		;;
   1817 	m68000-sun)
   1818 		os=sunos3
   1819 		;;
   1820 	m68*-cisco)
   1821 		os=
   1822 		obj=aout
   1823 		;;
   1824 	mep-*)
   1825 		os=
   1826 		obj=elf
   1827 		;;
   1828 	# The -sgi and -siemens entries must be before the mips- entry
   1829 	# or we get the wrong os.
   1830 	*-sgi)
   1831 		os=irix
   1832 		;;
   1833 	*-siemens)
   1834 		os=sysv4
   1835 		;;
   1836 	mips*-cisco)
   1837 		os=
   1838 		obj=elf
   1839 		;;
   1840 	mips*-*|nanomips*-*)
   1841 		os=
   1842 		obj=elf
   1843 		;;
   1844 	or32-*)
   1845 		os=
   1846 		obj=coff
   1847 		;;
   1848 	# This must be before the sparc-* entry or we get the wrong os.
   1849 	*-tti)
   1850 		os=sysv3
   1851 		;;
   1852 	sparc-* | *-sun)
   1853 		os=sunos4.1.1
   1854 		;;
   1855 	pru-*)
   1856 		os=
   1857 		obj=elf
   1858 		;;
   1859 	*-be)
   1860 		os=beos
   1861 		;;
   1862 	*-ibm)
   1863 		os=aix
   1864 		;;
   1865 	*-knuth)
   1866 		os=mmixware
   1867 		;;
   1868 	*-wec)
   1869 		os=proelf
   1870 		;;
   1871 	*-winbond)
   1872 		os=proelf
   1873 		;;
   1874 	*-oki)
   1875 		os=proelf
   1876 		;;
   1877 	*-hp)
   1878 		os=hpux
   1879 		;;
   1880 	*-hitachi)
   1881 		os=hiuxwe2
   1882 		;;
   1883 	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
   1884 		os=sysv
   1885 		;;
   1886 	*-cbm)
   1887 		os=amigaos
   1888 		;;
   1889 	*-dg)
   1890 		os=dgux
   1891 		;;
   1892 	*-dolphin)
   1893 		os=sysv3
   1894 		;;
   1895 	m68k-ccur)
   1896 		os=rtu
   1897 		;;
   1898 	m88k-omron*)
   1899 		os=luna
   1900 		;;
   1901 	*-next)
   1902 		os=nextstep
   1903 		;;
   1904 	*-sequent)
   1905 		os=ptx
   1906 		;;
   1907 	*-crds)
   1908 		os=unos
   1909 		;;
   1910 	*-ns)
   1911 		os=genix
   1912 		;;
   1913 	i370-*)
   1914 		os=mvs
   1915 		;;
   1916 	*-gould)
   1917 		os=sysv
   1918 		;;
   1919 	*-highlevel)
   1920 		os=bsd
   1921 		;;
   1922 	*-encore)
   1923 		os=bsd
   1924 		;;
   1925 	*-masscomp)
   1926 		os=rtu
   1927 		;;
   1928 	f30[01]-fujitsu | f700-fujitsu)
   1929 		os=uxpv
   1930 		;;
   1931 	*-rom68k)
   1932 		os=
   1933 		obj=coff
   1934 		;;
   1935 	*-*bug)
   1936 		os=
   1937 		obj=coff
   1938 		;;
   1939 	*-apple)
   1940 		os=macos
   1941 		;;
   1942 	*-atari*)
   1943 		os=mint
   1944 		;;
   1945 	*-wrs)
   1946 		os=vxworks
   1947 		;;
   1948 	*)
   1949 		os=none
   1950 		;;
   1951 esac
   1952 
   1953 fi
   1954 
   1955 # Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
   1956 
   1957 case $os in
   1958 	# Sometimes we do "kernel-libc", so those need to count as OSes.
   1959 	llvm* | musl* | newlib* | relibc* | uclibc*)
   1960 		;;
   1961 	# Likewise for "kernel-abi"
   1962 	eabi* | gnueabi*)
   1963 		;;
   1964 	# VxWorks passes extra cpu info in the 4th filed.
   1965 	simlinux | simwindows | spe)
   1966 		;;
   1967 	# See `case $cpu-$os` validation below
   1968 	ghcjs)
   1969 		;;
   1970 	# Now accept the basic system types.
   1971 	# Each alternative MUST end in a * to match a version number.
   1972 	  abug \
   1973 	| aix* \
   1974 	| amdhsa* \
   1975 	| amigados* \
   1976 	| amigaos* \
   1977 	| android* \
   1978 	| aof* \
   1979 	| aos* \
   1980 	| aros* \
   1981 	| atheos* \
   1982 	| auroraux* \
   1983 	| aux* \
   1984 	| banan_os* \
   1985 	| beos* \
   1986 	| bitrig* \
   1987 	| bme* \
   1988 	| bosx* \
   1989 	| bsd* \
   1990 	| cegcc* \
   1991 	| chorusos* \
   1992 	| chorusrdb* \
   1993 	| clix* \
   1994 	| cloudabi* \
   1995 	| cnk* \
   1996 	| conix* \
   1997 	| cos* \
   1998 	| cxux* \
   1999 	| cygwin* \
   2000 	| darwin* \
   2001 	| dgux* \
   2002 	| dicos* \
   2003 	| dnix* \
   2004 	| domain* \
   2005 	| dragonfly* \
   2006 	| drops* \
   2007 	| ebmon* \
   2008 	| ecoff* \
   2009 	| ekkobsd* \
   2010 	| emscripten* \
   2011 	| emx* \
   2012 	| es* \
   2013 	| fiwix* \
   2014 	| freebsd* \
   2015 	| fuchsia* \
   2016 	| genix* \
   2017 	| genode* \
   2018 	| glidix* \
   2019 	| gnu* \
   2020 	| go32* \
   2021 	| haiku* \
   2022 	| hcos* \
   2023 	| hiux* \
   2024 	| hms* \
   2025 	| hpux* \
   2026 	| ieee* \
   2027 	| interix* \
   2028 	| ios* \
   2029 	| iris* \
   2030 	| irix* \
   2031 	| isc* \
   2032 	| its* \
   2033 	| l4re* \
   2034 	| libertybsd* \
   2035 	| lites* \
   2036 	| lnews* \
   2037 	| luna* \
   2038 	| lynxos* \
   2039 	| mach* \
   2040 	| macos* \
   2041 	| magic* \
   2042 	| mbr* \
   2043 	| midipix* \
   2044 	| midnightbsd* \
   2045 	| mingw32* \
   2046 	| mingw64* \
   2047 	| minix* \
   2048 	| mint* \
   2049 	| mirbsd* \
   2050 	| mks* \
   2051 	| mlibc* \
   2052 	| mmixware* \
   2053 	| mon960* \
   2054 	| morphos* \
   2055 	| moss* \
   2056 	| moxiebox* \
   2057 	| mpeix* \
   2058 	| mpw* \
   2059 	| msdos* \
   2060 	| msys* \
   2061 	| mvs* \
   2062 	| nacl* \
   2063 	| netbsd* \
   2064 	| netware* \
   2065 	| newsos* \
   2066 	| nextstep* \
   2067 	| nindy* \
   2068 	| nonstopux* \
   2069 	| nova* \
   2070 	| nsk* \
   2071 	| nucleus* \
   2072 	| nx6 \
   2073 	| nx7 \
   2074 	| oabi* \
   2075 	| ohos* \
   2076 	| onefs* \
   2077 	| openbsd* \
   2078 	| openedition* \
   2079 	| openstep* \
   2080 	| os108* \
   2081 	| os2* \
   2082 	| os400* \
   2083 	| os68k* \
   2084 	| os9* \
   2085 	| ose* \
   2086 	| osf* \
   2087 	| oskit* \
   2088 	| osx* \
   2089 	| palmos* \
   2090 	| phoenix* \
   2091 	| plan9* \
   2092 	| powermax* \
   2093 	| powerunix* \
   2094 	| proelf* \
   2095 	| psos* \
   2096 	| psp* \
   2097 	| ptx* \
   2098 	| pw32* \
   2099 	| qnx* \
   2100 	| rdos* \
   2101 	| redox* \
   2102 	| rhapsody* \
   2103 	| riscix* \
   2104 	| riscos* \
   2105 	| rtems* \
   2106 	| rtmk* \
   2107 	| rtu* \
   2108 	| scout* \
   2109 	| secbsd* \
   2110 	| sei* \
   2111 	| serenity* \
   2112 	| sim* \
   2113 	| skyos* \
   2114 	| solaris* \
   2115 	| solidbsd* \
   2116 	| sortix* \
   2117 	| storm-chaos* \
   2118 	| sunos \
   2119 	| sunos[34]* \
   2120 	| superux* \
   2121 	| syllable* \
   2122 	| sym* \
   2123 	| sysv* \
   2124 	| tenex* \
   2125 	| tirtos* \
   2126 	| tock* \
   2127 	| toppers* \
   2128 	| tops10* \
   2129 	| tops20* \
   2130 	| tpf* \
   2131 	| tvos* \
   2132 	| twizzler* \
   2133 	| uclinux* \
   2134 	| udi* \
   2135 	| udk* \
   2136 	| ultrix* \
   2137 	| unicos* \
   2138 	| uniplus* \
   2139 	| unleashed* \
   2140 	| unos* \
   2141 	| uwin* \
   2142 	| uxpv* \
   2143 	| v88r* \
   2144 	|*vms* \
   2145 	| vos* \
   2146 	| vsta* \
   2147 	| vxsim* \
   2148 	| vxworks* \
   2149 	| wasi* \
   2150 	| watchos* \
   2151 	| wince* \
   2152 	| windiss* \
   2153 	| windows* \
   2154 	| winnt* \
   2155 	| xenix* \
   2156 	| xray* \
   2157 	| zephyr* \
   2158 	| zvmoe* )
   2159 		;;
   2160 	# This one is extra strict with allowed versions
   2161 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
   2162 		# Don't forget version if it is 3.2v4 or newer.
   2163 		;;
   2164 	# This refers to builds using the UEFI calling convention
   2165 	# (which depends on the architecture) and PE file format.
   2166 	# Note that this is both a different calling convention and
   2167 	# different file format than that of GNU-EFI
   2168 	# (x86_64-w64-mingw32).
   2169 	uefi)
   2170 		;;
   2171 	none)
   2172 		;;
   2173 	kernel* | msvc* )
   2174 		# Restricted further below
   2175 		;;
   2176 	'')
   2177 		if test x"$obj" = x
   2178 		then
   2179 			echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
   2180 		fi
   2181 		;;
   2182 	*)
   2183 		echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
   2184 		exit 1
   2185 		;;
   2186 esac
   2187 
   2188 case $obj in
   2189 	aout* | coff* | elf* | pe*)
   2190 		;;
   2191 	'')
   2192 		# empty is fine
   2193 		;;
   2194 	*)
   2195 		echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
   2196 		exit 1
   2197 		;;
   2198 esac
   2199 
   2200 # Here we handle the constraint that a (synthetic) cpu and os are
   2201 # valid only in combination with each other and nowhere else.
   2202 case $cpu-$os in
   2203 	# The "javascript-unknown-ghcjs" triple is used by GHC; we
   2204 	# accept it here in order to tolerate that, but reject any
   2205 	# variations.
   2206 	javascript-ghcjs)
   2207 		;;
   2208 	javascript-* | *-ghcjs)
   2209 		echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
   2210 		exit 1
   2211 		;;
   2212 esac
   2213 
   2214 # As a final step for OS-related things, validate the OS-kernel combination
   2215 # (given a valid OS), if there is a kernel.
   2216 case $kernel-$os-$obj in
   2217 	linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
   2218 		    | linux-mlibc*- | linux-musl*- | linux-newlib*- \
   2219 		    | linux-relibc*- | linux-uclibc*- | linux-ohos*- )
   2220 		;;
   2221 	uclinux-uclibc*- | uclinux-gnu*- )
   2222 		;;
   2223 	ironclad-mlibc*-)
   2224 		;;
   2225 	managarm-mlibc*- | managarm-kernel*- )
   2226 		;;
   2227 	windows*-msvc*-)
   2228 		;;
   2229 	-dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
   2230 		    | -uclibc*- )
   2231 		# These are just libc implementations, not actual OSes, and thus
   2232 		# require a kernel.
   2233 		echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
   2234 		exit 1
   2235 		;;
   2236 	-kernel*- )
   2237 		echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
   2238 		exit 1
   2239 		;;
   2240 	*-kernel*- )
   2241 		echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
   2242 		exit 1
   2243 		;;
   2244 	*-msvc*- )
   2245 		echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
   2246 		exit 1
   2247 		;;
   2248 	kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-)
   2249 		;;
   2250 	vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
   2251 		;;
   2252 	nto-qnx*-)
   2253 		;;
   2254 	os2-emx-)
   2255 		;;
   2256 	rtmk-nova-)
   2257 		;;
   2258 	*-eabi*- | *-gnueabi*-)
   2259 		;;
   2260 	ios*-simulator- | tvos*-simulator- | watchos*-simulator- )
   2261 		;;
   2262 	none--*)
   2263 		# None (no kernel, i.e. freestanding / bare metal),
   2264 		# can be paired with an machine code file format
   2265 		;;
   2266 	-*-)
   2267 		# Blank kernel with real OS is always fine.
   2268 		;;
   2269 	--*)
   2270 		# Blank kernel and OS with real machine code file format is always fine.
   2271 		;;
   2272 	*-*-*)
   2273 		echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
   2274 		exit 1
   2275 		;;
   2276 esac
   2277 
   2278 # Here we handle the case where we know the os, and the CPU type, but not the
   2279 # manufacturer.  We pick the logical manufacturer.
   2280 case $vendor in
   2281 	unknown)
   2282 		case $cpu-$os in
   2283 			*-riscix*)
   2284 				vendor=acorn
   2285 				;;
   2286 			*-sunos* | *-solaris*)
   2287 				vendor=sun
   2288 				;;
   2289 			*-cnk* | *-aix*)
   2290 				vendor=ibm
   2291 				;;
   2292 			*-beos*)
   2293 				vendor=be
   2294 				;;
   2295 			*-hpux*)
   2296 				vendor=hp
   2297 				;;
   2298 			*-mpeix*)
   2299 				vendor=hp
   2300 				;;
   2301 			*-hiux*)
   2302 				vendor=hitachi
   2303 				;;
   2304 			*-unos*)
   2305 				vendor=crds
   2306 				;;
   2307 			*-dgux*)
   2308 				vendor=dg
   2309 				;;
   2310 			*-luna*)
   2311 				vendor=omron
   2312 				;;
   2313 			*-genix*)
   2314 				vendor=ns
   2315 				;;
   2316 			*-clix*)
   2317 				vendor=intergraph
   2318 				;;
   2319 			*-mvs* | *-opened*)
   2320 				vendor=ibm
   2321 				;;
   2322 			*-os400*)
   2323 				vendor=ibm
   2324 				;;
   2325 			s390-* | s390x-*)
   2326 				vendor=ibm
   2327 				;;
   2328 			*-ptx*)
   2329 				vendor=sequent
   2330 				;;
   2331 			*-tpf*)
   2332 				vendor=ibm
   2333 				;;
   2334 			*-vxsim* | *-vxworks* | *-windiss*)
   2335 				vendor=wrs
   2336 				;;
   2337 			*-aux*)
   2338 				vendor=apple
   2339 				;;
   2340 			*-hms*)
   2341 				vendor=hitachi
   2342 				;;
   2343 			*-mpw* | *-macos*)
   2344 				vendor=apple
   2345 				;;
   2346 			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
   2347 				vendor=atari
   2348 				;;
   2349 			*-vos*)
   2350 				vendor=stratus
   2351 				;;
   2352 		esac
   2353 		;;
   2354 esac
   2355 
   2356 echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
   2357 exit
   2358 
   2359 # Local variables:
   2360 # eval: (add-hook 'before-save-hook 'time-stamp nil t)
   2361 # time-stamp-start: "timestamp='"
   2362 # time-stamp-format: "%Y-%02m-%02d"
   2363 # time-stamp-end: "'"
   2364 # End: