"Fossies" - the Fresh Open Source Software Archive

Member "littleutils-1.2.5/autoconf/config.sub" (29 Oct 2021, 35276 Bytes) of package /linux/privat/littleutils-1.2.5.tar.lz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Bash source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "config.sub": 1.2.4_vs_1.2.5.

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