config.guess 47.2 KB
Newer Older
1 2
#! /bin/sh
# Attempt to guess a canonical system name.
3
#   Copyright 1992-2019 Free Software Foundation, Inc.
4

5
timestamp='2019-04-28'
6 7 8

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

34 35 36 37 38 39 40 41

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

usage="\
Usage: $0 [OPTION]

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

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

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

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

Originally written by Per Bothner.
53
Copyright 1992-2019 Free Software Foundation, Inc.
54 55 56 57 58 59 60 61 62 63 64

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

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

# Parse command line
while test $# -gt 0 ; do
  case $1 in
    --time-stamp | --time* | -t )
65
       echo "$timestamp" ; exit ;;
66
    --version | -v )
67
       echo "$version" ; exit ;;
68
    --help | --h* | -h )
69
       echo "$usage"; exit ;;
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
    -- )     # Stop option processing
       shift; break ;;
    - )	# Use stdin as input.
       break ;;
    -* )
       echo "$me: invalid option $1$help" >&2
       exit 1 ;;
    * )
       break ;;
  esac
done

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

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

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

# Portable tmp directory creation inspired by the Autoconf team.

97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
tmp=
# shellcheck disable=SC2172
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15

set_cc_for_build() {
    : "${TMPDIR=/tmp}"
    # shellcheck disable=SC2039
    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
    dummy=$tmp/dummy
    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
	,,)    echo "int x;" > "$dummy.c"
	       for driver in cc gcc c89 c99 ; do
		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
		       CC_FOR_BUILD="$driver"
		       break
		   fi
	       done
	       if test x"$CC_FOR_BUILD" = x ; then
		   CC_FOR_BUILD=no_compiler_found
	       fi
	       ;;
	,,*)   CC_FOR_BUILD=$CC ;;
	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
    esac
}
125 126 127

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

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

137
case "$UNAME_SYSTEM" in
138 139 140 141 142
Linux|GNU|GNU/*)
	# If the system lacks a compiler, then just pick glibc.
	# We could probably try harder.
	LIBC=gnu

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

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

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

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

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

668 669 670
		#define _HPUX_SOURCE
		#include <stdlib.h>
		#include <unistd.h>
671

672 673 674 675 676 677
		int main ()
		{
		#if defined(_SC_KERNEL_BITS)
		    long bits = sysconf(_SC_KERNEL_BITS);
		#endif
		    long cpu  = sysconf (_SC_CPU_VERSION);
678

679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697
		    switch (cpu)
			{
			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
			case CPU_PA_RISC2_0:
		#if defined(_SC_KERNEL_BITS)
			    switch (bits)
				{
				case 64: puts ("hppa2.0w"); break;
				case 32: puts ("hppa2.0n"); break;
				default: puts ("hppa2.0"); break;
				} break;
		#else  /* !defined(_SC_KERNEL_BITS) */
			    puts ("hppa2.0"); break;
		#endif
			default: puts ("hppa1.0"); break;
			}
		    exit (0);
		}
698
EOF
699
		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
700 701 702
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
	esac
703
	if [ "$HP_ARCH" = hppa2.0w ]
704
	then
705
	    set_cc_for_build
706 707 708 709 710 711 712 713 714 715

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

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

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

1020
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
1021
	MIPS_ENDIAN=el
1022 1023
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
1024
	MIPS_ENDIAN=
1025
	#else
1026
	MIPS_ENDIAN=
1027 1028 1029
	#endif
	#endif
EOF
1030 1031
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
1032
	;;
1033 1034 1035
    mips64el:Linux:*:*)
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
	exit ;;
1036
    openrisc*:Linux:*:*)
1037
	echo or1k-unknown-linux-"$LIBC"
1038 1039
	exit ;;
    or32:Linux:*:* | or1k*:Linux:*:*)
1040
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1041 1042
	exit ;;
    padre:Linux:*:*)
1043
	echo sparc-unknown-linux-"$LIBC"
1044 1045
	exit ;;
    parisc64:Linux:*:* | hppa64:Linux:*:*)
1046
	echo hppa64-unknown-linux-"$LIBC"
1047
	exit ;;
1048 1049 1050
    parisc:Linux:*:* | hppa:Linux:*:*)
	# Look for CPU level
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1051 1052 1053
	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
	  *)    echo hppa-unknown-linux-"$LIBC" ;;
1054
	esac
1055 1056
	exit ;;
    ppc64:Linux:*:*)
1057
	echo powerpc64-unknown-linux-"$LIBC"
1058 1059
	exit ;;
    ppc:Linux:*:*)
1060
	echo powerpc-unknown-linux-"$LIBC"
1061 1062
	exit ;;
    ppc64le:Linux:*:*)
1063
	echo powerpc64le-unknown-linux-"$LIBC"
1064 1065
	exit ;;
    ppcle:Linux:*:*)
1066 1067 1068 1069
	echo powerpcle-unknown-linux-"$LIBC"
	exit ;;
    riscv32:Linux:*:* | riscv64:Linux:*:*)
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1070
	exit ;;
1071
    s390:Linux:*:* | s390x:Linux:*:*)
1072
	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
1073
	exit ;;
1074
    sh64*:Linux:*:*)
1075
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1076
	exit ;;
1077
    sh*:Linux:*:*)
1078
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1079
	exit ;;
1080
    sparc:Linux:*:* | sparc64:Linux:*:*)
1081
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1082
	exit ;;
1083
    tile*:Linux:*:*)
1084
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1085
	exit ;;
1086
    vax:Linux:*:*)
1087
	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
1088
	exit ;;
1089
    x86_64:Linux:*:*)
1090
	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
1091 1092
	exit ;;
    xtensa*:Linux:*:*)
1093
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1094
	exit ;;
1095 1096 1097 1098 1099
    i*86:DYNIX/ptx:4*:*)
	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
	# earlier versions are messed up and put the nodename in both
	# sysname and nodename.
	echo i386-sequent-sysv4
1100
	exit ;;
1101
    i*86:UNIX_SV:4.2MP:2.*)
1102 1103 1104
	# Unixware is an offshoot of SVR4, but it has its own version
	# number series starting with 2...
	# I am not positive that other SVR4 systems won't match this,
1105
	# I just have to hope.  -- rms.
1106
	# Use sysv4.2uw... so that sysv4* matches it.
1107
	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
1108
	exit ;;