pf2 0.7.1 → 0.9.0

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