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