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