pf2 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -2
  3. data/Cargo.lock +650 -0
  4. data/Cargo.toml +3 -0
  5. data/README.md +110 -13
  6. data/Rakefile +8 -0
  7. data/crates/backtrace-sys2/.gitignore +1 -0
  8. data/crates/backtrace-sys2/Cargo.toml +9 -0
  9. data/crates/backtrace-sys2/build.rs +48 -0
  10. data/crates/backtrace-sys2/src/lib.rs +5 -0
  11. data/crates/backtrace-sys2/src/libbacktrace/.gitignore +15 -0
  12. data/crates/backtrace-sys2/src/libbacktrace/Isaac.Newton-Opticks.txt +9286 -0
  13. data/crates/backtrace-sys2/src/libbacktrace/LICENSE +29 -0
  14. data/crates/backtrace-sys2/src/libbacktrace/Makefile.am +623 -0
  15. data/crates/backtrace-sys2/src/libbacktrace/Makefile.in +2666 -0
  16. data/crates/backtrace-sys2/src/libbacktrace/README.md +36 -0
  17. data/crates/backtrace-sys2/src/libbacktrace/aclocal.m4 +864 -0
  18. data/crates/backtrace-sys2/src/libbacktrace/alloc.c +167 -0
  19. data/crates/backtrace-sys2/src/libbacktrace/allocfail.c +136 -0
  20. data/crates/backtrace-sys2/src/libbacktrace/allocfail.sh +104 -0
  21. data/crates/backtrace-sys2/src/libbacktrace/atomic.c +113 -0
  22. data/crates/backtrace-sys2/src/libbacktrace/backtrace-supported.h.in +66 -0
  23. data/crates/backtrace-sys2/src/libbacktrace/backtrace.c +129 -0
  24. data/crates/backtrace-sys2/src/libbacktrace/backtrace.h +189 -0
  25. data/crates/backtrace-sys2/src/libbacktrace/btest.c +501 -0
  26. data/crates/backtrace-sys2/src/libbacktrace/compile +348 -0
  27. data/crates/backtrace-sys2/src/libbacktrace/config/enable.m4 +38 -0
  28. data/crates/backtrace-sys2/src/libbacktrace/config/lead-dot.m4 +31 -0
  29. data/crates/backtrace-sys2/src/libbacktrace/config/libtool.m4 +7436 -0
  30. data/crates/backtrace-sys2/src/libbacktrace/config/ltoptions.m4 +369 -0
  31. data/crates/backtrace-sys2/src/libbacktrace/config/ltsugar.m4 +123 -0
  32. data/crates/backtrace-sys2/src/libbacktrace/config/ltversion.m4 +23 -0
  33. data/crates/backtrace-sys2/src/libbacktrace/config/lt~obsolete.m4 +98 -0
  34. data/crates/backtrace-sys2/src/libbacktrace/config/multi.m4 +68 -0
  35. data/crates/backtrace-sys2/src/libbacktrace/config/override.m4 +117 -0
  36. data/crates/backtrace-sys2/src/libbacktrace/config/unwind_ipinfo.m4 +37 -0
  37. data/crates/backtrace-sys2/src/libbacktrace/config/warnings.m4 +227 -0
  38. data/crates/backtrace-sys2/src/libbacktrace/config.guess +1700 -0
  39. data/crates/backtrace-sys2/src/libbacktrace/config.h.in +182 -0
  40. data/crates/backtrace-sys2/src/libbacktrace/config.sub +1885 -0
  41. data/crates/backtrace-sys2/src/libbacktrace/configure +15740 -0
  42. data/crates/backtrace-sys2/src/libbacktrace/configure.ac +613 -0
  43. data/crates/backtrace-sys2/src/libbacktrace/dwarf.c +4402 -0
  44. data/crates/backtrace-sys2/src/libbacktrace/edtest.c +120 -0
  45. data/crates/backtrace-sys2/src/libbacktrace/edtest2.c +43 -0
  46. data/crates/backtrace-sys2/src/libbacktrace/elf.c +7443 -0
  47. data/crates/backtrace-sys2/src/libbacktrace/fileline.c +407 -0
  48. data/crates/backtrace-sys2/src/libbacktrace/filenames.h +52 -0
  49. data/crates/backtrace-sys2/src/libbacktrace/filetype.awk +13 -0
  50. data/crates/backtrace-sys2/src/libbacktrace/install-debuginfo-for-buildid.sh.in +65 -0
  51. data/crates/backtrace-sys2/src/libbacktrace/install-sh +501 -0
  52. data/crates/backtrace-sys2/src/libbacktrace/instrumented_alloc.c +114 -0
  53. data/crates/backtrace-sys2/src/libbacktrace/internal.h +389 -0
  54. data/crates/backtrace-sys2/src/libbacktrace/libtool.m4 +7436 -0
  55. data/crates/backtrace-sys2/src/libbacktrace/ltmain.sh +8636 -0
  56. data/crates/backtrace-sys2/src/libbacktrace/ltoptions.m4 +369 -0
  57. data/crates/backtrace-sys2/src/libbacktrace/ltsugar.m4 +123 -0
  58. data/crates/backtrace-sys2/src/libbacktrace/ltversion.m4 +23 -0
  59. data/crates/backtrace-sys2/src/libbacktrace/lt~obsolete.m4 +98 -0
  60. data/crates/backtrace-sys2/src/libbacktrace/macho.c +1355 -0
  61. data/crates/backtrace-sys2/src/libbacktrace/missing +215 -0
  62. data/crates/backtrace-sys2/src/libbacktrace/mmap.c +331 -0
  63. data/crates/backtrace-sys2/src/libbacktrace/mmapio.c +110 -0
  64. data/crates/backtrace-sys2/src/libbacktrace/move-if-change +83 -0
  65. data/crates/backtrace-sys2/src/libbacktrace/mtest.c +410 -0
  66. data/crates/backtrace-sys2/src/libbacktrace/nounwind.c +66 -0
  67. data/crates/backtrace-sys2/src/libbacktrace/pecoff.c +957 -0
  68. data/crates/backtrace-sys2/src/libbacktrace/posix.c +104 -0
  69. data/crates/backtrace-sys2/src/libbacktrace/print.c +92 -0
  70. data/crates/backtrace-sys2/src/libbacktrace/read.c +110 -0
  71. data/crates/backtrace-sys2/src/libbacktrace/simple.c +108 -0
  72. data/crates/backtrace-sys2/src/libbacktrace/sort.c +108 -0
  73. data/crates/backtrace-sys2/src/libbacktrace/state.c +72 -0
  74. data/crates/backtrace-sys2/src/libbacktrace/stest.c +137 -0
  75. data/crates/backtrace-sys2/src/libbacktrace/test-driver +148 -0
  76. data/crates/backtrace-sys2/src/libbacktrace/test_format.c +55 -0
  77. data/crates/backtrace-sys2/src/libbacktrace/testlib.c +234 -0
  78. data/crates/backtrace-sys2/src/libbacktrace/testlib.h +110 -0
  79. data/crates/backtrace-sys2/src/libbacktrace/ttest.c +161 -0
  80. data/crates/backtrace-sys2/src/libbacktrace/unittest.c +92 -0
  81. data/crates/backtrace-sys2/src/libbacktrace/unknown.c +65 -0
  82. data/crates/backtrace-sys2/src/libbacktrace/xcoff.c +1606 -0
  83. data/crates/backtrace-sys2/src/libbacktrace/xztest.c +508 -0
  84. data/crates/backtrace-sys2/src/libbacktrace/zstdtest.c +523 -0
  85. data/crates/backtrace-sys2/src/libbacktrace/ztest.c +541 -0
  86. data/ext/pf2/Cargo.toml +25 -0
  87. data/ext/pf2/build.rs +3 -0
  88. data/ext/pf2/extconf.rb +6 -1
  89. data/ext/pf2/src/backtrace.rs +126 -0
  90. data/ext/pf2/src/lib.rs +15 -0
  91. data/ext/pf2/src/profile.rs +65 -0
  92. data/ext/pf2/src/profile_serializer.rs +204 -0
  93. data/ext/pf2/src/ringbuffer.rs +152 -0
  94. data/ext/pf2/src/ruby_init.rs +74 -0
  95. data/ext/pf2/src/sample.rs +66 -0
  96. data/ext/pf2/src/siginfo_t.c +5 -0
  97. data/ext/pf2/src/signal_scheduler/configuration.rs +31 -0
  98. data/ext/pf2/src/signal_scheduler/timer_installer.rs +199 -0
  99. data/ext/pf2/src/signal_scheduler.rs +311 -0
  100. data/ext/pf2/src/timer_thread_scheduler.rs +319 -0
  101. data/ext/pf2/src/util.rs +30 -0
  102. data/lib/pf2/cli.rb +1 -1
  103. data/lib/pf2/reporter.rb +48 -16
  104. data/lib/pf2/version.rb +1 -1
  105. data/lib/pf2.rb +20 -5
  106. metadata +128 -5
  107. data/ext/pf2/pf2.c +0 -246
@@ -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: