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