1caade7ccSmrg#! /bin/sh
2caade7ccSmrg# Attempt to guess a canonical system name.
305789e77Smrg#   Copyright 1992-2023 Free Software Foundation, Inc.
4caade7ccSmrg
50760f5d2Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale
60760f5d2Smrg
705789e77Smrgtimestamp='2023-01-01'
8caade7ccSmrg
9caade7ccSmrg# This file is free software; you can redistribute it and/or modify it
10caade7ccSmrg# under the terms of the GNU General Public License as published by
1105789e77Smrg# the Free Software Foundation, either version 3 of the License, or
12caade7ccSmrg# (at your option) any later version.
13caade7ccSmrg#
14caade7ccSmrg# This program is distributed in the hope that it will be useful, but
15caade7ccSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
16caade7ccSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17caade7ccSmrg# General Public License for more details.
18caade7ccSmrg#
19caade7ccSmrg# You should have received a copy of the GNU General Public License
20cc4920e5Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
21caade7ccSmrg#
22caade7ccSmrg# As a special exception to the GNU General Public License, if you
23caade7ccSmrg# distribute this file as part of a program that contains a
24caade7ccSmrg# configuration script generated by Autoconf, you may include it under
25af9a7ee5Smrg# the same distribution terms that you use for the rest of that
26af9a7ee5Smrg# program.  This Exception is an additional permission under section 7
27af9a7ee5Smrg# of the GNU General Public License, version 3 ("GPLv3").
28caade7ccSmrg#
29cc4920e5Smrg# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
30caade7ccSmrg#
31b9b4fd27Smrg# You can get the latest version of this script from:
320760f5d2Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
33af9a7ee5Smrg#
34cc4920e5Smrg# Please send patches to <config-patches@gnu.org>.
35af9a7ee5Smrg
36caade7ccSmrg
370760f5d2Smrg# The "shellcheck disable" line above the timestamp inhibits complaints
380760f5d2Smrg# about features and limitations of the classic Bourne shell that were
390760f5d2Smrg# superseded or lifted in POSIX.  However, this script identifies a wide
400760f5d2Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
410760f5d2Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still
420760f5d2Smrg# have a pre-POSIX /bin/sh.
430760f5d2Smrg
440760f5d2Smrg
45caade7ccSmrgme=`echo "$0" | sed -e 's,.*/,,'`
46caade7ccSmrg
47caade7ccSmrgusage="\
48caade7ccSmrgUsage: $0 [OPTION]
49caade7ccSmrg
50caade7ccSmrgOutput the configuration name of the system \`$me' is run on.
51caade7ccSmrg
52cc4920e5SmrgOptions:
53caade7ccSmrg  -h, --help         print this help, then exit
54caade7ccSmrg  -t, --time-stamp   print date of last modification, then exit
55caade7ccSmrg  -v, --version      print version number, then exit
56caade7ccSmrg
57caade7ccSmrgReport bugs and patches to <config-patches@gnu.org>."
58caade7ccSmrg
59caade7ccSmrgversion="\
60caade7ccSmrgGNU config.guess ($timestamp)
61caade7ccSmrg
62caade7ccSmrgOriginally written by Per Bothner.
6305789e77SmrgCopyright 1992-2023 Free Software Foundation, Inc.
64caade7ccSmrg
65caade7ccSmrgThis is free software; see the source for copying conditions.  There is NO
66caade7ccSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
67caade7ccSmrg
68caade7ccSmrghelp="
69caade7ccSmrgTry \`$me --help' for more information."
70caade7ccSmrg
71caade7ccSmrg# Parse command line
72caade7ccSmrgwhile test $# -gt 0 ; do
73caade7ccSmrg  case $1 in
74caade7ccSmrg    --time-stamp | --time* | -t )
75caade7ccSmrg       echo "$timestamp" ; exit ;;
76caade7ccSmrg    --version | -v )
77caade7ccSmrg       echo "$version" ; exit ;;
78caade7ccSmrg    --help | --h* | -h )
79caade7ccSmrg       echo "$usage"; exit ;;
80caade7ccSmrg    -- )     # Stop option processing
81caade7ccSmrg       shift; break ;;
82caade7ccSmrg    - )	# Use stdin as input.
83caade7ccSmrg       break ;;
84caade7ccSmrg    -* )
85caade7ccSmrg       echo "$me: invalid option $1$help" >&2
86caade7ccSmrg       exit 1 ;;
87caade7ccSmrg    * )
88caade7ccSmrg       break ;;
89caade7ccSmrg  esac
90caade7ccSmrgdone
91caade7ccSmrg
92caade7ccSmrgif test $# != 0; then
93caade7ccSmrg  echo "$me: too many arguments$help" >&2
94caade7ccSmrg  exit 1
95caade7ccSmrgfi
96caade7ccSmrg
970760f5d2Smrg# Just in case it came from the environment.
980760f5d2SmrgGUESS=
99caade7ccSmrg
100caade7ccSmrg# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
101caade7ccSmrg# compiler to aid in system detection is discouraged as it requires
102caade7ccSmrg# temporary files to be created and, as you can see below, it is a
103caade7ccSmrg# headache to deal with in a portable fashion.
104caade7ccSmrg
105caade7ccSmrg# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
106caade7ccSmrg# use `HOST_CC' if defined, but it is deprecated.
107caade7ccSmrg
108caade7ccSmrg# Portable tmp directory creation inspired by the Autoconf team.
109caade7ccSmrg
1100760f5d2Smrgtmp=
1110760f5d2Smrg# shellcheck disable=SC2172
1120760f5d2Smrgtrap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
1130760f5d2Smrg
1140760f5d2Smrgset_cc_for_build() {
1150760f5d2Smrg    # prevent multiple calls if $tmp is already set
1160760f5d2Smrg    test "$tmp" && return 0
1170760f5d2Smrg    : "${TMPDIR=/tmp}"
1180760f5d2Smrg    # shellcheck disable=SC2039,SC3028
1190760f5d2Smrg    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
1200760f5d2Smrg	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
1210760f5d2Smrg	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
1220760f5d2Smrg	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
1230760f5d2Smrg    dummy=$tmp/dummy
1240760f5d2Smrg    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
1250760f5d2Smrg	,,)    echo "int x;" > "$dummy.c"
1260760f5d2Smrg	       for driver in cc gcc c89 c99 ; do
1270760f5d2Smrg		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
1280760f5d2Smrg		       CC_FOR_BUILD=$driver
1290760f5d2Smrg		       break
1300760f5d2Smrg		   fi
1310760f5d2Smrg	       done
1320760f5d2Smrg	       if test x"$CC_FOR_BUILD" = x ; then
1330760f5d2Smrg		   CC_FOR_BUILD=no_compiler_found
1340760f5d2Smrg	       fi
1350760f5d2Smrg	       ;;
1360760f5d2Smrg	,,*)   CC_FOR_BUILD=$CC ;;
1370760f5d2Smrg	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
1380760f5d2Smrg    esac
1390760f5d2Smrg}
140caade7ccSmrg
141caade7ccSmrg# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
142caade7ccSmrg# (ghazi@noc.rutgers.edu 1994-08-24)
1430760f5d2Smrgif test -f /.attbin/uname ; then
144caade7ccSmrg	PATH=$PATH:/.attbin ; export PATH
145caade7ccSmrgfi
146caade7ccSmrg
147caade7ccSmrgUNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
148caade7ccSmrgUNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
1490760f5d2SmrgUNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
150caade7ccSmrgUNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
151caade7ccSmrg
1520760f5d2Smrgcase $UNAME_SYSTEM in
153cc4920e5SmrgLinux|GNU|GNU/*)
1540760f5d2Smrg	LIBC=unknown
155cc4920e5Smrg
1560760f5d2Smrg	set_cc_for_build
157cc4920e5Smrg	cat <<-EOF > "$dummy.c"
158cc4920e5Smrg	#include <features.h>
159cc4920e5Smrg	#if defined(__UCLIBC__)
160cc4920e5Smrg	LIBC=uclibc
161cc4920e5Smrg	#elif defined(__dietlibc__)
162cc4920e5Smrg	LIBC=dietlibc
1630760f5d2Smrg	#elif defined(__GLIBC__)
164cc4920e5Smrg	LIBC=gnu
1650760f5d2Smrg	#else
1660760f5d2Smrg	#include <stdarg.h>
1670760f5d2Smrg	/* First heuristic to detect musl libc.  */
1680760f5d2Smrg	#ifdef __DEFINED_va_list
1690760f5d2Smrg	LIBC=musl
1700760f5d2Smrg	#endif
171cc4920e5Smrg	#endif
172cc4920e5Smrg	EOF
1730760f5d2Smrg	cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
1740760f5d2Smrg	eval "$cc_set_libc"
175cc4920e5Smrg
1760760f5d2Smrg	# Second heuristic to detect musl libc.
1770760f5d2Smrg	if [ "$LIBC" = unknown ] &&
1780760f5d2Smrg	   command -v ldd >/dev/null &&
1790760f5d2Smrg	   ldd --version 2>&1 | grep -q ^musl; then
1800760f5d2Smrg		LIBC=musl
1810760f5d2Smrg	fi
1820760f5d2Smrg
1830760f5d2Smrg	# If the system lacks a compiler, then just pick glibc.
1840760f5d2Smrg	# We could probably try harder.
1850760f5d2Smrg	if [ "$LIBC" = unknown ]; then
1860760f5d2Smrg		LIBC=gnu
187cc4920e5Smrg	fi
188cc4920e5Smrg	;;
189cc4920e5Smrgesac
190cc4920e5Smrg
191caade7ccSmrg# Note: order is significant - the case branches are not exclusive.
192caade7ccSmrg
1930760f5d2Smrgcase $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
194caade7ccSmrg    *:NetBSD:*:*)
195caade7ccSmrg	# NetBSD (nbsd) targets should (where applicable) match one or
196af9a7ee5Smrg	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
197caade7ccSmrg	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
198caade7ccSmrg	# switched to ELF, *-*-netbsd* would select the old
199caade7ccSmrg	# object file format.  This provides both forward
200caade7ccSmrg	# compatibility and a consistent mechanism for selecting the
201caade7ccSmrg	# object file format.
202caade7ccSmrg	#
203caade7ccSmrg	# Note: NetBSD doesn't particularly care about the vendor
204caade7ccSmrg	# portion of the name.  We always set it to "unknown".
205cc4920e5Smrg	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
2060760f5d2Smrg	    /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
2070760f5d2Smrg	    /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
208cc4920e5Smrg	    echo unknown)`
2090760f5d2Smrg	case $UNAME_MACHINE_ARCH in
2100760f5d2Smrg	    aarch64eb) machine=aarch64_be-unknown ;;
211caade7ccSmrg	    armeb) machine=armeb-unknown ;;
212caade7ccSmrg	    arm*) machine=arm-unknown ;;
213caade7ccSmrg	    sh3el) machine=shl-unknown ;;
214caade7ccSmrg	    sh3eb) machine=sh-unknown ;;
215485f0483Smrg	    sh5el) machine=sh5le-unknown ;;
216cc4920e5Smrg	    earmv*)
217cc4920e5Smrg		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
218cc4920e5Smrg		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
2190760f5d2Smrg		machine=${arch}${endian}-unknown
220cc4920e5Smrg		;;
2210760f5d2Smrg	    *) machine=$UNAME_MACHINE_ARCH-unknown ;;
222caade7ccSmrg	esac
223caade7ccSmrg	# The Operating System including object format, if it has switched
224cc4920e5Smrg	# to ELF recently (or will in the future) and ABI.
2250760f5d2Smrg	case $UNAME_MACHINE_ARCH in
226cc4920e5Smrg	    earm*)
227cc4920e5Smrg		os=netbsdelf
228cc4920e5Smrg		;;
229caade7ccSmrg	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
2300760f5d2Smrg		set_cc_for_build
231caade7ccSmrg		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
232b9b4fd27Smrg			| grep -q __ELF__
233caade7ccSmrg		then
234caade7ccSmrg		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
235caade7ccSmrg		    # Return netbsd for either.  FIX?
236caade7ccSmrg		    os=netbsd
237caade7ccSmrg		else
238caade7ccSmrg		    os=netbsdelf
239caade7ccSmrg		fi
240caade7ccSmrg		;;
241caade7ccSmrg	    *)
242af9a7ee5Smrg		os=netbsd
243caade7ccSmrg		;;
244caade7ccSmrg	esac
245cc4920e5Smrg	# Determine ABI tags.
2460760f5d2Smrg	case $UNAME_MACHINE_ARCH in
247cc4920e5Smrg	    earm*)
248cc4920e5Smrg		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
249cc4920e5Smrg		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
250cc4920e5Smrg		;;
251cc4920e5Smrg	esac
252caade7ccSmrg	# The OS release
253caade7ccSmrg	# Debian GNU/NetBSD machines have a different userland, and
254caade7ccSmrg	# thus, need a distinct triplet. However, they do not need
255caade7ccSmrg	# kernel version information, so it can be replaced with a
256caade7ccSmrg	# suitable tag, in the style of linux-gnu.
2570760f5d2Smrg	case $UNAME_VERSION in
258caade7ccSmrg	    Debian*)
259caade7ccSmrg		release='-gnu'
260caade7ccSmrg		;;
261caade7ccSmrg	    *)
262cc4920e5Smrg		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
263caade7ccSmrg		;;
264caade7ccSmrg	esac
265caade7ccSmrg	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
266caade7ccSmrg	# contains redundant information, the shorter form:
267caade7ccSmrg	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
2680760f5d2Smrg	GUESS=$machine-${os}${release}${abi-}
2690760f5d2Smrg	;;
270af9a7ee5Smrg    *:Bitrig:*:*)
271af9a7ee5Smrg	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
2720760f5d2Smrg	GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
2730760f5d2Smrg	;;
274caade7ccSmrg    *:OpenBSD:*:*)
275caade7ccSmrg	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
2760760f5d2Smrg	GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
2770760f5d2Smrg	;;
2780760f5d2Smrg    *:SecBSD:*:*)
2790760f5d2Smrg	UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
2800760f5d2Smrg	GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
2810760f5d2Smrg	;;
282cc4920e5Smrg    *:LibertyBSD:*:*)
283cc4920e5Smrg	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
2840760f5d2Smrg	GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
2850760f5d2Smrg	;;
286cc4920e5Smrg    *:MidnightBSD:*:*)
2870760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
2880760f5d2Smrg	;;
289caade7ccSmrg    *:ekkoBSD:*:*)
2900760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
2910760f5d2Smrg	;;
292485f0483Smrg    *:SolidBSD:*:*)
2930760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
2940760f5d2Smrg	;;
2950760f5d2Smrg    *:OS108:*:*)
2960760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
2970760f5d2Smrg	;;
298caade7ccSmrg    macppc:MirBSD:*:*)
2990760f5d2Smrg	GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
3000760f5d2Smrg	;;
301caade7ccSmrg    *:MirBSD:*:*)
3020760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
3030760f5d2Smrg	;;
304cc4920e5Smrg    *:Sortix:*:*)
3050760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-sortix
3060760f5d2Smrg	;;
3070760f5d2Smrg    *:Twizzler:*:*)
3080760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-twizzler
3090760f5d2Smrg	;;
310cc4920e5Smrg    *:Redox:*:*)
3110760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-redox
3120760f5d2Smrg	;;
313cc4920e5Smrg    mips:OSF1:*.*)
3140760f5d2Smrg	GUESS=mips-dec-osf1
3150760f5d2Smrg	;;
316caade7ccSmrg    alpha:OSF1:*:*)
3170760f5d2Smrg	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
3180760f5d2Smrg	trap '' 0
319caade7ccSmrg	case $UNAME_RELEASE in
320caade7ccSmrg	*4.0)
321caade7ccSmrg		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
322caade7ccSmrg		;;
323caade7ccSmrg	*5.*)
324af9a7ee5Smrg		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
325caade7ccSmrg		;;
326caade7ccSmrg	esac
327caade7ccSmrg	# According to Compaq, /usr/sbin/psrinfo has been available on
328caade7ccSmrg	# OSF/1 and Tru64 systems produced since 1995.  I hope that
329caade7ccSmrg	# covers most systems running today.  This code pipes the CPU
330caade7ccSmrg	# types through head -n 1, so we only detect the type of CPU 0.
331caade7ccSmrg	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
3320760f5d2Smrg	case $ALPHA_CPU_TYPE in
333caade7ccSmrg	    "EV4 (21064)")
334cc4920e5Smrg		UNAME_MACHINE=alpha ;;
335caade7ccSmrg	    "EV4.5 (21064)")
336cc4920e5Smrg		UNAME_MACHINE=alpha ;;
337caade7ccSmrg	    "LCA4 (21066/21068)")
338cc4920e5Smrg		UNAME_MACHINE=alpha ;;
339caade7ccSmrg	    "EV5 (21164)")
340cc4920e5Smrg		UNAME_MACHINE=alphaev5 ;;
341caade7ccSmrg	    "EV5.6 (21164A)")
342cc4920e5Smrg		UNAME_MACHINE=alphaev56 ;;
343caade7ccSmrg	    "EV5.6 (21164PC)")
344cc4920e5Smrg		UNAME_MACHINE=alphapca56 ;;
345caade7ccSmrg	    "EV5.7 (21164PC)")
346cc4920e5Smrg		UNAME_MACHINE=alphapca57 ;;
347caade7ccSmrg	    "EV6 (21264)")
348cc4920e5Smrg		UNAME_MACHINE=alphaev6 ;;
349caade7ccSmrg	    "EV6.7 (21264A)")
350cc4920e5Smrg		UNAME_MACHINE=alphaev67 ;;
351caade7ccSmrg	    "EV6.8CB (21264C)")
352cc4920e5Smrg		UNAME_MACHINE=alphaev68 ;;
353caade7ccSmrg	    "EV6.8AL (21264B)")
354cc4920e5Smrg		UNAME_MACHINE=alphaev68 ;;
355caade7ccSmrg	    "EV6.8CX (21264D)")
356cc4920e5Smrg		UNAME_MACHINE=alphaev68 ;;
357caade7ccSmrg	    "EV6.9A (21264/EV69A)")
358cc4920e5Smrg		UNAME_MACHINE=alphaev69 ;;
359caade7ccSmrg	    "EV7 (21364)")
360cc4920e5Smrg		UNAME_MACHINE=alphaev7 ;;
361caade7ccSmrg	    "EV7.9 (21364A)")
362cc4920e5Smrg		UNAME_MACHINE=alphaev79 ;;
363caade7ccSmrg	esac
364caade7ccSmrg	# A Pn.n version is a patched version.
365caade7ccSmrg	# A Vn.n version is a released version.
366caade7ccSmrg	# A Tn.n version is a released field test version.
367caade7ccSmrg	# A Xn.n version is an unreleased experimental baselevel.
368caade7ccSmrg	# 1.2 uses "1.2" for uname -r.
3690760f5d2Smrg	OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
3700760f5d2Smrg	GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
3710760f5d2Smrg	;;
372caade7ccSmrg    Amiga*:UNIX_System_V:4.0:*)
3730760f5d2Smrg	GUESS=m68k-unknown-sysv4
3740760f5d2Smrg	;;
375caade7ccSmrg    *:[Aa]miga[Oo][Ss]:*:*)
3760760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-amigaos
3770760f5d2Smrg	;;
378caade7ccSmrg    *:[Mm]orph[Oo][Ss]:*:*)
3790760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-morphos
3800760f5d2Smrg	;;
381caade7ccSmrg    *:OS/390:*:*)
3820760f5d2Smrg	GUESS=i370-ibm-openedition
3830760f5d2Smrg	;;
384caade7ccSmrg    *:z/VM:*:*)
3850760f5d2Smrg	GUESS=s390-ibm-zvmoe
3860760f5d2Smrg	;;
387caade7ccSmrg    *:OS400:*:*)
3880760f5d2Smrg	GUESS=powerpc-ibm-os400
3890760f5d2Smrg	;;
390caade7ccSmrg    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
3910760f5d2Smrg	GUESS=arm-acorn-riscix$UNAME_RELEASE
3920760f5d2Smrg	;;
393af9a7ee5Smrg    arm*:riscos:*:*|arm*:RISCOS:*:*)
3940760f5d2Smrg	GUESS=arm-unknown-riscos
3950760f5d2Smrg	;;
396caade7ccSmrg    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
3970760f5d2Smrg	GUESS=hppa1.1-hitachi-hiuxmpp
3980760f5d2Smrg	;;
399caade7ccSmrg    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
400caade7ccSmrg	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
4010760f5d2Smrg	case `(/bin/universe) 2>/dev/null` in
4020760f5d2Smrg	    att) GUESS=pyramid-pyramid-sysv3 ;;
4030760f5d2Smrg	    *)   GUESS=pyramid-pyramid-bsd   ;;
4040760f5d2Smrg	esac
4050760f5d2Smrg	;;
406caade7ccSmrg    NILE*:*:*:dcosx)
4070760f5d2Smrg	GUESS=pyramid-pyramid-svr4
4080760f5d2Smrg	;;
409caade7ccSmrg    DRS?6000:unix:4.0:6*)
4100760f5d2Smrg	GUESS=sparc-icl-nx6
4110760f5d2Smrg	;;
412caade7ccSmrg    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
413caade7ccSmrg	case `/usr/bin/uname -p` in
4140760f5d2Smrg	    sparc) GUESS=sparc-icl-nx7 ;;
4150760f5d2Smrg	esac
4160760f5d2Smrg	;;
417b9b4fd27Smrg    s390x:SunOS:*:*)
4180760f5d2Smrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
4190760f5d2Smrg	GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
4200760f5d2Smrg	;;
421caade7ccSmrg    sun4H:SunOS:5.*:*)
4220760f5d2Smrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
4230760f5d2Smrg	GUESS=sparc-hal-solaris2$SUN_REL
4240760f5d2Smrg	;;
425caade7ccSmrg    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
4260760f5d2Smrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
4270760f5d2Smrg	GUESS=sparc-sun-solaris2$SUN_REL
4280760f5d2Smrg	;;
429b9b4fd27Smrg    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
4300760f5d2Smrg	GUESS=i386-pc-auroraux$UNAME_RELEASE
4310760f5d2Smrg	;;
432485f0483Smrg    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
4330760f5d2Smrg	set_cc_for_build
434cc4920e5Smrg	SUN_ARCH=i386
435b9b4fd27Smrg	# If there is a compiler, see if it is configured for 64-bit objects.
436b9b4fd27Smrg	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
437b9b4fd27Smrg	# This test works for both compilers.
4380760f5d2Smrg	if test "$CC_FOR_BUILD" != no_compiler_found; then
439b9b4fd27Smrg	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
44005789e77Smrg		(CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
441b9b4fd27Smrg		grep IS_64BIT_ARCH >/dev/null
442b9b4fd27Smrg	    then
443cc4920e5Smrg		SUN_ARCH=x86_64
444b9b4fd27Smrg	    fi
445b9b4fd27Smrg	fi
4460760f5d2Smrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
4470760f5d2Smrg	GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
4480760f5d2Smrg	;;
449caade7ccSmrg    sun4*:SunOS:6*:*)
450caade7ccSmrg	# According to config.sub, this is the proper way to canonicalize
451caade7ccSmrg	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
452caade7ccSmrg	# it's likely to be more like Solaris than SunOS4.
4530760f5d2Smrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
4540760f5d2Smrg	GUESS=sparc-sun-solaris3$SUN_REL
4550760f5d2Smrg	;;
456caade7ccSmrg    sun4*:SunOS:*:*)
4570760f5d2Smrg	case `/usr/bin/arch -k` in
458caade7ccSmrg	    Series*|S4*)
459caade7ccSmrg		UNAME_RELEASE=`uname -v`
460caade7ccSmrg		;;
461caade7ccSmrg	esac
462caade7ccSmrg	# Japanese Language versions have a version number like `4.1.3-JL'.
4630760f5d2Smrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
4640760f5d2Smrg	GUESS=sparc-sun-sunos$SUN_REL
4650760f5d2Smrg	;;
466caade7ccSmrg    sun3*:SunOS:*:*)
4670760f5d2Smrg	GUESS=m68k-sun-sunos$UNAME_RELEASE
4680760f5d2Smrg	;;
469caade7ccSmrg    sun*:*:4.2BSD:*)
470caade7ccSmrg	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
471cc4920e5Smrg	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
4720760f5d2Smrg	case `/bin/arch` in
473caade7ccSmrg	    sun3)
4740760f5d2Smrg		GUESS=m68k-sun-sunos$UNAME_RELEASE
475caade7ccSmrg		;;
476caade7ccSmrg	    sun4)
4770760f5d2Smrg		GUESS=sparc-sun-sunos$UNAME_RELEASE
478caade7ccSmrg		;;
479caade7ccSmrg	esac
4800760f5d2Smrg	;;
481caade7ccSmrg    aushp:SunOS:*:*)
4820760f5d2Smrg	GUESS=sparc-auspex-sunos$UNAME_RELEASE
4830760f5d2Smrg	;;
484caade7ccSmrg    # The situation for MiNT is a little confusing.  The machine name
485caade7ccSmrg    # can be virtually everything (everything which is not
486caade7ccSmrg    # "atarist" or "atariste" at least should have a processor
487caade7ccSmrg    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
488caade7ccSmrg    # to the lowercase version "mint" (or "freemint").  Finally
489caade7ccSmrg    # the system name "TOS" denotes a system which is actually not
490caade7ccSmrg    # MiNT.  But MiNT is downward compatible to TOS, so this should
491caade7ccSmrg    # be no problem.
492caade7ccSmrg    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
4930760f5d2Smrg	GUESS=m68k-atari-mint$UNAME_RELEASE
4940760f5d2Smrg	;;
495caade7ccSmrg    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
4960760f5d2Smrg	GUESS=m68k-atari-mint$UNAME_RELEASE
4970760f5d2Smrg	;;
498caade7ccSmrg    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
4990760f5d2Smrg	GUESS=m68k-atari-mint$UNAME_RELEASE
5000760f5d2Smrg	;;
501caade7ccSmrg    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
5020760f5d2Smrg	GUESS=m68k-milan-mint$UNAME_RELEASE
5030760f5d2Smrg	;;
504caade7ccSmrg    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
5050760f5d2Smrg	GUESS=m68k-hades-mint$UNAME_RELEASE
5060760f5d2Smrg	;;
507caade7ccSmrg    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
5080760f5d2Smrg	GUESS=m68k-unknown-mint$UNAME_RELEASE
5090760f5d2Smrg	;;
510caade7ccSmrg    m68k:machten:*:*)
5110760f5d2Smrg	GUESS=m68k-apple-machten$UNAME_RELEASE
5120760f5d2Smrg	;;
513caade7ccSmrg    powerpc:machten:*:*)
5140760f5d2Smrg	GUESS=powerpc-apple-machten$UNAME_RELEASE
5150760f5d2Smrg	;;
516caade7ccSmrg    RISC*:Mach:*:*)
5170760f5d2Smrg	GUESS=mips-dec-mach_bsd4.3
5180760f5d2Smrg	;;
519caade7ccSmrg    RISC*:ULTRIX:*:*)
5200760f5d2Smrg	GUESS=mips-dec-ultrix$UNAME_RELEASE
5210760f5d2Smrg	;;
522caade7ccSmrg    VAX*:ULTRIX*:*:*)
5230760f5d2Smrg	GUESS=vax-dec-ultrix$UNAME_RELEASE
5240760f5d2Smrg	;;
525caade7ccSmrg    2020:CLIX:*:* | 2430:CLIX:*:*)
5260760f5d2Smrg	GUESS=clipper-intergraph-clix$UNAME_RELEASE
5270760f5d2Smrg	;;
528caade7ccSmrg    mips:*:*:UMIPS | mips:*:*:RISCos)
5290760f5d2Smrg	set_cc_for_build
530cc4920e5Smrg	sed 's/^	//' << EOF > "$dummy.c"
531caade7ccSmrg#ifdef __cplusplus
532caade7ccSmrg#include <stdio.h>  /* for printf() prototype */
533caade7ccSmrg	int main (int argc, char *argv[]) {
534caade7ccSmrg#else
535caade7ccSmrg	int main (argc, argv) int argc; char *argv[]; {
536caade7ccSmrg#endif
537caade7ccSmrg	#if defined (host_mips) && defined (MIPSEB)
538caade7ccSmrg	#if defined (SYSTYPE_SYSV)
539cc4920e5Smrg	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
540caade7ccSmrg	#endif
541caade7ccSmrg	#if defined (SYSTYPE_SVR4)
542cc4920e5Smrg	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
543caade7ccSmrg	#endif
544caade7ccSmrg	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
545cc4920e5Smrg	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
546caade7ccSmrg	#endif
547caade7ccSmrg	#endif
548caade7ccSmrg	  exit (-1);
549caade7ccSmrg	}
550caade7ccSmrgEOF
551cc4920e5Smrg	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
552cc4920e5Smrg	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
553cc4920e5Smrg	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
554caade7ccSmrg	    { echo "$SYSTEM_NAME"; exit; }
5550760f5d2Smrg	GUESS=mips-mips-riscos$UNAME_RELEASE
5560760f5d2Smrg	;;
557caade7ccSmrg    Motorola:PowerMAX_OS:*:*)
5580760f5d2Smrg	GUESS=powerpc-motorola-powermax
5590760f5d2Smrg	;;
560caade7ccSmrg    Motorola:*:4.3:PL8-*)
5610760f5d2Smrg	GUESS=powerpc-harris-powermax
5620760f5d2Smrg	;;
563caade7ccSmrg    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
5640760f5d2Smrg	GUESS=powerpc-harris-powermax
5650760f5d2Smrg	;;
566caade7ccSmrg    Night_Hawk:Power_UNIX:*:*)
5670760f5d2Smrg	GUESS=powerpc-harris-powerunix
5680760f5d2Smrg	;;
569caade7ccSmrg    m88k:CX/UX:7*:*)
5700760f5d2Smrg	GUESS=m88k-harris-cxux7
5710760f5d2Smrg	;;
572caade7ccSmrg    m88k:*:4*:R4*)
5730760f5d2Smrg	GUESS=m88k-motorola-sysv4
5740760f5d2Smrg	;;
575caade7ccSmrg    m88k:*:3*:R3*)
5760760f5d2Smrg	GUESS=m88k-motorola-sysv3
5770760f5d2Smrg	;;
578caade7ccSmrg    AViiON:dgux:*:*)
579af9a7ee5Smrg	# DG/UX returns AViiON for all architectures
580af9a7ee5Smrg	UNAME_PROCESSOR=`/usr/bin/uname -p`
5810760f5d2Smrg	if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
582caade7ccSmrg	then
5830760f5d2Smrg	    if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
5840760f5d2Smrg	       test "$TARGET_BINARY_INTERFACE"x = x
585caade7ccSmrg	    then
5860760f5d2Smrg		GUESS=m88k-dg-dgux$UNAME_RELEASE
587caade7ccSmrg	    else
5880760f5d2Smrg		GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
589caade7ccSmrg	    fi
590caade7ccSmrg	else
5910760f5d2Smrg	    GUESS=i586-dg-dgux$UNAME_RELEASE
592caade7ccSmrg	fi
5930760f5d2Smrg	;;
594caade7ccSmrg    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
5950760f5d2Smrg	GUESS=m88k-dolphin-sysv3
5960760f5d2Smrg	;;
597caade7ccSmrg    M88*:*:R3*:*)
598caade7ccSmrg	# Delta 88k system running SVR3
5990760f5d2Smrg	GUESS=m88k-motorola-sysv3
6000760f5d2Smrg	;;
601caade7ccSmrg    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
6020760f5d2Smrg	GUESS=m88k-tektronix-sysv3
6030760f5d2Smrg	;;
604caade7ccSmrg    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
6050760f5d2Smrg	GUESS=m68k-tektronix-bsd
6060760f5d2Smrg	;;
607caade7ccSmrg    *:IRIX*:*:*)
6080760f5d2Smrg	IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
6090760f5d2Smrg	GUESS=mips-sgi-irix$IRIX_REL
6100760f5d2Smrg	;;
611caade7ccSmrg    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
6120760f5d2Smrg	GUESS=romp-ibm-aix    # uname -m gives an 8 hex-code CPU id
6130760f5d2Smrg	;;                    # Note that: echo "'`uname -s`'" gives 'AIX '
614caade7ccSmrg    i*86:AIX:*:*)
6150760f5d2Smrg	GUESS=i386-ibm-aix
6160760f5d2Smrg	;;
617caade7ccSmrg    ia64:AIX:*:*)
6180760f5d2Smrg	if test -x /usr/bin/oslevel ; then
619caade7ccSmrg		IBM_REV=`/usr/bin/oslevel`
620caade7ccSmrg	else
6210760f5d2Smrg		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
622caade7ccSmrg	fi
6230760f5d2Smrg	GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
6240760f5d2Smrg	;;
625caade7ccSmrg    *:AIX:2:3)
626caade7ccSmrg	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
6270760f5d2Smrg		set_cc_for_build
628cc4920e5Smrg		sed 's/^		//' << EOF > "$dummy.c"
629caade7ccSmrg		#include <sys/systemcfg.h>
630caade7ccSmrg
631caade7ccSmrg		main()
632caade7ccSmrg			{
633caade7ccSmrg			if (!__power_pc())
634caade7ccSmrg				exit(1);
635caade7ccSmrg			puts("powerpc-ibm-aix3.2.5");
636caade7ccSmrg			exit(0);
637caade7ccSmrg			}
638caade7ccSmrgEOF
639cc4920e5Smrg		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
640caade7ccSmrg		then
6410760f5d2Smrg			GUESS=$SYSTEM_NAME
642caade7ccSmrg		else
6430760f5d2Smrg			GUESS=rs6000-ibm-aix3.2.5
644caade7ccSmrg		fi
645caade7ccSmrg	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
6460760f5d2Smrg		GUESS=rs6000-ibm-aix3.2.4
647caade7ccSmrg	else
6480760f5d2Smrg		GUESS=rs6000-ibm-aix3.2
649caade7ccSmrg	fi
6500760f5d2Smrg	;;
651e8a5466aSmrg    *:AIX:*:[4567])
652caade7ccSmrg	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
653cc4920e5Smrg	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
654caade7ccSmrg		IBM_ARCH=rs6000
655caade7ccSmrg	else
656caade7ccSmrg		IBM_ARCH=powerpc
657caade7ccSmrg	fi
6580760f5d2Smrg	if test -x /usr/bin/lslpp ; then
6590760f5d2Smrg		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
660cc4920e5Smrg			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
661caade7ccSmrg	else
6620760f5d2Smrg		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
663caade7ccSmrg	fi
6640760f5d2Smrg	GUESS=$IBM_ARCH-ibm-aix$IBM_REV
6650760f5d2Smrg	;;
666caade7ccSmrg    *:AIX:*:*)
6670760f5d2Smrg	GUESS=rs6000-ibm-aix
6680760f5d2Smrg	;;
669cc4920e5Smrg    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
6700760f5d2Smrg	GUESS=romp-ibm-bsd4.4
6710760f5d2Smrg	;;
672caade7ccSmrg    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
6730760f5d2Smrg	GUESS=romp-ibm-bsd$UNAME_RELEASE    # 4.3 with uname added to
6740760f5d2Smrg	;;                                  # report: romp-ibm BSD 4.3
675caade7ccSmrg    *:BOSX:*:*)
6760760f5d2Smrg	GUESS=rs6000-bull-bosx
6770760f5d2Smrg	;;
678caade7ccSmrg    DPX/2?00:B.O.S.:*:*)
6790760f5d2Smrg	GUESS=m68k-bull-sysv3
6800760f5d2Smrg	;;
681caade7ccSmrg    9000/[34]??:4.3bsd:1.*:*)
6820760f5d2Smrg	GUESS=m68k-hp-bsd
6830760f5d2Smrg	;;
684caade7ccSmrg    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
6850760f5d2Smrg	GUESS=m68k-hp-bsd4.4
6860760f5d2Smrg	;;
687caade7ccSmrg    9000/[34678]??:HP-UX:*:*)
6880760f5d2Smrg	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
6890760f5d2Smrg	case $UNAME_MACHINE in
690cc4920e5Smrg	    9000/31?)            HP_ARCH=m68000 ;;
691cc4920e5Smrg	    9000/[34]??)         HP_ARCH=m68k ;;
692caade7ccSmrg	    9000/[678][0-9][0-9])
6930760f5d2Smrg		if test -x /usr/bin/getconf; then
694caade7ccSmrg		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
695af9a7ee5Smrg		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
6960760f5d2Smrg		    case $sc_cpu_version in
697cc4920e5Smrg		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
698cc4920e5Smrg		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
699af9a7ee5Smrg		      532)                      # CPU_PA_RISC2_0
7000760f5d2Smrg			case $sc_kernel_bits in
701cc4920e5Smrg			  32) HP_ARCH=hppa2.0n ;;
702cc4920e5Smrg			  64) HP_ARCH=hppa2.0w ;;
703cc4920e5Smrg			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
704af9a7ee5Smrg			esac ;;
705af9a7ee5Smrg		    esac
706caade7ccSmrg		fi
7070760f5d2Smrg		if test "$HP_ARCH" = ""; then
7080760f5d2Smrg		    set_cc_for_build
709cc4920e5Smrg		    sed 's/^		//' << EOF > "$dummy.c"
710caade7ccSmrg
711af9a7ee5Smrg		#define _HPUX_SOURCE
712af9a7ee5Smrg		#include <stdlib.h>
713af9a7ee5Smrg		#include <unistd.h>
714caade7ccSmrg
715af9a7ee5Smrg		int main ()
716af9a7ee5Smrg		{
717af9a7ee5Smrg		#if defined(_SC_KERNEL_BITS)
718af9a7ee5Smrg		    long bits = sysconf(_SC_KERNEL_BITS);
719af9a7ee5Smrg		#endif
720af9a7ee5Smrg		    long cpu  = sysconf (_SC_CPU_VERSION);
721caade7ccSmrg
722af9a7ee5Smrg		    switch (cpu)
723af9a7ee5Smrg			{
724af9a7ee5Smrg			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
725af9a7ee5Smrg			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
726af9a7ee5Smrg			case CPU_PA_RISC2_0:
727af9a7ee5Smrg		#if defined(_SC_KERNEL_BITS)
728af9a7ee5Smrg			    switch (bits)
729af9a7ee5Smrg				{
730af9a7ee5Smrg				case 64: puts ("hppa2.0w"); break;
731af9a7ee5Smrg				case 32: puts ("hppa2.0n"); break;
732af9a7ee5Smrg				default: puts ("hppa2.0"); break;
733af9a7ee5Smrg				} break;
734af9a7ee5Smrg		#else  /* !defined(_SC_KERNEL_BITS) */
735af9a7ee5Smrg			    puts ("hppa2.0"); break;
736af9a7ee5Smrg		#endif
737af9a7ee5Smrg			default: puts ("hppa1.0"); break;
738af9a7ee5Smrg			}
739af9a7ee5Smrg		    exit (0);
740af9a7ee5Smrg		}
741caade7ccSmrgEOF
742cc4920e5Smrg		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
743caade7ccSmrg		    test -z "$HP_ARCH" && HP_ARCH=hppa
744caade7ccSmrg		fi ;;
745caade7ccSmrg	esac
7460760f5d2Smrg	if test "$HP_ARCH" = hppa2.0w
747caade7ccSmrg	then
7480760f5d2Smrg	    set_cc_for_build
749caade7ccSmrg
750caade7ccSmrg	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
751caade7ccSmrg	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
752caade7ccSmrg	    # generating 64-bit code.  GNU and HP use different nomenclature:
753caade7ccSmrg	    #
754caade7ccSmrg	    # $ CC_FOR_BUILD=cc ./config.guess
755caade7ccSmrg	    # => hppa2.0w-hp-hpux11.23
756caade7ccSmrg	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
757caade7ccSmrg	    # => hppa64-hp-hpux11.23
758caade7ccSmrg
759cc4920e5Smrg	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
760b9b4fd27Smrg		grep -q __LP64__
761caade7ccSmrg	    then
762cc4920e5Smrg		HP_ARCH=hppa2.0w
763caade7ccSmrg	    else
764cc4920e5Smrg		HP_ARCH=hppa64
765caade7ccSmrg	    fi
766caade7ccSmrg	fi
7670760f5d2Smrg	GUESS=$HP_ARCH-hp-hpux$HPUX_REV
7680760f5d2Smrg	;;
769caade7ccSmrg    ia64:HP-UX:*:*)
7700760f5d2Smrg	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
7710760f5d2Smrg	GUESS=ia64-hp-hpux$HPUX_REV
7720760f5d2Smrg	;;
773caade7ccSmrg    3050*:HI-UX:*:*)
7740760f5d2Smrg	set_cc_for_build
775cc4920e5Smrg	sed 's/^	//' << EOF > "$dummy.c"
776caade7ccSmrg	#include <unistd.h>
777caade7ccSmrg	int
778caade7ccSmrg	main ()
779caade7ccSmrg	{
780caade7ccSmrg	  long cpu = sysconf (_SC_CPU_VERSION);
781caade7ccSmrg	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
782caade7ccSmrg	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
783caade7ccSmrg	     results, however.  */
784caade7ccSmrg	  if (CPU_IS_PA_RISC (cpu))
785caade7ccSmrg	    {
786caade7ccSmrg	      switch (cpu)
787caade7ccSmrg		{
788caade7ccSmrg		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
789caade7ccSmrg		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
790caade7ccSmrg		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
791caade7ccSmrg		  default: puts ("hppa-hitachi-hiuxwe2"); break;
792caade7ccSmrg		}
793caade7ccSmrg	    }
794caade7ccSmrg	  else if (CPU_IS_HP_MC68K (cpu))
795caade7ccSmrg	    puts ("m68k-hitachi-hiuxwe2");
796caade7ccSmrg	  else puts ("unknown-hitachi-hiuxwe2");
797caade7ccSmrg	  exit (0);
798caade7ccSmrg	}
799caade7ccSmrgEOF
800cc4920e5Smrg	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
801caade7ccSmrg		{ echo "$SYSTEM_NAME"; exit; }
8020760f5d2Smrg	GUESS=unknown-hitachi-hiuxwe2
8030760f5d2Smrg	;;
804cc4920e5Smrg    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
8050760f5d2Smrg	GUESS=hppa1.1-hp-bsd
8060760f5d2Smrg	;;
807caade7ccSmrg    9000/8??:4.3bsd:*:*)
8080760f5d2Smrg	GUESS=hppa1.0-hp-bsd
8090760f5d2Smrg	;;
810caade7ccSmrg    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
8110760f5d2Smrg	GUESS=hppa1.0-hp-mpeix
8120760f5d2Smrg	;;
813cc4920e5Smrg    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
8140760f5d2Smrg	GUESS=hppa1.1-hp-osf
8150760f5d2Smrg	;;
816caade7ccSmrg    hp8??:OSF1:*:*)
8170760f5d2Smrg	GUESS=hppa1.0-hp-osf
8180760f5d2Smrg	;;
819caade7ccSmrg    i*86:OSF1:*:*)
8200760f5d2Smrg	if test -x /usr/sbin/sysversion ; then
8210760f5d2Smrg	    GUESS=$UNAME_MACHINE-unknown-osf1mk
822caade7ccSmrg	else
8230760f5d2Smrg	    GUESS=$UNAME_MACHINE-unknown-osf1
824caade7ccSmrg	fi
8250760f5d2Smrg	;;
826caade7ccSmrg    parisc*:Lites*:*:*)
8270760f5d2Smrg	GUESS=hppa1.1-hp-lites
8280760f5d2Smrg	;;
829caade7ccSmrg    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
8300760f5d2Smrg	GUESS=c1-convex-bsd
8310760f5d2Smrg	;;
832caade7ccSmrg    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
833caade7ccSmrg	if getsysinfo -f scalar_acc
834caade7ccSmrg	then echo c32-convex-bsd
835caade7ccSmrg	else echo c2-convex-bsd
836caade7ccSmrg	fi
837af9a7ee5Smrg	exit ;;
838caade7ccSmrg    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
8390760f5d2Smrg	GUESS=c34-convex-bsd
8400760f5d2Smrg	;;
841caade7ccSmrg    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
8420760f5d2Smrg	GUESS=c38-convex-bsd
8430760f5d2Smrg	;;
844caade7ccSmrg    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
8450760f5d2Smrg	GUESS=c4-convex-bsd
8460760f5d2Smrg	;;
847caade7ccSmrg    CRAY*Y-MP:*:*:*)
8480760f5d2Smrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
8490760f5d2Smrg	GUESS=ymp-cray-unicos$CRAY_REL
8500760f5d2Smrg	;;
851caade7ccSmrg    CRAY*[A-Z]90:*:*:*)
852cc4920e5Smrg	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
853caade7ccSmrg	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
854caade7ccSmrg	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
855caade7ccSmrg	      -e 's/\.[^.]*$/.X/'
856caade7ccSmrg	exit ;;
857caade7ccSmrg    CRAY*TS:*:*:*)
8580760f5d2Smrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
8590760f5d2Smrg	GUESS=t90-cray-unicos$CRAY_REL
8600760f5d2Smrg	;;
861caade7ccSmrg    CRAY*T3E:*:*:*)
8620760f5d2Smrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
8630760f5d2Smrg	GUESS=alphaev5-cray-unicosmk$CRAY_REL
8640760f5d2Smrg	;;
865caade7ccSmrg    CRAY*SV1:*:*:*)
8660760f5d2Smrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
8670760f5d2Smrg	GUESS=sv1-cray-unicos$CRAY_REL
8680760f5d2Smrg	;;
869caade7ccSmrg    *:UNICOS/mp:*:*)
8700760f5d2Smrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
8710760f5d2Smrg	GUESS=craynv-cray-unicosmp$CRAY_REL
8720760f5d2Smrg	;;
873caade7ccSmrg    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
874cc4920e5Smrg	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
875cc4920e5Smrg	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
876cc4920e5Smrg	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
8770760f5d2Smrg	GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
8780760f5d2Smrg	;;
879caade7ccSmrg    5000:UNIX_System_V:4.*:*)
880cc4920e5Smrg	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
881cc4920e5Smrg	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
8820760f5d2Smrg	GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
8830760f5d2Smrg	;;
884caade7ccSmrg    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
8850760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
8860760f5d2Smrg	;;
887caade7ccSmrg    sparc*:BSD/OS:*:*)
8880760f5d2Smrg	GUESS=sparc-unknown-bsdi$UNAME_RELEASE
8890760f5d2Smrg	;;
890caade7ccSmrg    *:BSD/OS:*:*)
8910760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
8920760f5d2Smrg	;;
8930760f5d2Smrg    arm:FreeBSD:*:*)
8940760f5d2Smrg	UNAME_PROCESSOR=`uname -p`
8950760f5d2Smrg	set_cc_for_build
8960760f5d2Smrg	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
8970760f5d2Smrg	    | grep -q __ARM_PCS_VFP
8980760f5d2Smrg	then
8990760f5d2Smrg	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
9000760f5d2Smrg	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
9010760f5d2Smrg	else
9020760f5d2Smrg	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
9030760f5d2Smrg	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
9040760f5d2Smrg	fi
9050760f5d2Smrg	;;
906caade7ccSmrg    *:FreeBSD:*:*)
907af9a7ee5Smrg	UNAME_PROCESSOR=`/usr/bin/uname -p`
9080760f5d2Smrg	case $UNAME_PROCESSOR in
909485f0483Smrg	    amd64)
910cc4920e5Smrg		UNAME_PROCESSOR=x86_64 ;;
911cc4920e5Smrg	    i386)
912cc4920e5Smrg		UNAME_PROCESSOR=i586 ;;
913485f0483Smrg	esac
9140760f5d2Smrg	FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
9150760f5d2Smrg	GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
9160760f5d2Smrg	;;
917caade7ccSmrg    i*:CYGWIN*:*)
9180760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-cygwin
9190760f5d2Smrg	;;
920af9a7ee5Smrg    *:MINGW64*:*)
9210760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-mingw64
9220760f5d2Smrg	;;
923485f0483Smrg    *:MINGW*:*)
9240760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-mingw32
9250760f5d2Smrg	;;
926cc4920e5Smrg    *:MSYS*:*)
9270760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-msys
9280760f5d2Smrg	;;
929caade7ccSmrg    i*:PW*:*)
9300760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-pw32
9310760f5d2Smrg	;;
93205789e77Smrg    *:SerenityOS:*:*)
93305789e77Smrg        GUESS=$UNAME_MACHINE-pc-serenity
93405789e77Smrg        ;;
935b9b4fd27Smrg    *:Interix*:*)
9360760f5d2Smrg	case $UNAME_MACHINE in
937485f0483Smrg	    x86)
9380760f5d2Smrg		GUESS=i586-pc-interix$UNAME_RELEASE
9390760f5d2Smrg		;;
940b9b4fd27Smrg	    authenticamd | genuineintel | EM64T)
9410760f5d2Smrg		GUESS=x86_64-unknown-interix$UNAME_RELEASE
9420760f5d2Smrg		;;
943485f0483Smrg	    IA64)
9440760f5d2Smrg		GUESS=ia64-unknown-interix$UNAME_RELEASE
9450760f5d2Smrg		;;
946485f0483Smrg	esac ;;
947caade7ccSmrg    i*:UWIN*:*)
9480760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-uwin
9490760f5d2Smrg	;;
950caade7ccSmrg    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
9510760f5d2Smrg	GUESS=x86_64-pc-cygwin
9520760f5d2Smrg	;;
953caade7ccSmrg    prep*:SunOS:5.*:*)
9540760f5d2Smrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
9550760f5d2Smrg	GUESS=powerpcle-unknown-solaris2$SUN_REL
9560760f5d2Smrg	;;
957caade7ccSmrg    *:GNU:*:*)
958caade7ccSmrg	# the GNU system
9590760f5d2Smrg	GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
9600760f5d2Smrg	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
9610760f5d2Smrg	GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
9620760f5d2Smrg	;;
963caade7ccSmrg    *:GNU/*:*:*)
964caade7ccSmrg	# other systems with GNU libc and userland
9650760f5d2Smrg	GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
9660760f5d2Smrg	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
9670760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
9680760f5d2Smrg	;;
96905789e77Smrg    x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
97005789e77Smrg	GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
97105789e77Smrg	;;
97205789e77Smrg    *:[Mm]anagarm:*:*)
97305789e77Smrg	GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
97405789e77Smrg	;;
9750760f5d2Smrg    *:Minix:*:*)
9760760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-minix
9770760f5d2Smrg	;;
978af9a7ee5Smrg    aarch64:Linux:*:*)
9790760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
9800760f5d2Smrg	;;
981af9a7ee5Smrg    aarch64_be:Linux:*:*)
982af9a7ee5Smrg	UNAME_MACHINE=aarch64_be
9830760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
9840760f5d2Smrg	;;
985b9b4fd27Smrg    alpha:Linux:*:*)
9860760f5d2Smrg	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
987b9b4fd27Smrg	  EV5)   UNAME_MACHINE=alphaev5 ;;
988b9b4fd27Smrg	  EV56)  UNAME_MACHINE=alphaev56 ;;
989b9b4fd27Smrg	  PCA56) UNAME_MACHINE=alphapca56 ;;
990b9b4fd27Smrg	  PCA57) UNAME_MACHINE=alphapca56 ;;
991b9b4fd27Smrg	  EV6)   UNAME_MACHINE=alphaev6 ;;
992b9b4fd27Smrg	  EV67)  UNAME_MACHINE=alphaev67 ;;
993b9b4fd27Smrg	  EV68*) UNAME_MACHINE=alphaev68 ;;
994af9a7ee5Smrg	esac
995b9b4fd27Smrg	objdump --private-headers /bin/sh | grep -q ld.so.1
996cc4920e5Smrg	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
9970760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
9980760f5d2Smrg	;;
9990760f5d2Smrg    arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
10000760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10010760f5d2Smrg	;;
1002caade7ccSmrg    arm*:Linux:*:*)
10030760f5d2Smrg	set_cc_for_build
1004485f0483Smrg	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
1005485f0483Smrg	    | grep -q __ARM_EABI__
1006485f0483Smrg	then
10070760f5d2Smrg	    GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1008485f0483Smrg	else
1009af9a7ee5Smrg	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
1010af9a7ee5Smrg		| grep -q __ARM_PCS_VFP
1011af9a7ee5Smrg	    then
10120760f5d2Smrg		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
1013af9a7ee5Smrg	    else
10140760f5d2Smrg		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
1015af9a7ee5Smrg	    fi
1016485f0483Smrg	fi
10170760f5d2Smrg	;;
1018485f0483Smrg    avr32*:Linux:*:*)
10190760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10200760f5d2Smrg	;;
1021caade7ccSmrg    cris:Linux:*:*)
10220760f5d2Smrg	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
10230760f5d2Smrg	;;
1024caade7ccSmrg    crisv32:Linux:*:*)
10250760f5d2Smrg	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
10260760f5d2Smrg	;;
1027cc4920e5Smrg    e2k:Linux:*:*)
10280760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10290760f5d2Smrg	;;
1030caade7ccSmrg    frv:Linux:*:*)
10310760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10320760f5d2Smrg	;;
1033af9a7ee5Smrg    hexagon:Linux:*:*)
10340760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10350760f5d2Smrg	;;
1036b9b4fd27Smrg    i*86:Linux:*:*)
10370760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-linux-$LIBC
10380760f5d2Smrg	;;
1039caade7ccSmrg    ia64:Linux:*:*)
10400760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10410760f5d2Smrg	;;
1042cc4920e5Smrg    k1om:Linux:*:*)
10430760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10440760f5d2Smrg	;;
104505789e77Smrg    loongarch32:Linux:*:* | loongarch64:Linux:*:*)
10460760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10470760f5d2Smrg	;;
1048caade7ccSmrg    m32r*:Linux:*:*)
10490760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10500760f5d2Smrg	;;
1051caade7ccSmrg    m68*:Linux:*:*)
10520760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10530760f5d2Smrg	;;
1054b9b4fd27Smrg    mips:Linux:*:* | mips64:Linux:*:*)
10550760f5d2Smrg	set_cc_for_build
10560760f5d2Smrg	IS_GLIBC=0
10570760f5d2Smrg	test x"${LIBC}" = xgnu && IS_GLIBC=1
1058cc4920e5Smrg	sed 's/^	//' << EOF > "$dummy.c"
1059caade7ccSmrg	#undef CPU
10600760f5d2Smrg	#undef mips
10610760f5d2Smrg	#undef mipsel
10620760f5d2Smrg	#undef mips64
10630760f5d2Smrg	#undef mips64el
10640760f5d2Smrg	#if ${IS_GLIBC} && defined(_ABI64)
10650760f5d2Smrg	LIBCABI=gnuabi64
10660760f5d2Smrg	#else
10670760f5d2Smrg	#if ${IS_GLIBC} && defined(_ABIN32)
10680760f5d2Smrg	LIBCABI=gnuabin32
10690760f5d2Smrg	#else
10700760f5d2Smrg	LIBCABI=${LIBC}
10710760f5d2Smrg	#endif
10720760f5d2Smrg	#endif
10730760f5d2Smrg
10740760f5d2Smrg	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
10750760f5d2Smrg	CPU=mipsisa64r6
10760760f5d2Smrg	#else
10770760f5d2Smrg	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
10780760f5d2Smrg	CPU=mipsisa32r6
10790760f5d2Smrg	#else
10800760f5d2Smrg	#if defined(__mips64)
10810760f5d2Smrg	CPU=mips64
10820760f5d2Smrg	#else
10830760f5d2Smrg	CPU=mips
10840760f5d2Smrg	#endif
10850760f5d2Smrg	#endif
10860760f5d2Smrg	#endif
10870760f5d2Smrg
1088caade7ccSmrg	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
10890760f5d2Smrg	MIPS_ENDIAN=el
1090caade7ccSmrg	#else
1091caade7ccSmrg	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
10920760f5d2Smrg	MIPS_ENDIAN=
1093caade7ccSmrg	#else
10940760f5d2Smrg	MIPS_ENDIAN=
1095caade7ccSmrg	#endif
1096caade7ccSmrg	#endif
1097caade7ccSmrgEOF
10980760f5d2Smrg	cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
10990760f5d2Smrg	eval "$cc_set_vars"
11000760f5d2Smrg	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
1101caade7ccSmrg	;;
1102cc4920e5Smrg    mips64el:Linux:*:*)
11030760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11040760f5d2Smrg	;;
1105cc4920e5Smrg    openrisc*:Linux:*:*)
11060760f5d2Smrg	GUESS=or1k-unknown-linux-$LIBC
11070760f5d2Smrg	;;
1108cc4920e5Smrg    or32:Linux:*:* | or1k*:Linux:*:*)
11090760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11100760f5d2Smrg	;;
1111b9b4fd27Smrg    padre:Linux:*:*)
11120760f5d2Smrg	GUESS=sparc-unknown-linux-$LIBC
11130760f5d2Smrg	;;
1114b9b4fd27Smrg    parisc64:Linux:*:* | hppa64:Linux:*:*)
11150760f5d2Smrg	GUESS=hppa64-unknown-linux-$LIBC
11160760f5d2Smrg	;;
1117caade7ccSmrg    parisc:Linux:*:* | hppa:Linux:*:*)
1118caade7ccSmrg	# Look for CPU level
1119caade7ccSmrg	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
11200760f5d2Smrg	  PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
11210760f5d2Smrg	  PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
11220760f5d2Smrg	  *)    GUESS=hppa-unknown-linux-$LIBC ;;
1123caade7ccSmrg	esac
11240760f5d2Smrg	;;
1125b9b4fd27Smrg    ppc64:Linux:*:*)
11260760f5d2Smrg	GUESS=powerpc64-unknown-linux-$LIBC
11270760f5d2Smrg	;;
1128b9b4fd27Smrg    ppc:Linux:*:*)
11290760f5d2Smrg	GUESS=powerpc-unknown-linux-$LIBC
11300760f5d2Smrg	;;
1131cc4920e5Smrg    ppc64le:Linux:*:*)
11320760f5d2Smrg	GUESS=powerpc64le-unknown-linux-$LIBC
11330760f5d2Smrg	;;
1134cc4920e5Smrg    ppcle:Linux:*:*)
11350760f5d2Smrg	GUESS=powerpcle-unknown-linux-$LIBC
11360760f5d2Smrg	;;
11370760f5d2Smrg    riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
11380760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11390760f5d2Smrg	;;
1140caade7ccSmrg    s390:Linux:*:* | s390x:Linux:*:*)
11410760f5d2Smrg	GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
11420760f5d2Smrg	;;
1143caade7ccSmrg    sh64*:Linux:*:*)
11440760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11450760f5d2Smrg	;;
1146caade7ccSmrg    sh*:Linux:*:*)
11470760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11480760f5d2Smrg	;;
1149caade7ccSmrg    sparc:Linux:*:* | sparc64:Linux:*:*)
11500760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11510760f5d2Smrg	;;
1152e8a5466aSmrg    tile*:Linux:*:*)
11530760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11540760f5d2Smrg	;;
1155caade7ccSmrg    vax:Linux:*:*)
11560760f5d2Smrg	GUESS=$UNAME_MACHINE-dec-linux-$LIBC
11570760f5d2Smrg	;;
1158caade7ccSmrg    x86_64:Linux:*:*)
11590760f5d2Smrg	set_cc_for_build
116005789e77Smrg	CPU=$UNAME_MACHINE
11610760f5d2Smrg	LIBCABI=$LIBC
11620760f5d2Smrg	if test "$CC_FOR_BUILD" != no_compiler_found; then
116305789e77Smrg	    ABI=64
116405789e77Smrg	    sed 's/^	    //' << EOF > "$dummy.c"
116505789e77Smrg	    #ifdef __i386__
116605789e77Smrg	    ABI=x86
116705789e77Smrg	    #else
116805789e77Smrg	    #ifdef __ILP32__
116905789e77Smrg	    ABI=x32
117005789e77Smrg	    #endif
117105789e77Smrg	    #endif
117205789e77SmrgEOF
117305789e77Smrg	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
117405789e77Smrg	    eval "$cc_set_abi"
117505789e77Smrg	    case $ABI in
117605789e77Smrg		x86) CPU=i686 ;;
117705789e77Smrg		x32) LIBCABI=${LIBC}x32 ;;
117805789e77Smrg	    esac
11790760f5d2Smrg	fi
118005789e77Smrg	GUESS=$CPU-pc-linux-$LIBCABI
11810760f5d2Smrg	;;
1182485f0483Smrg    xtensa*:Linux:*:*)
11830760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
11840760f5d2Smrg	;;
1185caade7ccSmrg    i*86:DYNIX/ptx:4*:*)
1186caade7ccSmrg	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1187caade7ccSmrg	# earlier versions are messed up and put the nodename in both
1188caade7ccSmrg	# sysname and nodename.
11890760f5d2Smrg	GUESS=i386-sequent-sysv4
11900760f5d2Smrg	;;
1191caade7ccSmrg    i*86:UNIX_SV:4.2MP:2.*)
1192af9a7ee5Smrg	# Unixware is an offshoot of SVR4, but it has its own version
1193af9a7ee5Smrg	# number series starting with 2...
1194af9a7ee5Smrg	# I am not positive that other SVR4 systems won't match this,
1195caade7ccSmrg	# I just have to hope.  -- rms.
1196af9a7ee5Smrg	# Use sysv4.2uw... so that sysv4* matches it.
11970760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
11980760f5d2Smrg	;;
1199caade7ccSmrg    i*86:OS/2:*:*)
1200caade7ccSmrg	# If we were able to find `uname', then EMX Unix compatibility
1201caade7ccSmrg	# is probably installed.
12020760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-os2-emx
12030760f5d2Smrg	;;
1204caade7ccSmrg    i*86:XTS-300:*:STOP)
12050760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-stop
12060760f5d2Smrg	;;
1207caade7ccSmrg    i*86:atheos:*:*)
12080760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-atheos
12090760f5d2Smrg	;;
1210caade7ccSmrg    i*86:syllable:*:*)
12110760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-syllable
12120760f5d2Smrg	;;
1213b9b4fd27Smrg    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
12140760f5d2Smrg	GUESS=i386-unknown-lynxos$UNAME_RELEASE
12150760f5d2Smrg	;;
1216caade7ccSmrg    i*86:*DOS:*:*)
12170760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-msdosdjgpp
12180760f5d2Smrg	;;
1219cc4920e5Smrg    i*86:*:4.*:*)
1220cc4920e5Smrg	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1221caade7ccSmrg	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
12220760f5d2Smrg		GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
1223caade7ccSmrg	else
12240760f5d2Smrg		GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
1225caade7ccSmrg	fi
12260760f5d2Smrg	;;
1227caade7ccSmrg    i*86:*:5:[678]*)
1228af9a7ee5Smrg	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1229caade7ccSmrg	case `/bin/uname -X | grep "^Machine"` in
1230caade7ccSmrg	    *486*)	     UNAME_MACHINE=i486 ;;
1231caade7ccSmrg	    *Pentium)	     UNAME_MACHINE=i586 ;;
1232caade7ccSmrg	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1233caade7ccSmrg	esac
12340760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
12350760f5d2Smrg	;;
1236caade7ccSmrg    i*86:*:3.2:*)
1237caade7ccSmrg	if test -f /usr/options/cb.name; then
1238caade7ccSmrg		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
12390760f5d2Smrg		GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
1240caade7ccSmrg	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1241caade7ccSmrg		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1242caade7ccSmrg		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1243caade7ccSmrg		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1244caade7ccSmrg			&& UNAME_MACHINE=i586
1245caade7ccSmrg		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1246caade7ccSmrg			&& UNAME_MACHINE=i686
1247caade7ccSmrg		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1248caade7ccSmrg			&& UNAME_MACHINE=i686
12490760f5d2Smrg		GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
1250caade7ccSmrg	else
12510760f5d2Smrg		GUESS=$UNAME_MACHINE-pc-sysv32
1252caade7ccSmrg	fi
12530760f5d2Smrg	;;
1254caade7ccSmrg    pc:*:*:*)
1255caade7ccSmrg	# Left here for compatibility:
1256af9a7ee5Smrg	# uname -m prints for DJGPP always 'pc', but it prints nothing about
1257af9a7ee5Smrg	# the processor, so we play safe by assuming i586.
1258b9b4fd27Smrg	# Note: whatever this is, it MUST be the same as what config.sub
1259cc4920e5Smrg	# prints for the "djgpp" host, or else GDB configure will decide that
1260b9b4fd27Smrg	# this is a cross-build.
12610760f5d2Smrg	GUESS=i586-pc-msdosdjgpp
12620760f5d2Smrg	;;
1263caade7ccSmrg    Intel:Mach:3*:*)
12640760f5d2Smrg	GUESS=i386-pc-mach3
12650760f5d2Smrg	;;
1266caade7ccSmrg    paragon:*:*:*)
12670760f5d2Smrg	GUESS=i860-intel-osf1
12680760f5d2Smrg	;;
1269caade7ccSmrg    i860:*:4.*:*) # i860-SVR4
1270caade7ccSmrg	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
12710760f5d2Smrg	  GUESS=i860-stardent-sysv$UNAME_RELEASE    # Stardent Vistra i860-SVR4
1272caade7ccSmrg	else # Add other i860-SVR4 vendors below as they are discovered.
12730760f5d2Smrg	  GUESS=i860-unknown-sysv$UNAME_RELEASE     # Unknown i860-SVR4
1274caade7ccSmrg	fi
12750760f5d2Smrg	;;
1276caade7ccSmrg    mini*:CTIX:SYS*5:*)
1277caade7ccSmrg	# "miniframe"
12780760f5d2Smrg	GUESS=m68010-convergent-sysv
12790760f5d2Smrg	;;
1280caade7ccSmrg    mc68k:UNIX:SYSTEM5:3.51m)
12810760f5d2Smrg	GUESS=m68k-convergent-sysv
12820760f5d2Smrg	;;
1283caade7ccSmrg    M680?0:D-NIX:5.3:*)
12840760f5d2Smrg	GUESS=m68k-diab-dnix
12850760f5d2Smrg	;;
1286caade7ccSmrg    M68*:*:R3V[5678]*:*)
1287caade7ccSmrg	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1288caade7ccSmrg    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)
1289caade7ccSmrg	OS_REL=''
1290caade7ccSmrg	test -r /etc/.relid \
1291caade7ccSmrg	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1292caade7ccSmrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1293cc4920e5Smrg	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1294caade7ccSmrg	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1295cc4920e5Smrg	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1296caade7ccSmrg    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1297af9a7ee5Smrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1298af9a7ee5Smrg	  && { echo i486-ncr-sysv4; exit; } ;;
1299b9b4fd27Smrg    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1300b9b4fd27Smrg	OS_REL='.3'
1301b9b4fd27Smrg	test -r /etc/.relid \
1302b9b4fd27Smrg	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1303b9b4fd27Smrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1304cc4920e5Smrg	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1305b9b4fd27Smrg	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1306cc4920e5Smrg	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
1307b9b4fd27Smrg	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1308cc4920e5Smrg	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1309caade7ccSmrg    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
13100760f5d2Smrg	GUESS=m68k-unknown-lynxos$UNAME_RELEASE
13110760f5d2Smrg	;;
1312caade7ccSmrg    mc68030:UNIX_System_V:4.*:*)
13130760f5d2Smrg	GUESS=m68k-atari-sysv4
13140760f5d2Smrg	;;
1315caade7ccSmrg    TSUNAMI:LynxOS:2.*:*)
13160760f5d2Smrg	GUESS=sparc-unknown-lynxos$UNAME_RELEASE
13170760f5d2Smrg	;;
1318caade7ccSmrg    rs6000:LynxOS:2.*:*)
13190760f5d2Smrg	GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
13200760f5d2Smrg	;;
1321b9b4fd27Smrg    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
13220760f5d2Smrg	GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
13230760f5d2Smrg	;;
1324caade7ccSmrg    SM[BE]S:UNIX_SV:*:*)
13250760f5d2Smrg	GUESS=mips-dde-sysv$UNAME_RELEASE
13260760f5d2Smrg	;;
1327caade7ccSmrg    RM*:ReliantUNIX-*:*:*)
13280760f5d2Smrg	GUESS=mips-sni-sysv4
13290760f5d2Smrg	;;
1330caade7ccSmrg    RM*:SINIX-*:*:*)
13310760f5d2Smrg	GUESS=mips-sni-sysv4
13320760f5d2Smrg	;;
1333caade7ccSmrg    *:SINIX-*:*:*)
1334caade7ccSmrg	if uname -p 2>/dev/null >/dev/null ; then
1335caade7ccSmrg		UNAME_MACHINE=`(uname -p) 2>/dev/null`
13360760f5d2Smrg		GUESS=$UNAME_MACHINE-sni-sysv4
1337caade7ccSmrg	else
13380760f5d2Smrg		GUESS=ns32k-sni-sysv
1339caade7ccSmrg	fi
13400760f5d2Smrg	;;
1341af9a7ee5Smrg    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1342af9a7ee5Smrg			# says <Richard.M.Bartel@ccMail.Census.GOV>
13430760f5d2Smrg	GUESS=i586-unisys-sysv4
13440760f5d2Smrg	;;
1345caade7ccSmrg    *:UNIX_System_V:4*:FTX*)
1346caade7ccSmrg	# From Gerald Hewes <hewes@openmarket.com>.
1347caade7ccSmrg	# How about differentiating between stratus architectures? -djm
13480760f5d2Smrg	GUESS=hppa1.1-stratus-sysv4
13490760f5d2Smrg	;;
1350caade7ccSmrg    *:*:*:FTX*)
1351caade7ccSmrg	# From seanf@swdc.stratus.com.
13520760f5d2Smrg	GUESS=i860-stratus-sysv4
13530760f5d2Smrg	;;
1354caade7ccSmrg    i*86:VOS:*:*)
1355caade7ccSmrg	# From Paul.Green@stratus.com.
13560760f5d2Smrg	GUESS=$UNAME_MACHINE-stratus-vos
13570760f5d2Smrg	;;
1358caade7ccSmrg    *:VOS:*:*)
1359caade7ccSmrg	# From Paul.Green@stratus.com.
13600760f5d2Smrg	GUESS=hppa1.1-stratus-vos
13610760f5d2Smrg	;;
1362caade7ccSmrg    mc68*:A/UX:*:*)
13630760f5d2Smrg	GUESS=m68k-apple-aux$UNAME_RELEASE
13640760f5d2Smrg	;;
1365caade7ccSmrg    news*:NEWS-OS:6*:*)
13660760f5d2Smrg	GUESS=mips-sony-newsos6
13670760f5d2Smrg	;;
1368caade7ccSmrg    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
13690760f5d2Smrg	if test -d /usr/nec; then
13700760f5d2Smrg		GUESS=mips-nec-sysv$UNAME_RELEASE
1371caade7ccSmrg	else
13720760f5d2Smrg		GUESS=mips-unknown-sysv$UNAME_RELEASE
1373caade7ccSmrg	fi
13740760f5d2Smrg	;;
1375caade7ccSmrg    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
13760760f5d2Smrg	GUESS=powerpc-be-beos
13770760f5d2Smrg	;;
1378caade7ccSmrg    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
13790760f5d2Smrg	GUESS=powerpc-apple-beos
13800760f5d2Smrg	;;
1381caade7ccSmrg    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
13820760f5d2Smrg	GUESS=i586-pc-beos
13830760f5d2Smrg	;;
1384b9b4fd27Smrg    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
13850760f5d2Smrg	GUESS=i586-pc-haiku
13860760f5d2Smrg	;;
138705789e77Smrg    ppc:Haiku:*:*)	# Haiku running on Apple PowerPC
138805789e77Smrg	GUESS=powerpc-apple-haiku
138905789e77Smrg	;;
139005789e77Smrg    *:Haiku:*:*)	# Haiku modern gcc (not bound by BeOS compat)
139105789e77Smrg	GUESS=$UNAME_MACHINE-unknown-haiku
13920760f5d2Smrg	;;
1393caade7ccSmrg    SX-4:SUPER-UX:*:*)
13940760f5d2Smrg	GUESS=sx4-nec-superux$UNAME_RELEASE
13950760f5d2Smrg	;;
1396caade7ccSmrg    SX-5:SUPER-UX:*:*)
13970760f5d2Smrg	GUESS=sx5-nec-superux$UNAME_RELEASE
13980760f5d2Smrg	;;
1399caade7ccSmrg    SX-6:SUPER-UX:*:*)
14000760f5d2Smrg	GUESS=sx6-nec-superux$UNAME_RELEASE
14010760f5d2Smrg	;;
1402485f0483Smrg    SX-7:SUPER-UX:*:*)
14030760f5d2Smrg	GUESS=sx7-nec-superux$UNAME_RELEASE
14040760f5d2Smrg	;;
1405485f0483Smrg    SX-8:SUPER-UX:*:*)
14060760f5d2Smrg	GUESS=sx8-nec-superux$UNAME_RELEASE
14070760f5d2Smrg	;;
1408485f0483Smrg    SX-8R:SUPER-UX:*:*)
14090760f5d2Smrg	GUESS=sx8r-nec-superux$UNAME_RELEASE
14100760f5d2Smrg	;;
1411cc4920e5Smrg    SX-ACE:SUPER-UX:*:*)
14120760f5d2Smrg	GUESS=sxace-nec-superux$UNAME_RELEASE
14130760f5d2Smrg	;;
1414caade7ccSmrg    Power*:Rhapsody:*:*)
14150760f5d2Smrg	GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
14160760f5d2Smrg	;;
1417caade7ccSmrg    *:Rhapsody:*:*)
14180760f5d2Smrg	GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
14190760f5d2Smrg	;;
14200760f5d2Smrg    arm64:Darwin:*:*)
14210760f5d2Smrg	GUESS=aarch64-apple-darwin$UNAME_RELEASE
14220760f5d2Smrg	;;
1423caade7ccSmrg    *:Darwin:*:*)
14240760f5d2Smrg	UNAME_PROCESSOR=`uname -p`
14250760f5d2Smrg	case $UNAME_PROCESSOR in
14260760f5d2Smrg	    unknown) UNAME_PROCESSOR=powerpc ;;
14270760f5d2Smrg	esac
14280760f5d2Smrg	if command -v xcode-select > /dev/null 2> /dev/null && \
14290760f5d2Smrg		! xcode-select --print-path > /dev/null 2> /dev/null ; then
14300760f5d2Smrg	    # Avoid executing cc if there is no toolchain installed as
14310760f5d2Smrg	    # cc will be a stub that puts up a graphical alert
14320760f5d2Smrg	    # prompting the user to install developer tools.
14330760f5d2Smrg	    CC_FOR_BUILD=no_compiler_found
14340760f5d2Smrg	else
14350760f5d2Smrg	    set_cc_for_build
1436cc4920e5Smrg	fi
14370760f5d2Smrg	if test "$CC_FOR_BUILD" != no_compiler_found; then
14380760f5d2Smrg	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
14390760f5d2Smrg		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
14400760f5d2Smrg		   grep IS_64BIT_ARCH >/dev/null
14410760f5d2Smrg	    then
14420760f5d2Smrg		case $UNAME_PROCESSOR in
14430760f5d2Smrg		    i386) UNAME_PROCESSOR=x86_64 ;;
14440760f5d2Smrg		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
14450760f5d2Smrg		esac
14460760f5d2Smrg	    fi
14470760f5d2Smrg	    # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
14480760f5d2Smrg	    if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
14490760f5d2Smrg		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
14500760f5d2Smrg		   grep IS_PPC >/dev/null
14510760f5d2Smrg	    then
14520760f5d2Smrg		UNAME_PROCESSOR=powerpc
1453cc4920e5Smrg	    fi
1454cc4920e5Smrg	elif test "$UNAME_PROCESSOR" = i386 ; then
14550760f5d2Smrg	    # uname -m returns i386 or x86_64
14560760f5d2Smrg	    UNAME_PROCESSOR=$UNAME_MACHINE
1457cc4920e5Smrg	fi
14580760f5d2Smrg	GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
14590760f5d2Smrg	;;
1460caade7ccSmrg    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1461caade7ccSmrg	UNAME_PROCESSOR=`uname -p`
1462cc4920e5Smrg	if test "$UNAME_PROCESSOR" = x86; then
1463caade7ccSmrg		UNAME_PROCESSOR=i386
1464caade7ccSmrg		UNAME_MACHINE=pc
1465caade7ccSmrg	fi
14660760f5d2Smrg	GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
14670760f5d2Smrg	;;
1468caade7ccSmrg    *:QNX:*:4*)
14690760f5d2Smrg	GUESS=i386-pc-qnx
14700760f5d2Smrg	;;
1471cc4920e5Smrg    NEO-*:NONSTOP_KERNEL:*:*)
14720760f5d2Smrg	GUESS=neo-tandem-nsk$UNAME_RELEASE
14730760f5d2Smrg	;;
1474af9a7ee5Smrg    NSE-*:NONSTOP_KERNEL:*:*)
14750760f5d2Smrg	GUESS=nse-tandem-nsk$UNAME_RELEASE
14760760f5d2Smrg	;;
1477cc4920e5Smrg    NSR-*:NONSTOP_KERNEL:*:*)
14780760f5d2Smrg	GUESS=nsr-tandem-nsk$UNAME_RELEASE
14790760f5d2Smrg	;;
1480cc4920e5Smrg    NSV-*:NONSTOP_KERNEL:*:*)
14810760f5d2Smrg	GUESS=nsv-tandem-nsk$UNAME_RELEASE
14820760f5d2Smrg	;;
1483cc4920e5Smrg    NSX-*:NONSTOP_KERNEL:*:*)
14840760f5d2Smrg	GUESS=nsx-tandem-nsk$UNAME_RELEASE
14850760f5d2Smrg	;;
1486caade7ccSmrg    *:NonStop-UX:*:*)
14870760f5d2Smrg	GUESS=mips-compaq-nonstopux
14880760f5d2Smrg	;;
1489caade7ccSmrg    BS2000:POSIX*:*:*)
14900760f5d2Smrg	GUESS=bs2000-siemens-sysv
14910760f5d2Smrg	;;
1492caade7ccSmrg    DS/*:UNIX_System_V:*:*)
14930760f5d2Smrg	GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
14940760f5d2Smrg	;;
1495caade7ccSmrg    *:Plan9:*:*)
1496caade7ccSmrg	# "uname -m" is not consistent, so use $cputype instead. 386
1497caade7ccSmrg	# is converted to i386 for consistency with other x86
1498caade7ccSmrg	# operating systems.
14990760f5d2Smrg	if test "${cputype-}" = 386; then
1500caade7ccSmrg	    UNAME_MACHINE=i386
15010760f5d2Smrg	elif test "x${cputype-}" != x; then
15020760f5d2Smrg	    UNAME_MACHINE=$cputype
1503caade7ccSmrg	fi
15040760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-plan9
15050760f5d2Smrg	;;
1506caade7ccSmrg    *:TOPS-10:*:*)
15070760f5d2Smrg	GUESS=pdp10-unknown-tops10
15080760f5d2Smrg	;;
1509caade7ccSmrg    *:TENEX:*:*)
15100760f5d2Smrg	GUESS=pdp10-unknown-tenex
15110760f5d2Smrg	;;
1512caade7ccSmrg    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
15130760f5d2Smrg	GUESS=pdp10-dec-tops20
15140760f5d2Smrg	;;
1515caade7ccSmrg    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
15160760f5d2Smrg	GUESS=pdp10-xkl-tops20
15170760f5d2Smrg	;;
1518caade7ccSmrg    *:TOPS-20:*:*)
15190760f5d2Smrg	GUESS=pdp10-unknown-tops20
15200760f5d2Smrg	;;
1521caade7ccSmrg    *:ITS:*:*)
15220760f5d2Smrg	GUESS=pdp10-unknown-its
15230760f5d2Smrg	;;
1524caade7ccSmrg    SEI:*:*:SEIUX)
15250760f5d2Smrg	GUESS=mips-sei-seiux$UNAME_RELEASE
15260760f5d2Smrg	;;
1527caade7ccSmrg    *:DragonFly:*:*)
15280760f5d2Smrg	DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
15290760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
15300760f5d2Smrg	;;
1531caade7ccSmrg    *:*VMS:*:*)
1532af9a7ee5Smrg	UNAME_MACHINE=`(uname -p) 2>/dev/null`
15330760f5d2Smrg	case $UNAME_MACHINE in
15340760f5d2Smrg	    A*) GUESS=alpha-dec-vms ;;
15350760f5d2Smrg	    I*) GUESS=ia64-dec-vms ;;
15360760f5d2Smrg	    V*) GUESS=vax-dec-vms ;;
1537caade7ccSmrg	esac ;;
1538caade7ccSmrg    *:XENIX:*:SysV)
15390760f5d2Smrg	GUESS=i386-pc-xenix
15400760f5d2Smrg	;;
1541caade7ccSmrg    i*86:skyos:*:*)
15420760f5d2Smrg	SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
15430760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
15440760f5d2Smrg	;;
1545caade7ccSmrg    i*86:rdos:*:*)
15460760f5d2Smrg	GUESS=$UNAME_MACHINE-pc-rdos
15470760f5d2Smrg	;;
154805789e77Smrg    i*86:Fiwix:*:*)
154905789e77Smrg	GUESS=$UNAME_MACHINE-pc-fiwix
155005789e77Smrg	;;
15510760f5d2Smrg    *:AROS:*:*)
15520760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-aros
15530760f5d2Smrg	;;
1554af9a7ee5Smrg    x86_64:VMkernel:*:*)
15550760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-esx
15560760f5d2Smrg	;;
1557cc4920e5Smrg    amd64:Isilon\ OneFS:*:*)
15580760f5d2Smrg	GUESS=x86_64-unknown-onefs
15590760f5d2Smrg	;;
15600760f5d2Smrg    *:Unleashed:*:*)
15610760f5d2Smrg	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
15620760f5d2Smrg	;;
1563caade7ccSmrgesac
1564caade7ccSmrg
15650760f5d2Smrg# Do we have a guess based on uname results?
15660760f5d2Smrgif test "x$GUESS" != x; then
15670760f5d2Smrg    echo "$GUESS"
15680760f5d2Smrg    exit
15690760f5d2Smrgfi
15700760f5d2Smrg
15710760f5d2Smrg# No uname command or uname output not recognized.
15720760f5d2Smrgset_cc_for_build
15730760f5d2Smrgcat > "$dummy.c" <<EOF
15740760f5d2Smrg#ifdef _SEQUENT_
15750760f5d2Smrg#include <sys/types.h>
15760760f5d2Smrg#include <sys/utsname.h>
15770760f5d2Smrg#endif
15780760f5d2Smrg#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
15790760f5d2Smrg#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
15800760f5d2Smrg#include <signal.h>
15810760f5d2Smrg#if defined(_SIZE_T_) || defined(SIGLOST)
15820760f5d2Smrg#include <sys/utsname.h>
15830760f5d2Smrg#endif
15840760f5d2Smrg#endif
15850760f5d2Smrg#endif
15860760f5d2Smrgmain ()
15870760f5d2Smrg{
15880760f5d2Smrg#if defined (sony)
15890760f5d2Smrg#if defined (MIPSEB)
15900760f5d2Smrg  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
15910760f5d2Smrg     I don't know....  */
15920760f5d2Smrg  printf ("mips-sony-bsd\n"); exit (0);
15930760f5d2Smrg#else
15940760f5d2Smrg#include <sys/param.h>
15950760f5d2Smrg  printf ("m68k-sony-newsos%s\n",
15960760f5d2Smrg#ifdef NEWSOS4
15970760f5d2Smrg  "4"
15980760f5d2Smrg#else
15990760f5d2Smrg  ""
16000760f5d2Smrg#endif
16010760f5d2Smrg  ); exit (0);
16020760f5d2Smrg#endif
16030760f5d2Smrg#endif
16040760f5d2Smrg
16050760f5d2Smrg#if defined (NeXT)
16060760f5d2Smrg#if !defined (__ARCHITECTURE__)
16070760f5d2Smrg#define __ARCHITECTURE__ "m68k"
16080760f5d2Smrg#endif
16090760f5d2Smrg  int version;
16100760f5d2Smrg  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
16110760f5d2Smrg  if (version < 4)
16120760f5d2Smrg    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
16130760f5d2Smrg  else
16140760f5d2Smrg    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
16150760f5d2Smrg  exit (0);
16160760f5d2Smrg#endif
16170760f5d2Smrg
16180760f5d2Smrg#if defined (MULTIMAX) || defined (n16)
16190760f5d2Smrg#if defined (UMAXV)
16200760f5d2Smrg  printf ("ns32k-encore-sysv\n"); exit (0);
16210760f5d2Smrg#else
16220760f5d2Smrg#if defined (CMU)
16230760f5d2Smrg  printf ("ns32k-encore-mach\n"); exit (0);
16240760f5d2Smrg#else
16250760f5d2Smrg  printf ("ns32k-encore-bsd\n"); exit (0);
16260760f5d2Smrg#endif
16270760f5d2Smrg#endif
16280760f5d2Smrg#endif
16290760f5d2Smrg
16300760f5d2Smrg#if defined (__386BSD__)
16310760f5d2Smrg  printf ("i386-pc-bsd\n"); exit (0);
16320760f5d2Smrg#endif
16330760f5d2Smrg
16340760f5d2Smrg#if defined (sequent)
16350760f5d2Smrg#if defined (i386)
16360760f5d2Smrg  printf ("i386-sequent-dynix\n"); exit (0);
16370760f5d2Smrg#endif
16380760f5d2Smrg#if defined (ns32000)
16390760f5d2Smrg  printf ("ns32k-sequent-dynix\n"); exit (0);
16400760f5d2Smrg#endif
16410760f5d2Smrg#endif
16420760f5d2Smrg
16430760f5d2Smrg#if defined (_SEQUENT_)
16440760f5d2Smrg  struct utsname un;
16450760f5d2Smrg
16460760f5d2Smrg  uname(&un);
16470760f5d2Smrg  if (strncmp(un.version, "V2", 2) == 0) {
16480760f5d2Smrg    printf ("i386-sequent-ptx2\n"); exit (0);
16490760f5d2Smrg  }
16500760f5d2Smrg  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
16510760f5d2Smrg    printf ("i386-sequent-ptx1\n"); exit (0);
16520760f5d2Smrg  }
16530760f5d2Smrg  printf ("i386-sequent-ptx\n"); exit (0);
16540760f5d2Smrg#endif
16550760f5d2Smrg
16560760f5d2Smrg#if defined (vax)
16570760f5d2Smrg#if !defined (ultrix)
16580760f5d2Smrg#include <sys/param.h>
16590760f5d2Smrg#if defined (BSD)
16600760f5d2Smrg#if BSD == 43
16610760f5d2Smrg  printf ("vax-dec-bsd4.3\n"); exit (0);
16620760f5d2Smrg#else
16630760f5d2Smrg#if BSD == 199006
16640760f5d2Smrg  printf ("vax-dec-bsd4.3reno\n"); exit (0);
16650760f5d2Smrg#else
16660760f5d2Smrg  printf ("vax-dec-bsd\n"); exit (0);
16670760f5d2Smrg#endif
16680760f5d2Smrg#endif
16690760f5d2Smrg#else
16700760f5d2Smrg  printf ("vax-dec-bsd\n"); exit (0);
16710760f5d2Smrg#endif
16720760f5d2Smrg#else
16730760f5d2Smrg#if defined(_SIZE_T_) || defined(SIGLOST)
16740760f5d2Smrg  struct utsname un;
16750760f5d2Smrg  uname (&un);
16760760f5d2Smrg  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
16770760f5d2Smrg#else
16780760f5d2Smrg  printf ("vax-dec-ultrix\n"); exit (0);
16790760f5d2Smrg#endif
16800760f5d2Smrg#endif
16810760f5d2Smrg#endif
16820760f5d2Smrg#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
16830760f5d2Smrg#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
16840760f5d2Smrg#if defined(_SIZE_T_) || defined(SIGLOST)
16850760f5d2Smrg  struct utsname *un;
16860760f5d2Smrg  uname (&un);
16870760f5d2Smrg  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
16880760f5d2Smrg#else
16890760f5d2Smrg  printf ("mips-dec-ultrix\n"); exit (0);
16900760f5d2Smrg#endif
16910760f5d2Smrg#endif
16920760f5d2Smrg#endif
16930760f5d2Smrg
16940760f5d2Smrg#if defined (alliant) && defined (i860)
16950760f5d2Smrg  printf ("i860-alliant-bsd\n"); exit (0);
16960760f5d2Smrg#endif
16970760f5d2Smrg
16980760f5d2Smrg  exit (1);
16990760f5d2Smrg}
17000760f5d2SmrgEOF
17010760f5d2Smrg
17020760f5d2Smrg$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
17030760f5d2Smrg	{ echo "$SYSTEM_NAME"; exit; }
17040760f5d2Smrg
17050760f5d2Smrg# Apollos put the system type in the environment.
17060760f5d2Smrgtest -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
17070760f5d2Smrg
1708cc4920e5Smrgecho "$0: unable to guess system type" >&2
1709caade7ccSmrg
17100760f5d2Smrgcase $UNAME_MACHINE:$UNAME_SYSTEM in
1711cc4920e5Smrg    mips:Linux | mips64:Linux)
1712cc4920e5Smrg	# If we got here on MIPS GNU/Linux, output extra information.
1713cc4920e5Smrg	cat >&2 <<EOF
1714caade7ccSmrg
1715cc4920e5SmrgNOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
1716cc4920e5Smrgthe system type. Please install a C compiler and try again.
1717caade7ccSmrgEOF
1718cc4920e5Smrg	;;
1719cc4920e5Smrgesac
1720caade7ccSmrg
1721caade7ccSmrgcat >&2 <<EOF
1722caade7ccSmrg
1723cc4920e5SmrgThis script (version $timestamp), has failed to recognize the
1724cc4920e5Smrgoperating system you are using. If your script is old, overwrite *all*
1725cc4920e5Smrgcopies of config.guess and config.sub with the latest versions from:
1726caade7ccSmrg
17270760f5d2Smrg  https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
1728caade7ccSmrgand
17290760f5d2Smrg  https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
17300760f5d2SmrgEOF
17310760f5d2Smrg
17320760f5d2Smrgour_year=`echo $timestamp | sed 's,-.*,,'`
17330760f5d2Smrgthisyear=`date +%Y`
17340760f5d2Smrg# shellcheck disable=SC2003
17350760f5d2Smrgscript_age=`expr "$thisyear" - "$our_year"`
17360760f5d2Smrgif test "$script_age" -lt 3 ; then
17370760f5d2Smrg   cat >&2 <<EOF
1738caade7ccSmrg
1739cc4920e5SmrgIf $0 has already been updated, send the following data and any
1740cc4920e5Smrginformation you think might be pertinent to config-patches@gnu.org to
1741cc4920e5Smrgprovide the necessary information to handle your system.
1742caade7ccSmrg
1743caade7ccSmrgconfig.guess timestamp = $timestamp
1744caade7ccSmrg
1745caade7ccSmrguname -m = `(uname -m) 2>/dev/null || echo unknown`
1746caade7ccSmrguname -r = `(uname -r) 2>/dev/null || echo unknown`
1747caade7ccSmrguname -s = `(uname -s) 2>/dev/null || echo unknown`
1748caade7ccSmrguname -v = `(uname -v) 2>/dev/null || echo unknown`
1749caade7ccSmrg
1750caade7ccSmrg/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1751caade7ccSmrg/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1752caade7ccSmrg
1753caade7ccSmrghostinfo               = `(hostinfo) 2>/dev/null`
1754caade7ccSmrg/bin/universe          = `(/bin/universe) 2>/dev/null`
1755caade7ccSmrg/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1756caade7ccSmrg/bin/arch              = `(/bin/arch) 2>/dev/null`
1757caade7ccSmrg/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1758caade7ccSmrg/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1759caade7ccSmrg
1760cc4920e5SmrgUNAME_MACHINE = "$UNAME_MACHINE"
1761cc4920e5SmrgUNAME_RELEASE = "$UNAME_RELEASE"
1762cc4920e5SmrgUNAME_SYSTEM  = "$UNAME_SYSTEM"
1763cc4920e5SmrgUNAME_VERSION = "$UNAME_VERSION"
1764caade7ccSmrgEOF
17650760f5d2Smrgfi
1766caade7ccSmrg
1767caade7ccSmrgexit 1
1768caade7ccSmrg
1769caade7ccSmrg# Local variables:
17700760f5d2Smrg# eval: (add-hook 'before-save-hook 'time-stamp)
1771caade7ccSmrg# time-stamp-start: "timestamp='"
1772caade7ccSmrg# time-stamp-format: "%:y-%02m-%02d"
1773caade7ccSmrg# time-stamp-end: "'"
1774caade7ccSmrg# End:
1775