/ autotools / config.guess
config.guess
   1  #! /bin/sh
   2  # Attempt to guess a canonical system name.
   3  #   Copyright 1992-2021 Free Software Foundation, Inc.
   4  
   5  timestamp='2021-01-01'
   6  
   7  # This file is free software; you can redistribute it and/or modify it
   8  # under the terms of the GNU General Public License as published by
   9  # the Free Software Foundation; either version 3 of the License, or
  10  # (at your option) any later version.
  11  #
  12  # This program is distributed in the hope that it will be useful, but
  13  # WITHOUT ANY WARRANTY; without even the implied warranty of
  14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15  # General Public License for more details.
  16  #
  17  # You should have received a copy of the GNU General Public License
  18  # along with this program; if not, see <https://www.gnu.org/licenses/>.
  19  #
  20  # As a special exception to the GNU General Public License, if you
  21  # distribute this file as part of a program that contains a
  22  # configuration script generated by Autoconf, you may include it under
  23  # the same distribution terms that you use for the rest of that
  24  # program.  This Exception is an additional permission under section 7
  25  # of the GNU General Public License, version 3 ("GPLv3").
  26  #
  27  # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
  28  #
  29  # You can get the latest version of this script from:
  30  # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
  31  #
  32  # Please send patches to <config-patches@gnu.org>.
  33  
  34  
  35  me=$(echo "$0" | sed -e 's,.*/,,')
  36  
  37  usage="\
  38  Usage: $0 [OPTION]
  39  
  40  Output the configuration name of the system \`$me' is run on.
  41  
  42  Options:
  43    -h, --help         print this help, then exit
  44    -t, --time-stamp   print date of last modification, then exit
  45    -v, --version      print version number, then exit
  46  
  47  Report bugs and patches to <config-patches@gnu.org>."
  48  
  49  version="\
  50  GNU config.guess ($timestamp)
  51  
  52  Originally written by Per Bothner.
  53  Copyright 1992-2021 Free Software Foundation, Inc.
  54  
  55  This is free software; see the source for copying conditions.  There is NO
  56  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  57  
  58  help="
  59  Try \`$me --help' for more information."
  60  
  61  # Parse command line
  62  while test $# -gt 0 ; do
  63    case $1 in
  64      --time-stamp | --time* | -t )
  65         echo "$timestamp" ; exit ;;
  66      --version | -v )
  67         echo "$version" ; exit ;;
  68      --help | --h* | -h )
  69         echo "$usage"; exit ;;
  70      -- )     # Stop option processing
  71         shift; break ;;
  72      - )	# Use stdin as input.
  73         break ;;
  74      -* )
  75         echo "$me: invalid option $1$help" >&2
  76         exit 1 ;;
  77      * )
  78         break ;;
  79    esac
  80  done
  81  
  82  if test $# != 0; then
  83    echo "$me: too many arguments$help" >&2
  84    exit 1
  85  fi
  86  
  87  # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
  88  # compiler to aid in system detection is discouraged as it requires
  89  # temporary files to be created and, as you can see below, it is a
  90  # headache to deal with in a portable fashion.
  91  
  92  # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
  93  # use `HOST_CC' if defined, but it is deprecated.
  94  
  95  # Portable tmp directory creation inspired by the Autoconf team.
  96  
  97  tmp=
  98  # shellcheck disable=SC2172
  99  trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
 100  
 101  set_cc_for_build() {
 102      # prevent multiple calls if $tmp is already set
 103      test "$tmp" && return 0
 104      : "${TMPDIR=/tmp}"
 105      # shellcheck disable=SC2039
 106      { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } ||
 107  	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
 108  	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
 109  	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
 110      dummy=$tmp/dummy
 111      case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
 112  	,,)    echo "int x;" > "$dummy.c"
 113  	       for driver in cc gcc c89 c99 ; do
 114  		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
 115  		       CC_FOR_BUILD="$driver"
 116  		       break
 117  		   fi
 118  	       done
 119  	       if test x"$CC_FOR_BUILD" = x ; then
 120  		   CC_FOR_BUILD=no_compiler_found
 121  	       fi
 122  	       ;;
 123  	,,*)   CC_FOR_BUILD=$CC ;;
 124  	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
 125      esac
 126  }
 127  
 128  # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 129  # (ghazi@noc.rutgers.edu 1994-08-24)
 130  if test -f /.attbin/uname ; then
 131  	PATH=$PATH:/.attbin ; export PATH
 132  fi
 133  
 134  UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown
 135  UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown
 136  UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown
 137  UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown
 138  
 139  case "$UNAME_SYSTEM" in
 140  Linux|GNU|GNU/*)
 141  	LIBC=unknown
 142  
 143  	set_cc_for_build
 144  	cat <<-EOF > "$dummy.c"
 145  	#include <features.h>
 146  	#if defined(__UCLIBC__)
 147  	LIBC=uclibc
 148  	#elif defined(__dietlibc__)
 149  	LIBC=dietlibc
 150  	#elif defined(__GLIBC__)
 151  	LIBC=gnu
 152  	#else
 153  	#include <stdarg.h>
 154  	/* First heuristic to detect musl libc.  */
 155  	#ifdef __DEFINED_va_list
 156  	LIBC=musl
 157  	#endif
 158  	#endif
 159  	EOF
 160  	eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')"
 161  
 162  	# Second heuristic to detect musl libc.
 163  	if [ "$LIBC" = unknown ] &&
 164  	   command -v ldd >/dev/null &&
 165  	   ldd --version 2>&1 | grep -q ^musl; then
 166  		LIBC=musl
 167  	fi
 168  
 169  	# If the system lacks a compiler, then just pick glibc.
 170  	# We could probably try harder.
 171  	if [ "$LIBC" = unknown ]; then
 172  		LIBC=gnu
 173  	fi
 174  	;;
 175  esac
 176  
 177  # Note: order is significant - the case branches are not exclusive.
 178  
 179  case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
 180      *:NetBSD:*:*)
 181  	# NetBSD (nbsd) targets should (where applicable) match one or
 182  	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
 183  	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
 184  	# switched to ELF, *-*-netbsd* would select the old
 185  	# object file format.  This provides both forward
 186  	# compatibility and a consistent mechanism for selecting the
 187  	# object file format.
 188  	#
 189  	# Note: NetBSD doesn't particularly care about the vendor
 190  	# portion of the name.  We always set it to "unknown".
 191  	sysctl="sysctl -n hw.machine_arch"
 192  	UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \
 193  	    "/sbin/$sysctl" 2>/dev/null || \
 194  	    "/usr/sbin/$sysctl" 2>/dev/null || \
 195  	    echo unknown))
 196  	case "$UNAME_MACHINE_ARCH" in
 197  	    aarch64eb) machine=aarch64_be-unknown ;;
 198  	    armeb) machine=armeb-unknown ;;
 199  	    arm*) machine=arm-unknown ;;
 200  	    sh3el) machine=shl-unknown ;;
 201  	    sh3eb) machine=sh-unknown ;;
 202  	    sh5el) machine=sh5le-unknown ;;
 203  	    earmv*)
 204  		arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,')
 205  		endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p')
 206  		machine="${arch}${endian}"-unknown
 207  		;;
 208  	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
 209  	esac
 210  	# The Operating System including object format, if it has switched
 211  	# to ELF recently (or will in the future) and ABI.
 212  	case "$UNAME_MACHINE_ARCH" in
 213  	    earm*)
 214  		os=netbsdelf
 215  		;;
 216  	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 217  		set_cc_for_build
 218  		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
 219  			| grep -q __ELF__
 220  		then
 221  		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 222  		    # Return netbsd for either.  FIX?
 223  		    os=netbsd
 224  		else
 225  		    os=netbsdelf
 226  		fi
 227  		;;
 228  	    *)
 229  		os=netbsd
 230  		;;
 231  	esac
 232  	# Determine ABI tags.
 233  	case "$UNAME_MACHINE_ARCH" in
 234  	    earm*)
 235  		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
 236  		abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr")
 237  		;;
 238  	esac
 239  	# The OS release
 240  	# Debian GNU/NetBSD machines have a different userland, and
 241  	# thus, need a distinct triplet. However, they do not need
 242  	# kernel version information, so it can be replaced with a
 243  	# suitable tag, in the style of linux-gnu.
 244  	case "$UNAME_VERSION" in
 245  	    Debian*)
 246  		release='-gnu'
 247  		;;
 248  	    *)
 249  		release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2)
 250  		;;
 251  	esac
 252  	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
 253  	# contains redundant information, the shorter form:
 254  	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 255  	echo "$machine-${os}${release}${abi-}"
 256  	exit ;;
 257      *:Bitrig:*:*)
 258  	UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//')
 259  	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
 260  	exit ;;
 261      *:OpenBSD:*:*)
 262  	UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//')
 263  	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
 264  	exit ;;
 265      *:LibertyBSD:*:*)
 266  	UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//')
 267  	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
 268  	exit ;;
 269      *:MidnightBSD:*:*)
 270  	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
 271  	exit ;;
 272      *:ekkoBSD:*:*)
 273  	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
 274  	exit ;;
 275      *:SolidBSD:*:*)
 276  	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
 277  	exit ;;
 278      *:OS108:*:*)
 279  	echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
 280  	exit ;;
 281      macppc:MirBSD:*:*)
 282  	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
 283  	exit ;;
 284      *:MirBSD:*:*)
 285  	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
 286  	exit ;;
 287      *:Sortix:*:*)
 288  	echo "$UNAME_MACHINE"-unknown-sortix
 289  	exit ;;
 290      *:Twizzler:*:*)
 291  	echo "$UNAME_MACHINE"-unknown-twizzler
 292  	exit ;;
 293      *:Redox:*:*)
 294  	echo "$UNAME_MACHINE"-unknown-redox
 295  	exit ;;
 296      mips:OSF1:*.*)
 297  	echo mips-dec-osf1
 298  	exit ;;
 299      alpha:OSF1:*:*)
 300  	case $UNAME_RELEASE in
 301  	*4.0)
 302  		UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}')
 303  		;;
 304  	*5.*)
 305  		UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}')
 306  		;;
 307  	esac
 308  	# According to Compaq, /usr/sbin/psrinfo has been available on
 309  	# OSF/1 and Tru64 systems produced since 1995.  I hope that
 310  	# covers most systems running today.  This code pipes the CPU
 311  	# types through head -n 1, so we only detect the type of CPU 0.
 312  	ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1)
 313  	case "$ALPHA_CPU_TYPE" in
 314  	    "EV4 (21064)")
 315  		UNAME_MACHINE=alpha ;;
 316  	    "EV4.5 (21064)")
 317  		UNAME_MACHINE=alpha ;;
 318  	    "LCA4 (21066/21068)")
 319  		UNAME_MACHINE=alpha ;;
 320  	    "EV5 (21164)")
 321  		UNAME_MACHINE=alphaev5 ;;
 322  	    "EV5.6 (21164A)")
 323  		UNAME_MACHINE=alphaev56 ;;
 324  	    "EV5.6 (21164PC)")
 325  		UNAME_MACHINE=alphapca56 ;;
 326  	    "EV5.7 (21164PC)")
 327  		UNAME_MACHINE=alphapca57 ;;
 328  	    "EV6 (21264)")
 329  		UNAME_MACHINE=alphaev6 ;;
 330  	    "EV6.7 (21264A)")
 331  		UNAME_MACHINE=alphaev67 ;;
 332  	    "EV6.8CB (21264C)")
 333  		UNAME_MACHINE=alphaev68 ;;
 334  	    "EV6.8AL (21264B)")
 335  		UNAME_MACHINE=alphaev68 ;;
 336  	    "EV6.8CX (21264D)")
 337  		UNAME_MACHINE=alphaev68 ;;
 338  	    "EV6.9A (21264/EV69A)")
 339  		UNAME_MACHINE=alphaev69 ;;
 340  	    "EV7 (21364)")
 341  		UNAME_MACHINE=alphaev7 ;;
 342  	    "EV7.9 (21364A)")
 343  		UNAME_MACHINE=alphaev79 ;;
 344  	esac
 345  	# A Pn.n version is a patched version.
 346  	# A Vn.n version is a released version.
 347  	# A Tn.n version is a released field test version.
 348  	# A Xn.n version is an unreleased experimental baselevel.
 349  	# 1.2 uses "1.2" for uname -r.
 350  	echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)"
 351  	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
 352  	exitcode=$?
 353  	trap '' 0
 354  	exit $exitcode ;;
 355      Amiga*:UNIX_System_V:4.0:*)
 356  	echo m68k-unknown-sysv4
 357  	exit ;;
 358      *:[Aa]miga[Oo][Ss]:*:*)
 359  	echo "$UNAME_MACHINE"-unknown-amigaos
 360  	exit ;;
 361      *:[Mm]orph[Oo][Ss]:*:*)
 362  	echo "$UNAME_MACHINE"-unknown-morphos
 363  	exit ;;
 364      *:OS/390:*:*)
 365  	echo i370-ibm-openedition
 366  	exit ;;
 367      *:z/VM:*:*)
 368  	echo s390-ibm-zvmoe
 369  	exit ;;
 370      *:OS400:*:*)
 371  	echo powerpc-ibm-os400
 372  	exit ;;
 373      arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 374  	echo arm-acorn-riscix"$UNAME_RELEASE"
 375  	exit ;;
 376      arm*:riscos:*:*|arm*:RISCOS:*:*)
 377  	echo arm-unknown-riscos
 378  	exit ;;
 379      SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
 380  	echo hppa1.1-hitachi-hiuxmpp
 381  	exit ;;
 382      Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
 383  	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
 384  	if test "$( (/bin/universe) 2>/dev/null)" = att ; then
 385  		echo pyramid-pyramid-sysv3
 386  	else
 387  		echo pyramid-pyramid-bsd
 388  	fi
 389  	exit ;;
 390      NILE*:*:*:dcosx)
 391  	echo pyramid-pyramid-svr4
 392  	exit ;;
 393      DRS?6000:unix:4.0:6*)
 394  	echo sparc-icl-nx6
 395  	exit ;;
 396      DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
 397  	case $(/usr/bin/uname -p) in
 398  	    sparc) echo sparc-icl-nx7; exit ;;
 399  	esac ;;
 400      s390x:SunOS:*:*)
 401  	echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
 402  	exit ;;
 403      sun4H:SunOS:5.*:*)
 404  	echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
 405  	exit ;;
 406      sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 407  	echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
 408  	exit ;;
 409      i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
 410  	echo i386-pc-auroraux"$UNAME_RELEASE"
 411  	exit ;;
 412      i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 413  	set_cc_for_build
 414  	SUN_ARCH=i386
 415  	# If there is a compiler, see if it is configured for 64-bit objects.
 416  	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
 417  	# This test works for both compilers.
 418  	if test "$CC_FOR_BUILD" != no_compiler_found; then
 419  	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
 420  		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
 421  		grep IS_64BIT_ARCH >/dev/null
 422  	    then
 423  		SUN_ARCH=x86_64
 424  	    fi
 425  	fi
 426  	echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
 427  	exit ;;
 428      sun4*:SunOS:6*:*)
 429  	# According to config.sub, this is the proper way to canonicalize
 430  	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 431  	# it's likely to be more like Solaris than SunOS4.
 432  	echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
 433  	exit ;;
 434      sun4*:SunOS:*:*)
 435  	case "$(/usr/bin/arch -k)" in
 436  	    Series*|S4*)
 437  		UNAME_RELEASE=$(uname -v)
 438  		;;
 439  	esac
 440  	# Japanese Language versions have a version number like `4.1.3-JL'.
 441  	echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')"
 442  	exit ;;
 443      sun3*:SunOS:*:*)
 444  	echo m68k-sun-sunos"$UNAME_RELEASE"
 445  	exit ;;
 446      sun*:*:4.2BSD:*)
 447  	UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null)
 448  	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
 449  	case "$(/bin/arch)" in
 450  	    sun3)
 451  		echo m68k-sun-sunos"$UNAME_RELEASE"
 452  		;;
 453  	    sun4)
 454  		echo sparc-sun-sunos"$UNAME_RELEASE"
 455  		;;
 456  	esac
 457  	exit ;;
 458      aushp:SunOS:*:*)
 459  	echo sparc-auspex-sunos"$UNAME_RELEASE"
 460  	exit ;;
 461      # The situation for MiNT is a little confusing.  The machine name
 462      # can be virtually everything (everything which is not
 463      # "atarist" or "atariste" at least should have a processor
 464      # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
 465      # to the lowercase version "mint" (or "freemint").  Finally
 466      # the system name "TOS" denotes a system which is actually not
 467      # MiNT.  But MiNT is downward compatible to TOS, so this should
 468      # be no problem.
 469      atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
 470  	echo m68k-atari-mint"$UNAME_RELEASE"
 471  	exit ;;
 472      atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 473  	echo m68k-atari-mint"$UNAME_RELEASE"
 474  	exit ;;
 475      *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
 476  	echo m68k-atari-mint"$UNAME_RELEASE"
 477  	exit ;;
 478      milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
 479  	echo m68k-milan-mint"$UNAME_RELEASE"
 480  	exit ;;
 481      hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
 482  	echo m68k-hades-mint"$UNAME_RELEASE"
 483  	exit ;;
 484      *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
 485  	echo m68k-unknown-mint"$UNAME_RELEASE"
 486  	exit ;;
 487      m68k:machten:*:*)
 488  	echo m68k-apple-machten"$UNAME_RELEASE"
 489  	exit ;;
 490      powerpc:machten:*:*)
 491  	echo powerpc-apple-machten"$UNAME_RELEASE"
 492  	exit ;;
 493      RISC*:Mach:*:*)
 494  	echo mips-dec-mach_bsd4.3
 495  	exit ;;
 496      RISC*:ULTRIX:*:*)
 497  	echo mips-dec-ultrix"$UNAME_RELEASE"
 498  	exit ;;
 499      VAX*:ULTRIX*:*:*)
 500  	echo vax-dec-ultrix"$UNAME_RELEASE"
 501  	exit ;;
 502      2020:CLIX:*:* | 2430:CLIX:*:*)
 503  	echo clipper-intergraph-clix"$UNAME_RELEASE"
 504  	exit ;;
 505      mips:*:*:UMIPS | mips:*:*:RISCos)
 506  	set_cc_for_build
 507  	sed 's/^	//' << EOF > "$dummy.c"
 508  #ifdef __cplusplus
 509  #include <stdio.h>  /* for printf() prototype */
 510  	int main (int argc, char *argv[]) {
 511  #else
 512  	int main (argc, argv) int argc; char *argv[]; {
 513  #endif
 514  	#if defined (host_mips) && defined (MIPSEB)
 515  	#if defined (SYSTYPE_SYSV)
 516  	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
 517  	#endif
 518  	#if defined (SYSTYPE_SVR4)
 519  	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
 520  	#endif
 521  	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
 522  	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
 523  	#endif
 524  	#endif
 525  	  exit (-1);
 526  	}
 527  EOF
 528  	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
 529  	  dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') &&
 530  	  SYSTEM_NAME=$("$dummy" "$dummyarg") &&
 531  	    { echo "$SYSTEM_NAME"; exit; }
 532  	echo mips-mips-riscos"$UNAME_RELEASE"
 533  	exit ;;
 534      Motorola:PowerMAX_OS:*:*)
 535  	echo powerpc-motorola-powermax
 536  	exit ;;
 537      Motorola:*:4.3:PL8-*)
 538  	echo powerpc-harris-powermax
 539  	exit ;;
 540      Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
 541  	echo powerpc-harris-powermax
 542  	exit ;;
 543      Night_Hawk:Power_UNIX:*:*)
 544  	echo powerpc-harris-powerunix
 545  	exit ;;
 546      m88k:CX/UX:7*:*)
 547  	echo m88k-harris-cxux7
 548  	exit ;;
 549      m88k:*:4*:R4*)
 550  	echo m88k-motorola-sysv4
 551  	exit ;;
 552      m88k:*:3*:R3*)
 553  	echo m88k-motorola-sysv3
 554  	exit ;;
 555      AViiON:dgux:*:*)
 556  	# DG/UX returns AViiON for all architectures
 557  	UNAME_PROCESSOR=$(/usr/bin/uname -p)
 558  	if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
 559  	then
 560  	    if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
 561  	       test "$TARGET_BINARY_INTERFACE"x = x
 562  	    then
 563  		echo m88k-dg-dgux"$UNAME_RELEASE"
 564  	    else
 565  		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
 566  	    fi
 567  	else
 568  	    echo i586-dg-dgux"$UNAME_RELEASE"
 569  	fi
 570  	exit ;;
 571      M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 572  	echo m88k-dolphin-sysv3
 573  	exit ;;
 574      M88*:*:R3*:*)
 575  	# Delta 88k system running SVR3
 576  	echo m88k-motorola-sysv3
 577  	exit ;;
 578      XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
 579  	echo m88k-tektronix-sysv3
 580  	exit ;;
 581      Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
 582  	echo m68k-tektronix-bsd
 583  	exit ;;
 584      *:IRIX*:*:*)
 585  	echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')"
 586  	exit ;;
 587      ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
 588  	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
 589  	exit ;;               # Note that: echo "'$(uname -s)'" gives 'AIX '
 590      i*86:AIX:*:*)
 591  	echo i386-ibm-aix
 592  	exit ;;
 593      ia64:AIX:*:*)
 594  	if test -x /usr/bin/oslevel ; then
 595  		IBM_REV=$(/usr/bin/oslevel)
 596  	else
 597  		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
 598  	fi
 599  	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
 600  	exit ;;
 601      *:AIX:2:3)
 602  	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
 603  		set_cc_for_build
 604  		sed 's/^		//' << EOF > "$dummy.c"
 605  		#include <sys/systemcfg.h>
 606  
 607  		main()
 608  			{
 609  			if (!__power_pc())
 610  				exit(1);
 611  			puts("powerpc-ibm-aix3.2.5");
 612  			exit(0);
 613  			}
 614  EOF
 615  		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy")
 616  		then
 617  			echo "$SYSTEM_NAME"
 618  		else
 619  			echo rs6000-ibm-aix3.2.5
 620  		fi
 621  	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
 622  		echo rs6000-ibm-aix3.2.4
 623  	else
 624  		echo rs6000-ibm-aix3.2
 625  	fi
 626  	exit ;;
 627      *:AIX:*:[4567])
 628  	IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }')
 629  	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
 630  		IBM_ARCH=rs6000
 631  	else
 632  		IBM_ARCH=powerpc
 633  	fi
 634  	if test -x /usr/bin/lslpp ; then
 635  		IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc |
 636  			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/)
 637  	else
 638  		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
 639  	fi
 640  	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
 641  	exit ;;
 642      *:AIX:*:*)
 643  	echo rs6000-ibm-aix
 644  	exit ;;
 645      ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
 646  	echo romp-ibm-bsd4.4
 647  	exit ;;
 648      ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
 649  	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
 650  	exit ;;                             # report: romp-ibm BSD 4.3
 651      *:BOSX:*:*)
 652  	echo rs6000-bull-bosx
 653  	exit ;;
 654      DPX/2?00:B.O.S.:*:*)
 655  	echo m68k-bull-sysv3
 656  	exit ;;
 657      9000/[34]??:4.3bsd:1.*:*)
 658  	echo m68k-hp-bsd
 659  	exit ;;
 660      hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
 661  	echo m68k-hp-bsd4.4
 662  	exit ;;
 663      9000/[34678]??:HP-UX:*:*)
 664  	HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
 665  	case "$UNAME_MACHINE" in
 666  	    9000/31?)            HP_ARCH=m68000 ;;
 667  	    9000/[34]??)         HP_ARCH=m68k ;;
 668  	    9000/[678][0-9][0-9])
 669  		if test -x /usr/bin/getconf; then
 670  		    sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null)
 671  		    sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null)
 672  		    case "$sc_cpu_version" in
 673  		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
 674  		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
 675  		      532)                      # CPU_PA_RISC2_0
 676  			case "$sc_kernel_bits" in
 677  			  32) HP_ARCH=hppa2.0n ;;
 678  			  64) HP_ARCH=hppa2.0w ;;
 679  			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
 680  			esac ;;
 681  		    esac
 682  		fi
 683  		if test "$HP_ARCH" = ""; then
 684  		    set_cc_for_build
 685  		    sed 's/^		//' << EOF > "$dummy.c"
 686  
 687  		#define _HPUX_SOURCE
 688  		#include <stdlib.h>
 689  		#include <unistd.h>
 690  
 691  		int main ()
 692  		{
 693  		#if defined(_SC_KERNEL_BITS)
 694  		    long bits = sysconf(_SC_KERNEL_BITS);
 695  		#endif
 696  		    long cpu  = sysconf (_SC_CPU_VERSION);
 697  
 698  		    switch (cpu)
 699  			{
 700  			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
 701  			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
 702  			case CPU_PA_RISC2_0:
 703  		#if defined(_SC_KERNEL_BITS)
 704  			    switch (bits)
 705  				{
 706  				case 64: puts ("hppa2.0w"); break;
 707  				case 32: puts ("hppa2.0n"); break;
 708  				default: puts ("hppa2.0"); break;
 709  				} break;
 710  		#else  /* !defined(_SC_KERNEL_BITS) */
 711  			    puts ("hppa2.0"); break;
 712  		#endif
 713  			default: puts ("hppa1.0"); break;
 714  			}
 715  		    exit (0);
 716  		}
 717  EOF
 718  		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy")
 719  		    test -z "$HP_ARCH" && HP_ARCH=hppa
 720  		fi ;;
 721  	esac
 722  	if test "$HP_ARCH" = hppa2.0w
 723  	then
 724  	    set_cc_for_build
 725  
 726  	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
 727  	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
 728  	    # generating 64-bit code.  GNU and HP use different nomenclature:
 729  	    #
 730  	    # $ CC_FOR_BUILD=cc ./config.guess
 731  	    # => hppa2.0w-hp-hpux11.23
 732  	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
 733  	    # => hppa64-hp-hpux11.23
 734  
 735  	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
 736  		grep -q __LP64__
 737  	    then
 738  		HP_ARCH=hppa2.0w
 739  	    else
 740  		HP_ARCH=hppa64
 741  	    fi
 742  	fi
 743  	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
 744  	exit ;;
 745      ia64:HP-UX:*:*)
 746  	HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
 747  	echo ia64-hp-hpux"$HPUX_REV"
 748  	exit ;;
 749      3050*:HI-UX:*:*)
 750  	set_cc_for_build
 751  	sed 's/^	//' << EOF > "$dummy.c"
 752  	#include <unistd.h>
 753  	int
 754  	main ()
 755  	{
 756  	  long cpu = sysconf (_SC_CPU_VERSION);
 757  	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
 758  	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
 759  	     results, however.  */
 760  	  if (CPU_IS_PA_RISC (cpu))
 761  	    {
 762  	      switch (cpu)
 763  		{
 764  		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
 765  		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
 766  		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
 767  		  default: puts ("hppa-hitachi-hiuxwe2"); break;
 768  		}
 769  	    }
 770  	  else if (CPU_IS_HP_MC68K (cpu))
 771  	    puts ("m68k-hitachi-hiuxwe2");
 772  	  else puts ("unknown-hitachi-hiuxwe2");
 773  	  exit (0);
 774  	}
 775  EOF
 776  	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") &&
 777  		{ echo "$SYSTEM_NAME"; exit; }
 778  	echo unknown-hitachi-hiuxwe2
 779  	exit ;;
 780      9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
 781  	echo hppa1.1-hp-bsd
 782  	exit ;;
 783      9000/8??:4.3bsd:*:*)
 784  	echo hppa1.0-hp-bsd
 785  	exit ;;
 786      *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 787  	echo hppa1.0-hp-mpeix
 788  	exit ;;
 789      hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
 790  	echo hppa1.1-hp-osf
 791  	exit ;;
 792      hp8??:OSF1:*:*)
 793  	echo hppa1.0-hp-osf
 794  	exit ;;
 795      i*86:OSF1:*:*)
 796  	if test -x /usr/sbin/sysversion ; then
 797  	    echo "$UNAME_MACHINE"-unknown-osf1mk
 798  	else
 799  	    echo "$UNAME_MACHINE"-unknown-osf1
 800  	fi
 801  	exit ;;
 802      parisc*:Lites*:*:*)
 803  	echo hppa1.1-hp-lites
 804  	exit ;;
 805      C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 806  	echo c1-convex-bsd
 807  	exit ;;
 808      C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 809  	if getsysinfo -f scalar_acc
 810  	then echo c32-convex-bsd
 811  	else echo c2-convex-bsd
 812  	fi
 813  	exit ;;
 814      C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 815  	echo c34-convex-bsd
 816  	exit ;;
 817      C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 818  	echo c38-convex-bsd
 819  	exit ;;
 820      C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 821  	echo c4-convex-bsd
 822  	exit ;;
 823      CRAY*Y-MP:*:*:*)
 824  	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 825  	exit ;;
 826      CRAY*[A-Z]90:*:*:*)
 827  	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
 828  	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
 829  	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
 830  	      -e 's/\.[^.]*$/.X/'
 831  	exit ;;
 832      CRAY*TS:*:*:*)
 833  	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 834  	exit ;;
 835      CRAY*T3E:*:*:*)
 836  	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 837  	exit ;;
 838      CRAY*SV1:*:*:*)
 839  	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 840  	exit ;;
 841      *:UNICOS/mp:*:*)
 842  	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 843  	exit ;;
 844      F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 845  	FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)
 846  	FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
 847  	FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/')
 848  	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 849  	exit ;;
 850      5000:UNIX_System_V:4.*:*)
 851  	FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
 852  	FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/')
 853  	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 854  	exit ;;
 855      i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 856  	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
 857  	exit ;;
 858      sparc*:BSD/OS:*:*)
 859  	echo sparc-unknown-bsdi"$UNAME_RELEASE"
 860  	exit ;;
 861      *:BSD/OS:*:*)
 862  	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
 863  	exit ;;
 864      arm:FreeBSD:*:*)
 865  	UNAME_PROCESSOR=$(uname -p)
 866  	set_cc_for_build
 867  	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 868  	    | grep -q __ARM_PCS_VFP
 869  	then
 870  	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi
 871  	else
 872  	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf
 873  	fi
 874  	exit ;;
 875      *:FreeBSD:*:*)
 876  	UNAME_PROCESSOR=$(/usr/bin/uname -p)
 877  	case "$UNAME_PROCESSOR" in
 878  	    amd64)
 879  		UNAME_PROCESSOR=x86_64 ;;
 880  	    i386)
 881  		UNAME_PROCESSOR=i586 ;;
 882  	esac
 883  	echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
 884  	exit ;;
 885      i*:CYGWIN*:*)
 886  	echo "$UNAME_MACHINE"-pc-cygwin
 887  	exit ;;
 888      *:MINGW64*:*)
 889  	echo "$UNAME_MACHINE"-pc-mingw64
 890  	exit ;;
 891      *:MINGW*:*)
 892  	echo "$UNAME_MACHINE"-pc-mingw32
 893  	exit ;;
 894      *:MSYS*:*)
 895  	echo "$UNAME_MACHINE"-pc-msys
 896  	exit ;;
 897      i*:PW*:*)
 898  	echo "$UNAME_MACHINE"-pc-pw32
 899  	exit ;;
 900      *:Interix*:*)
 901  	case "$UNAME_MACHINE" in
 902  	    x86)
 903  		echo i586-pc-interix"$UNAME_RELEASE"
 904  		exit ;;
 905  	    authenticamd | genuineintel | EM64T)
 906  		echo x86_64-unknown-interix"$UNAME_RELEASE"
 907  		exit ;;
 908  	    IA64)
 909  		echo ia64-unknown-interix"$UNAME_RELEASE"
 910  		exit ;;
 911  	esac ;;
 912      i*:UWIN*:*)
 913  	echo "$UNAME_MACHINE"-pc-uwin
 914  	exit ;;
 915      amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
 916  	echo x86_64-pc-cygwin
 917  	exit ;;
 918      prep*:SunOS:5.*:*)
 919  	echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
 920  	exit ;;
 921      *:GNU:*:*)
 922  	# the GNU system
 923  	echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')"
 924  	exit ;;
 925      *:GNU/*:*:*)
 926  	# other systems with GNU libc and userland
 927  	echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC"
 928  	exit ;;
 929      *:Minix:*:*)
 930  	echo "$UNAME_MACHINE"-unknown-minix
 931  	exit ;;
 932      aarch64:Linux:*:*)
 933  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 934  	exit ;;
 935      aarch64_be:Linux:*:*)
 936  	UNAME_MACHINE=aarch64_be
 937  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 938  	exit ;;
 939      alpha:Linux:*:*)
 940  	case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in
 941  	  EV5)   UNAME_MACHINE=alphaev5 ;;
 942  	  EV56)  UNAME_MACHINE=alphaev56 ;;
 943  	  PCA56) UNAME_MACHINE=alphapca56 ;;
 944  	  PCA57) UNAME_MACHINE=alphapca56 ;;
 945  	  EV6)   UNAME_MACHINE=alphaev6 ;;
 946  	  EV67)  UNAME_MACHINE=alphaev67 ;;
 947  	  EV68*) UNAME_MACHINE=alphaev68 ;;
 948  	esac
 949  	objdump --private-headers /bin/sh | grep -q ld.so.1
 950  	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
 951  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 952  	exit ;;
 953      arc:Linux:*:* | arceb:Linux:*:*)
 954  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 955  	exit ;;
 956      arm*:Linux:*:*)
 957  	set_cc_for_build
 958  	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 959  	    | grep -q __ARM_EABI__
 960  	then
 961  	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 962  	else
 963  	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 964  		| grep -q __ARM_PCS_VFP
 965  	    then
 966  		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
 967  	    else
 968  		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
 969  	    fi
 970  	fi
 971  	exit ;;
 972      avr32*:Linux:*:*)
 973  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 974  	exit ;;
 975      cris:Linux:*:*)
 976  	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
 977  	exit ;;
 978      crisv32:Linux:*:*)
 979  	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
 980  	exit ;;
 981      e2k:Linux:*:*)
 982  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 983  	exit ;;
 984      frv:Linux:*:*)
 985  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 986  	exit ;;
 987      hexagon:Linux:*:*)
 988  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 989  	exit ;;
 990      i*86:Linux:*:*)
 991  	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
 992  	exit ;;
 993      ia64:Linux:*:*)
 994  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 995  	exit ;;
 996      k1om:Linux:*:*)
 997  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 998  	exit ;;
 999      loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
1000  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1001  	exit ;;
1002      m32r*:Linux:*:*)
1003  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1004  	exit ;;
1005      m68*:Linux:*:*)
1006  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1007  	exit ;;
1008      mips:Linux:*:* | mips64:Linux:*:*)
1009  	set_cc_for_build
1010  	IS_GLIBC=0
1011  	test x"${LIBC}" = xgnu && IS_GLIBC=1
1012  	sed 's/^	//' << EOF > "$dummy.c"
1013  	#undef CPU
1014  	#undef mips
1015  	#undef mipsel
1016  	#undef mips64
1017  	#undef mips64el
1018  	#if ${IS_GLIBC} && defined(_ABI64)
1019  	LIBCABI=gnuabi64
1020  	#else
1021  	#if ${IS_GLIBC} && defined(_ABIN32)
1022  	LIBCABI=gnuabin32
1023  	#else
1024  	LIBCABI=${LIBC}
1025  	#endif
1026  	#endif
1027  
1028  	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1029  	CPU=mipsisa64r6
1030  	#else
1031  	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1032  	CPU=mipsisa32r6
1033  	#else
1034  	#if defined(__mips64)
1035  	CPU=mips64
1036  	#else
1037  	CPU=mips
1038  	#endif
1039  	#endif
1040  	#endif
1041  
1042  	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
1043  	MIPS_ENDIAN=el
1044  	#else
1045  	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
1046  	MIPS_ENDIAN=
1047  	#else
1048  	MIPS_ENDIAN=
1049  	#endif
1050  	#endif
1051  EOF
1052  	eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')"
1053  	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
1054  	;;
1055      mips64el:Linux:*:*)
1056  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1057  	exit ;;
1058      openrisc*:Linux:*:*)
1059  	echo or1k-unknown-linux-"$LIBC"
1060  	exit ;;
1061      or32:Linux:*:* | or1k*:Linux:*:*)
1062  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1063  	exit ;;
1064      padre:Linux:*:*)
1065  	echo sparc-unknown-linux-"$LIBC"
1066  	exit ;;
1067      parisc64:Linux:*:* | hppa64:Linux:*:*)
1068  	echo hppa64-unknown-linux-"$LIBC"
1069  	exit ;;
1070      parisc:Linux:*:* | hppa:Linux:*:*)
1071  	# Look for CPU level
1072  	case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in
1073  	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
1074  	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
1075  	  *)    echo hppa-unknown-linux-"$LIBC" ;;
1076  	esac
1077  	exit ;;
1078      ppc64:Linux:*:*)
1079  	echo powerpc64-unknown-linux-"$LIBC"
1080  	exit ;;
1081      ppc:Linux:*:*)
1082  	echo powerpc-unknown-linux-"$LIBC"
1083  	exit ;;
1084      ppc64le:Linux:*:*)
1085  	echo powerpc64le-unknown-linux-"$LIBC"
1086  	exit ;;
1087      ppcle:Linux:*:*)
1088  	echo powerpcle-unknown-linux-"$LIBC"
1089  	exit ;;
1090      riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
1091  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1092  	exit ;;
1093      s390:Linux:*:* | s390x:Linux:*:*)
1094  	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
1095  	exit ;;
1096      sh64*:Linux:*:*)
1097  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1098  	exit ;;
1099      sh*:Linux:*:*)
1100  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1101  	exit ;;
1102      sparc:Linux:*:* | sparc64:Linux:*:*)
1103  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1104  	exit ;;
1105      tile*:Linux:*:*)
1106  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1107  	exit ;;
1108      vax:Linux:*:*)
1109  	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
1110  	exit ;;
1111      x86_64:Linux:*:*)
1112  	set_cc_for_build
1113  	LIBCABI=$LIBC
1114  	if test "$CC_FOR_BUILD" != no_compiler_found; then
1115  	    if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
1116  		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1117  		grep IS_X32 >/dev/null
1118  	    then
1119  		LIBCABI="$LIBC"x32
1120  	    fi
1121  	fi
1122  	echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
1123  	exit ;;
1124      xtensa*:Linux:*:*)
1125  	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1126  	exit ;;
1127      i*86:DYNIX/ptx:4*:*)
1128  	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1129  	# earlier versions are messed up and put the nodename in both
1130  	# sysname and nodename.
1131  	echo i386-sequent-sysv4
1132  	exit ;;
1133      i*86:UNIX_SV:4.2MP:2.*)
1134  	# Unixware is an offshoot of SVR4, but it has its own version
1135  	# number series starting with 2...
1136  	# I am not positive that other SVR4 systems won't match this,
1137  	# I just have to hope.  -- rms.
1138  	# Use sysv4.2uw... so that sysv4* matches it.
1139  	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
1140  	exit ;;
1141      i*86:OS/2:*:*)
1142  	# If we were able to find `uname', then EMX Unix compatibility
1143  	# is probably installed.
1144  	echo "$UNAME_MACHINE"-pc-os2-emx
1145  	exit ;;
1146      i*86:XTS-300:*:STOP)
1147  	echo "$UNAME_MACHINE"-unknown-stop
1148  	exit ;;
1149      i*86:atheos:*:*)
1150  	echo "$UNAME_MACHINE"-unknown-atheos
1151  	exit ;;
1152      i*86:syllable:*:*)
1153  	echo "$UNAME_MACHINE"-pc-syllable
1154  	exit ;;
1155      i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1156  	echo i386-unknown-lynxos"$UNAME_RELEASE"
1157  	exit ;;
1158      i*86:*DOS:*:*)
1159  	echo "$UNAME_MACHINE"-pc-msdosdjgpp
1160  	exit ;;
1161      i*86:*:4.*:*)
1162  	UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//')
1163  	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1164  		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
1165  	else
1166  		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
1167  	fi
1168  	exit ;;
1169      i*86:*:5:[678]*)
1170  	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1171  	case $(/bin/uname -X | grep "^Machine") in
1172  	    *486*)	     UNAME_MACHINE=i486 ;;
1173  	    *Pentium)	     UNAME_MACHINE=i586 ;;
1174  	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1175  	esac
1176  	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
1177  	exit ;;
1178      i*86:*:3.2:*)
1179  	if test -f /usr/options/cb.name; then
1180  		UNAME_REL=$(sed -n 's/.*Version //p' </usr/options/cb.name)
1181  		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
1182  	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1183  		UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //'))
1184  		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1185  		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1186  			&& UNAME_MACHINE=i586
1187  		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1188  			&& UNAME_MACHINE=i686
1189  		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1190  			&& UNAME_MACHINE=i686
1191  		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
1192  	else
1193  		echo "$UNAME_MACHINE"-pc-sysv32
1194  	fi
1195  	exit ;;
1196      pc:*:*:*)
1197  	# Left here for compatibility:
1198  	# uname -m prints for DJGPP always 'pc', but it prints nothing about
1199  	# the processor, so we play safe by assuming i586.
1200  	# Note: whatever this is, it MUST be the same as what config.sub
1201  	# prints for the "djgpp" host, or else GDB configure will decide that
1202  	# this is a cross-build.
1203  	echo i586-pc-msdosdjgpp
1204  	exit ;;
1205      Intel:Mach:3*:*)
1206  	echo i386-pc-mach3
1207  	exit ;;
1208      paragon:*:*:*)
1209  	echo i860-intel-osf1
1210  	exit ;;
1211      i860:*:4.*:*) # i860-SVR4
1212  	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1213  	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
1214  	else # Add other i860-SVR4 vendors below as they are discovered.
1215  	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
1216  	fi
1217  	exit ;;
1218      mini*:CTIX:SYS*5:*)
1219  	# "miniframe"
1220  	echo m68010-convergent-sysv
1221  	exit ;;
1222      mc68k:UNIX:SYSTEM5:3.51m)
1223  	echo m68k-convergent-sysv
1224  	exit ;;
1225      M680?0:D-NIX:5.3:*)
1226  	echo m68k-diab-dnix
1227  	exit ;;
1228      M68*:*:R3V[5678]*:*)
1229  	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1230      3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
1231  	OS_REL=''
1232  	test -r /etc/.relid \
1233  	&& OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
1234  	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1235  	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1236  	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1237  	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1238      3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1239  	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1240  	  && { echo i486-ncr-sysv4; exit; } ;;
1241      NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1242  	OS_REL='.3'
1243  	test -r /etc/.relid \
1244  	    && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
1245  	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1246  	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1247  	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1248  	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
1249  	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1250  	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1251      m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1252  	echo m68k-unknown-lynxos"$UNAME_RELEASE"
1253  	exit ;;
1254      mc68030:UNIX_System_V:4.*:*)
1255  	echo m68k-atari-sysv4
1256  	exit ;;
1257      TSUNAMI:LynxOS:2.*:*)
1258  	echo sparc-unknown-lynxos"$UNAME_RELEASE"
1259  	exit ;;
1260      rs6000:LynxOS:2.*:*)
1261  	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
1262  	exit ;;
1263      PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1264  	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
1265  	exit ;;
1266      SM[BE]S:UNIX_SV:*:*)
1267  	echo mips-dde-sysv"$UNAME_RELEASE"
1268  	exit ;;
1269      RM*:ReliantUNIX-*:*:*)
1270  	echo mips-sni-sysv4
1271  	exit ;;
1272      RM*:SINIX-*:*:*)
1273  	echo mips-sni-sysv4
1274  	exit ;;
1275      *:SINIX-*:*:*)
1276  	if uname -p 2>/dev/null >/dev/null ; then
1277  		UNAME_MACHINE=$( (uname -p) 2>/dev/null)
1278  		echo "$UNAME_MACHINE"-sni-sysv4
1279  	else
1280  		echo ns32k-sni-sysv
1281  	fi
1282  	exit ;;
1283      PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1284  			# says <Richard.M.Bartel@ccMail.Census.GOV>
1285  	echo i586-unisys-sysv4
1286  	exit ;;
1287      *:UNIX_System_V:4*:FTX*)
1288  	# From Gerald Hewes <hewes@openmarket.com>.
1289  	# How about differentiating between stratus architectures? -djm
1290  	echo hppa1.1-stratus-sysv4
1291  	exit ;;
1292      *:*:*:FTX*)
1293  	# From seanf@swdc.stratus.com.
1294  	echo i860-stratus-sysv4
1295  	exit ;;
1296      i*86:VOS:*:*)
1297  	# From Paul.Green@stratus.com.
1298  	echo "$UNAME_MACHINE"-stratus-vos
1299  	exit ;;
1300      *:VOS:*:*)
1301  	# From Paul.Green@stratus.com.
1302  	echo hppa1.1-stratus-vos
1303  	exit ;;
1304      mc68*:A/UX:*:*)
1305  	echo m68k-apple-aux"$UNAME_RELEASE"
1306  	exit ;;
1307      news*:NEWS-OS:6*:*)
1308  	echo mips-sony-newsos6
1309  	exit ;;
1310      R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1311  	if test -d /usr/nec; then
1312  		echo mips-nec-sysv"$UNAME_RELEASE"
1313  	else
1314  		echo mips-unknown-sysv"$UNAME_RELEASE"
1315  	fi
1316  	exit ;;
1317      BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1318  	echo powerpc-be-beos
1319  	exit ;;
1320      BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1321  	echo powerpc-apple-beos
1322  	exit ;;
1323      BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1324  	echo i586-pc-beos
1325  	exit ;;
1326      BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1327  	echo i586-pc-haiku
1328  	exit ;;
1329      x86_64:Haiku:*:*)
1330  	echo x86_64-unknown-haiku
1331  	exit ;;
1332      SX-4:SUPER-UX:*:*)
1333  	echo sx4-nec-superux"$UNAME_RELEASE"
1334  	exit ;;
1335      SX-5:SUPER-UX:*:*)
1336  	echo sx5-nec-superux"$UNAME_RELEASE"
1337  	exit ;;
1338      SX-6:SUPER-UX:*:*)
1339  	echo sx6-nec-superux"$UNAME_RELEASE"
1340  	exit ;;
1341      SX-7:SUPER-UX:*:*)
1342  	echo sx7-nec-superux"$UNAME_RELEASE"
1343  	exit ;;
1344      SX-8:SUPER-UX:*:*)
1345  	echo sx8-nec-superux"$UNAME_RELEASE"
1346  	exit ;;
1347      SX-8R:SUPER-UX:*:*)
1348  	echo sx8r-nec-superux"$UNAME_RELEASE"
1349  	exit ;;
1350      SX-ACE:SUPER-UX:*:*)
1351  	echo sxace-nec-superux"$UNAME_RELEASE"
1352  	exit ;;
1353      Power*:Rhapsody:*:*)
1354  	echo powerpc-apple-rhapsody"$UNAME_RELEASE"
1355  	exit ;;
1356      *:Rhapsody:*:*)
1357  	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
1358  	exit ;;
1359      arm64:Darwin:*:*)
1360  	echo aarch64-apple-darwin"$UNAME_RELEASE"
1361  	exit ;;
1362      *:Darwin:*:*)
1363  	UNAME_PROCESSOR=$(uname -p)
1364  	case $UNAME_PROCESSOR in
1365  	    unknown) UNAME_PROCESSOR=powerpc ;;
1366  	esac
1367  	if command -v xcode-select > /dev/null 2> /dev/null && \
1368  		! xcode-select --print-path > /dev/null 2> /dev/null ; then
1369  	    # Avoid executing cc if there is no toolchain installed as
1370  	    # cc will be a stub that puts up a graphical alert
1371  	    # prompting the user to install developer tools.
1372  	    CC_FOR_BUILD=no_compiler_found
1373  	else
1374  	    set_cc_for_build
1375  	fi
1376  	if test "$CC_FOR_BUILD" != no_compiler_found; then
1377  	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1378  		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1379  		   grep IS_64BIT_ARCH >/dev/null
1380  	    then
1381  		case $UNAME_PROCESSOR in
1382  		    i386) UNAME_PROCESSOR=x86_64 ;;
1383  		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
1384  		esac
1385  	    fi
1386  	    # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1387  	    if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1388  		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1389  		   grep IS_PPC >/dev/null
1390  	    then
1391  		UNAME_PROCESSOR=powerpc
1392  	    fi
1393  	elif test "$UNAME_PROCESSOR" = i386 ; then
1394  	    # uname -m returns i386 or x86_64
1395  	    UNAME_PROCESSOR=$UNAME_MACHINE
1396  	fi
1397  	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
1398  	exit ;;
1399      *:procnto*:*:* | *:QNX:[0123456789]*:*)
1400  	UNAME_PROCESSOR=$(uname -p)
1401  	if test "$UNAME_PROCESSOR" = x86; then
1402  		UNAME_PROCESSOR=i386
1403  		UNAME_MACHINE=pc
1404  	fi
1405  	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
1406  	exit ;;
1407      *:QNX:*:4*)
1408  	echo i386-pc-qnx
1409  	exit ;;
1410      NEO-*:NONSTOP_KERNEL:*:*)
1411  	echo neo-tandem-nsk"$UNAME_RELEASE"
1412  	exit ;;
1413      NSE-*:NONSTOP_KERNEL:*:*)
1414  	echo nse-tandem-nsk"$UNAME_RELEASE"
1415  	exit ;;
1416      NSR-*:NONSTOP_KERNEL:*:*)
1417  	echo nsr-tandem-nsk"$UNAME_RELEASE"
1418  	exit ;;
1419      NSV-*:NONSTOP_KERNEL:*:*)
1420  	echo nsv-tandem-nsk"$UNAME_RELEASE"
1421  	exit ;;
1422      NSX-*:NONSTOP_KERNEL:*:*)
1423  	echo nsx-tandem-nsk"$UNAME_RELEASE"
1424  	exit ;;
1425      *:NonStop-UX:*:*)
1426  	echo mips-compaq-nonstopux
1427  	exit ;;
1428      BS2000:POSIX*:*:*)
1429  	echo bs2000-siemens-sysv
1430  	exit ;;
1431      DS/*:UNIX_System_V:*:*)
1432  	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
1433  	exit ;;
1434      *:Plan9:*:*)
1435  	# "uname -m" is not consistent, so use $cputype instead. 386
1436  	# is converted to i386 for consistency with other x86
1437  	# operating systems.
1438  	# shellcheck disable=SC2154
1439  	if test "$cputype" = 386; then
1440  	    UNAME_MACHINE=i386
1441  	else
1442  	    UNAME_MACHINE="$cputype"
1443  	fi
1444  	echo "$UNAME_MACHINE"-unknown-plan9
1445  	exit ;;
1446      *:TOPS-10:*:*)
1447  	echo pdp10-unknown-tops10
1448  	exit ;;
1449      *:TENEX:*:*)
1450  	echo pdp10-unknown-tenex
1451  	exit ;;
1452      KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1453  	echo pdp10-dec-tops20
1454  	exit ;;
1455      XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1456  	echo pdp10-xkl-tops20
1457  	exit ;;
1458      *:TOPS-20:*:*)
1459  	echo pdp10-unknown-tops20
1460  	exit ;;
1461      *:ITS:*:*)
1462  	echo pdp10-unknown-its
1463  	exit ;;
1464      SEI:*:*:SEIUX)
1465  	echo mips-sei-seiux"$UNAME_RELEASE"
1466  	exit ;;
1467      *:DragonFly:*:*)
1468  	echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
1469  	exit ;;
1470      *:*VMS:*:*)
1471  	UNAME_MACHINE=$( (uname -p) 2>/dev/null)
1472  	case "$UNAME_MACHINE" in
1473  	    A*) echo alpha-dec-vms ; exit ;;
1474  	    I*) echo ia64-dec-vms ; exit ;;
1475  	    V*) echo vax-dec-vms ; exit ;;
1476  	esac ;;
1477      *:XENIX:*:SysV)
1478  	echo i386-pc-xenix
1479  	exit ;;
1480      i*86:skyos:*:*)
1481  	echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')"
1482  	exit ;;
1483      i*86:rdos:*:*)
1484  	echo "$UNAME_MACHINE"-pc-rdos
1485  	exit ;;
1486      i*86:AROS:*:*)
1487  	echo "$UNAME_MACHINE"-pc-aros
1488  	exit ;;
1489      x86_64:VMkernel:*:*)
1490  	echo "$UNAME_MACHINE"-unknown-esx
1491  	exit ;;
1492      amd64:Isilon\ OneFS:*:*)
1493  	echo x86_64-unknown-onefs
1494  	exit ;;
1495      *:Unleashed:*:*)
1496  	echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
1497  	exit ;;
1498  esac
1499  
1500  # No uname command or uname output not recognized.
1501  set_cc_for_build
1502  cat > "$dummy.c" <<EOF
1503  #ifdef _SEQUENT_
1504  #include <sys/types.h>
1505  #include <sys/utsname.h>
1506  #endif
1507  #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1508  #if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1509  #include <signal.h>
1510  #if defined(_SIZE_T_) || defined(SIGLOST)
1511  #include <sys/utsname.h>
1512  #endif
1513  #endif
1514  #endif
1515  main ()
1516  {
1517  #if defined (sony)
1518  #if defined (MIPSEB)
1519    /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1520       I don't know....  */
1521    printf ("mips-sony-bsd\n"); exit (0);
1522  #else
1523  #include <sys/param.h>
1524    printf ("m68k-sony-newsos%s\n",
1525  #ifdef NEWSOS4
1526    "4"
1527  #else
1528    ""
1529  #endif
1530    ); exit (0);
1531  #endif
1532  #endif
1533  
1534  #if defined (NeXT)
1535  #if !defined (__ARCHITECTURE__)
1536  #define __ARCHITECTURE__ "m68k"
1537  #endif
1538    int version;
1539    version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null);
1540    if (version < 4)
1541      printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1542    else
1543      printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1544    exit (0);
1545  #endif
1546  
1547  #if defined (MULTIMAX) || defined (n16)
1548  #if defined (UMAXV)
1549    printf ("ns32k-encore-sysv\n"); exit (0);
1550  #else
1551  #if defined (CMU)
1552    printf ("ns32k-encore-mach\n"); exit (0);
1553  #else
1554    printf ("ns32k-encore-bsd\n"); exit (0);
1555  #endif
1556  #endif
1557  #endif
1558  
1559  #if defined (__386BSD__)
1560    printf ("i386-pc-bsd\n"); exit (0);
1561  #endif
1562  
1563  #if defined (sequent)
1564  #if defined (i386)
1565    printf ("i386-sequent-dynix\n"); exit (0);
1566  #endif
1567  #if defined (ns32000)
1568    printf ("ns32k-sequent-dynix\n"); exit (0);
1569  #endif
1570  #endif
1571  
1572  #if defined (_SEQUENT_)
1573    struct utsname un;
1574  
1575    uname(&un);
1576    if (strncmp(un.version, "V2", 2) == 0) {
1577      printf ("i386-sequent-ptx2\n"); exit (0);
1578    }
1579    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1580      printf ("i386-sequent-ptx1\n"); exit (0);
1581    }
1582    printf ("i386-sequent-ptx\n"); exit (0);
1583  #endif
1584  
1585  #if defined (vax)
1586  #if !defined (ultrix)
1587  #include <sys/param.h>
1588  #if defined (BSD)
1589  #if BSD == 43
1590    printf ("vax-dec-bsd4.3\n"); exit (0);
1591  #else
1592  #if BSD == 199006
1593    printf ("vax-dec-bsd4.3reno\n"); exit (0);
1594  #else
1595    printf ("vax-dec-bsd\n"); exit (0);
1596  #endif
1597  #endif
1598  #else
1599    printf ("vax-dec-bsd\n"); exit (0);
1600  #endif
1601  #else
1602  #if defined(_SIZE_T_) || defined(SIGLOST)
1603    struct utsname un;
1604    uname (&un);
1605    printf ("vax-dec-ultrix%s\n", un.release); exit (0);
1606  #else
1607    printf ("vax-dec-ultrix\n"); exit (0);
1608  #endif
1609  #endif
1610  #endif
1611  #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1612  #if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1613  #if defined(_SIZE_T_) || defined(SIGLOST)
1614    struct utsname *un;
1615    uname (&un);
1616    printf ("mips-dec-ultrix%s\n", un.release); exit (0);
1617  #else
1618    printf ("mips-dec-ultrix\n"); exit (0);
1619  #endif
1620  #endif
1621  #endif
1622  
1623  #if defined (alliant) && defined (i860)
1624    printf ("i860-alliant-bsd\n"); exit (0);
1625  #endif
1626  
1627    exit (1);
1628  }
1629  EOF
1630  
1631  $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) &&
1632  	{ echo "$SYSTEM_NAME"; exit; }
1633  
1634  # Apollos put the system type in the environment.
1635  test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
1636  
1637  echo "$0: unable to guess system type" >&2
1638  
1639  case "$UNAME_MACHINE:$UNAME_SYSTEM" in
1640      mips:Linux | mips64:Linux)
1641  	# If we got here on MIPS GNU/Linux, output extra information.
1642  	cat >&2 <<EOF
1643  
1644  NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
1645  the system type. Please install a C compiler and try again.
1646  EOF
1647  	;;
1648  esac
1649  
1650  cat >&2 <<EOF
1651  
1652  This script (version $timestamp), has failed to recognize the
1653  operating system you are using. If your script is old, overwrite *all*
1654  copies of config.guess and config.sub with the latest versions from:
1655  
1656    https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
1657  and
1658    https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
1659  EOF
1660  
1661  year=$(echo $timestamp | sed 's,-.*,,')
1662  # shellcheck disable=SC2003
1663  if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then
1664     cat >&2 <<EOF
1665  
1666  If $0 has already been updated, send the following data and any
1667  information you think might be pertinent to config-patches@gnu.org to
1668  provide the necessary information to handle your system.
1669  
1670  config.guess timestamp = $timestamp
1671  
1672  uname -m = $( (uname -m) 2>/dev/null || echo unknown)
1673  uname -r = $( (uname -r) 2>/dev/null || echo unknown)
1674  uname -s = $( (uname -s) 2>/dev/null || echo unknown)
1675  uname -v = $( (uname -v) 2>/dev/null || echo unknown)
1676  
1677  /usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null)
1678  /bin/uname -X     = $( (/bin/uname -X) 2>/dev/null)
1679  
1680  hostinfo               = $( (hostinfo) 2>/dev/null)
1681  /bin/universe          = $( (/bin/universe) 2>/dev/null)
1682  /usr/bin/arch -k       = $( (/usr/bin/arch -k) 2>/dev/null)
1683  /bin/arch              = $( (/bin/arch) 2>/dev/null)
1684  /usr/bin/oslevel       = $( (/usr/bin/oslevel) 2>/dev/null)
1685  /usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null)
1686  
1687  UNAME_MACHINE = "$UNAME_MACHINE"
1688  UNAME_RELEASE = "$UNAME_RELEASE"
1689  UNAME_SYSTEM  = "$UNAME_SYSTEM"
1690  UNAME_VERSION = "$UNAME_VERSION"
1691  EOF
1692  fi
1693  
1694  exit 1
1695  
1696  # Local variables:
1697  # eval: (add-hook 'before-save-hook 'time-stamp)
1698  # time-stamp-start: "timestamp='"
1699  # time-stamp-format: "%:y-%02m-%02d"
1700  # time-stamp-end: "'"
1701  # End: