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-06-10'
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 144
	set_cc_for_build
	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 155 156 157 158 159 160 161
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"

	# 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 259
	exit ;;
    *:ekkoBSD:*:*)
260
	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
261 262
	exit ;;
    *:SolidBSD:*:*)
263 264 265 266
	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
	exit ;;
    *:OS108:*:*)
	echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
267 268
	exit ;;
    macppc:MirBSD:*:*)
269
	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
270 271
	exit ;;
    *:MirBSD:*:*)
272 273 274 275 276 277 278
	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
	exit ;;
    *:Sortix:*:*)
	echo "$UNAME_MACHINE"-unknown-sortix
	exit ;;
    *:Redox:*:*)
	echo "$UNAME_MACHINE"-unknown-redox
279
	exit ;;
280 281 282
    mips:OSF1:*.*)
        echo mips-dec-osf1
        exit ;;
283
    alpha:OSF1:*:*)
284 285
	case $UNAME_RELEASE in
	*4.0)
286
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
287 288 289 290 291
		;;
	*5.*)
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
		;;
	esac
292 293 294 295 296 297 298
	# 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)")
299
		UNAME_MACHINE=alpha ;;
300
	    "EV4.5 (21064)")
301
		UNAME_MACHINE=alpha ;;
302
	    "LCA4 (21066/21068)")
303
		UNAME_MACHINE=alpha ;;
304
	    "EV5 (21164)")
305
		UNAME_MACHINE=alphaev5 ;;
306
	    "EV5.6 (21164A)")
307
		UNAME_MACHINE=alphaev56 ;;
308
	    "EV5.6 (21164PC)")
309
		UNAME_MACHINE=alphapca56 ;;
310
	    "EV5.7 (21164PC)")
311
		UNAME_MACHINE=alphapca57 ;;
312
	    "EV6 (21264)")
313
		UNAME_MACHINE=alphaev6 ;;
314
	    "EV6.7 (21264A)")
315
		UNAME_MACHINE=alphaev67 ;;
316
	    "EV6.8CB (21264C)")
317
		UNAME_MACHINE=alphaev68 ;;
318
	    "EV6.8AL (21264B)")
319
		UNAME_MACHINE=alphaev68 ;;
320
	    "EV6.8CX (21264D)")
321
		UNAME_MACHINE=alphaev68 ;;
322
	    "EV6.9A (21264/EV69A)")
323
		UNAME_MACHINE=alphaev69 ;;
324
	    "EV7 (21364)")
325
		UNAME_MACHINE=alphaev7 ;;
326
	    "EV7.9 (21364A)")
327
		UNAME_MACHINE=alphaev79 ;;
328
	esac
329
	# A Pn.n version is a patched version.
330 331 332 333
	# 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.
334
	echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
335 336 337 338
	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
	exitcode=$?
	trap '' 0
	exit $exitcode ;;
339 340
    Amiga*:UNIX_System_V:4.0:*)
	echo m68k-unknown-sysv4
341
	exit ;;
342
    *:[Aa]miga[Oo][Ss]:*:*)
343
	echo "$UNAME_MACHINE"-unknown-amigaos
344
	exit ;;
345
    *:[Mm]orph[Oo][Ss]:*:*)
346
	echo "$UNAME_MACHINE"-unknown-morphos
347
	exit ;;
348 349
    *:OS/390:*:*)
	echo i370-ibm-openedition
350 351 352 353
	exit ;;
    *:z/VM:*:*)
	echo s390-ibm-zvmoe
	exit ;;
354
    *:OS400:*:*)
355 356
	echo powerpc-ibm-os400
	exit ;;
357
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
358
	echo arm-acorn-riscix"$UNAME_RELEASE"
359
	exit ;;
360
    arm*:riscos:*:*|arm*:RISCOS:*:*)
361 362
	echo arm-unknown-riscos
	exit ;;
363 364
    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
	echo hppa1.1-hitachi-hiuxmpp
365
	exit ;;
366 367 368 369 370 371 372
    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
373
	exit ;;
374 375
    NILE*:*:*:dcosx)
	echo pyramid-pyramid-svr4
376
	exit ;;
377 378
    DRS?6000:unix:4.0:6*)
	echo sparc-icl-nx6
379 380
	exit ;;
    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
381
	case `/usr/bin/uname -p` in
382
	    sparc) echo sparc-icl-nx7; exit ;;
383
	esac ;;
384
    s390x:SunOS:*:*)
385
	echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
386
	exit ;;
387
    sun4H:SunOS:5.*:*)
388
	echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
389
	exit ;;
390
    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
391
	echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
392 393
	exit ;;
    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
394
	echo i386-pc-auroraux"$UNAME_RELEASE"
395 396
	exit ;;
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
397 398
	set_cc_for_build
	SUN_ARCH=i386
399 400 401
	# 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.
402
	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
403
	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
404
		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
405 406
		grep IS_64BIT_ARCH >/dev/null
	    then
407
		SUN_ARCH=x86_64
408 409
	    fi
	fi
410
	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
411
	exit ;;
412 413 414 415
    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.
416
	echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
417
	exit ;;
418 419 420 421 422 423 424
    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'.
425
	echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
426
	exit ;;
427
    sun3*:SunOS:*:*)
428
	echo m68k-sun-sunos"$UNAME_RELEASE"
429
	exit ;;
430 431
    sun*:*:4.2BSD:*)
	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
432
	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
433 434
	case "`/bin/arch`" in
	    sun3)
435
		echo m68k-sun-sunos"$UNAME_RELEASE"
436 437
		;;
	    sun4)
438
		echo sparc-sun-sunos"$UNAME_RELEASE"
439 440
		;;
	esac
441
	exit ;;
442
    aushp:SunOS:*:*)
443
	echo sparc-auspex-sunos"$UNAME_RELEASE"
444
	exit ;;
445 446 447 448 449 450 451 452 453
    # 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:*:*)
454
	echo m68k-atari-mint"$UNAME_RELEASE"
455
	exit ;;
456
    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
457
	echo m68k-atari-mint"$UNAME_RELEASE"
458
	exit ;;
459
    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
460
	echo m68k-atari-mint"$UNAME_RELEASE"
461
	exit ;;
462
    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
463
	echo m68k-milan-mint"$UNAME_RELEASE"
464
	exit ;;
465
    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
466
	echo m68k-hades-mint"$UNAME_RELEASE"
467
	exit ;;
468
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
469
	echo m68k-unknown-mint"$UNAME_RELEASE"
470 471
	exit ;;
    m68k:machten:*:*)
472
	echo m68k-apple-machten"$UNAME_RELEASE"
473
	exit ;;
474
    powerpc:machten:*:*)
475
	echo powerpc-apple-machten"$UNAME_RELEASE"
476
	exit ;;
477 478
    RISC*:Mach:*:*)
	echo mips-dec-mach_bsd4.3
479
	exit ;;
480
    RISC*:ULTRIX:*:*)
481
	echo mips-dec-ultrix"$UNAME_RELEASE"
482
	exit ;;
483
    VAX*:ULTRIX*:*:*)
484
	echo vax-dec-ultrix"$UNAME_RELEASE"
485
	exit ;;
486
    2020:CLIX:*:* | 2430:CLIX:*:*)
487
	echo clipper-intergraph-clix"$UNAME_RELEASE"
488
	exit ;;
489
    mips:*:*:UMIPS | mips:*:*:RISCos)
490 491
	set_cc_for_build
	sed 's/^	//' << EOF > "$dummy.c"
492 493 494 495 496 497 498 499
#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)
500
	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
501 502
	#endif
	#if defined (SYSTYPE_SVR4)
503
	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
504 505
	#endif
	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
506
	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
507 508 509 510 511
	#endif
	#endif
	  exit (-1);
	}
EOF
512 513 514
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
515
	    { echo "$SYSTEM_NAME"; exit; }
516
	echo mips-mips-riscos"$UNAME_RELEASE"
517
	exit ;;
518 519
    Motorola:PowerMAX_OS:*:*)
	echo powerpc-motorola-powermax
520
	exit ;;
521 522
    Motorola:*:4.3:PL8-*)
	echo powerpc-harris-powermax
523
	exit ;;
524 525
    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
	echo powerpc-harris-powermax
526
	exit ;;
527 528
    Night_Hawk:Power_UNIX:*:*)
	echo powerpc-harris-powerunix
529
	exit ;;
530 531
    m88k:CX/UX:7*:*)
	echo m88k-harris-cxux7
532
	exit ;;
533 534
    m88k:*:4*:R4*)
	echo m88k-motorola-sysv4
535
	exit ;;
536 537
    m88k:*:3*:R3*)
	echo m88k-motorola-sysv3
538
	exit ;;
539
    AViiON:dgux:*:*)
540 541
	# DG/UX returns AViiON for all architectures
	UNAME_PROCESSOR=`/usr/bin/uname -p`
542
	if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
543
	then
544 545
	    if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
	       [ "$TARGET_BINARY_INTERFACE"x = x ]
546
	    then
547
		echo m88k-dg-dgux"$UNAME_RELEASE"
548
	    else
549
		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
550 551
	    fi
	else
552
	    echo i586-dg-dgux"$UNAME_RELEASE"
553
	fi
554
	exit ;;
555 556
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
	echo m88k-dolphin-sysv3
557
	exit ;;
558 559 560
    M88*:*:R3*:*)
	# Delta 88k system running SVR3
	echo m88k-motorola-sysv3
561
	exit ;;
562 563
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
	echo m88k-tektronix-sysv3
564
	exit ;;
565 566
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
	echo m68k-tektronix-bsd
567
	exit ;;
568
    *:IRIX*:*:*)
569
	echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
570
	exit ;;
571
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
572 573
	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
574 575
    i*86:AIX:*:*)
	echo i386-ibm-aix
576
	exit ;;
577 578 579 580
    ia64:AIX:*:*)
	if [ -x /usr/bin/oslevel ] ; then
		IBM_REV=`/usr/bin/oslevel`
	else
581
		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
582
	fi
583
	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
584
	exit ;;
585 586
    *:AIX:2:3)
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
587 588
		set_cc_for_build
		sed 's/^		//' << EOF > "$dummy.c"
589 590 591 592 593 594 595 596 597 598
		#include <sys/systemcfg.h>

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

671 672 673
		#define _HPUX_SOURCE
		#include <stdlib.h>
		#include <unistd.h>
674

675 676 677 678 679 680
		int main ()
		{
		#if defined(_SC_KERNEL_BITS)
		    long bits = sysconf(_SC_KERNEL_BITS);
		#endif
		    long cpu  = sysconf (_SC_CPU_VERSION);
681

682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700
		    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);
		}
701
EOF
702
		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
703 704 705
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
	esac
706
	if [ "$HP_ARCH" = hppa2.0w ]
707
	then
708
	    set_cc_for_build
709 710 711 712 713 714 715 716 717 718

	    # 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

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