"Fossies" - the Fresh Open Source Software Archive

Member "tcpdump-4.99.1/./config.sub" (7 Jun 2021, 34424 Bytes) of package /linux/misc/tcpdump-4.99.1.tar.gz:


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": 4.99.0_vs_4.99.1.

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