config.guess revision a3bd7f05
1444c061aSmrg#! /bin/sh
2444c061aSmrg# Attempt to guess a canonical system name.
3a3bd7f05Smrg#   Copyright 1992-2020 Free Software Foundation, Inc.
4444c061aSmrg
5a3bd7f05Smrgtimestamp='2020-04-26'
6444c061aSmrg
7444c061aSmrg# This file is free software; you can redistribute it and/or modify it
8444c061aSmrg# under the terms of the GNU General Public License as published by
99e7bcd65Smrg# the Free Software Foundation; either version 3 of the License, or
10444c061aSmrg# (at your option) any later version.
11444c061aSmrg#
12444c061aSmrg# This program is distributed in the hope that it will be useful, but
13444c061aSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14444c061aSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15444c061aSmrg# General Public License for more details.
16444c061aSmrg#
17444c061aSmrg# You should have received a copy of the GNU General Public License
180568f49bSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
19444c061aSmrg#
20444c061aSmrg# As a special exception to the GNU General Public License, if you
21444c061aSmrg# distribute this file as part of a program that contains a
22444c061aSmrg# configuration script generated by Autoconf, you may include it under
239e7bcd65Smrg# the same distribution terms that you use for the rest of that
249e7bcd65Smrg# program.  This Exception is an additional permission under section 7
259e7bcd65Smrg# of the GNU General Public License, version 3 ("GPLv3").
26444c061aSmrg#
27339a7c43Smrg# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
28444c061aSmrg#
291477040fSmrg# You can get the latest version of this script from:
300568f49bSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
319e7bcd65Smrg#
32339a7c43Smrg# Please send patches to <config-patches@gnu.org>.
339e7bcd65Smrg
34444c061aSmrg
35444c061aSmrgme=`echo "$0" | sed -e 's,.*/,,'`
36444c061aSmrg
37444c061aSmrgusage="\
38444c061aSmrgUsage: $0 [OPTION]
39444c061aSmrg
40444c061aSmrgOutput the configuration name of the system \`$me' is run on.
41444c061aSmrg
420568f49bSmrgOptions:
43444c061aSmrg  -h, --help         print this help, then exit
44444c061aSmrg  -t, --time-stamp   print date of last modification, then exit
45444c061aSmrg  -v, --version      print version number, then exit
46444c061aSmrg
47444c061aSmrgReport bugs and patches to <config-patches@gnu.org>."
48444c061aSmrg
49444c061aSmrgversion="\
50444c061aSmrgGNU config.guess ($timestamp)
51444c061aSmrg
52444c061aSmrgOriginally written by Per Bothner.
53a3bd7f05SmrgCopyright 1992-2020 Free Software Foundation, Inc.
54444c061aSmrg
55444c061aSmrgThis is free software; see the source for copying conditions.  There is NO
56444c061aSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
57444c061aSmrg
58444c061aSmrghelp="
59444c061aSmrgTry \`$me --help' for more information."
60444c061aSmrg
61444c061aSmrg# Parse command line
62444c061aSmrgwhile test $# -gt 0 ; do
63444c061aSmrg  case $1 in
64444c061aSmrg    --time-stamp | --time* | -t )
65444c061aSmrg       echo "$timestamp" ; exit ;;
66444c061aSmrg    --version | -v )
67444c061aSmrg       echo "$version" ; exit ;;
68444c061aSmrg    --help | --h* | -h )
69444c061aSmrg       echo "$usage"; exit ;;
70444c061aSmrg    -- )     # Stop option processing
71444c061aSmrg       shift; break ;;
72444c061aSmrg    - )	# Use stdin as input.
73444c061aSmrg       break ;;
74444c061aSmrg    -* )
75444c061aSmrg       echo "$me: invalid option $1$help" >&2
76444c061aSmrg       exit 1 ;;
77444c061aSmrg    * )
78444c061aSmrg       break ;;
79444c061aSmrg  esac
80444c061aSmrgdone
81444c061aSmrg
82444c061aSmrgif test $# != 0; then
83444c061aSmrg  echo "$me: too many arguments$help" >&2
84444c061aSmrg  exit 1
85444c061aSmrgfi
86444c061aSmrg
87444c061aSmrg# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
88444c061aSmrg# compiler to aid in system detection is discouraged as it requires
89444c061aSmrg# temporary files to be created and, as you can see below, it is a
90444c061aSmrg# headache to deal with in a portable fashion.
91444c061aSmrg
92444c061aSmrg# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
93444c061aSmrg# use `HOST_CC' if defined, but it is deprecated.
94444c061aSmrg
95444c061aSmrg# Portable tmp directory creation inspired by the Autoconf team.
96444c061aSmrg
97a3bd7f05Smrgtmp=
98a3bd7f05Smrg# shellcheck disable=SC2172
99a3bd7f05Smrgtrap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
100a3bd7f05Smrg
101a3bd7f05Smrgset_cc_for_build() {
102a3bd7f05Smrg    # prevent multiple calls if $tmp is already set
103a3bd7f05Smrg    test "$tmp" && return 0
104a3bd7f05Smrg    : "${TMPDIR=/tmp}"
105a3bd7f05Smrg    # shellcheck disable=SC2039
106a3bd7f05Smrg    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
107a3bd7f05Smrg	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
108a3bd7f05Smrg	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
109a3bd7f05Smrg	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
110a3bd7f05Smrg    dummy=$tmp/dummy
111a3bd7f05Smrg    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
112a3bd7f05Smrg	,,)    echo "int x;" > "$dummy.c"
113a3bd7f05Smrg	       for driver in cc gcc c89 c99 ; do
114a3bd7f05Smrg		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
115a3bd7f05Smrg		       CC_FOR_BUILD="$driver"
116a3bd7f05Smrg		       break
117a3bd7f05Smrg		   fi
118a3bd7f05Smrg	       done
119a3bd7f05Smrg	       if test x"$CC_FOR_BUILD" = x ; then
120a3bd7f05Smrg		   CC_FOR_BUILD=no_compiler_found
121a3bd7f05Smrg	       fi
122a3bd7f05Smrg	       ;;
123a3bd7f05Smrg	,,*)   CC_FOR_BUILD=$CC ;;
124a3bd7f05Smrg	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
125a3bd7f05Smrg    esac
126a3bd7f05Smrg}
127444c061aSmrg
128444c061aSmrg# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
129444c061aSmrg# (ghazi@noc.rutgers.edu 1994-08-24)
130a3bd7f05Smrgif test -f /.attbin/uname ; then
131444c061aSmrg	PATH=$PATH:/.attbin ; export PATH
132444c061aSmrgfi
133444c061aSmrg
134444c061aSmrgUNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135444c061aSmrgUNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136444c061aSmrgUNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
137444c061aSmrgUNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138444c061aSmrg
1390568f49bSmrgcase "$UNAME_SYSTEM" in
140339a7c43SmrgLinux|GNU|GNU/*)
141339a7c43Smrg	# If the system lacks a compiler, then just pick glibc.
142339a7c43Smrg	# We could probably try harder.
143339a7c43Smrg	LIBC=gnu
144339a7c43Smrg
145a3bd7f05Smrg	set_cc_for_build
1460568f49bSmrg	cat <<-EOF > "$dummy.c"
147339a7c43Smrg	#include <features.h>
148339a7c43Smrg	#if defined(__UCLIBC__)
149339a7c43Smrg	LIBC=uclibc
150339a7c43Smrg	#elif defined(__dietlibc__)
151339a7c43Smrg	LIBC=dietlibc
152339a7c43Smrg	#else
153339a7c43Smrg	LIBC=gnu
154339a7c43Smrg	#endif
155339a7c43Smrg	EOF
1560568f49bSmrg	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
1570568f49bSmrg
1580568f49bSmrg	# If ldd exists, use it to detect musl libc.
1590568f49bSmrg	if command -v ldd >/dev/null && \
1600568f49bSmrg		ldd --version 2>&1 | grep -q ^musl
1610568f49bSmrg	then
1620568f49bSmrg	    LIBC=musl
1630568f49bSmrg	fi
164339a7c43Smrg	;;
165339a7c43Smrgesac
166339a7c43Smrg
167444c061aSmrg# Note: order is significant - the case branches are not exclusive.
168444c061aSmrg
1690568f49bSmrgcase "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
170444c061aSmrg    *:NetBSD:*:*)
171444c061aSmrg	# NetBSD (nbsd) targets should (where applicable) match one or
1729e7bcd65Smrg	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
173444c061aSmrg	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
174444c061aSmrg	# switched to ELF, *-*-netbsd* would select the old
175444c061aSmrg	# object file format.  This provides both forward
176444c061aSmrg	# compatibility and a consistent mechanism for selecting the
177444c061aSmrg	# object file format.
178444c061aSmrg	#
179444c061aSmrg	# Note: NetBSD doesn't particularly care about the vendor
180444c061aSmrg	# portion of the name.  We always set it to "unknown".
181444c061aSmrg	sysctl="sysctl -n hw.machine_arch"
1820568f49bSmrg	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
1830568f49bSmrg	    "/sbin/$sysctl" 2>/dev/null || \
1840568f49bSmrg	    "/usr/sbin/$sysctl" 2>/dev/null || \
1850568f49bSmrg	    echo unknown)`
1860568f49bSmrg	case "$UNAME_MACHINE_ARCH" in
187444c061aSmrg	    armeb) machine=armeb-unknown ;;
188444c061aSmrg	    arm*) machine=arm-unknown ;;
189444c061aSmrg	    sh3el) machine=shl-unknown ;;
190444c061aSmrg	    sh3eb) machine=sh-unknown ;;
1912265a131Smrg	    sh5el) machine=sh5le-unknown ;;
1920568f49bSmrg	    earmv*)
1930568f49bSmrg		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
1940568f49bSmrg		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
1950568f49bSmrg		machine="${arch}${endian}"-unknown
1960568f49bSmrg		;;
1970568f49bSmrg	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
198444c061aSmrg	esac
199444c061aSmrg	# The Operating System including object format, if it has switched
2000568f49bSmrg	# to ELF recently (or will in the future) and ABI.
2010568f49bSmrg	case "$UNAME_MACHINE_ARCH" in
2020568f49bSmrg	    earm*)
2030568f49bSmrg		os=netbsdelf
2040568f49bSmrg		;;
205444c061aSmrg	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
206a3bd7f05Smrg		set_cc_for_build
207444c061aSmrg		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
2081477040fSmrg			| grep -q __ELF__
209444c061aSmrg		then
210444c061aSmrg		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
211444c061aSmrg		    # Return netbsd for either.  FIX?
212444c061aSmrg		    os=netbsd
213444c061aSmrg		else
214444c061aSmrg		    os=netbsdelf
215444c061aSmrg		fi
216444c061aSmrg		;;
217444c061aSmrg	    *)
2189e7bcd65Smrg		os=netbsd
219444c061aSmrg		;;
220444c061aSmrg	esac
2210568f49bSmrg	# Determine ABI tags.
2220568f49bSmrg	case "$UNAME_MACHINE_ARCH" in
2230568f49bSmrg	    earm*)
2240568f49bSmrg		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
2250568f49bSmrg		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
2260568f49bSmrg		;;
2270568f49bSmrg	esac
228444c061aSmrg	# The OS release
229444c061aSmrg	# Debian GNU/NetBSD machines have a different userland, and
230444c061aSmrg	# thus, need a distinct triplet. However, they do not need
231444c061aSmrg	# kernel version information, so it can be replaced with a
232444c061aSmrg	# suitable tag, in the style of linux-gnu.
2330568f49bSmrg	case "$UNAME_VERSION" in
234444c061aSmrg	    Debian*)
235444c061aSmrg		release='-gnu'
236444c061aSmrg		;;
237444c061aSmrg	    *)
2380568f49bSmrg		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
239444c061aSmrg		;;
240444c061aSmrg	esac
241444c061aSmrg	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
242444c061aSmrg	# contains redundant information, the shorter form:
243444c061aSmrg	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
244a3bd7f05Smrg	echo "$machine-${os}${release}${abi-}"
245444c061aSmrg	exit ;;
2469e7bcd65Smrg    *:Bitrig:*:*)
2479e7bcd65Smrg	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
2480568f49bSmrg	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
2499e7bcd65Smrg	exit ;;
250444c061aSmrg    *:OpenBSD:*:*)
251444c061aSmrg	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
2520568f49bSmrg	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
2530568f49bSmrg	exit ;;
2540568f49bSmrg    *:LibertyBSD:*:*)
2550568f49bSmrg	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
2560568f49bSmrg	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
2570568f49bSmrg	exit ;;
2580568f49bSmrg    *:MidnightBSD:*:*)
2590568f49bSmrg	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
260444c061aSmrg	exit ;;
261444c061aSmrg    *:ekkoBSD:*:*)
2620568f49bSmrg	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
263444c061aSmrg	exit ;;
2642265a131Smrg    *:SolidBSD:*:*)
2650568f49bSmrg	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
2662265a131Smrg	exit ;;
267a3bd7f05Smrg    *:OS108:*:*)
268a3bd7f05Smrg	echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
269a3bd7f05Smrg	exit ;;
270444c061aSmrg    macppc:MirBSD:*:*)
2710568f49bSmrg	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
272444c061aSmrg	exit ;;
273444c061aSmrg    *:MirBSD:*:*)
2740568f49bSmrg	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
2750568f49bSmrg	exit ;;
2760568f49bSmrg    *:Sortix:*:*)
2770568f49bSmrg	echo "$UNAME_MACHINE"-unknown-sortix
278444c061aSmrg	exit ;;
279a3bd7f05Smrg    *:Twizzler:*:*)
280a3bd7f05Smrg	echo "$UNAME_MACHINE"-unknown-twizzler
281a3bd7f05Smrg	exit ;;
2820568f49bSmrg    *:Redox:*:*)
2830568f49bSmrg	echo "$UNAME_MACHINE"-unknown-redox
2840568f49bSmrg	exit ;;
2850568f49bSmrg    mips:OSF1:*.*)
286a3bd7f05Smrg	echo mips-dec-osf1
287a3bd7f05Smrg	exit ;;
288444c061aSmrg    alpha:OSF1:*:*)
289444c061aSmrg	case $UNAME_RELEASE in
290444c061aSmrg	*4.0)
291444c061aSmrg		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
292444c061aSmrg		;;
293444c061aSmrg	*5.*)
2949e7bcd65Smrg		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
295444c061aSmrg		;;
296444c061aSmrg	esac
297444c061aSmrg	# According to Compaq, /usr/sbin/psrinfo has been available on
298444c061aSmrg	# OSF/1 and Tru64 systems produced since 1995.  I hope that
299444c061aSmrg	# covers most systems running today.  This code pipes the CPU
300444c061aSmrg	# types through head -n 1, so we only detect the type of CPU 0.
301444c061aSmrg	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
302444c061aSmrg	case "$ALPHA_CPU_TYPE" in
303444c061aSmrg	    "EV4 (21064)")
3040568f49bSmrg		UNAME_MACHINE=alpha ;;
305444c061aSmrg	    "EV4.5 (21064)")
3060568f49bSmrg		UNAME_MACHINE=alpha ;;
307444c061aSmrg	    "LCA4 (21066/21068)")
3080568f49bSmrg		UNAME_MACHINE=alpha ;;
309444c061aSmrg	    "EV5 (21164)")
3100568f49bSmrg		UNAME_MACHINE=alphaev5 ;;
311444c061aSmrg	    "EV5.6 (21164A)")
3120568f49bSmrg		UNAME_MACHINE=alphaev56 ;;
313444c061aSmrg	    "EV5.6 (21164PC)")
3140568f49bSmrg		UNAME_MACHINE=alphapca56 ;;
315444c061aSmrg	    "EV5.7 (21164PC)")
3160568f49bSmrg		UNAME_MACHINE=alphapca57 ;;
317444c061aSmrg	    "EV6 (21264)")
3180568f49bSmrg		UNAME_MACHINE=alphaev6 ;;
319444c061aSmrg	    "EV6.7 (21264A)")
3200568f49bSmrg		UNAME_MACHINE=alphaev67 ;;
321444c061aSmrg	    "EV6.8CB (21264C)")
3220568f49bSmrg		UNAME_MACHINE=alphaev68 ;;
323444c061aSmrg	    "EV6.8AL (21264B)")
3240568f49bSmrg		UNAME_MACHINE=alphaev68 ;;
325444c061aSmrg	    "EV6.8CX (21264D)")
3260568f49bSmrg		UNAME_MACHINE=alphaev68 ;;
327444c061aSmrg	    "EV6.9A (21264/EV69A)")
3280568f49bSmrg		UNAME_MACHINE=alphaev69 ;;
329444c061aSmrg	    "EV7 (21364)")
3300568f49bSmrg		UNAME_MACHINE=alphaev7 ;;
331444c061aSmrg	    "EV7.9 (21364A)")
3320568f49bSmrg		UNAME_MACHINE=alphaev79 ;;
333444c061aSmrg	esac
334444c061aSmrg	# A Pn.n version is a patched version.
335444c061aSmrg	# A Vn.n version is a released version.
336444c061aSmrg	# A Tn.n version is a released field test version.
337444c061aSmrg	# A Xn.n version is an unreleased experimental baselevel.
338444c061aSmrg	# 1.2 uses "1.2" for uname -r.
3390568f49bSmrg	echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
3409e7bcd65Smrg	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
3419e7bcd65Smrg	exitcode=$?
3429e7bcd65Smrg	trap '' 0
3439e7bcd65Smrg	exit $exitcode ;;
344444c061aSmrg    Amiga*:UNIX_System_V:4.0:*)
345444c061aSmrg	echo m68k-unknown-sysv4
346444c061aSmrg	exit ;;
347444c061aSmrg    *:[Aa]miga[Oo][Ss]:*:*)
3480568f49bSmrg	echo "$UNAME_MACHINE"-unknown-amigaos
349444c061aSmrg	exit ;;
350444c061aSmrg    *:[Mm]orph[Oo][Ss]:*:*)
3510568f49bSmrg	echo "$UNAME_MACHINE"-unknown-morphos
352444c061aSmrg	exit ;;
353444c061aSmrg    *:OS/390:*:*)
354444c061aSmrg	echo i370-ibm-openedition
355444c061aSmrg	exit ;;
356444c061aSmrg    *:z/VM:*:*)
357444c061aSmrg	echo s390-ibm-zvmoe
358444c061aSmrg	exit ;;
359444c061aSmrg    *:OS400:*:*)
3609e7bcd65Smrg	echo powerpc-ibm-os400
361444c061aSmrg	exit ;;
362444c061aSmrg    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
3630568f49bSmrg	echo arm-acorn-riscix"$UNAME_RELEASE"
364444c061aSmrg	exit ;;
3659e7bcd65Smrg    arm*:riscos:*:*|arm*:RISCOS:*:*)
366444c061aSmrg	echo arm-unknown-riscos
367444c061aSmrg	exit ;;
368444c061aSmrg    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
369444c061aSmrg	echo hppa1.1-hitachi-hiuxmpp
370444c061aSmrg	exit ;;
371444c061aSmrg    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
372444c061aSmrg	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
373444c061aSmrg	if test "`(/bin/universe) 2>/dev/null`" = att ; then
374444c061aSmrg		echo pyramid-pyramid-sysv3
375444c061aSmrg	else
376444c061aSmrg		echo pyramid-pyramid-bsd
377444c061aSmrg	fi
378444c061aSmrg	exit ;;
379444c061aSmrg    NILE*:*:*:dcosx)
380444c061aSmrg	echo pyramid-pyramid-svr4
381444c061aSmrg	exit ;;
382444c061aSmrg    DRS?6000:unix:4.0:6*)
383444c061aSmrg	echo sparc-icl-nx6
384444c061aSmrg	exit ;;
385444c061aSmrg    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
386444c061aSmrg	case `/usr/bin/uname -p` in
387444c061aSmrg	    sparc) echo sparc-icl-nx7; exit ;;
388444c061aSmrg	esac ;;
3891477040fSmrg    s390x:SunOS:*:*)
3900568f49bSmrg	echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
3911477040fSmrg	exit ;;
392444c061aSmrg    sun4H:SunOS:5.*:*)
3930568f49bSmrg	echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
394444c061aSmrg	exit ;;
395444c061aSmrg    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
3960568f49bSmrg	echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
397444c061aSmrg	exit ;;
3981477040fSmrg    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
3990568f49bSmrg	echo i386-pc-auroraux"$UNAME_RELEASE"
4001477040fSmrg	exit ;;
4012265a131Smrg    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
402a3bd7f05Smrg	set_cc_for_build
4030568f49bSmrg	SUN_ARCH=i386
4041477040fSmrg	# If there is a compiler, see if it is configured for 64-bit objects.
4051477040fSmrg	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
4061477040fSmrg	# This test works for both compilers.
4070568f49bSmrg	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
4081477040fSmrg	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
4090568f49bSmrg		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
4101477040fSmrg		grep IS_64BIT_ARCH >/dev/null
4111477040fSmrg	    then
4120568f49bSmrg		SUN_ARCH=x86_64
4131477040fSmrg	    fi
4141477040fSmrg	fi
4150568f49bSmrg	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
416444c061aSmrg	exit ;;
417444c061aSmrg    sun4*:SunOS:6*:*)
418444c061aSmrg	# According to config.sub, this is the proper way to canonicalize
419444c061aSmrg	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
420444c061aSmrg	# it's likely to be more like Solaris than SunOS4.
4210568f49bSmrg	echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
422444c061aSmrg	exit ;;
423444c061aSmrg    sun4*:SunOS:*:*)
424444c061aSmrg	case "`/usr/bin/arch -k`" in
425444c061aSmrg	    Series*|S4*)
426444c061aSmrg		UNAME_RELEASE=`uname -v`
427444c061aSmrg		;;
428444c061aSmrg	esac
429444c061aSmrg	# Japanese Language versions have a version number like `4.1.3-JL'.
4300568f49bSmrg	echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
431444c061aSmrg	exit ;;
432444c061aSmrg    sun3*:SunOS:*:*)
4330568f49bSmrg	echo m68k-sun-sunos"$UNAME_RELEASE"
434444c061aSmrg	exit ;;
435444c061aSmrg    sun*:*:4.2BSD:*)
436444c061aSmrg	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
4370568f49bSmrg	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
438444c061aSmrg	case "`/bin/arch`" in
439444c061aSmrg	    sun3)
4400568f49bSmrg		echo m68k-sun-sunos"$UNAME_RELEASE"
441444c061aSmrg		;;
442444c061aSmrg	    sun4)
4430568f49bSmrg		echo sparc-sun-sunos"$UNAME_RELEASE"
444444c061aSmrg		;;
445444c061aSmrg	esac
446444c061aSmrg	exit ;;
447444c061aSmrg    aushp:SunOS:*:*)
4480568f49bSmrg	echo sparc-auspex-sunos"$UNAME_RELEASE"
449444c061aSmrg	exit ;;
450444c061aSmrg    # The situation for MiNT is a little confusing.  The machine name
451444c061aSmrg    # can be virtually everything (everything which is not
452444c061aSmrg    # "atarist" or "atariste" at least should have a processor
453444c061aSmrg    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
454444c061aSmrg    # to the lowercase version "mint" (or "freemint").  Finally
455444c061aSmrg    # the system name "TOS" denotes a system which is actually not
456444c061aSmrg    # MiNT.  But MiNT is downward compatible to TOS, so this should
457444c061aSmrg    # be no problem.
458444c061aSmrg    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
4590568f49bSmrg	echo m68k-atari-mint"$UNAME_RELEASE"
460444c061aSmrg	exit ;;
461444c061aSmrg    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
4620568f49bSmrg	echo m68k-atari-mint"$UNAME_RELEASE"
4639e7bcd65Smrg	exit ;;
464444c061aSmrg    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
4650568f49bSmrg	echo m68k-atari-mint"$UNAME_RELEASE"
466444c061aSmrg	exit ;;
467444c061aSmrg    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
4680568f49bSmrg	echo m68k-milan-mint"$UNAME_RELEASE"
4699e7bcd65Smrg	exit ;;
470444c061aSmrg    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
4710568f49bSmrg	echo m68k-hades-mint"$UNAME_RELEASE"
4729e7bcd65Smrg	exit ;;
473444c061aSmrg    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
4740568f49bSmrg	echo m68k-unknown-mint"$UNAME_RELEASE"
4759e7bcd65Smrg	exit ;;
476444c061aSmrg    m68k:machten:*:*)
4770568f49bSmrg	echo m68k-apple-machten"$UNAME_RELEASE"
478444c061aSmrg	exit ;;
479444c061aSmrg    powerpc:machten:*:*)
4800568f49bSmrg	echo powerpc-apple-machten"$UNAME_RELEASE"
481444c061aSmrg	exit ;;
482444c061aSmrg    RISC*:Mach:*:*)
483444c061aSmrg	echo mips-dec-mach_bsd4.3
484444c061aSmrg	exit ;;
485444c061aSmrg    RISC*:ULTRIX:*:*)
4860568f49bSmrg	echo mips-dec-ultrix"$UNAME_RELEASE"
487444c061aSmrg	exit ;;
488444c061aSmrg    VAX*:ULTRIX*:*:*)
4890568f49bSmrg	echo vax-dec-ultrix"$UNAME_RELEASE"
490444c061aSmrg	exit ;;
491444c061aSmrg    2020:CLIX:*:* | 2430:CLIX:*:*)
4920568f49bSmrg	echo clipper-intergraph-clix"$UNAME_RELEASE"
493444c061aSmrg	exit ;;
494444c061aSmrg    mips:*:*:UMIPS | mips:*:*:RISCos)
495a3bd7f05Smrg	set_cc_for_build
4960568f49bSmrg	sed 's/^	//' << EOF > "$dummy.c"
497444c061aSmrg#ifdef __cplusplus
498444c061aSmrg#include <stdio.h>  /* for printf() prototype */
499444c061aSmrg	int main (int argc, char *argv[]) {
500444c061aSmrg#else
501444c061aSmrg	int main (argc, argv) int argc; char *argv[]; {
502444c061aSmrg#endif
503444c061aSmrg	#if defined (host_mips) && defined (MIPSEB)
504444c061aSmrg	#if defined (SYSTYPE_SYSV)
5050568f49bSmrg	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
506444c061aSmrg	#endif
507444c061aSmrg	#if defined (SYSTYPE_SVR4)
5080568f49bSmrg	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
509444c061aSmrg	#endif
510444c061aSmrg	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
5110568f49bSmrg	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
512444c061aSmrg	#endif
513444c061aSmrg	#endif
514444c061aSmrg	  exit (-1);
515444c061aSmrg	}
516444c061aSmrgEOF
5170568f49bSmrg	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
5180568f49bSmrg	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
5190568f49bSmrg	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
520444c061aSmrg	    { echo "$SYSTEM_NAME"; exit; }
5210568f49bSmrg	echo mips-mips-riscos"$UNAME_RELEASE"
522444c061aSmrg	exit ;;
523444c061aSmrg    Motorola:PowerMAX_OS:*:*)
524444c061aSmrg	echo powerpc-motorola-powermax
525444c061aSmrg	exit ;;
526444c061aSmrg    Motorola:*:4.3:PL8-*)
527444c061aSmrg	echo powerpc-harris-powermax
528444c061aSmrg	exit ;;
529444c061aSmrg    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
530444c061aSmrg	echo powerpc-harris-powermax
531444c061aSmrg	exit ;;
532444c061aSmrg    Night_Hawk:Power_UNIX:*:*)
533444c061aSmrg	echo powerpc-harris-powerunix
534444c061aSmrg	exit ;;
535444c061aSmrg    m88k:CX/UX:7*:*)
536444c061aSmrg	echo m88k-harris-cxux7
537444c061aSmrg	exit ;;
538444c061aSmrg    m88k:*:4*:R4*)
539444c061aSmrg	echo m88k-motorola-sysv4
540444c061aSmrg	exit ;;
541444c061aSmrg    m88k:*:3*:R3*)
542444c061aSmrg	echo m88k-motorola-sysv3
543444c061aSmrg	exit ;;
544444c061aSmrg    AViiON:dgux:*:*)
5459e7bcd65Smrg	# DG/UX returns AViiON for all architectures
5469e7bcd65Smrg	UNAME_PROCESSOR=`/usr/bin/uname -p`
5470568f49bSmrg	if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
548444c061aSmrg	then
5490568f49bSmrg	    if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
5500568f49bSmrg	       [ "$TARGET_BINARY_INTERFACE"x = x ]
551444c061aSmrg	    then
5520568f49bSmrg		echo m88k-dg-dgux"$UNAME_RELEASE"
553444c061aSmrg	    else
5540568f49bSmrg		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
555444c061aSmrg	    fi
556444c061aSmrg	else
5570568f49bSmrg	    echo i586-dg-dgux"$UNAME_RELEASE"
558444c061aSmrg	fi
5599e7bcd65Smrg	exit ;;
560444c061aSmrg    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
561444c061aSmrg	echo m88k-dolphin-sysv3
562444c061aSmrg	exit ;;
563444c061aSmrg    M88*:*:R3*:*)
564444c061aSmrg	# Delta 88k system running SVR3
565444c061aSmrg	echo m88k-motorola-sysv3
566444c061aSmrg	exit ;;
567444c061aSmrg    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
568444c061aSmrg	echo m88k-tektronix-sysv3
569444c061aSmrg	exit ;;
570444c061aSmrg    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
571444c061aSmrg	echo m68k-tektronix-bsd
572444c061aSmrg	exit ;;
573444c061aSmrg    *:IRIX*:*:*)
5740568f49bSmrg	echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
575444c061aSmrg	exit ;;
576444c061aSmrg    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
577444c061aSmrg	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
578444c061aSmrg	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
579444c061aSmrg    i*86:AIX:*:*)
580444c061aSmrg	echo i386-ibm-aix
581444c061aSmrg	exit ;;
582444c061aSmrg    ia64:AIX:*:*)
583444c061aSmrg	if [ -x /usr/bin/oslevel ] ; then
584444c061aSmrg		IBM_REV=`/usr/bin/oslevel`
585444c061aSmrg	else
5860568f49bSmrg		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
587444c061aSmrg	fi
5880568f49bSmrg	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
589444c061aSmrg	exit ;;
590444c061aSmrg    *:AIX:2:3)
591444c061aSmrg	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
592a3bd7f05Smrg		set_cc_for_build
5930568f49bSmrg		sed 's/^		//' << EOF > "$dummy.c"
594444c061aSmrg		#include <sys/systemcfg.h>
595444c061aSmrg
596444c061aSmrg		main()
597444c061aSmrg			{
598444c061aSmrg			if (!__power_pc())
599444c061aSmrg				exit(1);
600444c061aSmrg			puts("powerpc-ibm-aix3.2.5");
601444c061aSmrg			exit(0);
602444c061aSmrg			}
603444c061aSmrgEOF
6040568f49bSmrg		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
605444c061aSmrg		then
606444c061aSmrg			echo "$SYSTEM_NAME"
607444c061aSmrg		else
608444c061aSmrg			echo rs6000-ibm-aix3.2.5
609444c061aSmrg		fi
610444c061aSmrg	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
611444c061aSmrg		echo rs6000-ibm-aix3.2.4
612444c061aSmrg	else
613444c061aSmrg		echo rs6000-ibm-aix3.2
614444c061aSmrg	fi
615444c061aSmrg	exit ;;
6169e7bcd65Smrg    *:AIX:*:[4567])
617444c061aSmrg	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
6180568f49bSmrg	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
619444c061aSmrg		IBM_ARCH=rs6000
620444c061aSmrg	else
621444c061aSmrg		IBM_ARCH=powerpc
622444c061aSmrg	fi
623339a7c43Smrg	if [ -x /usr/bin/lslpp ] ; then
624339a7c43Smrg		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
625339a7c43Smrg			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
626444c061aSmrg	else
6270568f49bSmrg		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
628444c061aSmrg	fi
6290568f49bSmrg	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
630444c061aSmrg	exit ;;
631444c061aSmrg    *:AIX:*:*)
632444c061aSmrg	echo rs6000-ibm-aix
633444c061aSmrg	exit ;;
6340568f49bSmrg    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
635444c061aSmrg	echo romp-ibm-bsd4.4
636444c061aSmrg	exit ;;
637444c061aSmrg    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
6380568f49bSmrg	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
639444c061aSmrg	exit ;;                             # report: romp-ibm BSD 4.3
640444c061aSmrg    *:BOSX:*:*)
641444c061aSmrg	echo rs6000-bull-bosx
642444c061aSmrg	exit ;;
643444c061aSmrg    DPX/2?00:B.O.S.:*:*)
644444c061aSmrg	echo m68k-bull-sysv3
645444c061aSmrg	exit ;;
646444c061aSmrg    9000/[34]??:4.3bsd:1.*:*)
647444c061aSmrg	echo m68k-hp-bsd
648444c061aSmrg	exit ;;
649444c061aSmrg    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
650444c061aSmrg	echo m68k-hp-bsd4.4
651444c061aSmrg	exit ;;
652444c061aSmrg    9000/[34678]??:HP-UX:*:*)
6530568f49bSmrg	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
6540568f49bSmrg	case "$UNAME_MACHINE" in
6550568f49bSmrg	    9000/31?)            HP_ARCH=m68000 ;;
6560568f49bSmrg	    9000/[34]??)         HP_ARCH=m68k ;;
657444c061aSmrg	    9000/[678][0-9][0-9])
658444c061aSmrg		if [ -x /usr/bin/getconf ]; then
659444c061aSmrg		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
6609e7bcd65Smrg		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
6610568f49bSmrg		    case "$sc_cpu_version" in
6620568f49bSmrg		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
6630568f49bSmrg		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
6649e7bcd65Smrg		      532)                      # CPU_PA_RISC2_0
6650568f49bSmrg			case "$sc_kernel_bits" in
6660568f49bSmrg			  32) HP_ARCH=hppa2.0n ;;
6670568f49bSmrg			  64) HP_ARCH=hppa2.0w ;;
6680568f49bSmrg			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
6699e7bcd65Smrg			esac ;;
6709e7bcd65Smrg		    esac
671444c061aSmrg		fi
6720568f49bSmrg		if [ "$HP_ARCH" = "" ]; then
673a3bd7f05Smrg		    set_cc_for_build
6740568f49bSmrg		    sed 's/^		//' << EOF > "$dummy.c"
675444c061aSmrg
6769e7bcd65Smrg		#define _HPUX_SOURCE
6779e7bcd65Smrg		#include <stdlib.h>
6789e7bcd65Smrg		#include <unistd.h>
679444c061aSmrg
6809e7bcd65Smrg		int main ()
6819e7bcd65Smrg		{
6829e7bcd65Smrg		#if defined(_SC_KERNEL_BITS)
6839e7bcd65Smrg		    long bits = sysconf(_SC_KERNEL_BITS);
6849e7bcd65Smrg		#endif
6859e7bcd65Smrg		    long cpu  = sysconf (_SC_CPU_VERSION);
686444c061aSmrg
6879e7bcd65Smrg		    switch (cpu)
6889e7bcd65Smrg			{
6899e7bcd65Smrg			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
6909e7bcd65Smrg			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
6919e7bcd65Smrg			case CPU_PA_RISC2_0:
6929e7bcd65Smrg		#if defined(_SC_KERNEL_BITS)
6939e7bcd65Smrg			    switch (bits)
6949e7bcd65Smrg				{
6959e7bcd65Smrg				case 64: puts ("hppa2.0w"); break;
6969e7bcd65Smrg				case 32: puts ("hppa2.0n"); break;
6979e7bcd65Smrg				default: puts ("hppa2.0"); break;
6989e7bcd65Smrg				} break;
6999e7bcd65Smrg		#else  /* !defined(_SC_KERNEL_BITS) */
7009e7bcd65Smrg			    puts ("hppa2.0"); break;
7019e7bcd65Smrg		#endif
7029e7bcd65Smrg			default: puts ("hppa1.0"); break;
7039e7bcd65Smrg			}
7049e7bcd65Smrg		    exit (0);
7059e7bcd65Smrg		}
706444c061aSmrgEOF
7070568f49bSmrg		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
708444c061aSmrg		    test -z "$HP_ARCH" && HP_ARCH=hppa
709444c061aSmrg		fi ;;
710444c061aSmrg	esac
7110568f49bSmrg	if [ "$HP_ARCH" = hppa2.0w ]
712444c061aSmrg	then
713a3bd7f05Smrg	    set_cc_for_build
714444c061aSmrg
715444c061aSmrg	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
716444c061aSmrg	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
717444c061aSmrg	    # generating 64-bit code.  GNU and HP use different nomenclature:
718444c061aSmrg	    #
719444c061aSmrg	    # $ CC_FOR_BUILD=cc ./config.guess
720444c061aSmrg	    # => hppa2.0w-hp-hpux11.23
721444c061aSmrg	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
722444c061aSmrg	    # => hppa64-hp-hpux11.23
723444c061aSmrg
7240568f49bSmrg	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
7251477040fSmrg		grep -q __LP64__
726444c061aSmrg	    then
7270568f49bSmrg		HP_ARCH=hppa2.0w
728444c061aSmrg	    else
7290568f49bSmrg		HP_ARCH=hppa64
730444c061aSmrg	    fi
731444c061aSmrg	fi
7320568f49bSmrg	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
733444c061aSmrg	exit ;;
734444c061aSmrg    ia64:HP-UX:*:*)
7350568f49bSmrg	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
7360568f49bSmrg	echo ia64-hp-hpux"$HPUX_REV"
737444c061aSmrg	exit ;;
738444c061aSmrg    3050*:HI-UX:*:*)
739a3bd7f05Smrg	set_cc_for_build
7400568f49bSmrg	sed 's/^	//' << EOF > "$dummy.c"
741444c061aSmrg	#include <unistd.h>
742444c061aSmrg	int
743444c061aSmrg	main ()
744444c061aSmrg	{
745444c061aSmrg	  long cpu = sysconf (_SC_CPU_VERSION);
746444c061aSmrg	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
747444c061aSmrg	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
748444c061aSmrg	     results, however.  */
749444c061aSmrg	  if (CPU_IS_PA_RISC (cpu))
750444c061aSmrg	    {
751444c061aSmrg	      switch (cpu)
752444c061aSmrg		{
753444c061aSmrg		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
754444c061aSmrg		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
755444c061aSmrg		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
756444c061aSmrg		  default: puts ("hppa-hitachi-hiuxwe2"); break;
757444c061aSmrg		}
758444c061aSmrg	    }
759444c061aSmrg	  else if (CPU_IS_HP_MC68K (cpu))
760444c061aSmrg	    puts ("m68k-hitachi-hiuxwe2");
761444c061aSmrg	  else puts ("unknown-hitachi-hiuxwe2");
762444c061aSmrg	  exit (0);
763444c061aSmrg	}
764444c061aSmrgEOF
7650568f49bSmrg	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
766444c061aSmrg		{ echo "$SYSTEM_NAME"; exit; }
767444c061aSmrg	echo unknown-hitachi-hiuxwe2
768444c061aSmrg	exit ;;
7690568f49bSmrg    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
770444c061aSmrg	echo hppa1.1-hp-bsd
771444c061aSmrg	exit ;;
772444c061aSmrg    9000/8??:4.3bsd:*:*)
773444c061aSmrg	echo hppa1.0-hp-bsd
774444c061aSmrg	exit ;;
775444c061aSmrg    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
776444c061aSmrg	echo hppa1.0-hp-mpeix
777444c061aSmrg	exit ;;
7780568f49bSmrg    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
779444c061aSmrg	echo hppa1.1-hp-osf
780444c061aSmrg	exit ;;
781444c061aSmrg    hp8??:OSF1:*:*)
782444c061aSmrg	echo hppa1.0-hp-osf
783444c061aSmrg	exit ;;
784444c061aSmrg    i*86:OSF1:*:*)
785444c061aSmrg	if [ -x /usr/sbin/sysversion ] ; then
7860568f49bSmrg	    echo "$UNAME_MACHINE"-unknown-osf1mk
787444c061aSmrg	else
7880568f49bSmrg	    echo "$UNAME_MACHINE"-unknown-osf1
789444c061aSmrg	fi
790444c061aSmrg	exit ;;
791444c061aSmrg    parisc*:Lites*:*:*)
792444c061aSmrg	echo hppa1.1-hp-lites
793444c061aSmrg	exit ;;
794444c061aSmrg    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
795444c061aSmrg	echo c1-convex-bsd
7969e7bcd65Smrg	exit ;;
797444c061aSmrg    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
798444c061aSmrg	if getsysinfo -f scalar_acc
799444c061aSmrg	then echo c32-convex-bsd
800444c061aSmrg	else echo c2-convex-bsd
801444c061aSmrg	fi
8029e7bcd65Smrg	exit ;;
803444c061aSmrg    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
804444c061aSmrg	echo c34-convex-bsd
8059e7bcd65Smrg	exit ;;
806444c061aSmrg    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
807444c061aSmrg	echo c38-convex-bsd
8089e7bcd65Smrg	exit ;;
809444c061aSmrg    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
810444c061aSmrg	echo c4-convex-bsd
8119e7bcd65Smrg	exit ;;
812444c061aSmrg    CRAY*Y-MP:*:*:*)
8130568f49bSmrg	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
814444c061aSmrg	exit ;;
815444c061aSmrg    CRAY*[A-Z]90:*:*:*)
8160568f49bSmrg	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
817444c061aSmrg	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
818444c061aSmrg	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
819444c061aSmrg	      -e 's/\.[^.]*$/.X/'
820444c061aSmrg	exit ;;
821444c061aSmrg    CRAY*TS:*:*:*)
8220568f49bSmrg	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
823444c061aSmrg	exit ;;
824444c061aSmrg    CRAY*T3E:*:*:*)
8250568f49bSmrg	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
826444c061aSmrg	exit ;;
827444c061aSmrg    CRAY*SV1:*:*:*)
8280568f49bSmrg	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
829444c061aSmrg	exit ;;
830444c061aSmrg    *:UNICOS/mp:*:*)
8310568f49bSmrg	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
832444c061aSmrg	exit ;;
833444c061aSmrg    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
8340568f49bSmrg	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
8350568f49bSmrg	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
8360568f49bSmrg	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
8379e7bcd65Smrg	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
8389e7bcd65Smrg	exit ;;
839444c061aSmrg    5000:UNIX_System_V:4.*:*)
8400568f49bSmrg	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
8410568f49bSmrg	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
8429e7bcd65Smrg	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
843444c061aSmrg	exit ;;
844444c061aSmrg    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
8450568f49bSmrg	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
846444c061aSmrg	exit ;;
847444c061aSmrg    sparc*:BSD/OS:*:*)
8480568f49bSmrg	echo sparc-unknown-bsdi"$UNAME_RELEASE"
849444c061aSmrg	exit ;;
850444c061aSmrg    *:BSD/OS:*:*)
8510568f49bSmrg	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
852444c061aSmrg	exit ;;
853a3bd7f05Smrg    arm:FreeBSD:*:*)
854a3bd7f05Smrg	UNAME_PROCESSOR=`uname -p`
855a3bd7f05Smrg	set_cc_for_build
856a3bd7f05Smrg	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
857a3bd7f05Smrg	    | grep -q __ARM_PCS_VFP
858a3bd7f05Smrg	then
859a3bd7f05Smrg	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
860a3bd7f05Smrg	else
861a3bd7f05Smrg	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
862a3bd7f05Smrg	fi
863a3bd7f05Smrg	exit ;;
864444c061aSmrg    *:FreeBSD:*:*)
8659e7bcd65Smrg	UNAME_PROCESSOR=`/usr/bin/uname -p`
8660568f49bSmrg	case "$UNAME_PROCESSOR" in
8672265a131Smrg	    amd64)
8680568f49bSmrg		UNAME_PROCESSOR=x86_64 ;;
8690568f49bSmrg	    i386)
8700568f49bSmrg		UNAME_PROCESSOR=i586 ;;
8712265a131Smrg	esac
8720568f49bSmrg	echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
873444c061aSmrg	exit ;;
874444c061aSmrg    i*:CYGWIN*:*)
8750568f49bSmrg	echo "$UNAME_MACHINE"-pc-cygwin
876444c061aSmrg	exit ;;
8779e7bcd65Smrg    *:MINGW64*:*)
8780568f49bSmrg	echo "$UNAME_MACHINE"-pc-mingw64
8799e7bcd65Smrg	exit ;;
8802265a131Smrg    *:MINGW*:*)
8810568f49bSmrg	echo "$UNAME_MACHINE"-pc-mingw32
882444c061aSmrg	exit ;;
883339a7c43Smrg    *:MSYS*:*)
8840568f49bSmrg	echo "$UNAME_MACHINE"-pc-msys
885444c061aSmrg	exit ;;
886444c061aSmrg    i*:PW*:*)
8870568f49bSmrg	echo "$UNAME_MACHINE"-pc-pw32
888444c061aSmrg	exit ;;
8891477040fSmrg    *:Interix*:*)
8900568f49bSmrg	case "$UNAME_MACHINE" in
8912265a131Smrg	    x86)
8920568f49bSmrg		echo i586-pc-interix"$UNAME_RELEASE"
8932265a131Smrg		exit ;;
8941477040fSmrg	    authenticamd | genuineintel | EM64T)
8950568f49bSmrg		echo x86_64-unknown-interix"$UNAME_RELEASE"
8962265a131Smrg		exit ;;
8972265a131Smrg	    IA64)
8980568f49bSmrg		echo ia64-unknown-interix"$UNAME_RELEASE"
8992265a131Smrg		exit ;;
9002265a131Smrg	esac ;;
901444c061aSmrg    i*:UWIN*:*)
9020568f49bSmrg	echo "$UNAME_MACHINE"-pc-uwin
903444c061aSmrg	exit ;;
904444c061aSmrg    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
905a3bd7f05Smrg	echo x86_64-pc-cygwin
906444c061aSmrg	exit ;;
907444c061aSmrg    prep*:SunOS:5.*:*)
9080568f49bSmrg	echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
909444c061aSmrg	exit ;;
910444c061aSmrg    *:GNU:*:*)
911444c061aSmrg	# the GNU system
9120568f49bSmrg	echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
913444c061aSmrg	exit ;;
914444c061aSmrg    *:GNU/*:*:*)
915444c061aSmrg	# other systems with GNU libc and userland
9160568f49bSmrg	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
917444c061aSmrg	exit ;;
918a3bd7f05Smrg    *:Minix:*:*)
919a3bd7f05Smrg	echo "$UNAME_MACHINE"-unknown-minix
920444c061aSmrg	exit ;;
9219e7bcd65Smrg    aarch64:Linux:*:*)
9220568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9239e7bcd65Smrg	exit ;;
9249e7bcd65Smrg    aarch64_be:Linux:*:*)
9259e7bcd65Smrg	UNAME_MACHINE=aarch64_be
9260568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9279e7bcd65Smrg	exit ;;
9281477040fSmrg    alpha:Linux:*:*)
929a3bd7f05Smrg	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
9301477040fSmrg	  EV5)   UNAME_MACHINE=alphaev5 ;;
9311477040fSmrg	  EV56)  UNAME_MACHINE=alphaev56 ;;
9321477040fSmrg	  PCA56) UNAME_MACHINE=alphapca56 ;;
9331477040fSmrg	  PCA57) UNAME_MACHINE=alphapca56 ;;
9341477040fSmrg	  EV6)   UNAME_MACHINE=alphaev6 ;;
9351477040fSmrg	  EV67)  UNAME_MACHINE=alphaev67 ;;
9361477040fSmrg	  EV68*) UNAME_MACHINE=alphaev68 ;;
9379e7bcd65Smrg	esac
9381477040fSmrg	objdump --private-headers /bin/sh | grep -q ld.so.1
9390568f49bSmrg	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
9400568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9411477040fSmrg	exit ;;
9429e7bcd65Smrg    arc:Linux:*:* | arceb:Linux:*:*)
9430568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9449e7bcd65Smrg	exit ;;
945444c061aSmrg    arm*:Linux:*:*)
946a3bd7f05Smrg	set_cc_for_build
9472265a131Smrg	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
9482265a131Smrg	    | grep -q __ARM_EABI__
9492265a131Smrg	then
9500568f49bSmrg	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9512265a131Smrg	else
9529e7bcd65Smrg	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
9539e7bcd65Smrg		| grep -q __ARM_PCS_VFP
9549e7bcd65Smrg	    then
9550568f49bSmrg		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
9569e7bcd65Smrg	    else
9570568f49bSmrg		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
9589e7bcd65Smrg	    fi
9592265a131Smrg	fi
9602265a131Smrg	exit ;;
9612265a131Smrg    avr32*:Linux:*:*)
9620568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
963444c061aSmrg	exit ;;
964444c061aSmrg    cris:Linux:*:*)
9650568f49bSmrg	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
966444c061aSmrg	exit ;;
967444c061aSmrg    crisv32:Linux:*:*)
9680568f49bSmrg	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
9690568f49bSmrg	exit ;;
9700568f49bSmrg    e2k:Linux:*:*)
9710568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
972444c061aSmrg	exit ;;
973444c061aSmrg    frv:Linux:*:*)
9740568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9759e7bcd65Smrg	exit ;;
9769e7bcd65Smrg    hexagon:Linux:*:*)
9770568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9781477040fSmrg	exit ;;
9791477040fSmrg    i*86:Linux:*:*)
9800568f49bSmrg	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
981444c061aSmrg	exit ;;
982444c061aSmrg    ia64:Linux:*:*)
9830568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
9840568f49bSmrg	exit ;;
9850568f49bSmrg    k1om:Linux:*:*)
9860568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
987444c061aSmrg	exit ;;
988444c061aSmrg    m32r*:Linux:*:*)
9890568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
990444c061aSmrg	exit ;;
991444c061aSmrg    m68*:Linux:*:*)
9920568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
993444c061aSmrg	exit ;;
9941477040fSmrg    mips:Linux:*:* | mips64:Linux:*:*)
995a3bd7f05Smrg	set_cc_for_build
996a3bd7f05Smrg	IS_GLIBC=0
997a3bd7f05Smrg	test x"${LIBC}" = xgnu && IS_GLIBC=1
9980568f49bSmrg	sed 's/^	//' << EOF > "$dummy.c"
999444c061aSmrg	#undef CPU
1000a3bd7f05Smrg	#undef mips
1001a3bd7f05Smrg	#undef mipsel
1002a3bd7f05Smrg	#undef mips64
1003a3bd7f05Smrg	#undef mips64el
1004a3bd7f05Smrg	#if ${IS_GLIBC} && defined(_ABI64)
1005a3bd7f05Smrg	LIBCABI=gnuabi64
1006a3bd7f05Smrg	#else
1007a3bd7f05Smrg	#if ${IS_GLIBC} && defined(_ABIN32)
1008a3bd7f05Smrg	LIBCABI=gnuabin32
1009a3bd7f05Smrg	#else
1010a3bd7f05Smrg	LIBCABI=${LIBC}
1011a3bd7f05Smrg	#endif
1012a3bd7f05Smrg	#endif
1013a3bd7f05Smrg
1014a3bd7f05Smrg	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1015a3bd7f05Smrg	CPU=mipsisa64r6
1016a3bd7f05Smrg	#else
1017a3bd7f05Smrg	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1018a3bd7f05Smrg	CPU=mipsisa32r6
1019a3bd7f05Smrg	#else
1020a3bd7f05Smrg	#if defined(__mips64)
1021a3bd7f05Smrg	CPU=mips64
1022a3bd7f05Smrg	#else
1023a3bd7f05Smrg	CPU=mips
1024a3bd7f05Smrg	#endif
1025a3bd7f05Smrg	#endif
1026a3bd7f05Smrg	#endif
1027a3bd7f05Smrg
1028444c061aSmrg	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
1029a3bd7f05Smrg	MIPS_ENDIAN=el
1030444c061aSmrg	#else
1031444c061aSmrg	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
1032a3bd7f05Smrg	MIPS_ENDIAN=
1033444c061aSmrg	#else
1034a3bd7f05Smrg	MIPS_ENDIAN=
1035444c061aSmrg	#endif
1036444c061aSmrg	#endif
1037444c061aSmrgEOF
1038a3bd7f05Smrg	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
1039a3bd7f05Smrg	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
1040444c061aSmrg	;;
10410568f49bSmrg    mips64el:Linux:*:*)
10420568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10430568f49bSmrg	exit ;;
1044339a7c43Smrg    openrisc*:Linux:*:*)
10450568f49bSmrg	echo or1k-unknown-linux-"$LIBC"
10469e7bcd65Smrg	exit ;;
1047339a7c43Smrg    or32:Linux:*:* | or1k*:Linux:*:*)
10480568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1049444c061aSmrg	exit ;;
10501477040fSmrg    padre:Linux:*:*)
10510568f49bSmrg	echo sparc-unknown-linux-"$LIBC"
1052444c061aSmrg	exit ;;
10531477040fSmrg    parisc64:Linux:*:* | hppa64:Linux:*:*)
10540568f49bSmrg	echo hppa64-unknown-linux-"$LIBC"
1055444c061aSmrg	exit ;;
1056444c061aSmrg    parisc:Linux:*:* | hppa:Linux:*:*)
1057444c061aSmrg	# Look for CPU level
1058444c061aSmrg	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
10590568f49bSmrg	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
10600568f49bSmrg	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
10610568f49bSmrg	  *)    echo hppa-unknown-linux-"$LIBC" ;;
1062444c061aSmrg	esac
1063444c061aSmrg	exit ;;
10641477040fSmrg    ppc64:Linux:*:*)
10650568f49bSmrg	echo powerpc64-unknown-linux-"$LIBC"
10661477040fSmrg	exit ;;
10671477040fSmrg    ppc:Linux:*:*)
10680568f49bSmrg	echo powerpc-unknown-linux-"$LIBC"
1069339a7c43Smrg	exit ;;
1070339a7c43Smrg    ppc64le:Linux:*:*)
10710568f49bSmrg	echo powerpc64le-unknown-linux-"$LIBC"
1072339a7c43Smrg	exit ;;
1073339a7c43Smrg    ppcle:Linux:*:*)
10740568f49bSmrg	echo powerpcle-unknown-linux-"$LIBC"
10750568f49bSmrg	exit ;;
10760568f49bSmrg    riscv32:Linux:*:* | riscv64:Linux:*:*)
10770568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1078444c061aSmrg	exit ;;
1079444c061aSmrg    s390:Linux:*:* | s390x:Linux:*:*)
10800568f49bSmrg	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
1081444c061aSmrg	exit ;;
1082444c061aSmrg    sh64*:Linux:*:*)
10830568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1084444c061aSmrg	exit ;;
1085444c061aSmrg    sh*:Linux:*:*)
10860568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1087444c061aSmrg	exit ;;
1088444c061aSmrg    sparc:Linux:*:* | sparc64:Linux:*:*)
10890568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1090249c3046Smrg	exit ;;
10919e7bcd65Smrg    tile*:Linux:*:*)
10920568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10939e7bcd65Smrg	exit ;;
1094444c061aSmrg    vax:Linux:*:*)
10950568f49bSmrg	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
1096444c061aSmrg	exit ;;
1097444c061aSmrg    x86_64:Linux:*:*)
1098a3bd7f05Smrg	set_cc_for_build
1099a3bd7f05Smrg	LIBCABI=$LIBC
1100a3bd7f05Smrg	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1101a3bd7f05Smrg	    if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
1102a3bd7f05Smrg		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1103a3bd7f05Smrg		grep IS_X32 >/dev/null
1104a3bd7f05Smrg	    then
1105a3bd7f05Smrg		LIBCABI="$LIBC"x32
1106a3bd7f05Smrg	    fi
11070568f49bSmrg	fi
1108a3bd7f05Smrg	echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
1109444c061aSmrg	exit ;;
11102265a131Smrg    xtensa*:Linux:*:*)
11110568f49bSmrg	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
11122265a131Smrg	exit ;;
1113444c061aSmrg    i*86:DYNIX/ptx:4*:*)
1114444c061aSmrg	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1115444c061aSmrg	# earlier versions are messed up and put the nodename in both
1116444c061aSmrg	# sysname and nodename.
1117444c061aSmrg	echo i386-sequent-sysv4
1118444c061aSmrg	exit ;;
1119444c061aSmrg    i*86:UNIX_SV:4.2MP:2.*)
11209e7bcd65Smrg	# Unixware is an offshoot of SVR4, but it has its own version
11219e7bcd65Smrg	# number series starting with 2...
11229e7bcd65Smrg	# I am not positive that other SVR4 systems won't match this,
1123444c061aSmrg	# I just have to hope.  -- rms.
11249e7bcd65Smrg	# Use sysv4.2uw... so that sysv4* matches it.
11250568f49bSmrg	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
1126444c061aSmrg	exit ;;
1127444c061aSmrg    i*86:OS/2:*:*)
1128444c061aSmrg	# If we were able to find `uname', then EMX Unix compatibility
1129444c061aSmrg	# is probably installed.
11300568f49bSmrg	echo "$UNAME_MACHINE"-pc-os2-emx
1131444c061aSmrg	exit ;;
1132444c061aSmrg    i*86:XTS-300:*:STOP)
11330568f49bSmrg	echo "$UNAME_MACHINE"-unknown-stop
1134444c061aSmrg	exit ;;
1135444c061aSmrg    i*86:atheos:*:*)
11360568f49bSmrg	echo "$UNAME_MACHINE"-unknown-atheos
1137444c061aSmrg	exit ;;
1138444c061aSmrg    i*86:syllable:*:*)
11390568f49bSmrg	echo "$UNAME_MACHINE"-pc-syllable
1140444c061aSmrg	exit ;;
11411477040fSmrg    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
11420568f49bSmrg	echo i386-unknown-lynxos"$UNAME_RELEASE"
1143444c061aSmrg	exit ;;
1144444c061aSmrg    i*86:*DOS:*:*)
11450568f49bSmrg	echo "$UNAME_MACHINE"-pc-msdosdjgpp
1146444c061aSmrg	exit ;;
11470568f49bSmrg    i*86:*:4.*:*)
11480568f49bSmrg	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1149444c061aSmrg	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
11500568f49bSmrg		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
1151444c061aSmrg	else
11520568f49bSmrg		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
1153444c061aSmrg	fi
1154444c061aSmrg	exit ;;
1155444c061aSmrg    i*86:*:5:[678]*)
11569e7bcd65Smrg	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1157444c061aSmrg	case `/bin/uname -X | grep "^Machine"` in
1158444c061aSmrg	    *486*)	     UNAME_MACHINE=i486 ;;
1159444c061aSmrg	    *Pentium)	     UNAME_MACHINE=i586 ;;
1160444c061aSmrg	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1161444c061aSmrg	esac
1162a3bd7f05Smrg	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
1163444c061aSmrg	exit ;;
1164444c061aSmrg    i*86:*:3.2:*)
1165444c061aSmrg	if test -f /usr/options/cb.name; then
1166444c061aSmrg		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
11670568f49bSmrg		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
1168444c061aSmrg	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1169444c061aSmrg		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1170444c061aSmrg		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1171444c061aSmrg		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1172444c061aSmrg			&& UNAME_MACHINE=i586
1173444c061aSmrg		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1174444c061aSmrg			&& UNAME_MACHINE=i686
1175444c061aSmrg		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1176444c061aSmrg			&& UNAME_MACHINE=i686
11770568f49bSmrg		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
1178444c061aSmrg	else
11790568f49bSmrg		echo "$UNAME_MACHINE"-pc-sysv32
1180444c061aSmrg	fi
1181444c061aSmrg	exit ;;
1182444c061aSmrg    pc:*:*:*)
1183444c061aSmrg	# Left here for compatibility:
11849e7bcd65Smrg	# uname -m prints for DJGPP always 'pc', but it prints nothing about
11859e7bcd65Smrg	# the processor, so we play safe by assuming i586.
11861477040fSmrg	# Note: whatever this is, it MUST be the same as what config.sub
11870568f49bSmrg	# prints for the "djgpp" host, or else GDB configure will decide that
11881477040fSmrg	# this is a cross-build.
11891477040fSmrg	echo i586-pc-msdosdjgpp
11909e7bcd65Smrg	exit ;;
1191444c061aSmrg    Intel:Mach:3*:*)
1192444c061aSmrg	echo i386-pc-mach3
1193444c061aSmrg	exit ;;
1194444c061aSmrg    paragon:*:*:*)
1195444c061aSmrg	echo i860-intel-osf1
1196444c061aSmrg	exit ;;
1197444c061aSmrg    i860:*:4.*:*) # i860-SVR4
1198444c061aSmrg	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
11990568f49bSmrg	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
1200444c061aSmrg	else # Add other i860-SVR4 vendors below as they are discovered.
12010568f49bSmrg	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
1202444c061aSmrg	fi
1203444c061aSmrg	exit ;;
1204444c061aSmrg    mini*:CTIX:SYS*5:*)
1205444c061aSmrg	# "miniframe"
1206444c061aSmrg	echo m68010-convergent-sysv
1207444c061aSmrg	exit ;;
1208444c061aSmrg    mc68k:UNIX:SYSTEM5:3.51m)
1209444c061aSmrg	echo m68k-convergent-sysv
1210444c061aSmrg	exit ;;
1211444c061aSmrg    M680?0:D-NIX:5.3:*)
1212444c061aSmrg	echo m68k-diab-dnix
1213444c061aSmrg	exit ;;
1214444c061aSmrg    M68*:*:R3V[5678]*:*)
1215444c061aSmrg	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1216444c061aSmrg    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)
1217444c061aSmrg	OS_REL=''
1218444c061aSmrg	test -r /etc/.relid \
1219444c061aSmrg	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1220444c061aSmrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
12210568f49bSmrg	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1222444c061aSmrg	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
12230568f49bSmrg	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1224444c061aSmrg    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
12259e7bcd65Smrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
12269e7bcd65Smrg	  && { echo i486-ncr-sysv4; exit; } ;;
12271477040fSmrg    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
12281477040fSmrg	OS_REL='.3'
12291477040fSmrg	test -r /etc/.relid \
12301477040fSmrg	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
12311477040fSmrg	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
12320568f49bSmrg	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
12331477040fSmrg	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
12340568f49bSmrg	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
12351477040fSmrg	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
12360568f49bSmrg	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1237444c061aSmrg    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
12380568f49bSmrg	echo m68k-unknown-lynxos"$UNAME_RELEASE"
1239444c061aSmrg	exit ;;
1240444c061aSmrg    mc68030:UNIX_System_V:4.*:*)
1241444c061aSmrg	echo m68k-atari-sysv4
1242444c061aSmrg	exit ;;
1243444c061aSmrg    TSUNAMI:LynxOS:2.*:*)
12440568f49bSmrg	echo sparc-unknown-lynxos"$UNAME_RELEASE"
1245444c061aSmrg	exit ;;
1246444c061aSmrg    rs6000:LynxOS:2.*:*)
12470568f49bSmrg	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
1248444c061aSmrg	exit ;;
12491477040fSmrg    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
12500568f49bSmrg	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
1251444c061aSmrg	exit ;;
1252444c061aSmrg    SM[BE]S:UNIX_SV:*:*)
12530568f49bSmrg	echo mips-dde-sysv"$UNAME_RELEASE"
1254444c061aSmrg	exit ;;
1255444c061aSmrg    RM*:ReliantUNIX-*:*:*)
1256444c061aSmrg	echo mips-sni-sysv4
1257444c061aSmrg	exit ;;
1258444c061aSmrg    RM*:SINIX-*:*:*)
1259444c061aSmrg	echo mips-sni-sysv4
1260444c061aSmrg	exit ;;
1261444c061aSmrg    *:SINIX-*:*:*)
1262444c061aSmrg	if uname -p 2>/dev/null >/dev/null ; then
1263444c061aSmrg		UNAME_MACHINE=`(uname -p) 2>/dev/null`
12640568f49bSmrg		echo "$UNAME_MACHINE"-sni-sysv4
1265444c061aSmrg	else
1266444c061aSmrg		echo ns32k-sni-sysv
1267444c061aSmrg	fi
1268444c061aSmrg	exit ;;
12699e7bcd65Smrg    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
12709e7bcd65Smrg			# says <Richard.M.Bartel@ccMail.Census.GOV>
12719e7bcd65Smrg	echo i586-unisys-sysv4
12729e7bcd65Smrg	exit ;;
1273444c061aSmrg    *:UNIX_System_V:4*:FTX*)
1274444c061aSmrg	# From Gerald Hewes <hewes@openmarket.com>.
1275444c061aSmrg	# How about differentiating between stratus architectures? -djm
1276444c061aSmrg	echo hppa1.1-stratus-sysv4
1277444c061aSmrg	exit ;;
1278444c061aSmrg    *:*:*:FTX*)
1279444c061aSmrg	# From seanf@swdc.stratus.com.
1280444c061aSmrg	echo i860-stratus-sysv4
1281444c061aSmrg	exit ;;
1282444c061aSmrg    i*86:VOS:*:*)
1283444c061aSmrg	# From Paul.Green@stratus.com.
12840568f49bSmrg	echo "$UNAME_MACHINE"-stratus-vos
1285444c061aSmrg	exit ;;
1286444c061aSmrg    *:VOS:*:*)
1287444c061aSmrg	# From Paul.Green@stratus.com.
1288444c061aSmrg	echo hppa1.1-stratus-vos
1289444c061aSmrg	exit ;;
1290444c061aSmrg    mc68*:A/UX:*:*)
12910568f49bSmrg	echo m68k-apple-aux"$UNAME_RELEASE"
1292444c061aSmrg	exit ;;
1293444c061aSmrg    news*:NEWS-OS:6*:*)
1294444c061aSmrg	echo mips-sony-newsos6
1295444c061aSmrg	exit ;;
1296444c061aSmrg    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1297444c061aSmrg	if [ -d /usr/nec ]; then
12980568f49bSmrg		echo mips-nec-sysv"$UNAME_RELEASE"
1299444c061aSmrg	else
13000568f49bSmrg		echo mips-unknown-sysv"$UNAME_RELEASE"
1301444c061aSmrg	fi
13029e7bcd65Smrg	exit ;;
1303444c061aSmrg    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1304444c061aSmrg	echo powerpc-be-beos
1305444c061aSmrg	exit ;;
1306444c061aSmrg    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1307444c061aSmrg	echo powerpc-apple-beos
1308444c061aSmrg	exit ;;
1309444c061aSmrg    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1310444c061aSmrg	echo i586-pc-beos
1311444c061aSmrg	exit ;;
13121477040fSmrg    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
13131477040fSmrg	echo i586-pc-haiku
13141477040fSmrg	exit ;;
13159e7bcd65Smrg    x86_64:Haiku:*:*)
13169e7bcd65Smrg	echo x86_64-unknown-haiku
13179e7bcd65Smrg	exit ;;
1318444c061aSmrg    SX-4:SUPER-UX:*:*)
13190568f49bSmrg	echo sx4-nec-superux"$UNAME_RELEASE"
1320444c061aSmrg	exit ;;
1321444c061aSmrg    SX-5:SUPER-UX:*:*)
13220568f49bSmrg	echo sx5-nec-superux"$UNAME_RELEASE"
1323444c061aSmrg	exit ;;
1324444c061aSmrg    SX-6:SUPER-UX:*:*)
13250568f49bSmrg	echo sx6-nec-superux"$UNAME_RELEASE"
1326444c061aSmrg	exit ;;
13272265a131Smrg    SX-7:SUPER-UX:*:*)
13280568f49bSmrg	echo sx7-nec-superux"$UNAME_RELEASE"
13292265a131Smrg	exit ;;
13302265a131Smrg    SX-8:SUPER-UX:*:*)
13310568f49bSmrg	echo sx8-nec-superux"$UNAME_RELEASE"
13322265a131Smrg	exit ;;
13332265a131Smrg    SX-8R:SUPER-UX:*:*)
13340568f49bSmrg	echo sx8r-nec-superux"$UNAME_RELEASE"
13350568f49bSmrg	exit ;;
13360568f49bSmrg    SX-ACE:SUPER-UX:*:*)
13370568f49bSmrg	echo sxace-nec-superux"$UNAME_RELEASE"
13382265a131Smrg	exit ;;
1339444c061aSmrg    Power*:Rhapsody:*:*)
13400568f49bSmrg	echo powerpc-apple-rhapsody"$UNAME_RELEASE"
1341444c061aSmrg	exit ;;
1342444c061aSmrg    *:Rhapsody:*:*)
13430568f49bSmrg	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
1344444c061aSmrg	exit ;;
1345444c061aSmrg    *:Darwin:*:*)
1346a3bd7f05Smrg	UNAME_PROCESSOR=`uname -p`
1347a3bd7f05Smrg	case $UNAME_PROCESSOR in
1348a3bd7f05Smrg	    unknown) UNAME_PROCESSOR=powerpc ;;
1349a3bd7f05Smrg	esac
1350a3bd7f05Smrg	if command -v xcode-select > /dev/null 2> /dev/null && \
1351a3bd7f05Smrg		! xcode-select --print-path > /dev/null 2> /dev/null ; then
1352a3bd7f05Smrg	    # Avoid executing cc if there is no toolchain installed as
1353a3bd7f05Smrg	    # cc will be a stub that puts up a graphical alert
1354a3bd7f05Smrg	    # prompting the user to install developer tools.
1355a3bd7f05Smrg	    CC_FOR_BUILD=no_compiler_found
1356a3bd7f05Smrg	else
1357a3bd7f05Smrg	    set_cc_for_build
1358339a7c43Smrg	fi
1359a3bd7f05Smrg	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1360a3bd7f05Smrg	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1361a3bd7f05Smrg		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1362a3bd7f05Smrg		   grep IS_64BIT_ARCH >/dev/null
1363a3bd7f05Smrg	    then
1364a3bd7f05Smrg		case $UNAME_PROCESSOR in
1365a3bd7f05Smrg		    i386) UNAME_PROCESSOR=x86_64 ;;
1366a3bd7f05Smrg		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
1367a3bd7f05Smrg		esac
1368a3bd7f05Smrg	    fi
1369a3bd7f05Smrg	    # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1370a3bd7f05Smrg	    if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1371a3bd7f05Smrg		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1372a3bd7f05Smrg		   grep IS_PPC >/dev/null
1373a3bd7f05Smrg	    then
1374a3bd7f05Smrg		UNAME_PROCESSOR=powerpc
1375339a7c43Smrg	    fi
1376339a7c43Smrg	elif test "$UNAME_PROCESSOR" = i386 ; then
1377a3bd7f05Smrg	    # uname -m returns i386 or x86_64
1378a3bd7f05Smrg	    UNAME_PROCESSOR=$UNAME_MACHINE
1379339a7c43Smrg	fi
13800568f49bSmrg	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
1381444c061aSmrg	exit ;;
1382444c061aSmrg    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1383444c061aSmrg	UNAME_PROCESSOR=`uname -p`
13840568f49bSmrg	if test "$UNAME_PROCESSOR" = x86; then
1385444c061aSmrg		UNAME_PROCESSOR=i386
1386444c061aSmrg		UNAME_MACHINE=pc
1387444c061aSmrg	fi
13880568f49bSmrg	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
1389444c061aSmrg	exit ;;
1390444c061aSmrg    *:QNX:*:4*)
1391444c061aSmrg	echo i386-pc-qnx
1392444c061aSmrg	exit ;;
13930568f49bSmrg    NEO-*:NONSTOP_KERNEL:*:*)
13940568f49bSmrg	echo neo-tandem-nsk"$UNAME_RELEASE"
13959e7bcd65Smrg	exit ;;
13969e7bcd65Smrg    NSE-*:NONSTOP_KERNEL:*:*)
13970568f49bSmrg	echo nse-tandem-nsk"$UNAME_RELEASE"
1398444c061aSmrg	exit ;;
13990568f49bSmrg    NSR-*:NONSTOP_KERNEL:*:*)
14000568f49bSmrg	echo nsr-tandem-nsk"$UNAME_RELEASE"
14010568f49bSmrg	exit ;;
14020568f49bSmrg    NSV-*:NONSTOP_KERNEL:*:*)
14030568f49bSmrg	echo nsv-tandem-nsk"$UNAME_RELEASE"
14040568f49bSmrg	exit ;;
14050568f49bSmrg    NSX-*:NONSTOP_KERNEL:*:*)
14060568f49bSmrg	echo nsx-tandem-nsk"$UNAME_RELEASE"
1407444c061aSmrg	exit ;;
1408444c061aSmrg    *:NonStop-UX:*:*)
1409444c061aSmrg	echo mips-compaq-nonstopux
1410444c061aSmrg	exit ;;
1411444c061aSmrg    BS2000:POSIX*:*:*)
1412444c061aSmrg	echo bs2000-siemens-sysv
1413444c061aSmrg	exit ;;
1414444c061aSmrg    DS/*:UNIX_System_V:*:*)
14150568f49bSmrg	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
1416444c061aSmrg	exit ;;
1417444c061aSmrg    *:Plan9:*:*)
1418444c061aSmrg	# "uname -m" is not consistent, so use $cputype instead. 386
1419444c061aSmrg	# is converted to i386 for consistency with other x86
1420444c061aSmrg	# operating systems.
1421a3bd7f05Smrg	# shellcheck disable=SC2154
14220568f49bSmrg	if test "$cputype" = 386; then
1423444c061aSmrg	    UNAME_MACHINE=i386
1424444c061aSmrg	else
1425444c061aSmrg	    UNAME_MACHINE="$cputype"
1426444c061aSmrg	fi
14270568f49bSmrg	echo "$UNAME_MACHINE"-unknown-plan9
1428444c061aSmrg	exit ;;
1429444c061aSmrg    *:TOPS-10:*:*)
1430444c061aSmrg	echo pdp10-unknown-tops10
1431444c061aSmrg	exit ;;
1432444c061aSmrg    *:TENEX:*:*)
1433444c061aSmrg	echo pdp10-unknown-tenex
1434444c061aSmrg	exit ;;
1435444c061aSmrg    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1436444c061aSmrg	echo pdp10-dec-tops20
1437444c061aSmrg	exit ;;
1438444c061aSmrg    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1439444c061aSmrg	echo pdp10-xkl-tops20
1440444c061aSmrg	exit ;;
1441444c061aSmrg    *:TOPS-20:*:*)
1442444c061aSmrg	echo pdp10-unknown-tops20
1443444c061aSmrg	exit ;;
1444444c061aSmrg    *:ITS:*:*)
1445444c061aSmrg	echo pdp10-unknown-its
1446444c061aSmrg	exit ;;
1447444c061aSmrg    SEI:*:*:SEIUX)
14480568f49bSmrg	echo mips-sei-seiux"$UNAME_RELEASE"
1449444c061aSmrg	exit ;;
1450444c061aSmrg    *:DragonFly:*:*)
14510568f49bSmrg	echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
1452444c061aSmrg	exit ;;
1453444c061aSmrg    *:*VMS:*:*)
14549e7bcd65Smrg	UNAME_MACHINE=`(uname -p) 2>/dev/null`
14550568f49bSmrg	case "$UNAME_MACHINE" in
1456444c061aSmrg	    A*) echo alpha-dec-vms ; exit ;;
1457444c061aSmrg	    I*) echo ia64-dec-vms ; exit ;;
1458444c061aSmrg	    V*) echo vax-dec-vms ; exit ;;
1459444c061aSmrg	esac ;;
1460444c061aSmrg    *:XENIX:*:SysV)
1461444c061aSmrg	echo i386-pc-xenix
1462444c061aSmrg	exit ;;
1463444c061aSmrg    i*86:skyos:*:*)
14640568f49bSmrg	echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
1465444c061aSmrg	exit ;;
1466444c061aSmrg    i*86:rdos:*:*)
14670568f49bSmrg	echo "$UNAME_MACHINE"-pc-rdos
1468444c061aSmrg	exit ;;
14691477040fSmrg    i*86:AROS:*:*)
14700568f49bSmrg	echo "$UNAME_MACHINE"-pc-aros
14711477040fSmrg	exit ;;
14729e7bcd65Smrg    x86_64:VMkernel:*:*)
14730568f49bSmrg	echo "$UNAME_MACHINE"-unknown-esx
14740568f49bSmrg	exit ;;
14750568f49bSmrg    amd64:Isilon\ OneFS:*:*)
14760568f49bSmrg	echo x86_64-unknown-onefs
14779e7bcd65Smrg	exit ;;
1478a3bd7f05Smrg    *:Unleashed:*:*)
1479a3bd7f05Smrg	echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
1480a3bd7f05Smrg	exit ;;
1481444c061aSmrgesac
1482444c061aSmrg
1483a3bd7f05Smrg# No uname command or uname output not recognized.
1484a3bd7f05Smrgset_cc_for_build
1485a3bd7f05Smrgcat > "$dummy.c" <<EOF
1486a3bd7f05Smrg#ifdef _SEQUENT_
1487a3bd7f05Smrg#include <sys/types.h>
1488a3bd7f05Smrg#include <sys/utsname.h>
1489a3bd7f05Smrg#endif
1490a3bd7f05Smrg#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1491a3bd7f05Smrg#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1492a3bd7f05Smrg#include <signal.h>
1493a3bd7f05Smrg#if defined(_SIZE_T_) || defined(SIGLOST)
1494a3bd7f05Smrg#include <sys/utsname.h>
1495a3bd7f05Smrg#endif
1496a3bd7f05Smrg#endif
1497a3bd7f05Smrg#endif
1498a3bd7f05Smrgmain ()
1499a3bd7f05Smrg{
1500a3bd7f05Smrg#if defined (sony)
1501a3bd7f05Smrg#if defined (MIPSEB)
1502a3bd7f05Smrg  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1503a3bd7f05Smrg     I don't know....  */
1504a3bd7f05Smrg  printf ("mips-sony-bsd\n"); exit (0);
1505a3bd7f05Smrg#else
1506a3bd7f05Smrg#include <sys/param.h>
1507a3bd7f05Smrg  printf ("m68k-sony-newsos%s\n",
1508a3bd7f05Smrg#ifdef NEWSOS4
1509a3bd7f05Smrg  "4"
1510a3bd7f05Smrg#else
1511a3bd7f05Smrg  ""
1512a3bd7f05Smrg#endif
1513a3bd7f05Smrg  ); exit (0);
1514a3bd7f05Smrg#endif
1515a3bd7f05Smrg#endif
1516a3bd7f05Smrg
1517a3bd7f05Smrg#if defined (NeXT)
1518a3bd7f05Smrg#if !defined (__ARCHITECTURE__)
1519a3bd7f05Smrg#define __ARCHITECTURE__ "m68k"
1520a3bd7f05Smrg#endif
1521a3bd7f05Smrg  int version;
1522a3bd7f05Smrg  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1523a3bd7f05Smrg  if (version < 4)
1524a3bd7f05Smrg    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1525a3bd7f05Smrg  else
1526a3bd7f05Smrg    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1527a3bd7f05Smrg  exit (0);
1528a3bd7f05Smrg#endif
1529a3bd7f05Smrg
1530a3bd7f05Smrg#if defined (MULTIMAX) || defined (n16)
1531a3bd7f05Smrg#if defined (UMAXV)
1532a3bd7f05Smrg  printf ("ns32k-encore-sysv\n"); exit (0);
1533a3bd7f05Smrg#else
1534a3bd7f05Smrg#if defined (CMU)
1535a3bd7f05Smrg  printf ("ns32k-encore-mach\n"); exit (0);
1536a3bd7f05Smrg#else
1537a3bd7f05Smrg  printf ("ns32k-encore-bsd\n"); exit (0);
1538a3bd7f05Smrg#endif
1539a3bd7f05Smrg#endif
1540a3bd7f05Smrg#endif
1541a3bd7f05Smrg
1542a3bd7f05Smrg#if defined (__386BSD__)
1543a3bd7f05Smrg  printf ("i386-pc-bsd\n"); exit (0);
1544a3bd7f05Smrg#endif
1545a3bd7f05Smrg
1546a3bd7f05Smrg#if defined (sequent)
1547a3bd7f05Smrg#if defined (i386)
1548a3bd7f05Smrg  printf ("i386-sequent-dynix\n"); exit (0);
1549a3bd7f05Smrg#endif
1550a3bd7f05Smrg#if defined (ns32000)
1551a3bd7f05Smrg  printf ("ns32k-sequent-dynix\n"); exit (0);
1552a3bd7f05Smrg#endif
1553a3bd7f05Smrg#endif
1554a3bd7f05Smrg
1555a3bd7f05Smrg#if defined (_SEQUENT_)
1556a3bd7f05Smrg  struct utsname un;
1557a3bd7f05Smrg
1558a3bd7f05Smrg  uname(&un);
1559a3bd7f05Smrg  if (strncmp(un.version, "V2", 2) == 0) {
1560a3bd7f05Smrg    printf ("i386-sequent-ptx2\n"); exit (0);
1561a3bd7f05Smrg  }
1562a3bd7f05Smrg  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1563a3bd7f05Smrg    printf ("i386-sequent-ptx1\n"); exit (0);
1564a3bd7f05Smrg  }
1565a3bd7f05Smrg  printf ("i386-sequent-ptx\n"); exit (0);
1566a3bd7f05Smrg#endif
1567a3bd7f05Smrg
1568a3bd7f05Smrg#if defined (vax)
1569a3bd7f05Smrg#if !defined (ultrix)
1570a3bd7f05Smrg#include <sys/param.h>
1571a3bd7f05Smrg#if defined (BSD)
1572a3bd7f05Smrg#if BSD == 43
1573a3bd7f05Smrg  printf ("vax-dec-bsd4.3\n"); exit (0);
1574a3bd7f05Smrg#else
1575a3bd7f05Smrg#if BSD == 199006
1576a3bd7f05Smrg  printf ("vax-dec-bsd4.3reno\n"); exit (0);
1577a3bd7f05Smrg#else
1578a3bd7f05Smrg  printf ("vax-dec-bsd\n"); exit (0);
1579a3bd7f05Smrg#endif
1580a3bd7f05Smrg#endif
1581a3bd7f05Smrg#else
1582a3bd7f05Smrg  printf ("vax-dec-bsd\n"); exit (0);
1583a3bd7f05Smrg#endif
1584a3bd7f05Smrg#else
1585a3bd7f05Smrg#if defined(_SIZE_T_) || defined(SIGLOST)
1586a3bd7f05Smrg  struct utsname un;
1587a3bd7f05Smrg  uname (&un);
1588a3bd7f05Smrg  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
1589a3bd7f05Smrg#else
1590a3bd7f05Smrg  printf ("vax-dec-ultrix\n"); exit (0);
1591a3bd7f05Smrg#endif
1592a3bd7f05Smrg#endif
1593a3bd7f05Smrg#endif
1594a3bd7f05Smrg#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1595a3bd7f05Smrg#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1596a3bd7f05Smrg#if defined(_SIZE_T_) || defined(SIGLOST)
1597a3bd7f05Smrg  struct utsname *un;
1598a3bd7f05Smrg  uname (&un);
1599a3bd7f05Smrg  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
1600a3bd7f05Smrg#else
1601a3bd7f05Smrg  printf ("mips-dec-ultrix\n"); exit (0);
1602a3bd7f05Smrg#endif
1603a3bd7f05Smrg#endif
1604a3bd7f05Smrg#endif
1605a3bd7f05Smrg
1606a3bd7f05Smrg#if defined (alliant) && defined (i860)
1607a3bd7f05Smrg  printf ("i860-alliant-bsd\n"); exit (0);
1608a3bd7f05Smrg#endif
1609a3bd7f05Smrg
1610a3bd7f05Smrg  exit (1);
1611a3bd7f05Smrg}
1612a3bd7f05SmrgEOF
1613a3bd7f05Smrg
1614a3bd7f05Smrg$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1615a3bd7f05Smrg	{ echo "$SYSTEM_NAME"; exit; }
1616a3bd7f05Smrg
1617a3bd7f05Smrg# Apollos put the system type in the environment.
1618a3bd7f05Smrgtest -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
1619a3bd7f05Smrg
16200568f49bSmrgecho "$0: unable to guess system type" >&2
16210568f49bSmrg
16220568f49bSmrgcase "$UNAME_MACHINE:$UNAME_SYSTEM" in
16230568f49bSmrg    mips:Linux | mips64:Linux)
16240568f49bSmrg	# If we got here on MIPS GNU/Linux, output extra information.
16250568f49bSmrg	cat >&2 <<EOF
16260568f49bSmrg
16270568f49bSmrgNOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
16280568f49bSmrgthe system type. Please install a C compiler and try again.
16290568f49bSmrgEOF
16300568f49bSmrg	;;
16310568f49bSmrgesac
16320568f49bSmrg
1633444c061aSmrgcat >&2 <<EOF
1634444c061aSmrg
16350568f49bSmrgThis script (version $timestamp), has failed to recognize the
16360568f49bSmrgoperating system you are using. If your script is old, overwrite *all*
16370568f49bSmrgcopies of config.guess and config.sub with the latest versions from:
1638444c061aSmrg
16390568f49bSmrg  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
1640444c061aSmrgand
16410568f49bSmrg  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1642a3bd7f05SmrgEOF
1643a3bd7f05Smrg
1644a3bd7f05Smrgyear=`echo $timestamp | sed 's,-.*,,'`
1645a3bd7f05Smrg# shellcheck disable=SC2003
1646a3bd7f05Smrgif test "`expr "\`date +%Y\`" - "$year"`" -lt 3 ; then
1647a3bd7f05Smrg   cat >&2 <<EOF
1648444c061aSmrg
16490568f49bSmrgIf $0 has already been updated, send the following data and any
16500568f49bSmrginformation you think might be pertinent to config-patches@gnu.org to
16510568f49bSmrgprovide the necessary information to handle your system.
1652444c061aSmrg
1653444c061aSmrgconfig.guess timestamp = $timestamp
1654444c061aSmrg
1655444c061aSmrguname -m = `(uname -m) 2>/dev/null || echo unknown`
1656444c061aSmrguname -r = `(uname -r) 2>/dev/null || echo unknown`
1657444c061aSmrguname -s = `(uname -s) 2>/dev/null || echo unknown`
1658444c061aSmrguname -v = `(uname -v) 2>/dev/null || echo unknown`
1659444c061aSmrg
1660444c061aSmrg/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1661444c061aSmrg/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1662444c061aSmrg
1663444c061aSmrghostinfo               = `(hostinfo) 2>/dev/null`
1664444c061aSmrg/bin/universe          = `(/bin/universe) 2>/dev/null`
1665444c061aSmrg/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1666444c061aSmrg/bin/arch              = `(/bin/arch) 2>/dev/null`
1667444c061aSmrg/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1668444c061aSmrg/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1669444c061aSmrg
16700568f49bSmrgUNAME_MACHINE = "$UNAME_MACHINE"
16710568f49bSmrgUNAME_RELEASE = "$UNAME_RELEASE"
16720568f49bSmrgUNAME_SYSTEM  = "$UNAME_SYSTEM"
16730568f49bSmrgUNAME_VERSION = "$UNAME_VERSION"
1674444c061aSmrgEOF
1675a3bd7f05Smrgfi
1676444c061aSmrg
1677444c061aSmrgexit 1
1678444c061aSmrg
1679444c061aSmrg# Local variables:
1680a3bd7f05Smrg# eval: (add-hook 'before-save-hook 'time-stamp)
1681444c061aSmrg# time-stamp-start: "timestamp='"
1682444c061aSmrg# time-stamp-format: "%:y-%02m-%02d"
1683444c061aSmrg# time-stamp-end: "'"
1684444c061aSmrg# End:
1685