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