config.guess 47.3 KB
Newer Older
1 2
#! /bin/sh
# Attempt to guess a canonical system name.
Paul Eggert's avatar
Paul Eggert committed
3
#   Copyright 1992-2020 Free Software Foundation, Inc.
4

Paul Eggert's avatar
Paul Eggert committed
5
timestamp='2020-01-01'
6 7 8 9 10 11 12 13 14 15 16 17

# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
Paul Eggert's avatar
Paul Eggert committed
18
# along with this program; if not, see <https://www.gnu.org/licenses/>.
19 20 21 22 23 24 25 26 27 28 29
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program.  This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
Paul Eggert's avatar
Paul Eggert committed
30
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
31 32 33 34 35 36 37 38 39 40 41
#
# Please send patches to <config-patches@gnu.org>.


me=`echo "$0" | sed -e 's,.*/,,'`

usage="\
Usage: $0 [OPTION]

Output the configuration name of the system \`$me' is run on.

Paul Eggert's avatar
Paul Eggert committed
42
Options:
43 44 45 46 47 48 49 50 51 52
  -h, --help         print this help, then exit
  -t, --time-stamp   print date of last modification, then exit
  -v, --version      print version number, then exit

Report bugs and patches to <config-patches@gnu.org>."

version="\
GNU config.guess ($timestamp)

Originally written by Per Bothner.
Paul Eggert's avatar
Paul Eggert committed
53
Copyright 1992-2020 Free Software Foundation, Inc.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."

help="
Try \`$me --help' for more information."

# Parse command line
while test $# -gt 0 ; do
  case $1 in
    --time-stamp | --time* | -t )
       echo "$timestamp" ; exit ;;
    --version | -v )
       echo "$version" ; exit ;;
    --help | --h* | -h )
       echo "$usage"; exit ;;
    -- )     # Stop option processing
       shift; break ;;
    - )	# Use stdin as input.
       break ;;
    -* )
       echo "$me: invalid option $1$help" >&2
       exit 1 ;;
    * )
       break ;;
  esac
done

if test $# != 0; then
  echo "$me: too many arguments$help" >&2
  exit 1
fi

# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.

# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.

# Portable tmp directory creation inspired by the Autoconf team.

Paul Eggert's avatar
Paul Eggert committed
97 98
tmp=
# shellcheck disable=SC2172
Paul Eggert's avatar
Paul Eggert committed
99
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
Paul Eggert's avatar
Paul Eggert committed
100 101

set_cc_for_build() {
Paul Eggert's avatar
Paul Eggert committed
102 103
    # prevent multiple calls if $tmp is already set
    test "$tmp" && return 0
Paul Eggert's avatar
Paul Eggert committed
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
    : "${TMPDIR=/tmp}"
    # shellcheck disable=SC2039
    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
    dummy=$tmp/dummy
    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
	,,)    echo "int x;" > "$dummy.c"
	       for driver in cc gcc c89 c99 ; do
		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
		       CC_FOR_BUILD="$driver"
		       break
		   fi
	       done
	       if test x"$CC_FOR_BUILD" = x ; then
		   CC_FOR_BUILD=no_compiler_found
	       fi
	       ;;
	,,*)   CC_FOR_BUILD=$CC ;;
	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
    esac
}
127 128 129

# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
Paul Eggert's avatar
Paul Eggert committed
130
if test -f /.attbin/uname ; then
131 132 133 134 135 136 137 138
	PATH=$PATH:/.attbin ; export PATH
fi

UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown

Paul Eggert's avatar
Paul Eggert committed
139
case "$UNAME_SYSTEM" in
140 141 142 143 144
Linux|GNU|GNU/*)
	# If the system lacks a compiler, then just pick glibc.
	# We could probably try harder.
	LIBC=gnu

Paul Eggert's avatar
Paul Eggert committed
145
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
146
	cat <<-EOF > "$dummy.c"
147 148 149 150 151 152 153 154 155
	#include <features.h>
	#if defined(__UCLIBC__)
	LIBC=uclibc
	#elif defined(__dietlibc__)
	LIBC=dietlibc
	#else
	LIBC=gnu
	#endif
	EOF
Paul Eggert's avatar
Paul Eggert committed
156 157 158 159 160 161 162 163
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"

	# If ldd exists, use it to detect musl libc.
	if command -v ldd >/dev/null && \
		ldd --version 2>&1 | grep -q ^musl
	then
	    LIBC=musl
	fi
164 165 166 167 168
	;;
esac

# Note: order is significant - the case branches are not exclusive.

Paul Eggert's avatar
Paul Eggert committed
169
case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
170 171 172 173 174 175 176 177 178 179 180 181 182
    *:NetBSD:*:*)
	# NetBSD (nbsd) targets should (where applicable) match one or
	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
	# switched to ELF, *-*-netbsd* would select the old
	# object file format.  This provides both forward
	# compatibility and a consistent mechanism for selecting the
	# object file format.
	#
	# Note: NetBSD doesn't particularly care about the vendor
	# portion of the name.  We always set it to "unknown".
	sysctl="sysctl -n hw.machine_arch"
	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
Paul Eggert's avatar
Paul Eggert committed
183 184
	    "/sbin/$sysctl" 2>/dev/null || \
	    "/usr/sbin/$sysctl" 2>/dev/null || \
185
	    echo unknown)`
Paul Eggert's avatar
Paul Eggert committed
186
	case "$UNAME_MACHINE_ARCH" in
187 188 189 190 191 192
	    armeb) machine=armeb-unknown ;;
	    arm*) machine=arm-unknown ;;
	    sh3el) machine=shl-unknown ;;
	    sh3eb) machine=sh-unknown ;;
	    sh5el) machine=sh5le-unknown ;;
	    earmv*)
Paul Eggert's avatar
Paul Eggert committed
193 194 195
		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
		machine="${arch}${endian}"-unknown
196
		;;
Paul Eggert's avatar
Paul Eggert committed
197
	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
198 199 200
	esac
	# The Operating System including object format, if it has switched
	# to ELF recently (or will in the future) and ABI.
Paul Eggert's avatar
Paul Eggert committed
201
	case "$UNAME_MACHINE_ARCH" in
202 203 204 205
	    earm*)
		os=netbsdelf
		;;
	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
Paul Eggert's avatar
Paul Eggert committed
206
		set_cc_for_build
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
			| grep -q __ELF__
		then
		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
		    # Return netbsd for either.  FIX?
		    os=netbsd
		else
		    os=netbsdelf
		fi
		;;
	    *)
		os=netbsd
		;;
	esac
	# Determine ABI tags.
Paul Eggert's avatar
Paul Eggert committed
222
	case "$UNAME_MACHINE_ARCH" in
223 224
	    earm*)
		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
Paul Eggert's avatar
Paul Eggert committed
225
		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
226 227 228 229 230 231 232
		;;
	esac
	# The OS release
	# Debian GNU/NetBSD machines have a different userland, and
	# thus, need a distinct triplet. However, they do not need
	# kernel version information, so it can be replaced with a
	# suitable tag, in the style of linux-gnu.
Paul Eggert's avatar
Paul Eggert committed
233
	case "$UNAME_VERSION" in
234 235 236 237
	    Debian*)
		release='-gnu'
		;;
	    *)
Paul Eggert's avatar
Paul Eggert committed
238
		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
239 240 241 242 243
		;;
	esac
	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
	# contains redundant information, the shorter form:
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
Paul Eggert's avatar
Paul Eggert committed
244
	echo "$machine-${os}${release}${abi-}"
245 246 247
	exit ;;
    *:Bitrig:*:*)
	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
Paul Eggert's avatar
Paul Eggert committed
248
	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
249 250 251
	exit ;;
    *:OpenBSD:*:*)
	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
Paul Eggert's avatar
Paul Eggert committed
252
	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
253 254 255
	exit ;;
    *:LibertyBSD:*:*)
	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
Paul Eggert's avatar
Paul Eggert committed
256
	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
257
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
258
    *:MidnightBSD:*:*)
Paul Eggert's avatar
Paul Eggert committed
259
	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
Paul Eggert's avatar
Paul Eggert committed
260
	exit ;;
261
    *:ekkoBSD:*:*)
Paul Eggert's avatar
Paul Eggert committed
262
	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
263 264
	exit ;;
    *:SolidBSD:*:*)
Paul Eggert's avatar
Paul Eggert committed
265
	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
266
	exit ;;
267 268 269
    *:OS108:*:*)
	echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
	exit ;;
270
    macppc:MirBSD:*:*)
Paul Eggert's avatar
Paul Eggert committed
271
	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
272 273
	exit ;;
    *:MirBSD:*:*)
Paul Eggert's avatar
Paul Eggert committed
274
	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
275 276
	exit ;;
    *:Sortix:*:*)
Paul Eggert's avatar
Paul Eggert committed
277
	echo "$UNAME_MACHINE"-unknown-sortix
278
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
279 280 281
    *:Twizzler:*:*)
	echo "$UNAME_MACHINE"-unknown-twizzler
	exit ;;
282
    *:Redox:*:*)
Paul Eggert's avatar
Paul Eggert committed
283
	echo "$UNAME_MACHINE"-unknown-redox
284
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
285
    mips:OSF1:*.*)
Paul Eggert's avatar
Paul Eggert committed
286 287
	echo mips-dec-osf1
	exit ;;
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
    alpha:OSF1:*:*)
	case $UNAME_RELEASE in
	*4.0)
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
		;;
	*5.*)
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
		;;
	esac
	# According to Compaq, /usr/sbin/psrinfo has been available on
	# OSF/1 and Tru64 systems produced since 1995.  I hope that
	# covers most systems running today.  This code pipes the CPU
	# types through head -n 1, so we only detect the type of CPU 0.
	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
	case "$ALPHA_CPU_TYPE" in
	    "EV4 (21064)")
		UNAME_MACHINE=alpha ;;
	    "EV4.5 (21064)")
		UNAME_MACHINE=alpha ;;
	    "LCA4 (21066/21068)")
		UNAME_MACHINE=alpha ;;
	    "EV5 (21164)")
		UNAME_MACHINE=alphaev5 ;;
	    "EV5.6 (21164A)")
		UNAME_MACHINE=alphaev56 ;;
	    "EV5.6 (21164PC)")
		UNAME_MACHINE=alphapca56 ;;
	    "EV5.7 (21164PC)")
		UNAME_MACHINE=alphapca57 ;;
	    "EV6 (21264)")
		UNAME_MACHINE=alphaev6 ;;
	    "EV6.7 (21264A)")
		UNAME_MACHINE=alphaev67 ;;
	    "EV6.8CB (21264C)")
		UNAME_MACHINE=alphaev68 ;;
	    "EV6.8AL (21264B)")
		UNAME_MACHINE=alphaev68 ;;
	    "EV6.8CX (21264D)")
		UNAME_MACHINE=alphaev68 ;;
	    "EV6.9A (21264/EV69A)")
		UNAME_MACHINE=alphaev69 ;;
	    "EV7 (21364)")
		UNAME_MACHINE=alphaev7 ;;
	    "EV7.9 (21364A)")
		UNAME_MACHINE=alphaev79 ;;
	esac
	# A Pn.n version is a patched version.
	# A Vn.n version is a released version.
	# A Tn.n version is a released field test version.
	# A Xn.n version is an unreleased experimental baselevel.
	# 1.2 uses "1.2" for uname -r.
Paul Eggert's avatar
Paul Eggert committed
339
	echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
340 341 342 343 344 345 346 347
	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
	exitcode=$?
	trap '' 0
	exit $exitcode ;;
    Amiga*:UNIX_System_V:4.0:*)
	echo m68k-unknown-sysv4
	exit ;;
    *:[Aa]miga[Oo][Ss]:*:*)
Paul Eggert's avatar
Paul Eggert committed
348
	echo "$UNAME_MACHINE"-unknown-amigaos
349 350
	exit ;;
    *:[Mm]orph[Oo][Ss]:*:*)
Paul Eggert's avatar
Paul Eggert committed
351
	echo "$UNAME_MACHINE"-unknown-morphos
352 353 354 355 356 357 358 359 360 361 362
	exit ;;
    *:OS/390:*:*)
	echo i370-ibm-openedition
	exit ;;
    *:z/VM:*:*)
	echo s390-ibm-zvmoe
	exit ;;
    *:OS400:*:*)
	echo powerpc-ibm-os400
	exit ;;
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
Paul Eggert's avatar
Paul Eggert committed
363
	echo arm-acorn-riscix"$UNAME_RELEASE"
364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389
	exit ;;
    arm*:riscos:*:*|arm*:RISCOS:*:*)
	echo arm-unknown-riscos
	exit ;;
    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
	echo hppa1.1-hitachi-hiuxmpp
	exit ;;
    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
	if test "`(/bin/universe) 2>/dev/null`" = att ; then
		echo pyramid-pyramid-sysv3
	else
		echo pyramid-pyramid-bsd
	fi
	exit ;;
    NILE*:*:*:dcosx)
	echo pyramid-pyramid-svr4
	exit ;;
    DRS?6000:unix:4.0:6*)
	echo sparc-icl-nx6
	exit ;;
    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
	case `/usr/bin/uname -p` in
	    sparc) echo sparc-icl-nx7; exit ;;
	esac ;;
    s390x:SunOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
390
	echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
391 392
	exit ;;
    sun4H:SunOS:5.*:*)
Paul Eggert's avatar
Paul Eggert committed
393
	echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
394 395
	exit ;;
    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
Paul Eggert's avatar
Paul Eggert committed
396
	echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
397 398
	exit ;;
    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
Paul Eggert's avatar
Paul Eggert committed
399
	echo i386-pc-auroraux"$UNAME_RELEASE"
400 401
	exit ;;
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
Paul Eggert's avatar
Paul Eggert committed
402 403 404 405 406 407 408 409 410 411 412 413 414 415
	set_cc_for_build
	SUN_ARCH=i386
	# If there is a compiler, see if it is configured for 64-bit objects.
	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
	# This test works for both compilers.
	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
		grep IS_64BIT_ARCH >/dev/null
	    then
		SUN_ARCH=x86_64
	    fi
	fi
	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
416 417 418 419 420
	exit ;;
    sun4*:SunOS:6*:*)
	# According to config.sub, this is the proper way to canonicalize
	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
	# it's likely to be more like Solaris than SunOS4.
Paul Eggert's avatar
Paul Eggert committed
421
	echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
422 423 424 425 426 427 428 429
	exit ;;
    sun4*:SunOS:*:*)
	case "`/usr/bin/arch -k`" in
	    Series*|S4*)
		UNAME_RELEASE=`uname -v`
		;;
	esac
	# Japanese Language versions have a version number like `4.1.3-JL'.
Paul Eggert's avatar
Paul Eggert committed
430
	echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
431 432
	exit ;;
    sun3*:SunOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
433
	echo m68k-sun-sunos"$UNAME_RELEASE"
434 435 436
	exit ;;
    sun*:*:4.2BSD:*)
	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
Paul Eggert's avatar
Paul Eggert committed
437
	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
438 439
	case "`/bin/arch`" in
	    sun3)
Paul Eggert's avatar
Paul Eggert committed
440
		echo m68k-sun-sunos"$UNAME_RELEASE"
441 442
		;;
	    sun4)
Paul Eggert's avatar
Paul Eggert committed
443
		echo sparc-sun-sunos"$UNAME_RELEASE"
444 445 446 447
		;;
	esac
	exit ;;
    aushp:SunOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
448
	echo sparc-auspex-sunos"$UNAME_RELEASE"
449 450 451 452 453 454 455 456 457 458
	exit ;;
    # The situation for MiNT is a little confusing.  The machine name
    # can be virtually everything (everything which is not
    # "atarist" or "atariste" at least should have a processor
    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
    # to the lowercase version "mint" (or "freemint").  Finally
    # the system name "TOS" denotes a system which is actually not
    # MiNT.  But MiNT is downward compatible to TOS, so this should
    # be no problem.
    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
459
	echo m68k-atari-mint"$UNAME_RELEASE"
460 461
	exit ;;
    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
462
	echo m68k-atari-mint"$UNAME_RELEASE"
463 464
	exit ;;
    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
465
	echo m68k-atari-mint"$UNAME_RELEASE"
466 467
	exit ;;
    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
468
	echo m68k-milan-mint"$UNAME_RELEASE"
469 470
	exit ;;
    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
471
	echo m68k-hades-mint"$UNAME_RELEASE"
472 473
	exit ;;
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
474
	echo m68k-unknown-mint"$UNAME_RELEASE"
475 476
	exit ;;
    m68k:machten:*:*)
Paul Eggert's avatar
Paul Eggert committed
477
	echo m68k-apple-machten"$UNAME_RELEASE"
478 479
	exit ;;
    powerpc:machten:*:*)
Paul Eggert's avatar
Paul Eggert committed
480
	echo powerpc-apple-machten"$UNAME_RELEASE"
481 482 483 484 485
	exit ;;
    RISC*:Mach:*:*)
	echo mips-dec-mach_bsd4.3
	exit ;;
    RISC*:ULTRIX:*:*)
Paul Eggert's avatar
Paul Eggert committed
486
	echo mips-dec-ultrix"$UNAME_RELEASE"
487 488
	exit ;;
    VAX*:ULTRIX*:*:*)
Paul Eggert's avatar
Paul Eggert committed
489
	echo vax-dec-ultrix"$UNAME_RELEASE"
490 491
	exit ;;
    2020:CLIX:*:* | 2430:CLIX:*:*)
Paul Eggert's avatar
Paul Eggert committed
492
	echo clipper-intergraph-clix"$UNAME_RELEASE"
493 494
	exit ;;
    mips:*:*:UMIPS | mips:*:*:RISCos)
Paul Eggert's avatar
Paul Eggert committed
495
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
496
	sed 's/^	//' << EOF > "$dummy.c"
497 498 499 500 501 502 503 504
#ifdef __cplusplus
#include <stdio.h>  /* for printf() prototype */
	int main (int argc, char *argv[]) {
#else
	int main (argc, argv) int argc; char *argv[]; {
#endif
	#if defined (host_mips) && defined (MIPSEB)
	#if defined (SYSTYPE_SYSV)
Paul Eggert's avatar
Paul Eggert committed
505
	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
506 507
	#endif
	#if defined (SYSTYPE_SVR4)
Paul Eggert's avatar
Paul Eggert committed
508
	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
509 510
	#endif
	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
Paul Eggert's avatar
Paul Eggert committed
511
	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
512 513 514 515 516
	#endif
	#endif
	  exit (-1);
	}
EOF
Paul Eggert's avatar
Paul Eggert committed
517 518 519
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
520
	    { echo "$SYSTEM_NAME"; exit; }
Paul Eggert's avatar
Paul Eggert committed
521
	echo mips-mips-riscos"$UNAME_RELEASE"
522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546
	exit ;;
    Motorola:PowerMAX_OS:*:*)
	echo powerpc-motorola-powermax
	exit ;;
    Motorola:*:4.3:PL8-*)
	echo powerpc-harris-powermax
	exit ;;
    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
	echo powerpc-harris-powermax
	exit ;;
    Night_Hawk:Power_UNIX:*:*)
	echo powerpc-harris-powerunix
	exit ;;
    m88k:CX/UX:7*:*)
	echo m88k-harris-cxux7
	exit ;;
    m88k:*:4*:R4*)
	echo m88k-motorola-sysv4
	exit ;;
    m88k:*:3*:R3*)
	echo m88k-motorola-sysv3
	exit ;;
    AViiON:dgux:*:*)
	# DG/UX returns AViiON for all architectures
	UNAME_PROCESSOR=`/usr/bin/uname -p`
Paul Eggert's avatar
Paul Eggert committed
547
	if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
548
	then
Paul Eggert's avatar
Paul Eggert committed
549 550
	    if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
	       [ "$TARGET_BINARY_INTERFACE"x = x ]
551
	    then
Paul Eggert's avatar
Paul Eggert committed
552
		echo m88k-dg-dgux"$UNAME_RELEASE"
553
	    else
Paul Eggert's avatar
Paul Eggert committed
554
		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
555 556
	    fi
	else
Paul Eggert's avatar
Paul Eggert committed
557
	    echo i586-dg-dgux"$UNAME_RELEASE"
558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573
	fi
	exit ;;
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
	echo m88k-dolphin-sysv3
	exit ;;
    M88*:*:R3*:*)
	# Delta 88k system running SVR3
	echo m88k-motorola-sysv3
	exit ;;
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
	echo m88k-tektronix-sysv3
	exit ;;
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
	echo m68k-tektronix-bsd
	exit ;;
    *:IRIX*:*:*)
Paul Eggert's avatar
Paul Eggert committed
574
	echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
575 576 577 578 579 580 581 582 583 584 585
	exit ;;
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
    i*86:AIX:*:*)
	echo i386-ibm-aix
	exit ;;
    ia64:AIX:*:*)
	if [ -x /usr/bin/oslevel ] ; then
		IBM_REV=`/usr/bin/oslevel`
	else
Paul Eggert's avatar
Paul Eggert committed
586
		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
587
	fi
Paul Eggert's avatar
Paul Eggert committed
588
	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
589 590 591
	exit ;;
    *:AIX:2:3)
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
Paul Eggert's avatar
Paul Eggert committed
592
		set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
593
		sed 's/^		//' << EOF > "$dummy.c"
594 595 596 597 598 599 600 601 602 603
		#include <sys/systemcfg.h>

		main()
			{
			if (!__power_pc())
				exit(1);
			puts("powerpc-ibm-aix3.2.5");
			exit(0);
			}
EOF
Paul Eggert's avatar
Paul Eggert committed
604
		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
605 606 607 608 609 610 611 612 613 614 615 616 617
		then
			echo "$SYSTEM_NAME"
		else
			echo rs6000-ibm-aix3.2.5
		fi
	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
		echo rs6000-ibm-aix3.2.4
	else
		echo rs6000-ibm-aix3.2
	fi
	exit ;;
    *:AIX:*:[4567])
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
Paul Eggert's avatar
Paul Eggert committed
618
	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
619 620 621 622 623 624 625 626
		IBM_ARCH=rs6000
	else
		IBM_ARCH=powerpc
	fi
	if [ -x /usr/bin/lslpp ] ; then
		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
	else
Paul Eggert's avatar
Paul Eggert committed
627
		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
628
	fi
Paul Eggert's avatar
Paul Eggert committed
629
	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
630 631 632 633
	exit ;;
    *:AIX:*:*)
	echo rs6000-ibm-aix
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
634
    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
635 636 637
	echo romp-ibm-bsd4.4
	exit ;;
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
Paul Eggert's avatar
Paul Eggert committed
638
	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
639 640 641 642 643 644 645 646 647 648 649 650 651 652
	exit ;;                             # report: romp-ibm BSD 4.3
    *:BOSX:*:*)
	echo rs6000-bull-bosx
	exit ;;
    DPX/2?00:B.O.S.:*:*)
	echo m68k-bull-sysv3
	exit ;;
    9000/[34]??:4.3bsd:1.*:*)
	echo m68k-hp-bsd
	exit ;;
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
	echo m68k-hp-bsd4.4
	exit ;;
    9000/[34678]??:HP-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
653 654
	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
	case "$UNAME_MACHINE" in
Paul Eggert's avatar
Paul Eggert committed
655 656
	    9000/31?)            HP_ARCH=m68000 ;;
	    9000/[34]??)         HP_ARCH=m68k ;;
657 658 659 660
	    9000/[678][0-9][0-9])
		if [ -x /usr/bin/getconf ]; then
		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
Paul Eggert's avatar
Paul Eggert committed
661
		    case "$sc_cpu_version" in
662 663 664
		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
		      532)                      # CPU_PA_RISC2_0
Paul Eggert's avatar
Paul Eggert committed
665
			case "$sc_kernel_bits" in
666 667 668 669 670 671
			  32) HP_ARCH=hppa2.0n ;;
			  64) HP_ARCH=hppa2.0w ;;
			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
			esac ;;
		    esac
		fi
Paul Eggert's avatar
Paul Eggert committed
672
		if [ "$HP_ARCH" = "" ]; then
Paul Eggert's avatar
Paul Eggert committed
673
		    set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
674
		    sed 's/^		//' << EOF > "$dummy.c"
675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706

		#define _HPUX_SOURCE
		#include <stdlib.h>
		#include <unistd.h>

		int main ()
		{
		#if defined(_SC_KERNEL_BITS)
		    long bits = sysconf(_SC_KERNEL_BITS);
		#endif
		    long cpu  = sysconf (_SC_CPU_VERSION);

		    switch (cpu)
			{
			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
			case CPU_PA_RISC2_0:
		#if defined(_SC_KERNEL_BITS)
			    switch (bits)
				{
				case 64: puts ("hppa2.0w"); break;
				case 32: puts ("hppa2.0n"); break;
				default: puts ("hppa2.0"); break;
				} break;
		#else  /* !defined(_SC_KERNEL_BITS) */
			    puts ("hppa2.0"); break;
		#endif
			default: puts ("hppa1.0"); break;
			}
		    exit (0);
		}
EOF
Paul Eggert's avatar
Paul Eggert committed
707
		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
708 709 710
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
	esac
Paul Eggert's avatar
Paul Eggert committed
711
	if [ "$HP_ARCH" = hppa2.0w ]
712
	then
Paul Eggert's avatar
Paul Eggert committed
713
	    set_cc_for_build
714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731

	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
	    # generating 64-bit code.  GNU and HP use different nomenclature:
	    #
	    # $ CC_FOR_BUILD=cc ./config.guess
	    # => hppa2.0w-hp-hpux11.23
	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
	    # => hppa64-hp-hpux11.23

	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
		grep -q __LP64__
	    then
		HP_ARCH=hppa2.0w
	    else
		HP_ARCH=hppa64
	    fi
	fi
Paul Eggert's avatar
Paul Eggert committed
732
	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
733 734
	exit ;;
    ia64:HP-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
735 736
	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
	echo ia64-hp-hpux"$HPUX_REV"
737 738
	exit ;;
    3050*:HI-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
739
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
740
	sed 's/^	//' << EOF > "$dummy.c"
741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764
	#include <unistd.h>
	int
	main ()
	{
	  long cpu = sysconf (_SC_CPU_VERSION);
	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
	     results, however.  */
	  if (CPU_IS_PA_RISC (cpu))
	    {
	      switch (cpu)
		{
		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
		  default: puts ("hppa-hitachi-hiuxwe2"); break;
		}
	    }
	  else if (CPU_IS_HP_MC68K (cpu))
	    puts ("m68k-hitachi-hiuxwe2");
	  else puts ("unknown-hitachi-hiuxwe2");
	  exit (0);
	}
EOF
Paul Eggert's avatar
Paul Eggert committed
765
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
766 767 768
		{ echo "$SYSTEM_NAME"; exit; }
	echo unknown-hitachi-hiuxwe2
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
769
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
770 771 772 773 774 775 776 777
	echo hppa1.1-hp-bsd
	exit ;;
    9000/8??:4.3bsd:*:*)
	echo hppa1.0-hp-bsd
	exit ;;
    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
	echo hppa1.0-hp-mpeix
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
778
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
779 780 781 782 783 784 785
	echo hppa1.1-hp-osf
	exit ;;
    hp8??:OSF1:*:*)
	echo hppa1.0-hp-osf
	exit ;;
    i*86:OSF1:*:*)
	if [ -x /usr/sbin/sysversion ] ; then
Paul Eggert's avatar
Paul Eggert committed
786
	    echo "$UNAME_MACHINE"-unknown-osf1mk
787
	else
Paul Eggert's avatar
Paul Eggert committed
788
	    echo "$UNAME_MACHINE"-unknown-osf1
789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812
	fi
	exit ;;
    parisc*:Lites*:*:*)
	echo hppa1.1-hp-lites
	exit ;;
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
	echo c1-convex-bsd
	exit ;;
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
	if getsysinfo -f scalar_acc
	then echo c32-convex-bsd
	else echo c2-convex-bsd
	fi
	exit ;;
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
	echo c34-convex-bsd
	exit ;;
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
	echo c38-convex-bsd
	exit ;;
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
	echo c4-convex-bsd
	exit ;;
    CRAY*Y-MP:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
813
	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
814 815
	exit ;;
    CRAY*[A-Z]90:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
816
	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
817 818 819 820 821
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
	      -e 's/\.[^.]*$/.X/'
	exit ;;
    CRAY*TS:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
822
	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
823 824
	exit ;;
    CRAY*T3E:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
825
	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
826 827
	exit ;;
    CRAY*SV1:*:*:*)
Paul Eggert's avatar
Paul Eggert committed
828
	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
829 830
	exit ;;
    *:UNICOS/mp:*:*)
Paul Eggert's avatar
Paul Eggert committed
831
	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
832 833 834 835
	exit ;;
    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
Paul Eggert's avatar
Paul Eggert committed
836
	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
837 838 839 840
	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
	exit ;;
    5000:UNIX_System_V:4.*:*)
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
Paul Eggert's avatar
Paul Eggert committed
841
	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
842 843 844
	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
	exit ;;
    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
Paul Eggert's avatar
Paul Eggert committed
845
	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
846 847
	exit ;;
    sparc*:BSD/OS:*:*)
Paul Eggert's avatar
Paul Eggert committed
848
	echo sparc-unknown-bsdi"$UNAME_RELEASE"
849 850
	exit ;;
    *:BSD/OS:*:*)
Paul Eggert's avatar
Paul Eggert committed
851
	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
852
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
853
    arm:FreeBSD:*:*)
Paul Eggert's avatar
Paul Eggert committed
854 855 856 857 858 859 860 861 862 863
	UNAME_PROCESSOR=`uname -p`
	set_cc_for_build
	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_PCS_VFP
	then
	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
	else
	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
	fi
	exit ;;
864 865
    *:FreeBSD:*:*)
	UNAME_PROCESSOR=`/usr/bin/uname -p`
Paul Eggert's avatar
Paul Eggert committed
866
	case "$UNAME_PROCESSOR" in
867 868 869 870 871
	    amd64)
		UNAME_PROCESSOR=x86_64 ;;
	    i386)
		UNAME_PROCESSOR=i586 ;;
	esac
Paul Eggert's avatar
Paul Eggert committed
872
	echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
873 874
	exit ;;
    i*:CYGWIN*:*)
Paul Eggert's avatar
Paul Eggert committed
875
	echo "$UNAME_MACHINE"-pc-cygwin
876 877
	exit ;;
    *:MINGW64*:*)
Paul Eggert's avatar
Paul Eggert committed
878
	echo "$UNAME_MACHINE"-pc-mingw64
879 880
	exit ;;
    *:MINGW*:*)
Paul Eggert's avatar
Paul Eggert committed
881
	echo "$UNAME_MACHINE"-pc-mingw32
882 883
	exit ;;
    *:MSYS*:*)
Paul Eggert's avatar
Paul Eggert committed
884
	echo "$UNAME_MACHINE"-pc-msys
885 886
	exit ;;
    i*:PW*:*)
Paul Eggert's avatar
Paul Eggert committed
887
	echo "$UNAME_MACHINE"-pc-pw32
888 889
	exit ;;
    *:Interix*:*)
Paul Eggert's avatar
Paul Eggert committed
890
	case "$UNAME_MACHINE" in
891
	    x86)
Paul Eggert's avatar
Paul Eggert committed
892
		echo i586-pc-interix"$UNAME_RELEASE"
893 894
		exit ;;
	    authenticamd | genuineintel | EM64T)
Paul Eggert's avatar
Paul Eggert committed
895
		echo x86_64-unknown-interix"$UNAME_RELEASE"
896 897
		exit ;;
	    IA64)
Paul Eggert's avatar
Paul Eggert committed
898
		echo ia64-unknown-interix"$UNAME_RELEASE"
899 900 901
		exit ;;
	esac ;;
    i*:UWIN*:*)
Paul Eggert's avatar
Paul Eggert committed
902
	echo "$UNAME_MACHINE"-pc-uwin
903 904
	exit ;;
    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
Paul Eggert's avatar
Paul Eggert committed
905
	echo x86_64-pc-cygwin
906 907
	exit ;;
    prep*:SunOS:5.*:*)
Paul Eggert's avatar
Paul Eggert committed
908
	echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
909 910 911
	exit ;;
    *:GNU:*:*)
	# the GNU system
Paul Eggert's avatar
Paul Eggert committed
912
	echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
913 914 915
	exit ;;
    *:GNU/*:*:*)
	# other systems with GNU libc and userland
Paul Eggert's avatar
Paul Eggert committed
916
	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
917
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
918 919
    *:Minix:*:*)
	echo "$UNAME_MACHINE"-unknown-minix
920 921
	exit ;;
    aarch64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
922
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
923 924 925
	exit ;;
    aarch64_be:Linux:*:*)
	UNAME_MACHINE=aarch64_be
Paul Eggert's avatar
Paul Eggert committed
926
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
927 928
	exit ;;
    alpha:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
929
	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
930 931 932 933 934 935 936 937 938 939
	  EV5)   UNAME_MACHINE=alphaev5 ;;
	  EV56)  UNAME_MACHINE=alphaev56 ;;
	  PCA56) UNAME_MACHINE=alphapca56 ;;
	  PCA57) UNAME_MACHINE=alphapca56 ;;
	  EV6)   UNAME_MACHINE=alphaev6 ;;
	  EV67)  UNAME_MACHINE=alphaev67 ;;
	  EV68*) UNAME_MACHINE=alphaev68 ;;
	esac
	objdump --private-headers /bin/sh | grep -q ld.so.1
	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
Paul Eggert's avatar
Paul Eggert committed
940
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
941 942
	exit ;;
    arc:Linux:*:* | arceb:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
943
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
944 945
	exit ;;
    arm*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
946
	set_cc_for_build
947 948 949
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_EABI__
	then
Paul Eggert's avatar
Paul Eggert committed
950
	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
951 952 953 954
	else
	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
		| grep -q __ARM_PCS_VFP
	    then
Paul Eggert's avatar
Paul Eggert committed
955
		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
956
	    else
Paul Eggert's avatar
Paul Eggert committed
957
		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
958 959 960 961
	    fi
	fi
	exit ;;
    avr32*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
962
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
963 964
	exit ;;
    cris:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
965
	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
966 967
	exit ;;
    crisv32:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
968
	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
969 970
	exit ;;
    e2k:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
971
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
972 973
	exit ;;
    frv:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
974
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
975 976
	exit ;;
    hexagon:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
977
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
978 979
	exit ;;
    i*86:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
980
	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
981 982
	exit ;;
    ia64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
983
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
984 985
	exit ;;
    k1om:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
986
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
987 988
	exit ;;
    m32r*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
989
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
990 991
	exit ;;
    m68*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
992
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
993 994
	exit ;;
    mips:Linux:*:* | mips64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
995
	set_cc_for_build
Paul Eggert's avatar
Paul Eggert committed
996 997
	IS_GLIBC=0
	test x"${LIBC}" = xgnu && IS_GLIBC=1
Paul Eggert's avatar
Paul Eggert committed
998
	sed 's/^	//' << EOF > "$dummy.c"
999
	#undef CPU
Paul Eggert's avatar
Paul Eggert committed
1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027
	#undef mips
	#undef mipsel
	#undef mips64
	#undef mips64el
	#if ${IS_GLIBC} && defined(_ABI64)
	LIBCABI=gnuabi64
	#else
	#if ${IS_GLIBC} && defined(_ABIN32)
	LIBCABI=gnuabin32
	#else
	LIBCABI=${LIBC}
	#endif
	#endif

	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
	CPU=mipsisa64r6
	#else
	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
	CPU=mipsisa32r6
	#else
	#if defined(__mips64)
	CPU=mips64
	#else
	CPU=mips
	#endif
	#endif
	#endif

1028
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
Paul Eggert's avatar
Paul Eggert committed
1029
	MIPS_ENDIAN=el
1030 1031
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
Paul Eggert's avatar
Paul Eggert committed
1032
	MIPS_ENDIAN=
1033
	#else
Paul Eggert's avatar
Paul Eggert committed
1034
	MIPS_ENDIAN=
1035 1036 1037
	#endif
	#endif
EOF
Paul Eggert's avatar
Paul Eggert committed
1038 1039
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
1040 1041
	;;
    mips64el:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1042
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1043 1044
	exit ;;
    openrisc*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1045
	echo or1k-unknown-linux-"$LIBC"
1046 1047
	exit ;;
    or32:Linux:*:* | or1k*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1048
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1049 1050
	exit ;;
    padre:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1051
	echo sparc-unknown-linux-"$LIBC"
1052 1053
	exit ;;
    parisc64:Linux:*:* | hppa64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1054
	echo hppa64-unknown-linux-"$LIBC"
1055 1056 1057 1058
	exit ;;
    parisc:Linux:*:* | hppa:Linux:*:*)
	# Look for CPU level
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
Paul Eggert's avatar
Paul Eggert committed
1059 1060 1061
	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
	  *)    echo hppa-unknown-linux-"$LIBC" ;;
1062 1063 1064
	esac
	exit ;;
    ppc64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1065
	echo powerpc64-unknown-linux-"$LIBC"
1066 1067
	exit ;;
    ppc:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1068
	echo powerpc-unknown-linux-"$LIBC"
1069 1070
	exit ;;
    ppc64le:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1071
	echo powerpc64le-unknown-linux-"$LIBC"
1072 1073
	exit ;;
    ppcle:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1074
	echo powerpcle-unknown-linux-"$LIBC"
1075 1076
	exit ;;
    riscv32:Linux:*:* | riscv64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1077
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1078 1079
	exit ;;
    s390:Linux:*:* | s390x:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1080
	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
1081 1082
	exit ;;
    sh64*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1083
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1084 1085
	exit ;;
    sh*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1086
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1087 1088
	exit ;;
    sparc:Linux:*:* | sparc64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1089
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1090 1091
	exit ;;
    tile*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1092
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1093 1094
	exit ;;
    vax:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1095
	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
1096 1097
	exit ;;
    x86_64:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1098
	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
1099 1100
	exit ;;
    xtensa*:Linux:*:*)
Paul Eggert's avatar
Paul Eggert committed
1101
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114
	exit ;;
    i*86:DYNIX/ptx:4*:*)
	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
	# earlier versions are messed up and put the nodename in both
	# sysname and nodename.
	echo i386-sequent-sysv4
	exit ;;
    i*86:UNIX_SV:4.2MP:2.*)
	# Unixware is an offshoot of SVR4, but it has its own version
	# number series starting with 2...
	# I am not positive that other SVR4 systems won't match this,
	# I just have to hope.  -- rms.
	# Use sysv4.2uw... so that sysv4* matches it.
Paul Eggert's avatar
Paul Eggert committed
1115
	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
1116 1117 1118 1119
	exit ;;
    i*86:OS/2:*:*)
	# If we were able to find `uname', then EMX Unix compatibility
	# is probably installed.
Paul Eggert's avatar
Paul Eggert committed
1120
	echo "$UNAME_MACHINE"-pc-os2-emx
1121 1122
	exit ;;
    i*86:XTS-300:*:STOP)
Paul Eggert's avatar
Paul Eggert committed
1123
	echo "$UNAME_MACHINE"-unknown-stop
1124 1125
	exit ;;
    i*86:atheos:*:*)
Paul Eggert's avatar
Paul Eggert committed
1126
	echo "$UNAME_MACHINE"-unknown-atheos
1127 1128
	exit ;;
    i*86:syllable:*:*)
Paul Eggert's avatar
Paul Eggert committed
1129
	echo "$UNAME_MACHINE"-pc-syllable
1130 1131
	exit ;;
    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
Paul Eggert's avatar
Paul Eggert committed
1132
	echo i386-unknown-lynxos"$UNAME_RELEASE"
1133 1134
	exit ;;
    i*86:*DOS:*:*)
Paul Eggert's avatar
Paul Eggert committed
1135
	echo "$UNAME_MACHINE"-pc-msdosdjgpp
1136
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
1137
    i*86:*:4.*:*)
Paul Eggert's avatar
Paul Eggert committed
1138
	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1139
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
Paul Eggert's avatar
Paul Eggert committed
1140
		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
1141
	else
Paul Eggert's avatar
Paul Eggert committed
1142
		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
1143 1144 1145 1146 1147 1148 1149 1150 1151
	fi
	exit ;;
    i*86:*:5:[678]*)
	# UnixWare 7.x, OpenUNIX and OpenServer 6.
	case `/bin/uname -X | grep "^Machine"` in
	    *486*)	     UNAME_MACHINE=i486 ;;
	    *Pentium)	     UNAME_MACHINE=i586 ;;
	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
	esac
Paul Eggert's avatar
Paul Eggert committed
1152
	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
1153 1154 1155 1156
	exit ;;
    i*86:*:3.2:*)
	if test -f /usr/options/cb.name; then
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
Paul Eggert's avatar
Paul Eggert committed
1157
		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
1158 1159 1160 1161 1162 1163 1164 1165 1166
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
			&& UNAME_MACHINE=i586
		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
			&& UNAME_MACHINE=i686
		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
			&& UNAME_MACHINE=i686
Paul Eggert's avatar
Paul Eggert committed
1167
		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
1168
	else
Paul Eggert's avatar
Paul Eggert committed
1169
		echo "$UNAME_MACHINE"-pc-sysv32
1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188
	fi
	exit ;;
    pc:*:*:*)
	# Left here for compatibility:
	# uname -m prints for DJGPP always 'pc', but it prints nothing about
	# the processor, so we play safe by assuming i586.
	# Note: whatever this is, it MUST be the same as what config.sub
	# prints for the "djgpp" host, or else GDB configure will decide that
	# this is a cross-build.
	echo i586-pc-msdosdjgpp
	exit ;;
    Intel:Mach:3*:*)
	echo i386-pc-mach3
	exit ;;
    paragon:*:*:*)
	echo i860-intel-osf1
	exit ;;
    i860:*:4.*:*) # i860-SVR4
	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
Paul Eggert's avatar
Paul Eggert committed
1189
	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
1190
	else # Add other i860-SVR4 vendors below as they are discovered.
Paul Eggert's avatar
Paul Eggert committed
1191
	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210
	fi
	exit ;;
    mini*:CTIX:SYS*5:*)
	# "miniframe"
	echo m68010-convergent-sysv
	exit ;;
    mc68k:UNIX:SYSTEM5:3.51m)
	echo m68k-convergent-sysv
	exit ;;
    M680?0:D-NIX:5.3:*)
	echo m68k-diab-dnix
	exit ;;
    M68*:*:R3V[5678]*:*)
	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
    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)
	OS_REL=''
	test -r /etc/.relid \
	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1211
	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1212
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1213
	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1214 1215 1216 1217 1218 1219 1220 1221
    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
	  && { echo i486-ncr-sysv4; exit; } ;;
    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
	OS_REL='.3'
	test -r /etc/.relid \
	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1222
	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1223
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1224
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
1225
	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
Paul Eggert's avatar
Paul Eggert committed
1226
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1227
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
Paul Eggert's avatar
Paul Eggert committed
1228
	echo m68k-unknown-lynxos"$UNAME_RELEASE"
1229 1230 1231 1232 1233
	exit ;;
    mc68030:UNIX_System_V:4.*:*)
	echo m68k-atari-sysv4
	exit ;;
    TSUNAMI:LynxOS:2.*:*)
Paul Eggert's avatar
Paul Eggert committed
1234
	echo sparc-unknown-lynxos"$UNAME_RELEASE"
1235 1236
	exit ;;
    rs6000:LynxOS:2.*:*)
Paul Eggert's avatar
Paul Eggert committed
1237
	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
1238 1239
	exit ;;
    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
Paul Eggert's avatar
Paul Eggert committed
1240
	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
1241 1242
	exit ;;
    SM[BE]S:UNIX_SV:*:*)
Paul Eggert's avatar
Paul Eggert committed
1243
	echo mips-dde-sysv"$UNAME_RELEASE"
1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
	exit ;;
    RM*:ReliantUNIX-*:*:*)
	echo mips-sni-sysv4
	exit ;;
    RM*:SINIX-*:*:*)
	echo mips-sni-sysv4
	exit ;;
    *:SINIX-*:*:*)
	if uname -p 2>/dev/null >/dev/null ; then
		UNAME_MACHINE=`(uname -p) 2>/dev/null`
Paul Eggert's avatar
Paul Eggert committed
1254
		echo "$UNAME_MACHINE"-sni-sysv4
1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273
	else
		echo ns32k-sni-sysv
	fi
	exit ;;
    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
			# says <Richard.M.Bartel@ccMail.Census.GOV>
	echo i586-unisys-sysv4
	exit ;;
    *:UNIX_System_V:4*:FTX*)
	# From Gerald Hewes <hewes@openmarket.com>.
	# How about differentiating between stratus architectures? -djm
	echo hppa1.1-stratus-sysv4
	exit ;;
    *:*:*:FTX*)
	# From seanf@swdc.stratus.com.
	echo i860-stratus-sysv4
	exit ;;
    i*86:VOS:*:*)
	# From Paul.Green@stratus.com.
Paul Eggert's avatar
Paul Eggert committed
1274
	echo "$UNAME_MACHINE"-stratus-vos
1275 1276 1277 1278 1279 1280
	exit ;;
    *:VOS:*:*)
	# From Paul.Green@stratus.com.
	echo hppa1.1-stratus-vos
	exit ;;
    mc68*:A/UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1281
	echo m68k-apple-aux"$UNAME_RELEASE"
1282 1283 1284 1285 1286 1287
	exit ;;
    news*:NEWS-OS:6*:*)
	echo mips-sony-newsos6
	exit ;;
    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
	if [ -d /usr/nec ]; then
Paul Eggert's avatar
Paul Eggert committed
1288
		echo mips-nec-sysv"$UNAME_RELEASE"
1289
	else
Paul Eggert's avatar
Paul Eggert committed
1290
		echo mips-unknown-sysv"$UNAME_RELEASE"
1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308
	fi
	exit ;;
    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
	echo powerpc-be-beos
	exit ;;
    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
	echo powerpc-apple-beos
	exit ;;
    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
	echo i586-pc-beos
	exit ;;
    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
	echo i586-pc-haiku
	exit ;;
    x86_64:Haiku:*:*)
	echo x86_64-unknown-haiku
	exit ;;
    SX-4:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1309
	echo sx4-nec-superux"$UNAME_RELEASE"
1310 1311
	exit ;;
    SX-5:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1312
	echo sx5-nec-superux"$UNAME_RELEASE"
1313 1314
	exit ;;
    SX-6:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1315
	echo sx6-nec-superux"$UNAME_RELEASE"
1316 1317
	exit ;;
    SX-7:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1318
	echo sx7-nec-superux"$UNAME_RELEASE"
1319 1320
	exit ;;
    SX-8:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1321
	echo sx8-nec-superux"$UNAME_RELEASE"
1322 1323
	exit ;;
    SX-8R:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1324
	echo sx8r-nec-superux"$UNAME_RELEASE"
1325 1326
	exit ;;
    SX-ACE:SUPER-UX:*:*)
Paul Eggert's avatar
Paul Eggert committed
1327
	echo sxace-nec-superux"$UNAME_RELEASE"
1328 1329
	exit ;;
    Power*:Rhapsody:*:*)
Paul Eggert's avatar
Paul Eggert committed
1330
	echo powerpc-apple-rhapsody"$UNAME_RELEASE"
1331 1332
	exit ;;
    *:Rhapsody:*:*)
Paul Eggert's avatar
Paul Eggert committed
1333
	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
1334 1335
	exit ;;
    *:Darwin:*:*)
Paul Eggert's avatar
Paul Eggert committed
1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347
	UNAME_PROCESSOR=`uname -p`
	case $UNAME_PROCESSOR in
	    unknown) UNAME_PROCESSOR=powerpc ;;
	esac
	if command -v xcode-select > /dev/null 2> /dev/null && \
		! xcode-select --print-path > /dev/null 2> /dev/null ; then
	    # Avoid executing cc if there is no toolchain installed as
	    # cc will be a stub that puts up a graphical alert
	    # prompting the user to install developer tools.
	    CC_FOR_BUILD=no_compiler_found
	else
	    set_cc_for_build
1348
	fi
Paul Eggert's avatar
Paul Eggert committed
1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364
	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
		   grep IS_64BIT_ARCH >/dev/null
	    then
		case $UNAME_PROCESSOR in
		    i386) UNAME_PROCESSOR=x86_64 ;;
		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
		esac
	    fi
	    # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
	    if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
		   grep IS_PPC >/dev/null
	    then
		UNAME_PROCESSOR=powerpc
1365 1366
	    fi
	elif test "$UNAME_PROCESSOR" = i386 ; then
Paul Eggert's avatar
Paul Eggert committed
1367 1368
	    # uname -m returns i386 or x86_64
	    UNAME_PROCESSOR=$UNAME_MACHINE
1369
	fi
Paul Eggert's avatar
Paul Eggert committed
1370
	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
1371 1372 1373 1374 1375 1376 1377
	exit ;;
    *:procnto*:*:* | *:QNX:[0123456789]*:*)
	UNAME_PROCESSOR=`uname -p`
	if test "$UNAME_PROCESSOR" = x86; then
		UNAME_PROCESSOR=i386
		UNAME_MACHINE=pc
	fi
Paul Eggert's avatar
Paul Eggert committed
1378
	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
1379 1380 1381 1382
	exit ;;
    *:QNX:*:4*)
	echo i386-pc-qnx
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
1383
    NEO-*:NONSTOP_KERNEL:*:*)
Paul Eggert's avatar
Paul Eggert committed
1384
	echo neo-tandem-nsk"$UNAME_RELEASE"
1385 1386
	exit ;;
    NSE-*:NONSTOP_KERNEL:*:*)
Paul Eggert's avatar
Paul Eggert committed
1387
	echo nse-tandem-nsk"$UNAME_RELEASE"
1388
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
1389
    NSR-*:NONSTOP_KERNEL:*:*)
Paul Eggert's avatar
Paul Eggert committed
1390 1391 1392 1393
	echo nsr-tandem-nsk"$UNAME_RELEASE"
	exit ;;
    NSV-*:NONSTOP_KERNEL:*:*)
	echo nsv-tandem-nsk"$UNAME_RELEASE"
1394
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
1395
    NSX-*:NONSTOP_KERNEL:*:*)
Paul Eggert's avatar
Paul Eggert committed
1396
	echo nsx-tandem-nsk"$UNAME_RELEASE"
1397 1398 1399 1400 1401 1402 1403 1404
	exit ;;
    *:NonStop-UX:*:*)
	echo mips-compaq-nonstopux
	exit ;;
    BS2000:POSIX*:*:*)
	echo bs2000-siemens-sysv
	exit ;;
    DS/*:UNIX_System_V:*:*)
Paul Eggert's avatar
Paul Eggert committed
1405
	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
1406 1407 1408 1409 1410
	exit ;;
    *:Plan9:*:*)
	# "uname -m" is not consistent, so use $cputype instead. 386
	# is converted to i386 for consistency with other x86
	# operating systems.
Paul Eggert's avatar
Paul Eggert committed
1411
	# shellcheck disable=SC2154
1412 1413 1414 1415 1416
	if test "$cputype" = 386; then
	    UNAME_MACHINE=i386
	else
	    UNAME_MACHINE="$cputype"
	fi
Paul Eggert's avatar
Paul Eggert committed
1417
	echo "$UNAME_MACHINE"-unknown-plan9
1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437
	exit ;;
    *:TOPS-10:*:*)
	echo pdp10-unknown-tops10
	exit ;;
    *:TENEX:*:*)
	echo pdp10-unknown-tenex
	exit ;;
    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
	echo pdp10-dec-tops20
	exit ;;
    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
	echo pdp10-xkl-tops20
	exit ;;
    *:TOPS-20:*:*)
	echo pdp10-unknown-tops20
	exit ;;
    *:ITS:*:*)
	echo pdp10-unknown-its
	exit ;;
    SEI:*:*:SEIUX)
Paul Eggert's avatar
Paul Eggert committed
1438
	echo mips-sei-seiux"$UNAME_RELEASE"
1439 1440
	exit ;;
    *:DragonFly:*:*)
Paul Eggert's avatar
Paul Eggert committed
1441
	echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
1442 1443 1444
	exit ;;
    *:*VMS:*:*)
	UNAME_MACHINE=`(uname -p) 2>/dev/null`
Paul Eggert's avatar
Paul Eggert committed
1445
	case "$UNAME_MACHINE" in
1446 1447 1448 1449 1450 1451 1452 1453
	    A*) echo alpha-dec-vms ; exit ;;
	    I*) echo ia64-dec-vms ; exit ;;
	    V*) echo vax-dec-vms ; exit ;;
	esac ;;
    *:XENIX:*:SysV)
	echo i386-pc-xenix
	exit ;;
    i*86:skyos:*:*)
Paul Eggert's avatar
Paul Eggert committed
1454
	echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
1455 1456
	exit ;;
    i*86:rdos:*:*)
Paul Eggert's avatar
Paul Eggert committed
1457
	echo "$UNAME_MACHINE"-pc-rdos
1458 1459
	exit ;;
    i*86:AROS:*:*)
Paul Eggert's avatar
Paul Eggert committed
1460
	echo "$UNAME_MACHINE"-pc-aros
1461 1462
	exit ;;
    x86_64:VMkernel:*:*)
Paul Eggert's avatar
Paul Eggert committed
1463
	echo "$UNAME_MACHINE"-unknown-esx
1464 1465 1466 1467
	exit ;;
    amd64:Isilon\ OneFS:*:*)
	echo x86_64-unknown-onefs
	exit ;;
Paul Eggert's avatar
Paul Eggert committed
1468 1469 1470
    *:Unleashed:*:*)
	echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
	exit ;;
1471 1472
esac

Paul Eggert's avatar
Paul Eggert committed
1473 1474 1475 1476 1477 1478 1479
# No uname command or uname output not recognized.
set_cc_for_build
cat > "$dummy.c" <<EOF
#ifdef _SEQUENT_
#include <sys/types.h>
#include <sys/utsname.h>
#endif
Paul Eggert's avatar
Paul Eggert committed
1480 1481 1482 1483 1484 1485 1486 1487
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#include <signal.h>
#if defined(_SIZE_T_) || defined(SIGLOST)
#include <sys/utsname.h>
#endif
#endif
#endif
Paul Eggert's avatar
Paul Eggert committed
1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573
main ()
{
#if defined (sony)
#if defined (MIPSEB)
  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
     I don't know....  */
  printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
  printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
  "4"
#else
  ""
#endif
  ); exit (0);
#endif
#endif

#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
  int version;
  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
  if (version < 4)
    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
  else
    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
  exit (0);
#endif

#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
  printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
  printf ("ns32k-encore-mach\n"); exit (0);
#else
  printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif

#if defined (__386BSD__)
  printf ("i386-pc-bsd\n"); exit (0);
#endif

#if defined (sequent)
#if defined (i386)
  printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
  printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif

#if defined (_SEQUENT_)
  struct utsname un;

  uname(&un);
  if (strncmp(un.version, "V2", 2) == 0) {
    printf ("i386-sequent-ptx2\n"); exit (0);
  }
  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
    printf ("i386-sequent-ptx1\n"); exit (0);
  }
  printf ("i386-sequent-ptx\n"); exit (0);
#endif

#if defined (vax)
#if !defined (ultrix)
#include <sys/param.h>
#if defined (BSD)