~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to build-aux/config.sub

Update README.solaris.

Show diffs side-by-side

added added

removed removed

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