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