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