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