Dernière activité 11 months ago

zyppe's Avatar zyppe a révisé ce gist 11 months ago. Aller à la révision

1 file changed, 2354 insertions

config.sub(fichier créé)

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