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

5
6
# shellcheck disable=SC2006,SC2268 # see below for rationale

7
timestamp='2022-05-25'
8
9
10

# 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
11
# the Free Software Foundation, either version 3 of the License, or
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# (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
# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# 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
# 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").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.


37
38
39
40
41
42
43
44
45
# The "shellcheck disable" line above the timestamp inhibits complaints
# about features and limitations of the classic Bourne shell that were
# superseded or lifted in POSIX.  However, this script identifies a wide
# variety of pre-POSIX systems that do not have POSIX shells at all, and
# even some reasonably current systems (Solaris 10 as case-in-point) still
# have a pre-POSIX /bin/sh.


me=`echo "$0" | sed -e 's,.*/,,'`
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

usage="\
Usage: $0 [OPTION]

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

Options:
  -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.
63
Copyright 1992-2022 Free Software Foundation, Inc.
64
65
66
67
68
69
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

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 )
       echo "$timestamp" ; exit ;;
    --version | -v )
       echo "$version" ; exit ;;
    --help | --h* | -h )
       echo "$usage"; exit ;;
    -- )     # 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

97
98
99
# Just in case it came from the environment.
GUESS=

100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# 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.

tmp=
# shellcheck disable=SC2172
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15

set_cc_for_build() {
    # prevent multiple calls if $tmp is already set
    test "$tmp" && return 0
    : "${TMPDIR=/tmp}"
118
119
    # shellcheck disable=SC2039,SC3028
    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
120
121
122
123
124
125
126
127
	{ 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
128
		       CC_FOR_BUILD=$driver
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
		       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
}

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

147
148
149
150
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
151

152
case $UNAME_SYSTEM in
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
Linux|GNU|GNU/*)
	LIBC=unknown

	set_cc_for_build
	cat <<-EOF > "$dummy.c"
	#include <features.h>
	#if defined(__UCLIBC__)
	LIBC=uclibc
	#elif defined(__dietlibc__)
	LIBC=dietlibc
	#elif defined(__GLIBC__)
	LIBC=gnu
	#else
	#include <stdarg.h>
	/* First heuristic to detect musl libc.  */
	#ifdef __DEFINED_va_list
	LIBC=musl
	#endif
	#endif
	EOF
173
174
	cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
	eval "$cc_set_libc"
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192

	# Second heuristic to detect musl libc.
	if [ "$LIBC" = unknown ] &&
	   command -v ldd >/dev/null &&
	   ldd --version 2>&1 | grep -q ^musl; then
		LIBC=musl
	fi

	# If the system lacks a compiler, then just pick glibc.
	# We could probably try harder.
	if [ "$LIBC" = unknown ]; then
		LIBC=gnu
	fi
	;;
esac

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

193
case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
194
195
196
197
198
199
200
201
202
203
204
    *:NetBSD:*:*)
	# NetBSD (nbsd) targets should (where applicable) match one or
	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
	# *-*-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".
205
	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
206
207
	    /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
	    /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
208
	    echo unknown)`
209
	case $UNAME_MACHINE_ARCH in
210
211
212
213
214
215
216
	    aarch64eb) machine=aarch64_be-unknown ;;
	    armeb) machine=armeb-unknown ;;
	    arm*) machine=arm-unknown ;;
	    sh3el) machine=shl-unknown ;;
	    sh3eb) machine=sh-unknown ;;
	    sh5el) machine=sh5le-unknown ;;
	    earmv*)
217
218
219
		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
220
		;;
221
	    *) machine=$UNAME_MACHINE_ARCH-unknown ;;
222
223
224
	esac
	# The Operating System including object format, if it has switched
	# to ELF recently (or will in the future) and ABI.
225
	case $UNAME_MACHINE_ARCH in
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
	    earm*)
		os=netbsdelf
		;;
	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
		set_cc_for_build
		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
			| grep -q __ELF__
		then
		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
		    # Return netbsd for either.  FIX?
		    os=netbsd
		else
		    os=netbsdelf
		fi
		;;
	    *)
		os=netbsd
		;;
	esac
	# Determine ABI tags.
246
	case $UNAME_MACHINE_ARCH in
247
248
	    earm*)
		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
249
		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
250
251
252
253
254
255
256
		;;
	esac
	# 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.
257
	case $UNAME_VERSION in
258
259
260
261
	    Debian*)
		release='-gnu'
		;;
	    *)
262
		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
263
264
265
266
267
		;;
	esac
	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
	# contains redundant information, the shorter form:
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
268
269
	GUESS=$machine-${os}${release}${abi-}
	;;
270
    *:Bitrig:*:*)
271
272
273
	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
	GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
	;;
274
    *:OpenBSD:*:*)
275
276
277
	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
	GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
	;;
278
    *:SecBSD:*:*)
279
280
281
	UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
	GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
	;;
282
    *:LibertyBSD:*:*)
283
284
285
	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
	GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
	;;
286
    *:MidnightBSD:*:*)
287
288
	GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
	;;
289
    *:ekkoBSD:*:*)
290
291
	GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
	;;
292
    *:SolidBSD:*:*)
293
294
	GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
	;;
295
    *:OS108:*:*)
296
297
	GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
	;;
298
    macppc:MirBSD:*:*)
299
300
	GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
	;;
301
    *:MirBSD:*:*)
302
303
	GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
	;;
304
    *:Sortix:*:*)
305
306
	GUESS=$UNAME_MACHINE-unknown-sortix
	;;
307
    *:Twizzler:*:*)
308
309
	GUESS=$UNAME_MACHINE-unknown-twizzler
	;;
310
    *:Redox:*:*)
311
312
	GUESS=$UNAME_MACHINE-unknown-redox
	;;
313
    mips:OSF1:*.*)
314
315
	GUESS=mips-dec-osf1
	;;
316
    alpha:OSF1:*:*)
317
318
	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
	trap '' 0
319
320
	case $UNAME_RELEASE in
	*4.0)
321
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
322
323
		;;
	*5.*)
324
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
325
326
327
328
329
330
		;;
	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.
331
	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
332
	case $ALPHA_CPU_TYPE in
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
	    "EV4 (21064)")
		UNAME_MACHINE=alpha ;;
	    "EV4.5 (21064)")
		UNAME_MACHINE=alpha ;;
	    "LCA4 (21066/21068)")
		UNAME_MACHINE=alpha ;;
	    "EV5 (21164)")
		UNAME_MACHINE=alphaev5 ;;
	    "EV5.6 (21164A)")
		UNAME_MACHINE=alphaev56 ;;
	    "EV5.6 (21164PC)")
		UNAME_MACHINE=alphapca56 ;;
	    "EV5.7 (21164PC)")
		UNAME_MACHINE=alphapca57 ;;
	    "EV6 (21264)")
		UNAME_MACHINE=alphaev6 ;;
	    "EV6.7 (21264A)")
		UNAME_MACHINE=alphaev67 ;;
	    "EV6.8CB (21264C)")
		UNAME_MACHINE=alphaev68 ;;
	    "EV6.8AL (21264B)")
		UNAME_MACHINE=alphaev68 ;;
	    "EV6.8CX (21264D)")
		UNAME_MACHINE=alphaev68 ;;
	    "EV6.9A (21264/EV69A)")
		UNAME_MACHINE=alphaev69 ;;
	    "EV7 (21364)")
		UNAME_MACHINE=alphaev7 ;;
	    "EV7.9 (21364A)")
		UNAME_MACHINE=alphaev79 ;;
	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.
369
370
371
	OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
	GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
	;;
372
    Amiga*:UNIX_System_V:4.0:*)
373
374
	GUESS=m68k-unknown-sysv4
	;;
375
    *:[Aa]miga[Oo][Ss]:*:*)
376
377
	GUESS=$UNAME_MACHINE-unknown-amigaos
	;;
378
    *:[Mm]orph[Oo][Ss]:*:*)
379
380
	GUESS=$UNAME_MACHINE-unknown-morphos
	;;
381
    *:OS/390:*:*)
382
383
	GUESS=i370-ibm-openedition
	;;
384
    *:z/VM:*:*)
385
386
	GUESS=s390-ibm-zvmoe
	;;
387
    *:OS400:*:*)
388
389
	GUESS=powerpc-ibm-os400
	;;
390
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
391
392
	GUESS=arm-acorn-riscix$UNAME_RELEASE
	;;
393
    arm*:riscos:*:*|arm*:RISCOS:*:*)
394
395
	GUESS=arm-unknown-riscos
	;;
396
    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
397
398
	GUESS=hppa1.1-hitachi-hiuxmpp
	;;
399
400
    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
401
402
403
404
405
	case `(/bin/universe) 2>/dev/null` in
	    att) GUESS=pyramid-pyramid-sysv3 ;;
	    *)   GUESS=pyramid-pyramid-bsd   ;;
	esac
	;;
406
    NILE*:*:*:dcosx)
407
408
	GUESS=pyramid-pyramid-svr4
	;;
409
    DRS?6000:unix:4.0:6*)
410
411
	GUESS=sparc-icl-nx6
	;;
412
    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
413
414
415
416
	case `/usr/bin/uname -p` in
	    sparc) GUESS=sparc-icl-nx7 ;;
	esac
	;;
417
    s390x:SunOS:*:*)
418
419
420
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
	GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
	;;
421
    sun4H:SunOS:5.*:*)
422
423
424
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
	GUESS=sparc-hal-solaris2$SUN_REL
	;;
425
    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
426
427
428
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
	GUESS=sparc-sun-solaris2$SUN_REL
	;;
429
    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
430
431
	GUESS=i386-pc-auroraux$UNAME_RELEASE
	;;
432
433
434
435
436
437
438
439
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
	set_cc_for_build
	SUN_ARCH=i386
	# 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.
	if test "$CC_FOR_BUILD" != no_compiler_found; then
	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
440
		(CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
441
442
443
444
445
		grep IS_64BIT_ARCH >/dev/null
	    then
		SUN_ARCH=x86_64
	    fi
	fi
446
447
448
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
	GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
	;;
449
450
451
452
    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.
453
454
455
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
	GUESS=sparc-sun-solaris3$SUN_REL
	;;
456
    sun4*:SunOS:*:*)
457
	case `/usr/bin/arch -k` in
458
	    Series*|S4*)
459
		UNAME_RELEASE=`uname -v`
460
461
462
		;;
	esac
	# Japanese Language versions have a version number like `4.1.3-JL'.
463
464
465
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
	GUESS=sparc-sun-sunos$SUN_REL
	;;
466
    sun3*:SunOS:*:*)
467
468
	GUESS=m68k-sun-sunos$UNAME_RELEASE
	;;
469
    sun*:*:4.2BSD:*)
470
	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
471
	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
472
	case `/bin/arch` in
473
	    sun3)
474
		GUESS=m68k-sun-sunos$UNAME_RELEASE
475
476
		;;
	    sun4)
477
		GUESS=sparc-sun-sunos$UNAME_RELEASE
478
479
		;;
	esac
480
	;;
481
    aushp:SunOS:*:*)
482
483
	GUESS=sparc-auspex-sunos$UNAME_RELEASE
	;;
484
485
486
487
488
489
490
491
492
    # 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:*:*)
493
494
	GUESS=m68k-atari-mint$UNAME_RELEASE
	;;
495
    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
496
497
	GUESS=m68k-atari-mint$UNAME_RELEASE
	;;
498
    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
499
500
	GUESS=m68k-atari-mint$UNAME_RELEASE
	;;
501
    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
502
503
	GUESS=m68k-milan-mint$UNAME_RELEASE
	;;
504
    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
505
506
	GUESS=m68k-hades-mint$UNAME_RELEASE
	;;
507
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
508
509
	GUESS=m68k-unknown-mint$UNAME_RELEASE
	;;
510
    m68k:machten:*:*)
511
512
	GUESS=m68k-apple-machten$UNAME_RELEASE
	;;
513
    powerpc:machten:*:*)
514
515
	GUESS=powerpc-apple-machten$UNAME_RELEASE
	;;
516
    RISC*:Mach:*:*)
517
518
	GUESS=mips-dec-mach_bsd4.3
	;;
519
    RISC*:ULTRIX:*:*)
520
521
	GUESS=mips-dec-ultrix$UNAME_RELEASE
	;;
522
    VAX*:ULTRIX*:*:*)
523
524
	GUESS=vax-dec-ultrix$UNAME_RELEASE
	;;
525
    2020:CLIX:*:* | 2430:CLIX:*:*)
526
527
	GUESS=clipper-intergraph-clix$UNAME_RELEASE
	;;
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
    mips:*:*:UMIPS | mips:*:*:RISCos)
	set_cc_for_build
	sed 's/^	//' << EOF > "$dummy.c"
#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)
	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
	#endif
	#if defined (SYSTYPE_SVR4)
	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
	#endif
	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
	#endif
	#endif
	  exit (-1);
	}
EOF
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
552
553
	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
554
	    { echo "$SYSTEM_NAME"; exit; }
555
556
	GUESS=mips-mips-riscos$UNAME_RELEASE
	;;
557
    Motorola:PowerMAX_OS:*:*)
558
559
	GUESS=powerpc-motorola-powermax
	;;
560
    Motorola:*:4.3:PL8-*)
561
562
	GUESS=powerpc-harris-powermax
	;;
563
    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
564
565
	GUESS=powerpc-harris-powermax
	;;
566
    Night_Hawk:Power_UNIX:*:*)
567
568
	GUESS=powerpc-harris-powerunix
	;;
569
    m88k:CX/UX:7*:*)
570
571
	GUESS=m88k-harris-cxux7
	;;
572
    m88k:*:4*:R4*)
573
574
	GUESS=m88k-motorola-sysv4
	;;
575
    m88k:*:3*:R3*)
576
577
	GUESS=m88k-motorola-sysv3
	;;
578
579
    AViiON:dgux:*:*)
	# DG/UX returns AViiON for all architectures
580
	UNAME_PROCESSOR=`/usr/bin/uname -p`
581
582
583
584
585
	if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
	then
	    if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
	       test "$TARGET_BINARY_INTERFACE"x = x
	    then
586
		GUESS=m88k-dg-dgux$UNAME_RELEASE
587
	    else
588
		GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
589
590
	    fi
	else
591
	    GUESS=i586-dg-dgux$UNAME_RELEASE
592
	fi
593
	;;
594
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
595
596
	GUESS=m88k-dolphin-sysv3
	;;
597
598
    M88*:*:R3*:*)
	# Delta 88k system running SVR3
599
600
	GUESS=m88k-motorola-sysv3
	;;
601
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
602
603
	GUESS=m88k-tektronix-sysv3
	;;
604
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
605
606
	GUESS=m68k-tektronix-bsd
	;;
607
    *:IRIX*:*:*)
608
609
610
	IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
	GUESS=mips-sgi-irix$IRIX_REL
	;;
611
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
612
613
	GUESS=romp-ibm-aix    # uname -m gives an 8 hex-code CPU id
	;;                    # Note that: echo "'`uname -s`'" gives 'AIX '
614
    i*86:AIX:*:*)
615
616
	GUESS=i386-ibm-aix
	;;
617
618
    ia64:AIX:*:*)
	if test -x /usr/bin/oslevel ; then
619
		IBM_REV=`/usr/bin/oslevel`
620
	else
621
		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
622
	fi
623
624
	GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
	;;
625
626
627
628
629
630
631
632
633
634
635
636
637
638
    *:AIX:2:3)
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
		set_cc_for_build
		sed 's/^		//' << EOF > "$dummy.c"
		#include <sys/systemcfg.h>

		main()
			{
			if (!__power_pc())
				exit(1);
			puts("powerpc-ibm-aix3.2.5");
			exit(0);
			}
EOF
639
		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
640
		then
641
			GUESS=$SYSTEM_NAME
642
		else
643
			GUESS=rs6000-ibm-aix3.2.5
644
645
		fi
	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
646
		GUESS=rs6000-ibm-aix3.2.4
647
	else
648
		GUESS=rs6000-ibm-aix3.2
649
	fi
650
	;;
651
    *:AIX:*:[4567])
652
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
653
654
655
656
657
658
	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
		IBM_ARCH=rs6000
	else
		IBM_ARCH=powerpc
	fi
	if test -x /usr/bin/lslpp ; then
659
660
		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
661
	else
662
		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
663
	fi
664
665
	GUESS=$IBM_ARCH-ibm-aix$IBM_REV
	;;
666
    *:AIX:*:*)
667
668
	GUESS=rs6000-ibm-aix
	;;
669
    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
670
671
	GUESS=romp-ibm-bsd4.4
	;;
672
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
673
674
	GUESS=romp-ibm-bsd$UNAME_RELEASE    # 4.3 with uname added to
	;;                                  # report: romp-ibm BSD 4.3
675
    *:BOSX:*:*)
676
677
	GUESS=rs6000-bull-bosx
	;;
678
    DPX/2?00:B.O.S.:*:*)
679
680
	GUESS=m68k-bull-sysv3
	;;
681
    9000/[34]??:4.3bsd:1.*:*)
682
683
	GUESS=m68k-hp-bsd
	;;
684
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
685
686
	GUESS=m68k-hp-bsd4.4
	;;
687
    9000/[34678]??:HP-UX:*:*)
688
	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
689
	case $UNAME_MACHINE in
690
691
692
693
	    9000/31?)            HP_ARCH=m68000 ;;
	    9000/[34]??)         HP_ARCH=m68k ;;
	    9000/[678][0-9][0-9])
		if test -x /usr/bin/getconf; then
694
695
		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
696
		    case $sc_cpu_version in
697
698
699
		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
		      532)                      # CPU_PA_RISC2_0
700
			case $sc_kernel_bits in
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
			  32) HP_ARCH=hppa2.0n ;;
			  64) HP_ARCH=hppa2.0w ;;
			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
			esac ;;
		    esac
		fi
		if test "$HP_ARCH" = ""; then
		    set_cc_for_build
		    sed 's/^		//' << EOF > "$dummy.c"

		#define _HPUX_SOURCE
		#include <stdlib.h>
		#include <unistd.h>

		int main ()
		{
		#if defined(_SC_KERNEL_BITS)
		    long bits = sysconf(_SC_KERNEL_BITS);
		#endif
		    long cpu  = sysconf (_SC_CPU_VERSION);

		    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);
		}
EOF
742
		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
		    test -z "$HP_ARCH" && HP_ARCH=hppa
		fi ;;
	esac
	if test "$HP_ARCH" = hppa2.0w
	then
	    set_cc_for_build

	    # 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

	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
		grep -q __LP64__
	    then
		HP_ARCH=hppa2.0w
	    else
		HP_ARCH=hppa64
	    fi
	fi
767
768
	GUESS=$HP_ARCH-hp-hpux$HPUX_REV
	;;
769
    ia64:HP-UX:*:*)
770
771
772
	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
	GUESS=ia64-hp-hpux$HPUX_REV
	;;
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
    3050*:HI-UX:*:*)
	set_cc_for_build
	sed 's/^	//' << EOF > "$dummy.c"
	#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
800
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
801
		{ echo "$SYSTEM_NAME"; exit; }
802
803
	GUESS=unknown-hitachi-hiuxwe2
	;;
804
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
805
806
	GUESS=hppa1.1-hp-bsd
	;;
807
    9000/8??:4.3bsd:*:*)
808
809
	GUESS=hppa1.0-hp-bsd
	;;
810
    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
811
812
	GUESS=hppa1.0-hp-mpeix
	;;
813
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
814
815
	GUESS=hppa1.1-hp-osf
	;;
816
    hp8??:OSF1:*:*)
817
818
	GUESS=hppa1.0-hp-osf
	;;
819
820
    i*86:OSF1:*:*)
	if test -x /usr/sbin/sysversion ; then
821
	    GUESS=$UNAME_MACHINE-unknown-osf1mk
822
	else
823
	    GUESS=$UNAME_MACHINE-unknown-osf1
824
	fi
825
	;;
826
    parisc*:Lites*:*:*)
827
828
	GUESS=hppa1.1-hp-lites
	;;
829
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
830
831
	GUESS=c1-convex-bsd
	;;
832
833
834
835
836
837
838
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
	if getsysinfo -f scalar_acc
	then echo c32-convex-bsd
	else echo c2-convex-bsd
	fi
	exit ;;
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
839
840
	GUESS=c34-convex-bsd
	;;
841
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
842
843
	GUESS=c38-convex-bsd
	;;
844
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
845
846
	GUESS=c4-convex-bsd
	;;
847
    CRAY*Y-MP:*:*:*)
848
849
850
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
	GUESS=ymp-cray-unicos$CRAY_REL
	;;
851
852
853
854
855
856
857
    CRAY*[A-Z]90:*:*:*)
	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
	      -e 's/\.[^.]*$/.X/'
	exit ;;
    CRAY*TS:*:*:*)
858
859
860
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
	GUESS=t90-cray-unicos$CRAY_REL
	;;
861
    CRAY*T3E:*:*:*)
862
863
864
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
	GUESS=alphaev5-cray-unicosmk$CRAY_REL
	;;
865
    CRAY*SV1:*:*:*)
866
867
868
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
	GUESS=sv1-cray-unicos$CRAY_REL
	;;
869
    *:UNICOS/mp:*:*)
870
871
872
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
	GUESS=craynv-cray-unicosmp$CRAY_REL
	;;
873
    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
874
875
876
877
878
	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/ /_/'`
	GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
	;;
879
    5000:UNIX_System_V:4.*:*)
880
881
882
883
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
	GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
	;;
884
    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
885
886
	GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
	;;
887
    sparc*:BSD/OS:*:*)
888
889
	GUESS=sparc-unknown-bsdi$UNAME_RELEASE
	;;
890
    *:BSD/OS:*:*)
891
892
	GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
	;;
893
    arm:FreeBSD:*:*)
894
	UNAME_PROCESSOR=`uname -p`
895
896
897
898
	set_cc_for_build
	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_PCS_VFP
	then
899
900
	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
901
	else
902
903
	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
904
	fi
905
	;;
906
    *:FreeBSD:*:*)
907
	UNAME_PROCESSOR=`/usr/bin/uname -p`
908
	case $UNAME_PROCESSOR in
909
910
911
912
913
	    amd64)
		UNAME_PROCESSOR=x86_64 ;;
	    i386)
		UNAME_PROCESSOR=i586 ;;
	esac
914
915
916
	FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
	GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
	;;
917
    i*:CYGWIN*:*)
918
919
	GUESS=$UNAME_MACHINE-pc-cygwin
	;;
920
    *:MINGW64*:*)
921
922
	GUESS=$UNAME_MACHINE-pc-mingw64
	;;
923
    *:MINGW*:*)
924
925
	GUESS=$UNAME_MACHINE-pc-mingw32
	;;
926
    *:MSYS*:*)
927
928
	GUESS=$UNAME_MACHINE-pc-msys
	;;
929
    i*:PW*:*)
930
931
932
933
934
	GUESS=$UNAME_MACHINE-pc-pw32
	;;
    *:SerenityOS:*:*)
        GUESS=$UNAME_MACHINE-pc-serenity
        ;;
935
    *:Interix*:*)
936
	case $UNAME_MACHINE in
937
	    x86)
938
939
		GUESS=i586-pc-interix$UNAME_RELEASE
		;;
940
	    authenticamd | genuineintel | EM64T)
941
942
		GUESS=x86_64-unknown-interix$UNAME_RELEASE
		;;
943
	    IA64)
944
945
		GUESS=ia64-unknown-interix$UNAME_RELEASE
		;;
946
947
	esac ;;
    i*:UWIN*:*)
948
949
	GUESS=$UNAME_MACHINE-pc-uwin
	;;
950
    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
951
952
	GUESS=x86_64-pc-cygwin
	;;
953
    prep*:SunOS:5.*:*)
954
955
956
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
	GUESS=powerpcle-unknown-solaris2$SUN_REL
	;;
957
958
    *:GNU:*:*)
	# the GNU system
959
960
961
962
	GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
	GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
	;;
963
964
    *:GNU/*:*:*)
	# other systems with GNU libc and userland
965
966
967
968
	GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
	GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
	;;
969
    *:Minix:*:*)
970
971
	GUESS=$UNAME_MACHINE-unknown-minix
	;;
972
    aarch64:Linux:*:*)
973
974
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
975
976
    aarch64_be:Linux:*:*)
	UNAME_MACHINE=aarch64_be
977
978
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
979
    alpha:Linux:*:*)
980
	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
981
982
983
984
985
986
987
988
989
990
	  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
	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
991
992
993
994
995
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
    arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
996
997
998
999
1000
    arm*:Linux:*:*)
	set_cc_for_build
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
	    | grep -q __ARM_EABI__
	then
1001
	    GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1002
1003
1004
1005
	else
	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
		| grep -q __ARM_PCS_VFP
	    then
1006
		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
1007
	    else
1008
		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
1009
1010
	    fi
	fi
1011
	;;
1012
    avr32*:Linux:*:*)
1013
1014
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1015
    cris:Linux:*:*)
1016
1017
	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
	;;
1018
    crisv32:Linux:*:*)
1019
1020
	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
	;;
1021
    e2k:Linux:*:*)
1022
1023
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1024
    frv:Linux:*:*)
1025
1026
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1027
    hexagon:Linux:*:*)
1028
1029
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1030
    i*86:Linux:*:*)
1031
1032
	GUESS=$UNAME_MACHINE-pc-linux-$LIBC
	;;
1033
    ia64:Linux:*:*)
1034
1035
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1036
    k1om:Linux:*:*)
1037
1038
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1039
    loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
1040
1041
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1042
    m32r*:Linux:*:*)
1043
1044
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1045
    m68*:Linux:*:*)
1046
1047
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
    mips:Linux:*:* | mips64:Linux:*:*)
	set_cc_for_build
	IS_GLIBC=0
	test x"${LIBC}" = xgnu && IS_GLIBC=1
	sed 's/^	//' << EOF > "$dummy.c"
	#undef CPU
	#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

	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
	MIPS_ENDIAN=el
	#else
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
	MIPS_ENDIAN=
	#else
	MIPS_ENDIAN=
	#endif
	#endif
EOF
1092
1093
	cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
	eval "$cc_set_vars"
1094
1095
1096
	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
	;;
    mips64el:Linux:*:*)
1097
1098
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1099
    openrisc*:Linux:*:*)
1100
1101
	GUESS=or1k-unknown-linux-$LIBC
	;;
1102
    or32:Linux:*:* | or1k*:Linux:*:*)
1103
1104
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1105
    padre:Linux:*:*)
1106
1107
	GUESS=sparc-unknown-linux-$LIBC
	;;
1108
    parisc64:Linux:*:* | hppa64:Linux:*:*)
1109
1110
	GUESS=hppa64-unknown-linux-$LIBC
	;;
1111
1112
    parisc:Linux:*:* | hppa:Linux:*:*)
	# Look for CPU level
1113
1114
1115
1116
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
	  PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
	  PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
	  *)    GUESS=hppa-unknown-linux-$LIBC ;;
1117
	esac
1118
	;;
1119
    ppc64:Linux:*:*)
1120
1121
	GUESS=powerpc64-unknown-linux-$LIBC
	;;
1122
    ppc:Linux:*:*)
1123
1124
	GUESS=powerpc-unknown-linux-$LIBC
	;;
1125
    ppc64le:Linux:*:*)
1126
1127
	GUESS=powerpc64le-unknown-linux-$LIBC
	;;
1128
    ppcle:Linux:*:*)
1129
1130
	GUESS=powerpcle-unknown-linux-$LIBC
	;;
1131
    riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
1132
1133
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1134
    s390:Linux:*:* | s390x:Linux:*:*)
1135
1136
	GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
	;;
1137
    sh64*:Linux:*:*)
1138
1139
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1140
    sh*:Linux:*:*)
1141
1142
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1143
    sparc:Linux:*:* | sparc64:Linux:*:*)
1144
1145
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1146
    tile*:Linux:*:*)
1147
1148
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1149
    vax:Linux:*:*)
1150
1151
	GUESS=$UNAME_MACHINE-dec-linux-$LIBC
	;;
1152
1153
    x86_64:Linux:*:*)
	set_cc_for_build
1154
	CPU=$UNAME_MACHINE
1155
1156
	LIBCABI=$LIBC
	if test "$CC_FOR_BUILD" != no_compiler_found; then
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
	    ABI=64
	    sed 's/^	    //' << EOF > "$dummy.c"
	    #ifdef __i386__
	    ABI=x86
	    #else
	    #ifdef __ILP32__
	    ABI=x32
	    #endif
	    #endif
EOF
	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
	    eval "$cc_set_abi"
	    case $ABI in
		x86) CPU=i686 ;;
		x32) LIBCABI=${LIBC}x32 ;;
	    esac
1173
	fi
1174
	GUESS=$CPU-pc-linux-$LIBCABI
1175
	;;
1176
    xtensa*:Linux:*:*)
1177
1178
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
	;;
1179
1180
1181
1182
    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.
1183
1184
	GUESS=i386-sequent-sysv4
	;;
1185
1186
1187
1188
1189
1190
    i*86:UNIX_SV:4.2MP:2.*)
	# 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,
	# I just have to hope.  -- rms.
	# Use sysv4.2uw... so that sysv4* matches it.
1191
1192
	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
	;;
1193
1194
1195
    i*86:OS/2:*:*)
	# If we were able to find `uname', then EMX Unix compatibility
	# is probably installed.
1196
1197
	GUESS=$UNAME_MACHINE-pc-os2-emx
	;;
1198
    i*86:XTS-300:*:STOP)
1199
1200
	GUESS=$UNAME_MACHINE-unknown-stop
	;;
1201
    i*86:atheos:*:*)
1202
1203
	GUESS=$UNAME_MACHINE-unknown-atheos
	;;
1204
    i*86:syllable:*:*)
1205
1206
	GUESS=$UNAME_MACHINE-pc-syllable
	;;
1207
    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1208
1209
	GUESS=i386-unknown-lynxos$UNAME_RELEASE
	;;
1210
    i*86:*DOS:*:*)
1211
1212
	GUESS=$UNAME_MACHINE-pc-msdosdjgpp
	;;
1213
    i*86:*:4.*:*)
1214
	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1215
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1216
		GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
1217
	else
1218
		GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
1219
	fi
1220
	;;
1221
1222
    i*86:*:5:[678]*)
	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1223
	case `/bin/uname -X | grep "^Machine"` in
1224
1225
1226
1227
	    *486*)	     UNAME_MACHINE=i486 ;;
	    *Pentium)	     UNAME_MACHINE=i586 ;;
	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
	esac
1228
1229
	GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
	;;
1230
1231
    i*86:*:3.2:*)
	if test -f /usr/options/cb.name; then
1232
1233
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
		GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
1234
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1235
		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1236
1237
1238
1239
1240
1241
1242
		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
			&& UNAME_MACHINE=i586
		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
			&& UNAME_MACHINE=i686
		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
			&& UNAME_MACHINE=i686
1243
		GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
1244
	else
1245
		GUESS=$UNAME_MACHINE-pc-sysv32
1246
	fi
1247
	;;
1248
1249
1250
1251
1252
1253
1254
    pc:*:*:*)
	# Left here for compatibility:
	# uname -m prints for DJGPP always 'pc', but it prints nothing about
	# the processor, so we play safe by assuming i586.
	# Note: whatever this is, it MUST be the same as what config.sub
	# prints for the "djgpp" host, or else GDB configure will decide that
	# this is a cross-build.
1255
1256
	GUESS=i586-pc-msdosdjgpp
	;;
1257
    Intel:Mach:3*:*)
1258
1259
	GUESS=i386-pc-mach3
	;;
1260
    paragon:*:*:*)
1261
1262
	GUESS=i860-intel-osf1
	;;
1263
1264
    i860:*:4.*:*) # i860-SVR4
	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1265
	  GUESS=i860-stardent-sysv$UNAME_RELEASE    # Stardent Vistra i860-SVR4
1266
	else # Add other i860-SVR4 vendors below as they are discovered.
1267
	  GUESS=i860-unknown-sysv$UNAME_RELEASE     # Unknown i860-SVR4
1268
	fi
1269
	;;
1270
1271
    mini*:CTIX:SYS*5:*)
	# "miniframe"
1272
1273
	GUESS=m68010-convergent-sysv
	;;
1274
    mc68k:UNIX:SYSTEM5:3.51m)
1275
1276
	GUESS=m68k-convergent-sysv
	;;
1277
    M680?0:D-NIX:5.3:*)
1278
1279
	GUESS=m68k-diab-dnix
	;;
1280
1281
1282
1283
1284
    M68*:*:R3V[5678]*:*)
	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
    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)
	OS_REL=''
	test -r /etc/.relid \
1285
	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
	  && { echo i486-ncr-sysv4; exit; } ;;
    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
	OS_REL='.3'
	test -r /etc/.relid \
1296
	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1297
1298
1299
1300
1301
1302
1303
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1304
1305
	GUESS=m68k-unknown-lynxos$UNAME_RELEASE
	;;
1306
    mc68030:UNIX_System_V:4.*:*)
1307
1308
	GUESS=m68k-atari-sysv4
	;;
1309
    TSUNAMI:LynxOS:2.*:*)
1310
1311
	GUESS=sparc-unknown-lynxos$UNAME_RELEASE
	;;
1312
    rs6000:LynxOS:2.*:*)
1313
1314
	GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
	;;
1315
    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1316
1317
	GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
	;;
1318
    SM[BE]S:UNIX_SV:*:*)
1319
1320
	GUESS=mips-dde-sysv$UNAME_RELEASE
	;;
1321
    RM*:ReliantUNIX-*:*:*)
1322
1323
	GUESS=mips-sni-sysv4
	;;
1324
    RM*:SINIX-*:*:*)
1325
1326
	GUESS=mips-sni-sysv4
	;;
1327
1328
    *:SINIX-*:*:*)
	if uname -p 2>/dev/null >/dev/null ; then
1329
1330
		UNAME_MACHINE=`(uname -p) 2>/dev/null`
		GUESS=$UNAME_MACHINE-sni-sysv4
1331
	else
1332
		GUESS=ns32k-sni-sysv
1333
	fi
1334
	;;
1335
1336
    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
			# says <Richard.M.Bartel@ccMail.Census.GOV>
1337
1338
	GUESS=i586-unisys-sysv4
	;;
1339
1340
1341
    *:UNIX_System_V:4*:FTX*)
	# From Gerald Hewes <hewes@openmarket.com>.
	# How about differentiating between stratus architectures? -djm
1342
1343
	GUESS=hppa1.1-stratus-sysv4
	;;
1344
1345
    *:*:*:FTX*)
	# From seanf@swdc.stratus.com.
1346
1347
	GUESS=i860-stratus-sysv4
	;;
1348
1349
    i*86:VOS:*:*)
	# From Paul.Green@stratus.com.
1350
1351
	GUESS=$UNAME_MACHINE-stratus-vos
	;;
1352
1353
    *:VOS:*:*)
	# From Paul.Green@stratus.com.
1354
1355
	GUESS=hppa1.1-stratus-vos
	;;
1356
    mc68*:A/UX:*:*)
1357
1358
	GUESS=m68k-apple-aux$UNAME_RELEASE
	;;
1359
    news*:NEWS-OS:6*:*)
1360
1361
	GUESS=mips-sony-newsos6
	;;
1362
1363
    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
	if test -d /usr/nec; then
1364
		GUESS=mips-nec-sysv$UNAME_RELEASE
1365
	else
1366
		GUESS=mips-unknown-sysv$UNAME_RELEASE
1367
	fi
1368
	;;
1369
    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1370
1371
	GUESS=powerpc-be-beos
	;;
1372
    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1373
1374
	GUESS=powerpc-apple-beos
	;;
1375
    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1376
1377
	GUESS=i586-pc-beos
	;;
1378
    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1379
1380
	GUESS=i586-pc-haiku
	;;
1381
1382
1383
1384
1385
    ppc:Haiku:*:*)	# Haiku running on Apple PowerPC
	GUESS=powerpc-apple-haiku
	;;
    *:Haiku:*:*)	# Haiku modern gcc (not bound by BeOS compat)
	GUESS=$UNAME_MACHINE-unknown-haiku
1386
	;;
1387
    SX-4:SUPER-UX:*:*)
1388
1389
	GUESS=sx4-nec-superux$UNAME_RELEASE
	;;
1390
    SX-5:SUPER-UX:*:*)
1391
1392
	GUESS=sx5-nec-superux$UNAME_RELEASE
	;;
1393
    SX-6:SUPER-UX:*:*)
1394
1395
	GUESS=sx6-nec-superux$UNAME_RELEASE
	;;
1396
    SX-7:SUPER-UX:*:*)
1397
1398
	GUESS=sx7-nec-superux$UNAME_RELEASE
	;;
1399
    SX-8:SUPER-UX:*:*)
1400
1401
	GUESS=sx8-nec-superux$UNAME_RELEASE
	;;
1402
    SX-8R:SUPER-UX:*:*)
1403
1404
	GUESS=sx8r-nec-superux$UNAME_RELEASE
	;;
1405
    SX-ACE:SUPER-UX:*:*)
1406
1407
	GUESS=sxace-nec-superux$UNAME_RELEASE
	;;
1408
    Power*:Rhapsody:*:*)
1409
1410
	GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
	;;
1411
    *:Rhapsody:*:*)
1412
1413
	GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
	;;
1414
    arm64:Darwin:*:*)
1415
1416
	GUESS=aarch64-apple-darwin$UNAME_RELEASE
	;;
1417
    *:Darwin:*:*)
1418
	UNAME_PROCESSOR=`uname -p`
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
	case $UNAME_PROCESSOR in
	    unknown) UNAME_PROCESSOR=powerpc ;;
	esac
	if command -v xcode-select > /dev/null 2> /dev/null && \
		! xcode-select --print-path > /dev/null 2> /dev/null ; then
	    # Avoid executing cc if there is no toolchain installed as
	    # cc will be a stub that puts up a graphical alert
	    # prompting the user to install developer tools.
	    CC_FOR_BUILD=no_compiler_found
	else
	    set_cc_for_build
	fi
	if test "$CC_FOR_BUILD" != no_compiler_found; then
	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
		   grep IS_64BIT_ARCH >/dev/null
	    then
		case $UNAME_PROCESSOR in
		    i386) UNAME_PROCESSOR=x86_64 ;;
		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
		esac
	    fi
	    # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
	    if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
		   grep IS_PPC >/dev/null
	    then
		UNAME_PROCESSOR=powerpc
	    fi
	elif test "$UNAME_PROCESSOR" = i386 ; then
	    # uname -m returns i386 or x86_64
	    UNAME_PROCESSOR=$UNAME_MACHINE
	fi
1452
1453
	GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
	;;
1454
    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1455
	UNAME_PROCESSOR=`uname -p`
1456
1457
1458
1459
	if test "$UNAME_PROCESSOR" = x86; then
		UNAME_PROCESSOR=i386
		UNAME_MACHINE=pc
	fi
1460
1461
	GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
	;;
1462
    *:QNX:*:4*)
1463
1464
	GUESS=i386-pc-qnx
	;;
1465
    NEO-*:NONSTOP_KERNEL:*:*)
1466
1467
	GUESS=neo-tandem-nsk$UNAME_RELEASE
	;;
1468
    NSE-*:NONSTOP_KERNEL:*:*)
1469
1470
	GUESS=nse-tandem-nsk$UNAME_RELEASE
	;;
1471
    NSR-*:NONSTOP_KERNEL:*:*)
1472
1473
	GUESS=nsr-tandem-nsk$UNAME_RELEASE
	;;
1474
    NSV-*:NONSTOP_KERNEL:*:*)
1475
1476
	GUESS=nsv-tandem-nsk$UNAME_RELEASE
	;;
1477
    NSX-*:NONSTOP_KERNEL:*:*)
1478
1479
	GUESS=nsx-tandem-nsk$UNAME_RELEASE
	;;
1480
    *:NonStop-UX:*:*)
1481
1482
	GUESS=mips-compaq-nonstopux
	;;
1483
    BS2000:POSIX*:*:*)
1484
1485
	GUESS=bs2000-siemens-sysv
	;;
1486
    DS/*:UNIX_System_V:*:*)
1487
1488
	GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
	;;
1489
1490
1491
1492
    *:Plan9:*:*)
	# "uname -m" is not consistent, so use $cputype instead. 386
	# is converted to i386 for consistency with other x86
	# operating systems.
1493
	if test "${cputype-}" = 386; then
1494
	    UNAME_MACHINE=i386
1495
	elif test "x${cputype-}" != x; then
1496
	    UNAME_MACHINE=$cputype
1497
	fi
1498
1499
	GUESS=$UNAME_MACHINE-unknown-plan9
	;;
1500
    *:TOPS-10:*:*)
1501
1502
	GUESS=pdp10-unknown-tops10
	;;
1503
    *:TENEX:*:*)
1504
1505
	GUESS=pdp10-unknown-tenex
	;;
1506
    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1507
1508
	GUESS=pdp10-dec-tops20
	;;
1509
    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1510
1511
	GUESS=pdp10-xkl-tops20
	;;
1512
    *:TOPS-20:*:*)
1513
1514
	GUESS=pdp10-unknown-tops20
	;;
1515
    *:ITS:*:*)
1516
1517
	GUESS=pdp10-unknown-its
	;;
1518
    SEI:*:*:SEIUX)
1519
1520
	GUESS=mips-sei-seiux$UNAME_RELEASE
	;;
1521
    *:DragonFly:*:*)
1522
1523
1524
	DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
	GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
	;;
1525
    *:*VMS:*:*)
1526
	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1527
	case $UNAME_MACHINE in
1528
1529
1530
	    A*) GUESS=alpha-dec-vms ;;
	    I*) GUESS=ia64-dec-vms ;;
	    V*) GUESS=vax-dec-vms ;;
1531
1532
	esac ;;
    *:XENIX:*:SysV)
1533
1534
	GUESS=i386-pc-xenix
	;;
1535
    i*86:skyos:*:*)
1536
1537
1538
	SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
	GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
	;;
1539
    i*86:rdos:*:*)
1540
1541
1542
1543
1544
	GUESS=$UNAME_MACHINE-pc-rdos
	;;
    i*86:Fiwix:*:*)
	GUESS=$UNAME_MACHINE-pc-fiwix
	;;
1545
    *:AROS:*:*)
1546
1547
	GUESS=$UNAME_MACHINE-unknown-aros
	;;
1548
    x86_64:VMkernel:*:*)
1549
1550
	GUESS=$UNAME_MACHINE-unknown-esx
	;;
1551
    amd64:Isilon\ OneFS:*:*)
1552
1553
	GUESS=x86_64-unknown-onefs
	;;
1554
    *:Unleashed:*:*)
1555
1556
	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
	;;
1557
1558
esac

1559
1560
1561
1562
1563
1564
# Do we have a guess based on uname results?
if test "x$GUESS" != x; then
    echo "$GUESS"
    exit
fi

1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
# No uname command or uname output not recognized.
set_cc_for_build
cat > "$dummy.c" <<EOF
#ifdef _SEQUENT_
#include <sys/types.h>
#include <sys/utsname.h>
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#include <signal.h>
#if defined(_SIZE_T_) || defined(SIGLOST)
#include <sys/utsname.h>
#endif
#endif
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
     I don't know....  */
  printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
  printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
  "4"
#else
  ""
#endif
  ); exit (0);
#endif
#endif

#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
  int version;
1604
  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
  if (version < 4)
    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
  else
    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
  exit (0);
#endif

#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
  printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
  printf ("ns32k-encore-mach\n"); exit (0);
#else
  printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif

#if defined (__386BSD__)
  printf ("i386-pc-bsd\n"); exit (0);
#endif

#if defined (sequent)
#if defined (i386)
  printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
  printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif

#if defined (_SEQUENT_)
  struct utsname un;

  uname(&un);
  if (strncmp(un.version, "V2", 2) == 0) {
    printf ("i386-sequent-ptx2\n"); exit (0);
  }
  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
    printf ("i386-sequent-ptx1\n"); exit (0);
  }
  printf ("i386-sequent-ptx\n"); exit (0);
#endif

#if defined (vax)
#if !defined (ultrix)
#include <sys/param.h>
#if defined (BSD)
#if BSD == 43
  printf ("vax-dec-bsd4.3\n"); exit (0);
#else
#if BSD == 199006
  printf ("vax-dec-bsd4.3reno\n"); exit (0);
#else
  printf ("vax-dec-bsd\n"); exit (0);
#endif
#endif
#else
  printf ("vax-dec-bsd\n"); exit (0);
#endif
#else
#if defined(_SIZE_T_) || defined(SIGLOST)
  struct utsname un;
  uname (&un);
  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
#else
  printf ("vax-dec-ultrix\n"); exit (0);
#endif
#endif
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#if defined(_SIZE_T_) || defined(SIGLOST)
  struct utsname *un;
  uname (&un);
  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
#else
  printf ("mips-dec-ultrix\n"); exit (0);
#endif
#endif
#endif

#if defined (alliant) && defined (i860)
  printf ("i860-alliant-bsd\n"); exit (0);
#endif

  exit (1);
}
EOF

1696
$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
1697
1698
1699
1700
1701
1702
1703
	{ echo "$SYSTEM_NAME"; exit; }

# Apollos put the system type in the environment.
test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }

echo "$0: unable to guess system type" >&2

1704
case $UNAME_MACHINE:$UNAME_SYSTEM in
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
    mips:Linux | mips64:Linux)
	# If we got here on MIPS GNU/Linux, output extra information.
	cat >&2 <<EOF

NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
the system type. Please install a C compiler and try again.
EOF
	;;
esac

cat >&2 <<EOF

This script (version $timestamp), has failed to recognize the
operating system you are using. If your script is old, overwrite *all*
copies of config.guess and config.sub with the latest versions from:

  https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
  https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
EOF

1726
1727
our_year=`echo $timestamp | sed 's,-.*,,'`
thisyear=`date +%Y`
1728
# shellcheck disable=SC2003
1729
1730
script_age=`expr "$thisyear" - "$our_year"`
if test "$script_age" -lt 3 ; then
1731
1732
1733
1734
1735
1736
1737
1738
   cat >&2 <<EOF

If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
provide the necessary information to handle your system.

config.guess timestamp = $timestamp

1739
1740
1741
1742
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
1743

1744
1745
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1746

1747
1748
1749
1750
1751
1752
hostinfo               = `(hostinfo) 2>/dev/null`
/bin/universe          = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch              = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768

UNAME_MACHINE = "$UNAME_MACHINE"
UNAME_RELEASE = "$UNAME_RELEASE"
UNAME_SYSTEM  = "$UNAME_SYSTEM"
UNAME_VERSION = "$UNAME_VERSION"
EOF
fi

exit 1

# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End: