116910e25Smrg#! /bin/sh
216910e25Smrg# Attempt to guess a canonical system name.
3ed89697eSmrg#   Copyright 1992-2023 Free Software Foundation, Inc.
416910e25Smrg
5ed89697eSmrg# shellcheck disable=SC2006,SC2268 # see below for rationale
6ed89697eSmrg
7ed89697eSmrgtimestamp='2023-01-01'
816910e25Smrg
916910e25Smrg# This file is free software; you can redistribute it and/or modify it
1016910e25Smrg# under the terms of the GNU General Public License as published by
11ed89697eSmrg# the Free Software Foundation, either version 3 of the License, or
1216910e25Smrg# (at your option) any later version.
1316910e25Smrg#
1416910e25Smrg# This program is distributed in the hope that it will be useful, but
1516910e25Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
1616910e25Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1716910e25Smrg# General Public License for more details.
1816910e25Smrg#
1916910e25Smrg# You should have received a copy of the GNU General Public License
2076c9c3baSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
2116910e25Smrg#
2216910e25Smrg# As a special exception to the GNU General Public License, if you
2316910e25Smrg# distribute this file as part of a program that contains a
2416910e25Smrg# configuration script generated by Autoconf, you may include it under
2576c9c3baSmrg# the same distribution terms that you use for the rest of that
2676c9c3baSmrg# program.  This Exception is an additional permission under section 7
2776c9c3baSmrg# of the GNU General Public License, version 3 ("GPLv3").
2816910e25Smrg#
2976c9c3baSmrg# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
3016910e25Smrg#
319c125d91Smrg# You can get the latest version of this script from:
32ed89697eSmrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
3376c9c3baSmrg#
3476c9c3baSmrg# Please send patches to <config-patches@gnu.org>.
3576c9c3baSmrg
3616910e25Smrg
37ed89697eSmrg# The "shellcheck disable" line above the timestamp inhibits complaints
38ed89697eSmrg# about features and limitations of the classic Bourne shell that were
39ed89697eSmrg# superseded or lifted in POSIX.  However, this script identifies a wide
40ed89697eSmrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
41ed89697eSmrg# even some reasonably current systems (Solaris 10 as case-in-point) still
42ed89697eSmrg# have a pre-POSIX /bin/sh.
43ed89697eSmrg
44ed89697eSmrg
4516910e25Smrgme=`echo "$0" | sed -e 's,.*/,,'`
4616910e25Smrg
4716910e25Smrgusage="\
4816910e25SmrgUsage: $0 [OPTION]
4916910e25Smrg
5016910e25SmrgOutput the configuration name of the system \`$me' is run on.
5116910e25Smrg
5276c9c3baSmrgOptions:
5316910e25Smrg  -h, --help         print this help, then exit
5416910e25Smrg  -t, --time-stamp   print date of last modification, then exit
5516910e25Smrg  -v, --version      print version number, then exit
5616910e25Smrg
5716910e25SmrgReport bugs and patches to <config-patches@gnu.org>."
5816910e25Smrg
5916910e25Smrgversion="\
6016910e25SmrgGNU config.guess ($timestamp)
6116910e25Smrg
6216910e25SmrgOriginally written by Per Bothner.
63ed89697eSmrgCopyright 1992-2023 Free Software Foundation, Inc.
6416910e25Smrg
6516910e25SmrgThis is free software; see the source for copying conditions.  There is NO
6616910e25Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
6716910e25Smrg
6816910e25Smrghelp="
6916910e25SmrgTry \`$me --help' for more information."
7016910e25Smrg
7116910e25Smrg# Parse command line
7216910e25Smrgwhile test $# -gt 0 ; do
7316910e25Smrg  case $1 in
7416910e25Smrg    --time-stamp | --time* | -t )
759c125d91Smrg       echo "$timestamp" ; exit ;;
7616910e25Smrg    --version | -v )
779c125d91Smrg       echo "$version" ; exit ;;
7816910e25Smrg    --help | --h* | -h )
799c125d91Smrg       echo "$usage"; exit ;;
8016910e25Smrg    -- )     # Stop option processing
8116910e25Smrg       shift; break ;;
8216910e25Smrg    - )	# Use stdin as input.
8316910e25Smrg       break ;;
8416910e25Smrg    -* )
8516910e25Smrg       echo "$me: invalid option $1$help" >&2
8616910e25Smrg       exit 1 ;;
8716910e25Smrg    * )
8816910e25Smrg       break ;;
8916910e25Smrg  esac
9016910e25Smrgdone
9116910e25Smrg
9216910e25Smrgif test $# != 0; then
9316910e25Smrg  echo "$me: too many arguments$help" >&2
9416910e25Smrg  exit 1
9516910e25Smrgfi
9616910e25Smrg
97ed89697eSmrg# Just in case it came from the environment.
98ed89697eSmrgGUESS=
9916910e25Smrg
10016910e25Smrg# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
10116910e25Smrg# compiler to aid in system detection is discouraged as it requires
10216910e25Smrg# temporary files to be created and, as you can see below, it is a
10316910e25Smrg# headache to deal with in a portable fashion.
10416910e25Smrg
10516910e25Smrg# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
10616910e25Smrg# use `HOST_CC' if defined, but it is deprecated.
10716910e25Smrg
10816910e25Smrg# Portable tmp directory creation inspired by the Autoconf team.
10916910e25Smrg
110ed89697eSmrgtmp=
111ed89697eSmrg# shellcheck disable=SC2172
112ed89697eSmrgtrap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
113ed89697eSmrg
114ed89697eSmrgset_cc_for_build() {
115ed89697eSmrg    # prevent multiple calls if $tmp is already set
116ed89697eSmrg    test "$tmp" && return 0
117ed89697eSmrg    : "${TMPDIR=/tmp}"
118ed89697eSmrg    # shellcheck disable=SC2039,SC3028
119ed89697eSmrg    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
120ed89697eSmrg	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
121ed89697eSmrg	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
122ed89697eSmrg	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
123ed89697eSmrg    dummy=$tmp/dummy
124ed89697eSmrg    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
125ed89697eSmrg	,,)    echo "int x;" > "$dummy.c"
126ed89697eSmrg	       for driver in cc gcc c89 c99 ; do
127ed89697eSmrg		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
128ed89697eSmrg		       CC_FOR_BUILD=$driver
129ed89697eSmrg		       break
130ed89697eSmrg		   fi
131ed89697eSmrg	       done
132ed89697eSmrg	       if test x"$CC_FOR_BUILD" = x ; then
133ed89697eSmrg		   CC_FOR_BUILD=no_compiler_found
134ed89697eSmrg	       fi
135ed89697eSmrg	       ;;
136ed89697eSmrg	,,*)   CC_FOR_BUILD=$CC ;;
137ed89697eSmrg	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
138ed89697eSmrg    esac
139ed89697eSmrg}
14016910e25Smrg
14116910e25Smrg# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
14216910e25Smrg# (ghazi@noc.rutgers.edu 1994-08-24)
143ed89697eSmrgif test -f /.attbin/uname ; then
14416910e25Smrg	PATH=$PATH:/.attbin ; export PATH
14516910e25Smrgfi
14616910e25Smrg
14716910e25SmrgUNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
14816910e25SmrgUNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
149ed89697eSmrgUNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
15016910e25SmrgUNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
15116910e25Smrg
152ed89697eSmrgcase $UNAME_SYSTEM in
15376c9c3baSmrgLinux|GNU|GNU/*)
154ed89697eSmrg	LIBC=unknown
15576c9c3baSmrg
156ed89697eSmrg	set_cc_for_build
15776c9c3baSmrg	cat <<-EOF > "$dummy.c"
15876c9c3baSmrg	#include <features.h>
15976c9c3baSmrg	#if defined(__UCLIBC__)
16076c9c3baSmrg	LIBC=uclibc
16176c9c3baSmrg	#elif defined(__dietlibc__)
16276c9c3baSmrg	LIBC=dietlibc
163ed89697eSmrg	#elif defined(__GLIBC__)
16476c9c3baSmrg	LIBC=gnu
165ed89697eSmrg	#else
166ed89697eSmrg	#include <stdarg.h>
167ed89697eSmrg	/* First heuristic to detect musl libc.  */
168ed89697eSmrg	#ifdef __DEFINED_va_list
169ed89697eSmrg	LIBC=musl
170ed89697eSmrg	#endif
17176c9c3baSmrg	#endif
17276c9c3baSmrg	EOF
173ed89697eSmrg	cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
174ed89697eSmrg	eval "$cc_set_libc"
17576c9c3baSmrg
176ed89697eSmrg	# Second heuristic to detect musl libc.
177ed89697eSmrg	if [ "$LIBC" = unknown ] &&
178ed89697eSmrg	   command -v ldd >/dev/null &&
179ed89697eSmrg	   ldd --version 2>&1 | grep -q ^musl; then
180ed89697eSmrg		LIBC=musl
181ed89697eSmrg	fi
182ed89697eSmrg
183ed89697eSmrg	# If the system lacks a compiler, then just pick glibc.
184ed89697eSmrg	# We could probably try harder.
185ed89697eSmrg	if [ "$LIBC" = unknown ]; then
186ed89697eSmrg		LIBC=gnu
18776c9c3baSmrg	fi
18876c9c3baSmrg	;;
18976c9c3baSmrgesac
19076c9c3baSmrg
19116910e25Smrg# Note: order is significant - the case branches are not exclusive.
19216910e25Smrg
193ed89697eSmrgcase $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
19416910e25Smrg    *:NetBSD:*:*)
19516910e25Smrg	# NetBSD (nbsd) targets should (where applicable) match one or
19676c9c3baSmrg	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
19716910e25Smrg	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
19816910e25Smrg	# switched to ELF, *-*-netbsd* would select the old
19916910e25Smrg	# object file format.  This provides both forward
20016910e25Smrg	# compatibility and a consistent mechanism for selecting the
20116910e25Smrg	# object file format.
20216910e25Smrg	#
20316910e25Smrg	# Note: NetBSD doesn't particularly care about the vendor
20416910e25Smrg	# portion of the name.  We always set it to "unknown".
20576c9c3baSmrg	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
206ed89697eSmrg	    /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
207ed89697eSmrg	    /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
20876c9c3baSmrg	    echo unknown)`
209ed89697eSmrg	case $UNAME_MACHINE_ARCH in
210ed89697eSmrg	    aarch64eb) machine=aarch64_be-unknown ;;
21116910e25Smrg	    armeb) machine=armeb-unknown ;;
21216910e25Smrg	    arm*) machine=arm-unknown ;;
21316910e25Smrg	    sh3el) machine=shl-unknown ;;
21416910e25Smrg	    sh3eb) machine=sh-unknown ;;
2159c125d91Smrg	    sh5el) machine=sh5le-unknown ;;
21676c9c3baSmrg	    earmv*)
21776c9c3baSmrg		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
21876c9c3baSmrg		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
219ed89697eSmrg		machine=${arch}${endian}-unknown
22076c9c3baSmrg		;;
221ed89697eSmrg	    *) machine=$UNAME_MACHINE_ARCH-unknown ;;
22216910e25Smrg	esac
22316910e25Smrg	# The Operating System including object format, if it has switched
22476c9c3baSmrg	# to ELF recently (or will in the future) and ABI.
225ed89697eSmrg	case $UNAME_MACHINE_ARCH in
22676c9c3baSmrg	    earm*)
22776c9c3baSmrg		os=netbsdelf
22876c9c3baSmrg		;;
22916910e25Smrg	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
230ed89697eSmrg		set_cc_for_build
23116910e25Smrg		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
2329c125d91Smrg			| grep -q __ELF__
23316910e25Smrg		then
23416910e25Smrg		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
23516910e25Smrg		    # Return netbsd for either.  FIX?
23616910e25Smrg		    os=netbsd
23716910e25Smrg		else
23816910e25Smrg		    os=netbsdelf
23916910e25Smrg		fi
24016910e25Smrg		;;
24116910e25Smrg	    *)
24276c9c3baSmrg		os=netbsd
24376c9c3baSmrg		;;
24476c9c3baSmrg	esac
24576c9c3baSmrg	# Determine ABI tags.
246ed89697eSmrg	case $UNAME_MACHINE_ARCH in
24776c9c3baSmrg	    earm*)
24876c9c3baSmrg		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
24976c9c3baSmrg		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
25016910e25Smrg		;;
25116910e25Smrg	esac
25216910e25Smrg	# The OS release
25316910e25Smrg	# Debian GNU/NetBSD machines have a different userland, and
25416910e25Smrg	# thus, need a distinct triplet. However, they do not need
25516910e25Smrg	# kernel version information, so it can be replaced with a
25616910e25Smrg	# suitable tag, in the style of linux-gnu.
257ed89697eSmrg	case $UNAME_VERSION in
25816910e25Smrg	    Debian*)
25916910e25Smrg		release='-gnu'
26016910e25Smrg		;;
26116910e25Smrg	    *)
26276c9c3baSmrg		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
26316910e25Smrg		;;
26416910e25Smrg	esac
26516910e25Smrg	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
26616910e25Smrg	# contains redundant information, the shorter form:
26716910e25Smrg	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
268ed89697eSmrg	GUESS=$machine-${os}${release}${abi-}
269ed89697eSmrg	;;
27076c9c3baSmrg    *:Bitrig:*:*)
27176c9c3baSmrg	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
272ed89697eSmrg	GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
273ed89697eSmrg	;;
27416910e25Smrg    *:OpenBSD:*:*)
2759c125d91Smrg	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
276ed89697eSmrg	GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
277ed89697eSmrg	;;
278ed89697eSmrg    *:SecBSD:*:*)
279ed89697eSmrg	UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
280ed89697eSmrg	GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
281ed89697eSmrg	;;
28276c9c3baSmrg    *:LibertyBSD:*:*)
28376c9c3baSmrg	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
284ed89697eSmrg	GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
285ed89697eSmrg	;;
28676c9c3baSmrg    *:MidnightBSD:*:*)
287ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
288ed89697eSmrg	;;
2899c125d91Smrg    *:ekkoBSD:*:*)
290ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
291ed89697eSmrg	;;
2929c125d91Smrg    *:SolidBSD:*:*)
293ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
294ed89697eSmrg	;;
295ed89697eSmrg    *:OS108:*:*)
296ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
297ed89697eSmrg	;;
2989c125d91Smrg    macppc:MirBSD:*:*)
299ed89697eSmrg	GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
300ed89697eSmrg	;;
3019c125d91Smrg    *:MirBSD:*:*)
302ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
303ed89697eSmrg	;;
30476c9c3baSmrg    *:Sortix:*:*)
305ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-sortix
306ed89697eSmrg	;;
307ed89697eSmrg    *:Twizzler:*:*)
308ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-twizzler
309ed89697eSmrg	;;
31076c9c3baSmrg    *:Redox:*:*)
311ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-redox
312ed89697eSmrg	;;
31376c9c3baSmrg    mips:OSF1:*.*)
314ed89697eSmrg	GUESS=mips-dec-osf1
315ed89697eSmrg	;;
31616910e25Smrg    alpha:OSF1:*:*)
317ed89697eSmrg	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
318ed89697eSmrg	trap '' 0
3199c125d91Smrg	case $UNAME_RELEASE in
3209c125d91Smrg	*4.0)
32116910e25Smrg		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
3229c125d91Smrg		;;
3239c125d91Smrg	*5.*)
32476c9c3baSmrg		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
3259c125d91Smrg		;;
3269c125d91Smrg	esac
32716910e25Smrg	# According to Compaq, /usr/sbin/psrinfo has been available on
32816910e25Smrg	# OSF/1 and Tru64 systems produced since 1995.  I hope that
32916910e25Smrg	# covers most systems running today.  This code pipes the CPU
33016910e25Smrg	# types through head -n 1, so we only detect the type of CPU 0.
33116910e25Smrg	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
332ed89697eSmrg	case $ALPHA_CPU_TYPE in
33316910e25Smrg	    "EV4 (21064)")
33476c9c3baSmrg		UNAME_MACHINE=alpha ;;
33516910e25Smrg	    "EV4.5 (21064)")
33676c9c3baSmrg		UNAME_MACHINE=alpha ;;
33716910e25Smrg	    "LCA4 (21066/21068)")
33876c9c3baSmrg		UNAME_MACHINE=alpha ;;
33916910e25Smrg	    "EV5 (21164)")
34076c9c3baSmrg		UNAME_MACHINE=alphaev5 ;;
34116910e25Smrg	    "EV5.6 (21164A)")
34276c9c3baSmrg		UNAME_MACHINE=alphaev56 ;;
34316910e25Smrg	    "EV5.6 (21164PC)")
34476c9c3baSmrg		UNAME_MACHINE=alphapca56 ;;
34516910e25Smrg	    "EV5.7 (21164PC)")
34676c9c3baSmrg		UNAME_MACHINE=alphapca57 ;;
34716910e25Smrg	    "EV6 (21264)")
34876c9c3baSmrg		UNAME_MACHINE=alphaev6 ;;
34916910e25Smrg	    "EV6.7 (21264A)")
35076c9c3baSmrg		UNAME_MACHINE=alphaev67 ;;
35116910e25Smrg	    "EV6.8CB (21264C)")
35276c9c3baSmrg		UNAME_MACHINE=alphaev68 ;;
35316910e25Smrg	    "EV6.8AL (21264B)")
35476c9c3baSmrg		UNAME_MACHINE=alphaev68 ;;
35516910e25Smrg	    "EV6.8CX (21264D)")
35676c9c3baSmrg		UNAME_MACHINE=alphaev68 ;;
35716910e25Smrg	    "EV6.9A (21264/EV69A)")
35876c9c3baSmrg		UNAME_MACHINE=alphaev69 ;;
35916910e25Smrg	    "EV7 (21364)")
36076c9c3baSmrg		UNAME_MACHINE=alphaev7 ;;
36116910e25Smrg	    "EV7.9 (21364A)")
36276c9c3baSmrg		UNAME_MACHINE=alphaev79 ;;
36316910e25Smrg	esac
3649c125d91Smrg	# A Pn.n version is a patched version.
36516910e25Smrg	# A Vn.n version is a released version.
36616910e25Smrg	# A Tn.n version is a released field test version.
36716910e25Smrg	# A Xn.n version is an unreleased experimental baselevel.
36816910e25Smrg	# 1.2 uses "1.2" for uname -r.
369ed89697eSmrg	OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
370ed89697eSmrg	GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
371ed89697eSmrg	;;
37216910e25Smrg    Amiga*:UNIX_System_V:4.0:*)
373ed89697eSmrg	GUESS=m68k-unknown-sysv4
374ed89697eSmrg	;;
37516910e25Smrg    *:[Aa]miga[Oo][Ss]:*:*)
376ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-amigaos
377ed89697eSmrg	;;
37816910e25Smrg    *:[Mm]orph[Oo][Ss]:*:*)
379ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-morphos
380ed89697eSmrg	;;
38116910e25Smrg    *:OS/390:*:*)
382ed89697eSmrg	GUESS=i370-ibm-openedition
383ed89697eSmrg	;;
3849c125d91Smrg    *:z/VM:*:*)
385ed89697eSmrg	GUESS=s390-ibm-zvmoe
386ed89697eSmrg	;;
3879c125d91Smrg    *:OS400:*:*)
388ed89697eSmrg	GUESS=powerpc-ibm-os400
389ed89697eSmrg	;;
39016910e25Smrg    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
391ed89697eSmrg	GUESS=arm-acorn-riscix$UNAME_RELEASE
392ed89697eSmrg	;;
39376c9c3baSmrg    arm*:riscos:*:*|arm*:RISCOS:*:*)
394ed89697eSmrg	GUESS=arm-unknown-riscos
395ed89697eSmrg	;;
39616910e25Smrg    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
397ed89697eSmrg	GUESS=hppa1.1-hitachi-hiuxmpp
398ed89697eSmrg	;;
39916910e25Smrg    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
40016910e25Smrg	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
401ed89697eSmrg	case `(/bin/universe) 2>/dev/null` in
402ed89697eSmrg	    att) GUESS=pyramid-pyramid-sysv3 ;;
403ed89697eSmrg	    *)   GUESS=pyramid-pyramid-bsd   ;;
404ed89697eSmrg	esac
405ed89697eSmrg	;;
40616910e25Smrg    NILE*:*:*:dcosx)
407ed89697eSmrg	GUESS=pyramid-pyramid-svr4
408ed89697eSmrg	;;
40916910e25Smrg    DRS?6000:unix:4.0:6*)
410ed89697eSmrg	GUESS=sparc-icl-nx6
411ed89697eSmrg	;;
4129c125d91Smrg    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
41316910e25Smrg	case `/usr/bin/uname -p` in
414ed89697eSmrg	    sparc) GUESS=sparc-icl-nx7 ;;
415ed89697eSmrg	esac
416ed89697eSmrg	;;
4179c125d91Smrg    s390x:SunOS:*:*)
418ed89697eSmrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
419ed89697eSmrg	GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
420ed89697eSmrg	;;
42116910e25Smrg    sun4H:SunOS:5.*:*)
422ed89697eSmrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
423ed89697eSmrg	GUESS=sparc-hal-solaris2$SUN_REL
424ed89697eSmrg	;;
42516910e25Smrg    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
426ed89697eSmrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
427ed89697eSmrg	GUESS=sparc-sun-solaris2$SUN_REL
428ed89697eSmrg	;;
4299c125d91Smrg    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
430ed89697eSmrg	GUESS=i386-pc-auroraux$UNAME_RELEASE
431ed89697eSmrg	;;
4329c125d91Smrg    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
433ed89697eSmrg	set_cc_for_build
43476c9c3baSmrg	SUN_ARCH=i386
4359c125d91Smrg	# If there is a compiler, see if it is configured for 64-bit objects.
4369c125d91Smrg	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
4379c125d91Smrg	# This test works for both compilers.
438ed89697eSmrg	if test "$CC_FOR_BUILD" != no_compiler_found; then
4399c125d91Smrg	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
440ed89697eSmrg		(CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
4419c125d91Smrg		grep IS_64BIT_ARCH >/dev/null
4429c125d91Smrg	    then
44376c9c3baSmrg		SUN_ARCH=x86_64
4449c125d91Smrg	    fi
4459c125d91Smrg	fi
446ed89697eSmrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
447ed89697eSmrg	GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
448ed89697eSmrg	;;
44916910e25Smrg    sun4*:SunOS:6*:*)
45016910e25Smrg	# According to config.sub, this is the proper way to canonicalize
45116910e25Smrg	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
45216910e25Smrg	# it's likely to be more like Solaris than SunOS4.
453ed89697eSmrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
454ed89697eSmrg	GUESS=sparc-sun-solaris3$SUN_REL
455ed89697eSmrg	;;
45616910e25Smrg    sun4*:SunOS:*:*)
457ed89697eSmrg	case `/usr/bin/arch -k` in
45816910e25Smrg	    Series*|S4*)
45916910e25Smrg		UNAME_RELEASE=`uname -v`
46016910e25Smrg		;;
46116910e25Smrg	esac
46216910e25Smrg	# Japanese Language versions have a version number like `4.1.3-JL'.
463ed89697eSmrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
464ed89697eSmrg	GUESS=sparc-sun-sunos$SUN_REL
465ed89697eSmrg	;;
46616910e25Smrg    sun3*:SunOS:*:*)
467ed89697eSmrg	GUESS=m68k-sun-sunos$UNAME_RELEASE
468ed89697eSmrg	;;
46916910e25Smrg    sun*:*:4.2BSD:*)
47016910e25Smrg	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
47176c9c3baSmrg	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
472ed89697eSmrg	case `/bin/arch` in
47316910e25Smrg	    sun3)
474ed89697eSmrg		GUESS=m68k-sun-sunos$UNAME_RELEASE
47516910e25Smrg		;;
47616910e25Smrg	    sun4)
477ed89697eSmrg		GUESS=sparc-sun-sunos$UNAME_RELEASE
47816910e25Smrg		;;
47916910e25Smrg	esac
480ed89697eSmrg	;;
48116910e25Smrg    aushp:SunOS:*:*)
482ed89697eSmrg	GUESS=sparc-auspex-sunos$UNAME_RELEASE
483ed89697eSmrg	;;
48416910e25Smrg    # The situation for MiNT is a little confusing.  The machine name
48516910e25Smrg    # can be virtually everything (everything which is not
48616910e25Smrg    # "atarist" or "atariste" at least should have a processor
48716910e25Smrg    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
48816910e25Smrg    # to the lowercase version "mint" (or "freemint").  Finally
48916910e25Smrg    # the system name "TOS" denotes a system which is actually not
49016910e25Smrg    # MiNT.  But MiNT is downward compatible to TOS, so this should
49116910e25Smrg    # be no problem.
49216910e25Smrg    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
493ed89697eSmrg	GUESS=m68k-atari-mint$UNAME_RELEASE
494ed89697eSmrg	;;
49516910e25Smrg    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
496ed89697eSmrg	GUESS=m68k-atari-mint$UNAME_RELEASE
497ed89697eSmrg	;;
49816910e25Smrg    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
499ed89697eSmrg	GUESS=m68k-atari-mint$UNAME_RELEASE
500ed89697eSmrg	;;
50116910e25Smrg    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
502ed89697eSmrg	GUESS=m68k-milan-mint$UNAME_RELEASE
503ed89697eSmrg	;;
50416910e25Smrg    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
505ed89697eSmrg	GUESS=m68k-hades-mint$UNAME_RELEASE
506ed89697eSmrg	;;
50716910e25Smrg    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
508ed89697eSmrg	GUESS=m68k-unknown-mint$UNAME_RELEASE
509ed89697eSmrg	;;
5109c125d91Smrg    m68k:machten:*:*)
511ed89697eSmrg	GUESS=m68k-apple-machten$UNAME_RELEASE
512ed89697eSmrg	;;
51316910e25Smrg    powerpc:machten:*:*)
514ed89697eSmrg	GUESS=powerpc-apple-machten$UNAME_RELEASE
515ed89697eSmrg	;;
51616910e25Smrg    RISC*:Mach:*:*)
517ed89697eSmrg	GUESS=mips-dec-mach_bsd4.3
518ed89697eSmrg	;;
51916910e25Smrg    RISC*:ULTRIX:*:*)
520ed89697eSmrg	GUESS=mips-dec-ultrix$UNAME_RELEASE
521ed89697eSmrg	;;
52216910e25Smrg    VAX*:ULTRIX*:*:*)
523ed89697eSmrg	GUESS=vax-dec-ultrix$UNAME_RELEASE
524ed89697eSmrg	;;
52516910e25Smrg    2020:CLIX:*:* | 2430:CLIX:*:*)
526ed89697eSmrg	GUESS=clipper-intergraph-clix$UNAME_RELEASE
527ed89697eSmrg	;;
52816910e25Smrg    mips:*:*:UMIPS | mips:*:*:RISCos)
529ed89697eSmrg	set_cc_for_build
53076c9c3baSmrg	sed 's/^	//' << EOF > "$dummy.c"
53116910e25Smrg#ifdef __cplusplus
53216910e25Smrg#include <stdio.h>  /* for printf() prototype */
53316910e25Smrg	int main (int argc, char *argv[]) {
53416910e25Smrg#else
53516910e25Smrg	int main (argc, argv) int argc; char *argv[]; {
53616910e25Smrg#endif
53716910e25Smrg	#if defined (host_mips) && defined (MIPSEB)
53816910e25Smrg	#if defined (SYSTYPE_SYSV)
53976c9c3baSmrg	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
54016910e25Smrg	#endif
54116910e25Smrg	#if defined (SYSTYPE_SVR4)
54276c9c3baSmrg	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
54316910e25Smrg	#endif
54416910e25Smrg	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
54576c9c3baSmrg	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
54616910e25Smrg	#endif
54716910e25Smrg	#endif
54816910e25Smrg	  exit (-1);
54916910e25Smrg	}
55016910e25SmrgEOF
55176c9c3baSmrg	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
55276c9c3baSmrg	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
55376c9c3baSmrg	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
5549c125d91Smrg	    { echo "$SYSTEM_NAME"; exit; }
555ed89697eSmrg	GUESS=mips-mips-riscos$UNAME_RELEASE
556ed89697eSmrg	;;
55716910e25Smrg    Motorola:PowerMAX_OS:*:*)
558ed89697eSmrg	GUESS=powerpc-motorola-powermax
559ed89697eSmrg	;;
56016910e25Smrg    Motorola:*:4.3:PL8-*)
561ed89697eSmrg	GUESS=powerpc-harris-powermax
562ed89697eSmrg	;;
56316910e25Smrg    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
564ed89697eSmrg	GUESS=powerpc-harris-powermax
565ed89697eSmrg	;;
56616910e25Smrg    Night_Hawk:Power_UNIX:*:*)
567ed89697eSmrg	GUESS=powerpc-harris-powerunix
568ed89697eSmrg	;;
56916910e25Smrg    m88k:CX/UX:7*:*)
570ed89697eSmrg	GUESS=m88k-harris-cxux7
571ed89697eSmrg	;;
57216910e25Smrg    m88k:*:4*:R4*)
573ed89697eSmrg	GUESS=m88k-motorola-sysv4
574ed89697eSmrg	;;
57516910e25Smrg    m88k:*:3*:R3*)
576ed89697eSmrg	GUESS=m88k-motorola-sysv3
577ed89697eSmrg	;;
57816910e25Smrg    AViiON:dgux:*:*)
57976c9c3baSmrg	# DG/UX returns AViiON for all architectures
58076c9c3baSmrg	UNAME_PROCESSOR=`/usr/bin/uname -p`
581ed89697eSmrg	if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
58216910e25Smrg	then
583ed89697eSmrg	    if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
584ed89697eSmrg	       test "$TARGET_BINARY_INTERFACE"x = x
58516910e25Smrg	    then
586ed89697eSmrg		GUESS=m88k-dg-dgux$UNAME_RELEASE
58716910e25Smrg	    else
588ed89697eSmrg		GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
58916910e25Smrg	    fi
59016910e25Smrg	else
591ed89697eSmrg	    GUESS=i586-dg-dgux$UNAME_RELEASE
59216910e25Smrg	fi
593ed89697eSmrg	;;
59416910e25Smrg    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
595ed89697eSmrg	GUESS=m88k-dolphin-sysv3
596ed89697eSmrg	;;
59716910e25Smrg    M88*:*:R3*:*)
59816910e25Smrg	# Delta 88k system running SVR3
599ed89697eSmrg	GUESS=m88k-motorola-sysv3
600ed89697eSmrg	;;
60116910e25Smrg    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
602ed89697eSmrg	GUESS=m88k-tektronix-sysv3
603ed89697eSmrg	;;
60416910e25Smrg    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
605ed89697eSmrg	GUESS=m68k-tektronix-bsd
606ed89697eSmrg	;;
60716910e25Smrg    *:IRIX*:*:*)
608ed89697eSmrg	IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
609ed89697eSmrg	GUESS=mips-sgi-irix$IRIX_REL
610ed89697eSmrg	;;
61116910e25Smrg    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
612ed89697eSmrg	GUESS=romp-ibm-aix    # uname -m gives an 8 hex-code CPU id
613ed89697eSmrg	;;                    # Note that: echo "'`uname -s`'" gives 'AIX '
61416910e25Smrg    i*86:AIX:*:*)
615ed89697eSmrg	GUESS=i386-ibm-aix
616ed89697eSmrg	;;
61716910e25Smrg    ia64:AIX:*:*)
618ed89697eSmrg	if test -x /usr/bin/oslevel ; then
61916910e25Smrg		IBM_REV=`/usr/bin/oslevel`
62016910e25Smrg	else
621ed89697eSmrg		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
62216910e25Smrg	fi
623ed89697eSmrg	GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
624ed89697eSmrg	;;
62516910e25Smrg    *:AIX:2:3)
62616910e25Smrg	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
627ed89697eSmrg		set_cc_for_build
62876c9c3baSmrg		sed 's/^		//' << EOF > "$dummy.c"
62916910e25Smrg		#include <sys/systemcfg.h>
63016910e25Smrg
63116910e25Smrg		main()
63216910e25Smrg			{
63316910e25Smrg			if (!__power_pc())
63416910e25Smrg				exit(1);
63516910e25Smrg			puts("powerpc-ibm-aix3.2.5");
63616910e25Smrg			exit(0);
63716910e25Smrg			}
63816910e25SmrgEOF
63976c9c3baSmrg		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
6409c125d91Smrg		then
641ed89697eSmrg			GUESS=$SYSTEM_NAME
6429c125d91Smrg		else
643ed89697eSmrg			GUESS=rs6000-ibm-aix3.2.5
6449c125d91Smrg		fi
64516910e25Smrg	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
646ed89697eSmrg		GUESS=rs6000-ibm-aix3.2.4
64716910e25Smrg	else
648ed89697eSmrg		GUESS=rs6000-ibm-aix3.2
64916910e25Smrg	fi
650ed89697eSmrg	;;
65176c9c3baSmrg    *:AIX:*:[4567])
65216910e25Smrg	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
65376c9c3baSmrg	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
65416910e25Smrg		IBM_ARCH=rs6000
65516910e25Smrg	else
65616910e25Smrg		IBM_ARCH=powerpc
65716910e25Smrg	fi
658ed89697eSmrg	if test -x /usr/bin/lslpp ; then
659ed89697eSmrg		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
66076c9c3baSmrg			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
66116910e25Smrg	else
662ed89697eSmrg		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
66316910e25Smrg	fi
664ed89697eSmrg	GUESS=$IBM_ARCH-ibm-aix$IBM_REV
665ed89697eSmrg	;;
66616910e25Smrg    *:AIX:*:*)
667ed89697eSmrg	GUESS=rs6000-ibm-aix
668ed89697eSmrg	;;
66976c9c3baSmrg    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
670ed89697eSmrg	GUESS=romp-ibm-bsd4.4
671ed89697eSmrg	;;
67216910e25Smrg    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
673ed89697eSmrg	GUESS=romp-ibm-bsd$UNAME_RELEASE    # 4.3 with uname added to
674ed89697eSmrg	;;                                  # report: romp-ibm BSD 4.3
67516910e25Smrg    *:BOSX:*:*)
676ed89697eSmrg	GUESS=rs6000-bull-bosx
677ed89697eSmrg	;;
67816910e25Smrg    DPX/2?00:B.O.S.:*:*)
679ed89697eSmrg	GUESS=m68k-bull-sysv3
680ed89697eSmrg	;;
68116910e25Smrg    9000/[34]??:4.3bsd:1.*:*)
682ed89697eSmrg	GUESS=m68k-hp-bsd
683ed89697eSmrg	;;
68416910e25Smrg    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
685ed89697eSmrg	GUESS=m68k-hp-bsd4.4
686ed89697eSmrg	;;
68716910e25Smrg    9000/[34678]??:HP-UX:*:*)
688ed89697eSmrg	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
689ed89697eSmrg	case $UNAME_MACHINE in
69076c9c3baSmrg	    9000/31?)            HP_ARCH=m68000 ;;
69176c9c3baSmrg	    9000/[34]??)         HP_ARCH=m68k ;;
69216910e25Smrg	    9000/[678][0-9][0-9])
693ed89697eSmrg		if test -x /usr/bin/getconf; then
69416910e25Smrg		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
69576c9c3baSmrg		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
696ed89697eSmrg		    case $sc_cpu_version in
69776c9c3baSmrg		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
69876c9c3baSmrg		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
69976c9c3baSmrg		      532)                      # CPU_PA_RISC2_0
700ed89697eSmrg			case $sc_kernel_bits in
70176c9c3baSmrg			  32) HP_ARCH=hppa2.0n ;;
70276c9c3baSmrg			  64) HP_ARCH=hppa2.0w ;;
70376c9c3baSmrg			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
70476c9c3baSmrg			esac ;;
70576c9c3baSmrg		    esac
70616910e25Smrg		fi
707ed89697eSmrg		if test "$HP_ARCH" = ""; then
708ed89697eSmrg		    set_cc_for_build
70976c9c3baSmrg		    sed 's/^		//' << EOF > "$dummy.c"
71016910e25Smrg
71176c9c3baSmrg		#define _HPUX_SOURCE
71276c9c3baSmrg		#include <stdlib.h>
71376c9c3baSmrg		#include <unistd.h>
71416910e25Smrg
71576c9c3baSmrg		int main ()
71676c9c3baSmrg		{
71776c9c3baSmrg		#if defined(_SC_KERNEL_BITS)
71876c9c3baSmrg		    long bits = sysconf(_SC_KERNEL_BITS);
71976c9c3baSmrg		#endif
72076c9c3baSmrg		    long cpu  = sysconf (_SC_CPU_VERSION);
72116910e25Smrg
72276c9c3baSmrg		    switch (cpu)
72376c9c3baSmrg			{
72476c9c3baSmrg			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
72576c9c3baSmrg			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
72676c9c3baSmrg			case CPU_PA_RISC2_0:
72776c9c3baSmrg		#if defined(_SC_KERNEL_BITS)
72876c9c3baSmrg			    switch (bits)
72976c9c3baSmrg				{
73076c9c3baSmrg				case 64: puts ("hppa2.0w"); break;
73176c9c3baSmrg				case 32: puts ("hppa2.0n"); break;
73276c9c3baSmrg				default: puts ("hppa2.0"); break;
73376c9c3baSmrg				} break;
73476c9c3baSmrg		#else  /* !defined(_SC_KERNEL_BITS) */
73576c9c3baSmrg			    puts ("hppa2.0"); break;
73676c9c3baSmrg		#endif
73776c9c3baSmrg			default: puts ("hppa1.0"); break;
73876c9c3baSmrg			}
73976c9c3baSmrg		    exit (0);
74076c9c3baSmrg		}
74116910e25SmrgEOF
74276c9c3baSmrg		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
74316910e25Smrg		    test -z "$HP_ARCH" && HP_ARCH=hppa
74416910e25Smrg		fi ;;
74516910e25Smrg	esac
746ed89697eSmrg	if test "$HP_ARCH" = hppa2.0w
74716910e25Smrg	then
748ed89697eSmrg	    set_cc_for_build
7499c125d91Smrg
7509c125d91Smrg	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
7519c125d91Smrg	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
7529c125d91Smrg	    # generating 64-bit code.  GNU and HP use different nomenclature:
7539c125d91Smrg	    #
7549c125d91Smrg	    # $ CC_FOR_BUILD=cc ./config.guess
7559c125d91Smrg	    # => hppa2.0w-hp-hpux11.23
7569c125d91Smrg	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
7579c125d91Smrg	    # => hppa64-hp-hpux11.23
7589c125d91Smrg
75976c9c3baSmrg	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
7609c125d91Smrg		grep -q __LP64__
76116910e25Smrg	    then
76276c9c3baSmrg		HP_ARCH=hppa2.0w
76316910e25Smrg	    else
76476c9c3baSmrg		HP_ARCH=hppa64
76516910e25Smrg	    fi
76616910e25Smrg	fi
767ed89697eSmrg	GUESS=$HP_ARCH-hp-hpux$HPUX_REV
768ed89697eSmrg	;;
76916910e25Smrg    ia64:HP-UX:*:*)
770ed89697eSmrg	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
771ed89697eSmrg	GUESS=ia64-hp-hpux$HPUX_REV
772ed89697eSmrg	;;
77316910e25Smrg    3050*:HI-UX:*:*)
774ed89697eSmrg	set_cc_for_build
77576c9c3baSmrg	sed 's/^	//' << EOF > "$dummy.c"
77616910e25Smrg	#include <unistd.h>
77716910e25Smrg	int
77816910e25Smrg	main ()
77916910e25Smrg	{
78016910e25Smrg	  long cpu = sysconf (_SC_CPU_VERSION);
78116910e25Smrg	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
78216910e25Smrg	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
78316910e25Smrg	     results, however.  */
78416910e25Smrg	  if (CPU_IS_PA_RISC (cpu))
78516910e25Smrg	    {
78616910e25Smrg	      switch (cpu)
78716910e25Smrg		{
78816910e25Smrg		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
78916910e25Smrg		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
79016910e25Smrg		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
79116910e25Smrg		  default: puts ("hppa-hitachi-hiuxwe2"); break;
79216910e25Smrg		}
79316910e25Smrg	    }
79416910e25Smrg	  else if (CPU_IS_HP_MC68K (cpu))
79516910e25Smrg	    puts ("m68k-hitachi-hiuxwe2");
79616910e25Smrg	  else puts ("unknown-hitachi-hiuxwe2");
79716910e25Smrg	  exit (0);
79816910e25Smrg	}
79916910e25SmrgEOF
80076c9c3baSmrg	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
8019c125d91Smrg		{ echo "$SYSTEM_NAME"; exit; }
802ed89697eSmrg	GUESS=unknown-hitachi-hiuxwe2
803ed89697eSmrg	;;
80476c9c3baSmrg    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
805ed89697eSmrg	GUESS=hppa1.1-hp-bsd
806ed89697eSmrg	;;
80716910e25Smrg    9000/8??:4.3bsd:*:*)
808ed89697eSmrg	GUESS=hppa1.0-hp-bsd
809ed89697eSmrg	;;
81016910e25Smrg    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
811ed89697eSmrg	GUESS=hppa1.0-hp-mpeix
812ed89697eSmrg	;;
81376c9c3baSmrg    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
814ed89697eSmrg	GUESS=hppa1.1-hp-osf
815ed89697eSmrg	;;
81616910e25Smrg    hp8??:OSF1:*:*)
817ed89697eSmrg	GUESS=hppa1.0-hp-osf
818ed89697eSmrg	;;
81916910e25Smrg    i*86:OSF1:*:*)
820ed89697eSmrg	if test -x /usr/sbin/sysversion ; then
821ed89697eSmrg	    GUESS=$UNAME_MACHINE-unknown-osf1mk
82216910e25Smrg	else
823ed89697eSmrg	    GUESS=$UNAME_MACHINE-unknown-osf1
82416910e25Smrg	fi
825ed89697eSmrg	;;
82616910e25Smrg    parisc*:Lites*:*:*)
827ed89697eSmrg	GUESS=hppa1.1-hp-lites
828ed89697eSmrg	;;
82916910e25Smrg    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
830ed89697eSmrg	GUESS=c1-convex-bsd
831ed89697eSmrg	;;
83216910e25Smrg    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
83316910e25Smrg	if getsysinfo -f scalar_acc
83416910e25Smrg	then echo c32-convex-bsd
83516910e25Smrg	else echo c2-convex-bsd
83616910e25Smrg	fi
83776c9c3baSmrg	exit ;;
83816910e25Smrg    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
839ed89697eSmrg	GUESS=c34-convex-bsd
840ed89697eSmrg	;;
84116910e25Smrg    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
842ed89697eSmrg	GUESS=c38-convex-bsd
843ed89697eSmrg	;;
84416910e25Smrg    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
845ed89697eSmrg	GUESS=c4-convex-bsd
846ed89697eSmrg	;;
84716910e25Smrg    CRAY*Y-MP:*:*:*)
848ed89697eSmrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
849ed89697eSmrg	GUESS=ymp-cray-unicos$CRAY_REL
850ed89697eSmrg	;;
85116910e25Smrg    CRAY*[A-Z]90:*:*:*)
85276c9c3baSmrg	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
85316910e25Smrg	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
85416910e25Smrg	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
85516910e25Smrg	      -e 's/\.[^.]*$/.X/'
8569c125d91Smrg	exit ;;
85716910e25Smrg    CRAY*TS:*:*:*)
858ed89697eSmrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
859ed89697eSmrg	GUESS=t90-cray-unicos$CRAY_REL
860ed89697eSmrg	;;
86116910e25Smrg    CRAY*T3E:*:*:*)
862ed89697eSmrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
863ed89697eSmrg	GUESS=alphaev5-cray-unicosmk$CRAY_REL
864ed89697eSmrg	;;
86516910e25Smrg    CRAY*SV1:*:*:*)
866ed89697eSmrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
867ed89697eSmrg	GUESS=sv1-cray-unicos$CRAY_REL
868ed89697eSmrg	;;
86916910e25Smrg    *:UNICOS/mp:*:*)
870ed89697eSmrg	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
871ed89697eSmrg	GUESS=craynv-cray-unicosmp$CRAY_REL
872ed89697eSmrg	;;
87316910e25Smrg    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
87476c9c3baSmrg	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
87576c9c3baSmrg	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
87676c9c3baSmrg	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
877ed89697eSmrg	GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
878ed89697eSmrg	;;
8799c125d91Smrg    5000:UNIX_System_V:4.*:*)
88076c9c3baSmrg	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
88176c9c3baSmrg	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
882ed89697eSmrg	GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
883ed89697eSmrg	;;
88416910e25Smrg    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
885ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
886ed89697eSmrg	;;
88716910e25Smrg    sparc*:BSD/OS:*:*)
888ed89697eSmrg	GUESS=sparc-unknown-bsdi$UNAME_RELEASE
889ed89697eSmrg	;;
89016910e25Smrg    *:BSD/OS:*:*)
891ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
892ed89697eSmrg	;;
893ed89697eSmrg    arm:FreeBSD:*:*)
894ed89697eSmrg	UNAME_PROCESSOR=`uname -p`
895ed89697eSmrg	set_cc_for_build
896ed89697eSmrg	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
897ed89697eSmrg	    | grep -q __ARM_PCS_VFP
898ed89697eSmrg	then
899ed89697eSmrg	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
900ed89697eSmrg	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
901ed89697eSmrg	else
902ed89697eSmrg	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
903ed89697eSmrg	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
904ed89697eSmrg	fi
905ed89697eSmrg	;;
9069c125d91Smrg    *:FreeBSD:*:*)
90776c9c3baSmrg	UNAME_PROCESSOR=`/usr/bin/uname -p`
908ed89697eSmrg	case $UNAME_PROCESSOR in
9099c125d91Smrg	    amd64)
91076c9c3baSmrg		UNAME_PROCESSOR=x86_64 ;;
91176c9c3baSmrg	    i386)
91276c9c3baSmrg		UNAME_PROCESSOR=i586 ;;
9139c125d91Smrg	esac
914ed89697eSmrg	FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
915ed89697eSmrg	GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
916ed89697eSmrg	;;
91716910e25Smrg    i*:CYGWIN*:*)
918ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-cygwin
919ed89697eSmrg	;;
92076c9c3baSmrg    *:MINGW64*:*)
921ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-mingw64
922ed89697eSmrg	;;
9239c125d91Smrg    *:MINGW*:*)
924ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-mingw32
925ed89697eSmrg	;;
92676c9c3baSmrg    *:MSYS*:*)
927ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-msys
928ed89697eSmrg	;;
92916910e25Smrg    i*:PW*:*)
930ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-pw32
931ed89697eSmrg	;;
932ed89697eSmrg    *:SerenityOS:*:*)
933ed89697eSmrg        GUESS=$UNAME_MACHINE-pc-serenity
934ed89697eSmrg        ;;
9359c125d91Smrg    *:Interix*:*)
936ed89697eSmrg	case $UNAME_MACHINE in
9379c125d91Smrg	    x86)
938ed89697eSmrg		GUESS=i586-pc-interix$UNAME_RELEASE
939ed89697eSmrg		;;
9409c125d91Smrg	    authenticamd | genuineintel | EM64T)
941ed89697eSmrg		GUESS=x86_64-unknown-interix$UNAME_RELEASE
942ed89697eSmrg		;;
9439c125d91Smrg	    IA64)
944ed89697eSmrg		GUESS=ia64-unknown-interix$UNAME_RELEASE
945ed89697eSmrg		;;
9469c125d91Smrg	esac ;;
94716910e25Smrg    i*:UWIN*:*)
948ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-uwin
949ed89697eSmrg	;;
9509c125d91Smrg    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
951ed89697eSmrg	GUESS=x86_64-pc-cygwin
952ed89697eSmrg	;;
95316910e25Smrg    prep*:SunOS:5.*:*)
954ed89697eSmrg	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
955ed89697eSmrg	GUESS=powerpcle-unknown-solaris2$SUN_REL
956ed89697eSmrg	;;
95716910e25Smrg    *:GNU:*:*)
9589c125d91Smrg	# the GNU system
959ed89697eSmrg	GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
960ed89697eSmrg	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
961ed89697eSmrg	GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
962ed89697eSmrg	;;
9639c125d91Smrg    *:GNU/*:*:*)
9649c125d91Smrg	# other systems with GNU libc and userland
965ed89697eSmrg	GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
966ed89697eSmrg	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
967ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
968ed89697eSmrg	;;
969ed89697eSmrg    x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
970ed89697eSmrg	GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
971ed89697eSmrg	;;
972ed89697eSmrg    *:[Mm]anagarm:*:*)
973ed89697eSmrg	GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
974ed89697eSmrg	;;
975ed89697eSmrg    *:Minix:*:*)
976ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-minix
977ed89697eSmrg	;;
97876c9c3baSmrg    aarch64:Linux:*:*)
979ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
980ed89697eSmrg	;;
98176c9c3baSmrg    aarch64_be:Linux:*:*)
98276c9c3baSmrg	UNAME_MACHINE=aarch64_be
983ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
984ed89697eSmrg	;;
9859c125d91Smrg    alpha:Linux:*:*)
986ed89697eSmrg	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
9879c125d91Smrg	  EV5)   UNAME_MACHINE=alphaev5 ;;
9889c125d91Smrg	  EV56)  UNAME_MACHINE=alphaev56 ;;
9899c125d91Smrg	  PCA56) UNAME_MACHINE=alphapca56 ;;
9909c125d91Smrg	  PCA57) UNAME_MACHINE=alphapca56 ;;
9919c125d91Smrg	  EV6)   UNAME_MACHINE=alphaev6 ;;
9929c125d91Smrg	  EV67)  UNAME_MACHINE=alphaev67 ;;
9939c125d91Smrg	  EV68*) UNAME_MACHINE=alphaev68 ;;
99476c9c3baSmrg	esac
9959c125d91Smrg	objdump --private-headers /bin/sh | grep -q ld.so.1
99676c9c3baSmrg	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
997ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
998ed89697eSmrg	;;
999ed89697eSmrg    arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
1000ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1001ed89697eSmrg	;;
100216910e25Smrg    arm*:Linux:*:*)
1003ed89697eSmrg	set_cc_for_build
10049c125d91Smrg	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
10059c125d91Smrg	    | grep -q __ARM_EABI__
10069c125d91Smrg	then
1007ed89697eSmrg	    GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
10089c125d91Smrg	else
100976c9c3baSmrg	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
101076c9c3baSmrg		| grep -q __ARM_PCS_VFP
101176c9c3baSmrg	    then
1012ed89697eSmrg		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
101376c9c3baSmrg	    else
1014ed89697eSmrg		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
101576c9c3baSmrg	    fi
10169c125d91Smrg	fi
1017ed89697eSmrg	;;
10189c125d91Smrg    avr32*:Linux:*:*)
1019ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1020ed89697eSmrg	;;
102116910e25Smrg    cris:Linux:*:*)
1022ed89697eSmrg	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
1023ed89697eSmrg	;;
10249c125d91Smrg    crisv32:Linux:*:*)
1025ed89697eSmrg	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
1026ed89697eSmrg	;;
102776c9c3baSmrg    e2k:Linux:*:*)
1028ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1029ed89697eSmrg	;;
10309c125d91Smrg    frv:Linux:*:*)
1031ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1032ed89697eSmrg	;;
103376c9c3baSmrg    hexagon:Linux:*:*)
1034ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1035ed89697eSmrg	;;
10369c125d91Smrg    i*86:Linux:*:*)
1037ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-linux-$LIBC
1038ed89697eSmrg	;;
10399c125d91Smrg    ia64:Linux:*:*)
1040ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1041ed89697eSmrg	;;
104276c9c3baSmrg    k1om:Linux:*:*)
1043ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1044ed89697eSmrg	;;
1045ed89697eSmrg    loongarch32:Linux:*:* | loongarch64:Linux:*:*)
1046ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1047ed89697eSmrg	;;
10489c125d91Smrg    m32r*:Linux:*:*)
1049ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1050ed89697eSmrg	;;
10519c125d91Smrg    m68*:Linux:*:*)
1052ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1053ed89697eSmrg	;;
10549c125d91Smrg    mips:Linux:*:* | mips64:Linux:*:*)
1055ed89697eSmrg	set_cc_for_build
1056ed89697eSmrg	IS_GLIBC=0
1057ed89697eSmrg	test x"${LIBC}" = xgnu && IS_GLIBC=1
105876c9c3baSmrg	sed 's/^	//' << EOF > "$dummy.c"
105916910e25Smrg	#undef CPU
1060ed89697eSmrg	#undef mips
1061ed89697eSmrg	#undef mipsel
1062ed89697eSmrg	#undef mips64
1063ed89697eSmrg	#undef mips64el
1064ed89697eSmrg	#if ${IS_GLIBC} && defined(_ABI64)
1065ed89697eSmrg	LIBCABI=gnuabi64
1066ed89697eSmrg	#else
1067ed89697eSmrg	#if ${IS_GLIBC} && defined(_ABIN32)
1068ed89697eSmrg	LIBCABI=gnuabin32
1069ed89697eSmrg	#else
1070ed89697eSmrg	LIBCABI=${LIBC}
1071ed89697eSmrg	#endif
1072ed89697eSmrg	#endif
1073ed89697eSmrg
1074ed89697eSmrg	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1075ed89697eSmrg	CPU=mipsisa64r6
1076ed89697eSmrg	#else
1077ed89697eSmrg	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1078ed89697eSmrg	CPU=mipsisa32r6
1079ed89697eSmrg	#else
1080ed89697eSmrg	#if defined(__mips64)
1081ed89697eSmrg	CPU=mips64
1082ed89697eSmrg	#else
1083ed89697eSmrg	CPU=mips
1084ed89697eSmrg	#endif
1085ed89697eSmrg	#endif
1086ed89697eSmrg	#endif
1087ed89697eSmrg
108816910e25Smrg	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
1089ed89697eSmrg	MIPS_ENDIAN=el
109016910e25Smrg	#else
109116910e25Smrg	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
1092ed89697eSmrg	MIPS_ENDIAN=
109316910e25Smrg	#else
1094ed89697eSmrg	MIPS_ENDIAN=
109516910e25Smrg	#endif
109616910e25Smrg	#endif
109716910e25SmrgEOF
1098ed89697eSmrg	cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
1099ed89697eSmrg	eval "$cc_set_vars"
1100ed89697eSmrg	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
110116910e25Smrg	;;
110276c9c3baSmrg    mips64el:Linux:*:*)
1103ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1104ed89697eSmrg	;;
110576c9c3baSmrg    openrisc*:Linux:*:*)
1106ed89697eSmrg	GUESS=or1k-unknown-linux-$LIBC
1107ed89697eSmrg	;;
110876c9c3baSmrg    or32:Linux:*:* | or1k*:Linux:*:*)
1109ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1110ed89697eSmrg	;;
11119c125d91Smrg    padre:Linux:*:*)
1112ed89697eSmrg	GUESS=sparc-unknown-linux-$LIBC
1113ed89697eSmrg	;;
11149c125d91Smrg    parisc64:Linux:*:* | hppa64:Linux:*:*)
1115ed89697eSmrg	GUESS=hppa64-unknown-linux-$LIBC
1116ed89697eSmrg	;;
111716910e25Smrg    parisc:Linux:*:* | hppa:Linux:*:*)
111816910e25Smrg	# Look for CPU level
111916910e25Smrg	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1120ed89697eSmrg	  PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
1121ed89697eSmrg	  PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
1122ed89697eSmrg	  *)    GUESS=hppa-unknown-linux-$LIBC ;;
112316910e25Smrg	esac
1124ed89697eSmrg	;;
11259c125d91Smrg    ppc64:Linux:*:*)
1126ed89697eSmrg	GUESS=powerpc64-unknown-linux-$LIBC
1127ed89697eSmrg	;;
11289c125d91Smrg    ppc:Linux:*:*)
1129ed89697eSmrg	GUESS=powerpc-unknown-linux-$LIBC
1130ed89697eSmrg	;;
113176c9c3baSmrg    ppc64le:Linux:*:*)
1132ed89697eSmrg	GUESS=powerpc64le-unknown-linux-$LIBC
1133ed89697eSmrg	;;
113476c9c3baSmrg    ppcle:Linux:*:*)
1135ed89697eSmrg	GUESS=powerpcle-unknown-linux-$LIBC
1136ed89697eSmrg	;;
1137ed89697eSmrg    riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
1138ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1139ed89697eSmrg	;;
114016910e25Smrg    s390:Linux:*:* | s390x:Linux:*:*)
1141ed89697eSmrg	GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
1142ed89697eSmrg	;;
114316910e25Smrg    sh64*:Linux:*:*)
1144ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1145ed89697eSmrg	;;
114616910e25Smrg    sh*:Linux:*:*)
1147ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1148ed89697eSmrg	;;
114916910e25Smrg    sparc:Linux:*:* | sparc64:Linux:*:*)
1150ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1151ed89697eSmrg	;;
115276c9c3baSmrg    tile*:Linux:*:*)
1153ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1154ed89697eSmrg	;;
11559c125d91Smrg    vax:Linux:*:*)
1156ed89697eSmrg	GUESS=$UNAME_MACHINE-dec-linux-$LIBC
1157ed89697eSmrg	;;
115816910e25Smrg    x86_64:Linux:*:*)
1159ed89697eSmrg	set_cc_for_build
1160ed89697eSmrg	CPU=$UNAME_MACHINE
1161ed89697eSmrg	LIBCABI=$LIBC
1162ed89697eSmrg	if test "$CC_FOR_BUILD" != no_compiler_found; then
1163ed89697eSmrg	    ABI=64
1164ed89697eSmrg	    sed 's/^	    //' << EOF > "$dummy.c"
1165ed89697eSmrg	    #ifdef __i386__
1166ed89697eSmrg	    ABI=x86
1167ed89697eSmrg	    #else
1168ed89697eSmrg	    #ifdef __ILP32__
1169ed89697eSmrg	    ABI=x32
1170ed89697eSmrg	    #endif
1171ed89697eSmrg	    #endif
1172ed89697eSmrgEOF
1173ed89697eSmrg	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
1174ed89697eSmrg	    eval "$cc_set_abi"
1175ed89697eSmrg	    case $ABI in
1176ed89697eSmrg		x86) CPU=i686 ;;
1177ed89697eSmrg		x32) LIBCABI=${LIBC}x32 ;;
1178ed89697eSmrg	    esac
1179ed89697eSmrg	fi
1180ed89697eSmrg	GUESS=$CPU-pc-linux-$LIBCABI
1181ed89697eSmrg	;;
11829c125d91Smrg    xtensa*:Linux:*:*)
1183ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1184ed89697eSmrg	;;
118516910e25Smrg    i*86:DYNIX/ptx:4*:*)
118616910e25Smrg	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
118716910e25Smrg	# earlier versions are messed up and put the nodename in both
118816910e25Smrg	# sysname and nodename.
1189ed89697eSmrg	GUESS=i386-sequent-sysv4
1190ed89697eSmrg	;;
119116910e25Smrg    i*86:UNIX_SV:4.2MP:2.*)
119276c9c3baSmrg	# Unixware is an offshoot of SVR4, but it has its own version
119376c9c3baSmrg	# number series starting with 2...
119476c9c3baSmrg	# I am not positive that other SVR4 systems won't match this,
119516910e25Smrg	# I just have to hope.  -- rms.
119676c9c3baSmrg	# Use sysv4.2uw... so that sysv4* matches it.
1197ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
1198ed89697eSmrg	;;
119916910e25Smrg    i*86:OS/2:*:*)
120016910e25Smrg	# If we were able to find `uname', then EMX Unix compatibility
120116910e25Smrg	# is probably installed.
1202ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-os2-emx
1203ed89697eSmrg	;;
120416910e25Smrg    i*86:XTS-300:*:STOP)
1205ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-stop
1206ed89697eSmrg	;;
120716910e25Smrg    i*86:atheos:*:*)
1208ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-atheos
1209ed89697eSmrg	;;
12109c125d91Smrg    i*86:syllable:*:*)
1211ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-syllable
1212ed89697eSmrg	;;
12139c125d91Smrg    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1214ed89697eSmrg	GUESS=i386-unknown-lynxos$UNAME_RELEASE
1215ed89697eSmrg	;;
121616910e25Smrg    i*86:*DOS:*:*)
1217ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-msdosdjgpp
1218ed89697eSmrg	;;
121976c9c3baSmrg    i*86:*:4.*:*)
122076c9c3baSmrg	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
122116910e25Smrg	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1222ed89697eSmrg		GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
122316910e25Smrg	else
1224ed89697eSmrg		GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
122516910e25Smrg	fi
1226ed89697eSmrg	;;
12279c125d91Smrg    i*86:*:5:[678]*)
122876c9c3baSmrg	# UnixWare 7.x, OpenUNIX and OpenServer 6.
122916910e25Smrg	case `/bin/uname -X | grep "^Machine"` in
123016910e25Smrg	    *486*)	     UNAME_MACHINE=i486 ;;
123116910e25Smrg	    *Pentium)	     UNAME_MACHINE=i586 ;;
123216910e25Smrg	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
123316910e25Smrg	esac
1234ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1235ed89697eSmrg	;;
123616910e25Smrg    i*86:*:3.2:*)
123716910e25Smrg	if test -f /usr/options/cb.name; then
123816910e25Smrg		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1239ed89697eSmrg		GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
124016910e25Smrg	elif /bin/uname -X 2>/dev/null >/dev/null ; then
124116910e25Smrg		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
124216910e25Smrg		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
124316910e25Smrg		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
124416910e25Smrg			&& UNAME_MACHINE=i586
124516910e25Smrg		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
124616910e25Smrg			&& UNAME_MACHINE=i686
124716910e25Smrg		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
124816910e25Smrg			&& UNAME_MACHINE=i686
1249ed89697eSmrg		GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
125016910e25Smrg	else
1251ed89697eSmrg		GUESS=$UNAME_MACHINE-pc-sysv32
125216910e25Smrg	fi
1253ed89697eSmrg	;;
125416910e25Smrg    pc:*:*:*)
125516910e25Smrg	# Left here for compatibility:
125676c9c3baSmrg	# uname -m prints for DJGPP always 'pc', but it prints nothing about
125776c9c3baSmrg	# the processor, so we play safe by assuming i586.
12589c125d91Smrg	# Note: whatever this is, it MUST be the same as what config.sub
125976c9c3baSmrg	# prints for the "djgpp" host, or else GDB configure will decide that
12609c125d91Smrg	# this is a cross-build.
1261ed89697eSmrg	GUESS=i586-pc-msdosdjgpp
1262ed89697eSmrg	;;
126316910e25Smrg    Intel:Mach:3*:*)
1264ed89697eSmrg	GUESS=i386-pc-mach3
1265ed89697eSmrg	;;
126616910e25Smrg    paragon:*:*:*)
1267ed89697eSmrg	GUESS=i860-intel-osf1
1268ed89697eSmrg	;;
126916910e25Smrg    i860:*:4.*:*) # i860-SVR4
127016910e25Smrg	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1271ed89697eSmrg	  GUESS=i860-stardent-sysv$UNAME_RELEASE    # Stardent Vistra i860-SVR4
127216910e25Smrg	else # Add other i860-SVR4 vendors below as they are discovered.
1273ed89697eSmrg	  GUESS=i860-unknown-sysv$UNAME_RELEASE     # Unknown i860-SVR4
127416910e25Smrg	fi
1275ed89697eSmrg	;;
127616910e25Smrg    mini*:CTIX:SYS*5:*)
127716910e25Smrg	# "miniframe"
1278ed89697eSmrg	GUESS=m68010-convergent-sysv
1279ed89697eSmrg	;;
128016910e25Smrg    mc68k:UNIX:SYSTEM5:3.51m)
1281ed89697eSmrg	GUESS=m68k-convergent-sysv
1282ed89697eSmrg	;;
128316910e25Smrg    M680?0:D-NIX:5.3:*)
1284ed89697eSmrg	GUESS=m68k-diab-dnix
1285ed89697eSmrg	;;
12869c125d91Smrg    M68*:*:R3V[5678]*:*)
12879c125d91Smrg	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
12889c125d91Smrg    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)
128916910e25Smrg	OS_REL=''
129016910e25Smrg	test -r /etc/.relid \
129116910e25Smrg	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
129216910e25Smrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
129376c9c3baSmrg	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
129416910e25Smrg	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
129576c9c3baSmrg	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
129616910e25Smrg    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
129776c9c3baSmrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
129876c9c3baSmrg	  && { echo i486-ncr-sysv4; exit; } ;;
12999c125d91Smrg    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
13009c125d91Smrg	OS_REL='.3'
13019c125d91Smrg	test -r /etc/.relid \
13029c125d91Smrg	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
13039c125d91Smrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
130476c9c3baSmrg	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
13059c125d91Smrg	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
130676c9c3baSmrg	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
13079c125d91Smrg	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
130876c9c3baSmrg	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
130916910e25Smrg    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1310ed89697eSmrg	GUESS=m68k-unknown-lynxos$UNAME_RELEASE
1311ed89697eSmrg	;;
131216910e25Smrg    mc68030:UNIX_System_V:4.*:*)
1313ed89697eSmrg	GUESS=m68k-atari-sysv4
1314ed89697eSmrg	;;
131516910e25Smrg    TSUNAMI:LynxOS:2.*:*)
1316ed89697eSmrg	GUESS=sparc-unknown-lynxos$UNAME_RELEASE
1317ed89697eSmrg	;;
131816910e25Smrg    rs6000:LynxOS:2.*:*)
1319ed89697eSmrg	GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
1320ed89697eSmrg	;;
13219c125d91Smrg    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1322ed89697eSmrg	GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
1323ed89697eSmrg	;;
132416910e25Smrg    SM[BE]S:UNIX_SV:*:*)
1325ed89697eSmrg	GUESS=mips-dde-sysv$UNAME_RELEASE
1326ed89697eSmrg	;;
132716910e25Smrg    RM*:ReliantUNIX-*:*:*)
1328ed89697eSmrg	GUESS=mips-sni-sysv4
1329ed89697eSmrg	;;
133016910e25Smrg    RM*:SINIX-*:*:*)
1331ed89697eSmrg	GUESS=mips-sni-sysv4
1332ed89697eSmrg	;;
133316910e25Smrg    *:SINIX-*:*:*)
133416910e25Smrg	if uname -p 2>/dev/null >/dev/null ; then
133516910e25Smrg		UNAME_MACHINE=`(uname -p) 2>/dev/null`
1336ed89697eSmrg		GUESS=$UNAME_MACHINE-sni-sysv4
133716910e25Smrg	else
1338ed89697eSmrg		GUESS=ns32k-sni-sysv
133916910e25Smrg	fi
1340ed89697eSmrg	;;
134176c9c3baSmrg    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
134276c9c3baSmrg			# says <Richard.M.Bartel@ccMail.Census.GOV>
1343ed89697eSmrg	GUESS=i586-unisys-sysv4
1344ed89697eSmrg	;;
134516910e25Smrg    *:UNIX_System_V:4*:FTX*)
134616910e25Smrg	# From Gerald Hewes <hewes@openmarket.com>.
134716910e25Smrg	# How about differentiating between stratus architectures? -djm
1348ed89697eSmrg	GUESS=hppa1.1-stratus-sysv4
1349ed89697eSmrg	;;
135016910e25Smrg    *:*:*:FTX*)
135116910e25Smrg	# From seanf@swdc.stratus.com.
1352ed89697eSmrg	GUESS=i860-stratus-sysv4
1353ed89697eSmrg	;;
13549c125d91Smrg    i*86:VOS:*:*)
13559c125d91Smrg	# From Paul.Green@stratus.com.
1356ed89697eSmrg	GUESS=$UNAME_MACHINE-stratus-vos
1357ed89697eSmrg	;;
135816910e25Smrg    *:VOS:*:*)
135916910e25Smrg	# From Paul.Green@stratus.com.
1360ed89697eSmrg	GUESS=hppa1.1-stratus-vos
1361ed89697eSmrg	;;
136216910e25Smrg    mc68*:A/UX:*:*)
1363ed89697eSmrg	GUESS=m68k-apple-aux$UNAME_RELEASE
1364ed89697eSmrg	;;
136516910e25Smrg    news*:NEWS-OS:6*:*)
1366ed89697eSmrg	GUESS=mips-sony-newsos6
1367ed89697eSmrg	;;
136816910e25Smrg    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1369ed89697eSmrg	if test -d /usr/nec; then
1370ed89697eSmrg		GUESS=mips-nec-sysv$UNAME_RELEASE
137116910e25Smrg	else
1372ed89697eSmrg		GUESS=mips-unknown-sysv$UNAME_RELEASE
137316910e25Smrg	fi
1374ed89697eSmrg	;;
137516910e25Smrg    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1376ed89697eSmrg	GUESS=powerpc-be-beos
1377ed89697eSmrg	;;
137816910e25Smrg    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1379ed89697eSmrg	GUESS=powerpc-apple-beos
1380ed89697eSmrg	;;
138116910e25Smrg    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1382ed89697eSmrg	GUESS=i586-pc-beos
1383ed89697eSmrg	;;
13849c125d91Smrg    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1385ed89697eSmrg	GUESS=i586-pc-haiku
1386ed89697eSmrg	;;
1387ed89697eSmrg    ppc:Haiku:*:*)	# Haiku running on Apple PowerPC
1388ed89697eSmrg	GUESS=powerpc-apple-haiku
1389ed89697eSmrg	;;
1390ed89697eSmrg    *:Haiku:*:*)	# Haiku modern gcc (not bound by BeOS compat)
1391ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-haiku
1392ed89697eSmrg	;;
139316910e25Smrg    SX-4:SUPER-UX:*:*)
1394ed89697eSmrg	GUESS=sx4-nec-superux$UNAME_RELEASE
1395ed89697eSmrg	;;
139616910e25Smrg    SX-5:SUPER-UX:*:*)
1397ed89697eSmrg	GUESS=sx5-nec-superux$UNAME_RELEASE
1398ed89697eSmrg	;;
139916910e25Smrg    SX-6:SUPER-UX:*:*)
1400ed89697eSmrg	GUESS=sx6-nec-superux$UNAME_RELEASE
1401ed89697eSmrg	;;
14029c125d91Smrg    SX-7:SUPER-UX:*:*)
1403ed89697eSmrg	GUESS=sx7-nec-superux$UNAME_RELEASE
1404ed89697eSmrg	;;
14059c125d91Smrg    SX-8:SUPER-UX:*:*)
1406ed89697eSmrg	GUESS=sx8-nec-superux$UNAME_RELEASE
1407ed89697eSmrg	;;
14089c125d91Smrg    SX-8R:SUPER-UX:*:*)
1409ed89697eSmrg	GUESS=sx8r-nec-superux$UNAME_RELEASE
1410ed89697eSmrg	;;
141176c9c3baSmrg    SX-ACE:SUPER-UX:*:*)
1412ed89697eSmrg	GUESS=sxace-nec-superux$UNAME_RELEASE
1413ed89697eSmrg	;;
141416910e25Smrg    Power*:Rhapsody:*:*)
1415ed89697eSmrg	GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
1416ed89697eSmrg	;;
141716910e25Smrg    *:Rhapsody:*:*)
1418ed89697eSmrg	GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
1419ed89697eSmrg	;;
1420ed89697eSmrg    arm64:Darwin:*:*)
1421ed89697eSmrg	GUESS=aarch64-apple-darwin$UNAME_RELEASE
1422ed89697eSmrg	;;
142316910e25Smrg    *:Darwin:*:*)
1424ed89697eSmrg	UNAME_PROCESSOR=`uname -p`
1425ed89697eSmrg	case $UNAME_PROCESSOR in
1426ed89697eSmrg	    unknown) UNAME_PROCESSOR=powerpc ;;
1427ed89697eSmrg	esac
1428ed89697eSmrg	if command -v xcode-select > /dev/null 2> /dev/null && \
1429ed89697eSmrg		! xcode-select --print-path > /dev/null 2> /dev/null ; then
1430ed89697eSmrg	    # Avoid executing cc if there is no toolchain installed as
1431ed89697eSmrg	    # cc will be a stub that puts up a graphical alert
1432ed89697eSmrg	    # prompting the user to install developer tools.
1433ed89697eSmrg	    CC_FOR_BUILD=no_compiler_found
1434ed89697eSmrg	else
1435ed89697eSmrg	    set_cc_for_build
143676c9c3baSmrg	fi
1437ed89697eSmrg	if test "$CC_FOR_BUILD" != no_compiler_found; then
1438ed89697eSmrg	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1439ed89697eSmrg		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1440ed89697eSmrg		   grep IS_64BIT_ARCH >/dev/null
1441ed89697eSmrg	    then
1442ed89697eSmrg		case $UNAME_PROCESSOR in
1443ed89697eSmrg		    i386) UNAME_PROCESSOR=x86_64 ;;
1444ed89697eSmrg		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
1445ed89697eSmrg		esac
1446ed89697eSmrg	    fi
1447ed89697eSmrg	    # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1448ed89697eSmrg	    if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1449ed89697eSmrg		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1450ed89697eSmrg		   grep IS_PPC >/dev/null
1451ed89697eSmrg	    then
1452ed89697eSmrg		UNAME_PROCESSOR=powerpc
145376c9c3baSmrg	    fi
145476c9c3baSmrg	elif test "$UNAME_PROCESSOR" = i386 ; then
1455ed89697eSmrg	    # uname -m returns i386 or x86_64
1456ed89697eSmrg	    UNAME_PROCESSOR=$UNAME_MACHINE
145776c9c3baSmrg	fi
1458ed89697eSmrg	GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
1459ed89697eSmrg	;;
146016910e25Smrg    *:procnto*:*:* | *:QNX:[0123456789]*:*)
146116910e25Smrg	UNAME_PROCESSOR=`uname -p`
146276c9c3baSmrg	if test "$UNAME_PROCESSOR" = x86; then
146316910e25Smrg		UNAME_PROCESSOR=i386
146416910e25Smrg		UNAME_MACHINE=pc
146516910e25Smrg	fi
1466ed89697eSmrg	GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
1467ed89697eSmrg	;;
146816910e25Smrg    *:QNX:*:4*)
1469ed89697eSmrg	GUESS=i386-pc-qnx
1470ed89697eSmrg	;;
147176c9c3baSmrg    NEO-*:NONSTOP_KERNEL:*:*)
1472ed89697eSmrg	GUESS=neo-tandem-nsk$UNAME_RELEASE
1473ed89697eSmrg	;;
147476c9c3baSmrg    NSE-*:NONSTOP_KERNEL:*:*)
1475ed89697eSmrg	GUESS=nse-tandem-nsk$UNAME_RELEASE
1476ed89697eSmrg	;;
147776c9c3baSmrg    NSR-*:NONSTOP_KERNEL:*:*)
1478ed89697eSmrg	GUESS=nsr-tandem-nsk$UNAME_RELEASE
1479ed89697eSmrg	;;
148076c9c3baSmrg    NSV-*:NONSTOP_KERNEL:*:*)
1481ed89697eSmrg	GUESS=nsv-tandem-nsk$UNAME_RELEASE
1482ed89697eSmrg	;;
148376c9c3baSmrg    NSX-*:NONSTOP_KERNEL:*:*)
1484ed89697eSmrg	GUESS=nsx-tandem-nsk$UNAME_RELEASE
1485ed89697eSmrg	;;
148616910e25Smrg    *:NonStop-UX:*:*)
1487ed89697eSmrg	GUESS=mips-compaq-nonstopux
1488ed89697eSmrg	;;
148916910e25Smrg    BS2000:POSIX*:*:*)
1490ed89697eSmrg	GUESS=bs2000-siemens-sysv
1491ed89697eSmrg	;;
149216910e25Smrg    DS/*:UNIX_System_V:*:*)
1493ed89697eSmrg	GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
1494ed89697eSmrg	;;
149516910e25Smrg    *:Plan9:*:*)
149616910e25Smrg	# "uname -m" is not consistent, so use $cputype instead. 386
149716910e25Smrg	# is converted to i386 for consistency with other x86
149816910e25Smrg	# operating systems.
1499ed89697eSmrg	if test "${cputype-}" = 386; then
150016910e25Smrg	    UNAME_MACHINE=i386
1501ed89697eSmrg	elif test "x${cputype-}" != x; then
1502ed89697eSmrg	    UNAME_MACHINE=$cputype
150316910e25Smrg	fi
1504ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-plan9
1505ed89697eSmrg	;;
150616910e25Smrg    *:TOPS-10:*:*)
1507ed89697eSmrg	GUESS=pdp10-unknown-tops10
1508ed89697eSmrg	;;
150916910e25Smrg    *:TENEX:*:*)
1510ed89697eSmrg	GUESS=pdp10-unknown-tenex
1511ed89697eSmrg	;;
151216910e25Smrg    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1513ed89697eSmrg	GUESS=pdp10-dec-tops20
1514ed89697eSmrg	;;
151516910e25Smrg    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1516ed89697eSmrg	GUESS=pdp10-xkl-tops20
1517ed89697eSmrg	;;
151816910e25Smrg    *:TOPS-20:*:*)
1519ed89697eSmrg	GUESS=pdp10-unknown-tops20
1520ed89697eSmrg	;;
152116910e25Smrg    *:ITS:*:*)
1522ed89697eSmrg	GUESS=pdp10-unknown-its
1523ed89697eSmrg	;;
152416910e25Smrg    SEI:*:*:SEIUX)
1525ed89697eSmrg	GUESS=mips-sei-seiux$UNAME_RELEASE
1526ed89697eSmrg	;;
15279c125d91Smrg    *:DragonFly:*:*)
1528ed89697eSmrg	DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
1529ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
1530ed89697eSmrg	;;
15319c125d91Smrg    *:*VMS:*:*)
153276c9c3baSmrg	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1533ed89697eSmrg	case $UNAME_MACHINE in
1534ed89697eSmrg	    A*) GUESS=alpha-dec-vms ;;
1535ed89697eSmrg	    I*) GUESS=ia64-dec-vms ;;
1536ed89697eSmrg	    V*) GUESS=vax-dec-vms ;;
15379c125d91Smrg	esac ;;
15389c125d91Smrg    *:XENIX:*:SysV)
1539ed89697eSmrg	GUESS=i386-pc-xenix
1540ed89697eSmrg	;;
15419c125d91Smrg    i*86:skyos:*:*)
1542ed89697eSmrg	SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
1543ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
1544ed89697eSmrg	;;
15459c125d91Smrg    i*86:rdos:*:*)
1546ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-rdos
1547ed89697eSmrg	;;
1548ed89697eSmrg    i*86:Fiwix:*:*)
1549ed89697eSmrg	GUESS=$UNAME_MACHINE-pc-fiwix
1550ed89697eSmrg	;;
1551ed89697eSmrg    *:AROS:*:*)
1552ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-aros
1553ed89697eSmrg	;;
155476c9c3baSmrg    x86_64:VMkernel:*:*)
1555ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-esx
1556ed89697eSmrg	;;
155776c9c3baSmrg    amd64:Isilon\ OneFS:*:*)
1558ed89697eSmrg	GUESS=x86_64-unknown-onefs
1559ed89697eSmrg	;;
1560ed89697eSmrg    *:Unleashed:*:*)
1561ed89697eSmrg	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
1562ed89697eSmrg	;;
156316910e25Smrgesac
156416910e25Smrg
1565ed89697eSmrg# Do we have a guess based on uname results?
1566ed89697eSmrgif test "x$GUESS" != x; then
1567ed89697eSmrg    echo "$GUESS"
1568ed89697eSmrg    exit
1569ed89697eSmrgfi
1570ed89697eSmrg
1571ed89697eSmrg# No uname command or uname output not recognized.
1572ed89697eSmrgset_cc_for_build
1573ed89697eSmrgcat > "$dummy.c" <<EOF
1574ed89697eSmrg#ifdef _SEQUENT_
1575ed89697eSmrg#include <sys/types.h>
1576ed89697eSmrg#include <sys/utsname.h>
1577ed89697eSmrg#endif
1578ed89697eSmrg#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1579ed89697eSmrg#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1580ed89697eSmrg#include <signal.h>
1581ed89697eSmrg#if defined(_SIZE_T_) || defined(SIGLOST)
1582ed89697eSmrg#include <sys/utsname.h>
1583ed89697eSmrg#endif
1584ed89697eSmrg#endif
1585ed89697eSmrg#endif
1586ed89697eSmrgmain ()
1587ed89697eSmrg{
1588ed89697eSmrg#if defined (sony)
1589ed89697eSmrg#if defined (MIPSEB)
1590ed89697eSmrg  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1591ed89697eSmrg     I don't know....  */
1592ed89697eSmrg  printf ("mips-sony-bsd\n"); exit (0);
1593ed89697eSmrg#else
1594ed89697eSmrg#include <sys/param.h>
1595ed89697eSmrg  printf ("m68k-sony-newsos%s\n",
1596ed89697eSmrg#ifdef NEWSOS4
1597ed89697eSmrg  "4"
1598ed89697eSmrg#else
1599ed89697eSmrg  ""
1600ed89697eSmrg#endif
1601ed89697eSmrg  ); exit (0);
1602ed89697eSmrg#endif
1603ed89697eSmrg#endif
1604ed89697eSmrg
1605ed89697eSmrg#if defined (NeXT)
1606ed89697eSmrg#if !defined (__ARCHITECTURE__)
1607ed89697eSmrg#define __ARCHITECTURE__ "m68k"
1608ed89697eSmrg#endif
1609ed89697eSmrg  int version;
1610ed89697eSmrg  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1611ed89697eSmrg  if (version < 4)
1612ed89697eSmrg    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1613ed89697eSmrg  else
1614ed89697eSmrg    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1615ed89697eSmrg  exit (0);
1616ed89697eSmrg#endif
1617ed89697eSmrg
1618ed89697eSmrg#if defined (MULTIMAX) || defined (n16)
1619ed89697eSmrg#if defined (UMAXV)
1620ed89697eSmrg  printf ("ns32k-encore-sysv\n"); exit (0);
1621ed89697eSmrg#else
1622ed89697eSmrg#if defined (CMU)
1623ed89697eSmrg  printf ("ns32k-encore-mach\n"); exit (0);
1624ed89697eSmrg#else
1625ed89697eSmrg  printf ("ns32k-encore-bsd\n"); exit (0);
1626ed89697eSmrg#endif
1627ed89697eSmrg#endif
1628ed89697eSmrg#endif
1629ed89697eSmrg
1630ed89697eSmrg#if defined (__386BSD__)
1631ed89697eSmrg  printf ("i386-pc-bsd\n"); exit (0);
1632ed89697eSmrg#endif
1633ed89697eSmrg
1634ed89697eSmrg#if defined (sequent)
1635ed89697eSmrg#if defined (i386)
1636ed89697eSmrg  printf ("i386-sequent-dynix\n"); exit (0);
1637ed89697eSmrg#endif
1638ed89697eSmrg#if defined (ns32000)
1639ed89697eSmrg  printf ("ns32k-sequent-dynix\n"); exit (0);
1640ed89697eSmrg#endif
1641ed89697eSmrg#endif
1642ed89697eSmrg
1643ed89697eSmrg#if defined (_SEQUENT_)
1644ed89697eSmrg  struct utsname un;
1645ed89697eSmrg
1646ed89697eSmrg  uname(&un);
1647ed89697eSmrg  if (strncmp(un.version, "V2", 2) == 0) {
1648ed89697eSmrg    printf ("i386-sequent-ptx2\n"); exit (0);
1649ed89697eSmrg  }
1650ed89697eSmrg  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1651ed89697eSmrg    printf ("i386-sequent-ptx1\n"); exit (0);
1652ed89697eSmrg  }
1653ed89697eSmrg  printf ("i386-sequent-ptx\n"); exit (0);
1654ed89697eSmrg#endif
1655ed89697eSmrg
1656ed89697eSmrg#if defined (vax)
1657ed89697eSmrg#if !defined (ultrix)
1658ed89697eSmrg#include <sys/param.h>
1659ed89697eSmrg#if defined (BSD)
1660ed89697eSmrg#if BSD == 43
1661ed89697eSmrg  printf ("vax-dec-bsd4.3\n"); exit (0);
1662ed89697eSmrg#else
1663ed89697eSmrg#if BSD == 199006
1664ed89697eSmrg  printf ("vax-dec-bsd4.3reno\n"); exit (0);
1665ed89697eSmrg#else
1666ed89697eSmrg  printf ("vax-dec-bsd\n"); exit (0);
1667ed89697eSmrg#endif
1668ed89697eSmrg#endif
1669ed89697eSmrg#else
1670ed89697eSmrg  printf ("vax-dec-bsd\n"); exit (0);
1671ed89697eSmrg#endif
1672ed89697eSmrg#else
1673ed89697eSmrg#if defined(_SIZE_T_) || defined(SIGLOST)
1674ed89697eSmrg  struct utsname un;
1675ed89697eSmrg  uname (&un);
1676ed89697eSmrg  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
1677ed89697eSmrg#else
1678ed89697eSmrg  printf ("vax-dec-ultrix\n"); exit (0);
1679ed89697eSmrg#endif
1680ed89697eSmrg#endif
1681ed89697eSmrg#endif
1682ed89697eSmrg#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1683ed89697eSmrg#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1684ed89697eSmrg#if defined(_SIZE_T_) || defined(SIGLOST)
1685ed89697eSmrg  struct utsname *un;
1686ed89697eSmrg  uname (&un);
1687ed89697eSmrg  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
1688ed89697eSmrg#else
1689ed89697eSmrg  printf ("mips-dec-ultrix\n"); exit (0);
1690ed89697eSmrg#endif
1691ed89697eSmrg#endif
1692ed89697eSmrg#endif
1693ed89697eSmrg
1694ed89697eSmrg#if defined (alliant) && defined (i860)
1695ed89697eSmrg  printf ("i860-alliant-bsd\n"); exit (0);
1696ed89697eSmrg#endif
1697ed89697eSmrg
1698ed89697eSmrg  exit (1);
1699ed89697eSmrg}
1700ed89697eSmrgEOF
1701ed89697eSmrg
1702ed89697eSmrg$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
1703ed89697eSmrg	{ echo "$SYSTEM_NAME"; exit; }
1704ed89697eSmrg
1705ed89697eSmrg# Apollos put the system type in the environment.
1706ed89697eSmrgtest -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
1707ed89697eSmrg
170876c9c3baSmrgecho "$0: unable to guess system type" >&2
170916910e25Smrg
1710ed89697eSmrgcase $UNAME_MACHINE:$UNAME_SYSTEM in
171176c9c3baSmrg    mips:Linux | mips64:Linux)
171276c9c3baSmrg	# If we got here on MIPS GNU/Linux, output extra information.
171376c9c3baSmrg	cat >&2 <<EOF
171416910e25Smrg
171576c9c3baSmrgNOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
171676c9c3baSmrgthe system type. Please install a C compiler and try again.
171716910e25SmrgEOF
171876c9c3baSmrg	;;
171976c9c3baSmrgesac
172016910e25Smrg
172116910e25Smrgcat >&2 <<EOF
172216910e25Smrg
172376c9c3baSmrgThis script (version $timestamp), has failed to recognize the
172476c9c3baSmrgoperating system you are using. If your script is old, overwrite *all*
172576c9c3baSmrgcopies of config.guess and config.sub with the latest versions from:
172616910e25Smrg
1727ed89697eSmrg  https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
17289c125d91Smrgand
1729ed89697eSmrg  https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
1730ed89697eSmrgEOF
1731ed89697eSmrg
1732ed89697eSmrgour_year=`echo $timestamp | sed 's,-.*,,'`
1733ed89697eSmrgthisyear=`date +%Y`
1734ed89697eSmrg# shellcheck disable=SC2003
1735ed89697eSmrgscript_age=`expr "$thisyear" - "$our_year"`
1736ed89697eSmrgif test "$script_age" -lt 3 ; then
1737ed89697eSmrg   cat >&2 <<EOF
173816910e25Smrg
173976c9c3baSmrgIf $0 has already been updated, send the following data and any
174076c9c3baSmrginformation you think might be pertinent to config-patches@gnu.org to
174176c9c3baSmrgprovide the necessary information to handle your system.
174216910e25Smrg
174316910e25Smrgconfig.guess timestamp = $timestamp
174416910e25Smrg
174516910e25Smrguname -m = `(uname -m) 2>/dev/null || echo unknown`
174616910e25Smrguname -r = `(uname -r) 2>/dev/null || echo unknown`
174716910e25Smrguname -s = `(uname -s) 2>/dev/null || echo unknown`
174816910e25Smrguname -v = `(uname -v) 2>/dev/null || echo unknown`
174916910e25Smrg
175016910e25Smrg/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
175116910e25Smrg/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
175216910e25Smrg
175316910e25Smrghostinfo               = `(hostinfo) 2>/dev/null`
175416910e25Smrg/bin/universe          = `(/bin/universe) 2>/dev/null`
175516910e25Smrg/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
175616910e25Smrg/bin/arch              = `(/bin/arch) 2>/dev/null`
175716910e25Smrg/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
175816910e25Smrg/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
175916910e25Smrg
176076c9c3baSmrgUNAME_MACHINE = "$UNAME_MACHINE"
176176c9c3baSmrgUNAME_RELEASE = "$UNAME_RELEASE"
176276c9c3baSmrgUNAME_SYSTEM  = "$UNAME_SYSTEM"
176376c9c3baSmrgUNAME_VERSION = "$UNAME_VERSION"
176416910e25SmrgEOF
1765ed89697eSmrgfi
176616910e25Smrg
176716910e25Smrgexit 1
176816910e25Smrg
176916910e25Smrg# Local variables:
1770ed89697eSmrg# eval: (add-hook 'before-save-hook 'time-stamp)
177116910e25Smrg# time-stamp-start: "timestamp='"
177216910e25Smrg# time-stamp-format: "%:y-%02m-%02d"
177316910e25Smrg# time-stamp-end: "'"
177416910e25Smrg# End:
1775