PR c++/65719
[official-gcc.git] / config.guess
blobdbfb9786cb6f9b8003367505d49dcadb2145610a
1 #! /bin/sh
2 # Attempt to guess a canonical system name.
3 # Copyright 1992-2015 Free Software Foundation, Inc.
5 timestamp='2015-01-01'
7 # This file is free software; you can redistribute it and/or modify it
8 # 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 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, see <http://www.gnu.org/licenses/>.
20 # As a special exception to the GNU General Public License, if you
21 # distribute this file as part of a program that contains a
22 # configuration script generated by Autoconf, you may include it under
23 # the same distribution terms that you use for the rest of that
24 # program. This Exception is an additional permission under section 7
25 # of the GNU General Public License, version 3 ("GPLv3").
27 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
29 # You can get the latest version of this script from:
30 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
32 # Please send patches to <config-patches@gnu.org>.
35 me=`echo "$0" | sed -e 's,.*/,,'`
37 usage="\
38 Usage: $0 [OPTION]
40 Output the configuration name of the system \`$me' is run on.
42 Operation modes:
43 -h, --help print this help, then exit
44 -t, --time-stamp print date of last modification, then exit
45 -v, --version print version number, then exit
47 Report bugs and patches to <config-patches@gnu.org>."
49 version="\
50 GNU config.guess ($timestamp)
52 Originally written by Per Bothner.
53 Copyright 1992-2015 Free Software Foundation, Inc.
55 This is free software; see the source for copying conditions. There is NO
56 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
58 help="
59 Try \`$me --help' for more information."
61 # Parse command line
62 while test $# -gt 0 ; do
63 case $1 in
64 --time-stamp | --time* | -t )
65 echo "$timestamp" ; exit ;;
66 --version | -v )
67 echo "$version" ; exit ;;
68 --help | --h* | -h )
69 echo "$usage"; exit ;;
70 -- ) # Stop option processing
71 shift; break ;;
72 - ) # Use stdin as input.
73 break ;;
74 -* )
75 echo "$me: invalid option $1$help" >&2
76 exit 1 ;;
77 * )
78 break ;;
79 esac
80 done
82 if test $# != 0; then
83 echo "$me: too many arguments$help" >&2
84 exit 1
87 trap 'exit 1' 1 2 15
89 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
90 # compiler to aid in system detection is discouraged as it requires
91 # temporary files to be created and, as you can see below, it is a
92 # headache to deal with in a portable fashion.
94 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
95 # use `HOST_CC' if defined, but it is deprecated.
97 # Portable tmp directory creation inspired by the Autoconf team.
99 set_cc_for_build='
100 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
101 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
102 : ${TMPDIR=/tmp} ;
103 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
104 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
105 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
106 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
107 dummy=$tmp/dummy ;
108 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
109 case $CC_FOR_BUILD,$HOST_CC,$CC in
110 ,,) echo "int x;" > $dummy.c ;
111 for c in cc gcc c89 c99 ; do
112 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
113 CC_FOR_BUILD="$c"; break ;
114 fi ;
115 done ;
116 if test x"$CC_FOR_BUILD" = x ; then
117 CC_FOR_BUILD=no_compiler_found ;
120 ,,*) CC_FOR_BUILD=$CC ;;
121 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
122 esac ; set_cc_for_build= ;'
124 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
125 # (ghazi@noc.rutgers.edu 1994-08-24)
126 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
127 PATH=$PATH:/.attbin ; export PATH
130 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
131 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
132 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
133 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
135 case "${UNAME_SYSTEM}" in
136 Linux|GNU|GNU/*)
137 # If the system lacks a compiler, then just pick glibc.
138 # We could probably try harder.
139 LIBC=gnu
141 eval $set_cc_for_build
142 cat <<-EOF > $dummy.c
143 #include <features.h>
144 #if defined(__UCLIBC__)
145 LIBC=uclibc
146 #elif defined(__dietlibc__)
147 LIBC=dietlibc
148 #else
149 LIBC=gnu
150 #endif
152 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
154 esac
156 # Note: order is significant - the case branches are not exclusive.
158 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
159 *:NetBSD:*:*)
160 # NetBSD (nbsd) targets should (where applicable) match one or
161 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
162 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
163 # switched to ELF, *-*-netbsd* would select the old
164 # object file format. This provides both forward
165 # compatibility and a consistent mechanism for selecting the
166 # object file format.
168 # Note: NetBSD doesn't particularly care about the vendor
169 # portion of the name. We always set it to "unknown".
170 sysctl="sysctl -n hw.machine_arch"
171 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
172 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
173 case "${UNAME_MACHINE_ARCH}" in
174 armeb) machine=armeb-unknown ;;
175 arm*) machine=arm-unknown ;;
176 sh3el) machine=shl-unknown ;;
177 sh3eb) machine=sh-unknown ;;
178 sh5el) machine=sh5le-unknown ;;
179 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
180 esac
181 # The Operating System including object format, if it has switched
182 # to ELF recently, or will in the future.
183 case "${UNAME_MACHINE_ARCH}" in
184 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
185 eval $set_cc_for_build
186 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
187 | grep -q __ELF__
188 then
189 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
190 # Return netbsd for either. FIX?
191 os=netbsd
192 else
193 os=netbsdelf
197 os=netbsd
199 esac
200 # The OS release
201 # Debian GNU/NetBSD machines have a different userland, and
202 # thus, need a distinct triplet. However, they do not need
203 # kernel version information, so it can be replaced with a
204 # suitable tag, in the style of linux-gnu.
205 case "${UNAME_VERSION}" in
206 Debian*)
207 release='-gnu'
210 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
212 esac
213 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
214 # contains redundant information, the shorter form:
215 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
216 echo "${machine}-${os}${release}"
217 exit ;;
218 *:Bitrig:*:*)
219 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
220 echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
221 exit ;;
222 *:OpenBSD:*:*)
223 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
224 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
225 exit ;;
226 *:ekkoBSD:*:*)
227 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
228 exit ;;
229 *:SolidBSD:*:*)
230 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
231 exit ;;
232 macppc:MirBSD:*:*)
233 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
234 exit ;;
235 *:MirBSD:*:*)
236 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
237 exit ;;
238 alpha:OSF1:*:*)
239 case $UNAME_RELEASE in
240 *4.0)
241 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
243 *5.*)
244 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
246 esac
247 # According to Compaq, /usr/sbin/psrinfo has been available on
248 # OSF/1 and Tru64 systems produced since 1995. I hope that
249 # covers most systems running today. This code pipes the CPU
250 # types through head -n 1, so we only detect the type of CPU 0.
251 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
252 case "$ALPHA_CPU_TYPE" in
253 "EV4 (21064)")
254 UNAME_MACHINE="alpha" ;;
255 "EV4.5 (21064)")
256 UNAME_MACHINE="alpha" ;;
257 "LCA4 (21066/21068)")
258 UNAME_MACHINE="alpha" ;;
259 "EV5 (21164)")
260 UNAME_MACHINE="alphaev5" ;;
261 "EV5.6 (21164A)")
262 UNAME_MACHINE="alphaev56" ;;
263 "EV5.6 (21164PC)")
264 UNAME_MACHINE="alphapca56" ;;
265 "EV5.7 (21164PC)")
266 UNAME_MACHINE="alphapca57" ;;
267 "EV6 (21264)")
268 UNAME_MACHINE="alphaev6" ;;
269 "EV6.7 (21264A)")
270 UNAME_MACHINE="alphaev67" ;;
271 "EV6.8CB (21264C)")
272 UNAME_MACHINE="alphaev68" ;;
273 "EV6.8AL (21264B)")
274 UNAME_MACHINE="alphaev68" ;;
275 "EV6.8CX (21264D)")
276 UNAME_MACHINE="alphaev68" ;;
277 "EV6.9A (21264/EV69A)")
278 UNAME_MACHINE="alphaev69" ;;
279 "EV7 (21364)")
280 UNAME_MACHINE="alphaev7" ;;
281 "EV7.9 (21364A)")
282 UNAME_MACHINE="alphaev79" ;;
283 esac
284 # A Pn.n version is a patched version.
285 # A Vn.n version is a released version.
286 # A Tn.n version is a released field test version.
287 # A Xn.n version is an unreleased experimental baselevel.
288 # 1.2 uses "1.2" for uname -r.
289 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
290 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
291 exitcode=$?
292 trap '' 0
293 exit $exitcode ;;
294 Alpha\ *:Windows_NT*:*)
295 # How do we know it's Interix rather than the generic POSIX subsystem?
296 # Should we change UNAME_MACHINE based on the output of uname instead
297 # of the specific Alpha model?
298 echo alpha-pc-interix
299 exit ;;
300 21064:Windows_NT:50:3)
301 echo alpha-dec-winnt3.5
302 exit ;;
303 Amiga*:UNIX_System_V:4.0:*)
304 echo m68k-unknown-sysv4
305 exit ;;
306 *:[Aa]miga[Oo][Ss]:*:*)
307 echo ${UNAME_MACHINE}-unknown-amigaos
308 exit ;;
309 *:[Mm]orph[Oo][Ss]:*:*)
310 echo ${UNAME_MACHINE}-unknown-morphos
311 exit ;;
312 *:OS/390:*:*)
313 echo i370-ibm-openedition
314 exit ;;
315 *:z/VM:*:*)
316 echo s390-ibm-zvmoe
317 exit ;;
318 *:OS400:*:*)
319 echo powerpc-ibm-os400
320 exit ;;
321 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
322 echo arm-acorn-riscix${UNAME_RELEASE}
323 exit ;;
324 arm*:riscos:*:*|arm*:RISCOS:*:*)
325 echo arm-unknown-riscos
326 exit ;;
327 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
328 echo hppa1.1-hitachi-hiuxmpp
329 exit ;;
330 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
331 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
332 if test "`(/bin/universe) 2>/dev/null`" = att ; then
333 echo pyramid-pyramid-sysv3
334 else
335 echo pyramid-pyramid-bsd
337 exit ;;
338 NILE*:*:*:dcosx)
339 echo pyramid-pyramid-svr4
340 exit ;;
341 DRS?6000:unix:4.0:6*)
342 echo sparc-icl-nx6
343 exit ;;
344 DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
345 case `/usr/bin/uname -p` in
346 sparc) echo sparc-icl-nx7; exit ;;
347 esac ;;
348 s390x:SunOS:*:*)
349 echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
350 exit ;;
351 sun4H:SunOS:5.*:*)
352 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
353 exit ;;
354 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
355 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
356 exit ;;
357 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
358 echo i386-pc-auroraux${UNAME_RELEASE}
359 exit ;;
360 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
361 eval $set_cc_for_build
362 SUN_ARCH="i386"
363 # If there is a compiler, see if it is configured for 64-bit objects.
364 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
365 # This test works for both compilers.
366 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
367 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
368 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
369 grep IS_64BIT_ARCH >/dev/null
370 then
371 SUN_ARCH="x86_64"
374 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
375 exit ;;
376 sun4*:SunOS:6*:*)
377 # According to config.sub, this is the proper way to canonicalize
378 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
379 # it's likely to be more like Solaris than SunOS4.
380 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
381 exit ;;
382 sun4*:SunOS:*:*)
383 case "`/usr/bin/arch -k`" in
384 Series*|S4*)
385 UNAME_RELEASE=`uname -v`
387 esac
388 # Japanese Language versions have a version number like `4.1.3-JL'.
389 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
390 exit ;;
391 sun3*:SunOS:*:*)
392 echo m68k-sun-sunos${UNAME_RELEASE}
393 exit ;;
394 sun*:*:4.2BSD:*)
395 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
396 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
397 case "`/bin/arch`" in
398 sun3)
399 echo m68k-sun-sunos${UNAME_RELEASE}
401 sun4)
402 echo sparc-sun-sunos${UNAME_RELEASE}
404 esac
405 exit ;;
406 aushp:SunOS:*:*)
407 echo sparc-auspex-sunos${UNAME_RELEASE}
408 exit ;;
409 # The situation for MiNT is a little confusing. The machine name
410 # can be virtually everything (everything which is not
411 # "atarist" or "atariste" at least should have a processor
412 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
413 # to the lowercase version "mint" (or "freemint"). Finally
414 # the system name "TOS" denotes a system which is actually not
415 # MiNT. But MiNT is downward compatible to TOS, so this should
416 # be no problem.
417 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
418 echo m68k-atari-mint${UNAME_RELEASE}
419 exit ;;
420 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
421 echo m68k-atari-mint${UNAME_RELEASE}
422 exit ;;
423 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
424 echo m68k-atari-mint${UNAME_RELEASE}
425 exit ;;
426 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
427 echo m68k-milan-mint${UNAME_RELEASE}
428 exit ;;
429 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
430 echo m68k-hades-mint${UNAME_RELEASE}
431 exit ;;
432 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
433 echo m68k-unknown-mint${UNAME_RELEASE}
434 exit ;;
435 m68k:machten:*:*)
436 echo m68k-apple-machten${UNAME_RELEASE}
437 exit ;;
438 powerpc:machten:*:*)
439 echo powerpc-apple-machten${UNAME_RELEASE}
440 exit ;;
441 RISC*:Mach:*:*)
442 echo mips-dec-mach_bsd4.3
443 exit ;;
444 RISC*:ULTRIX:*:*)
445 echo mips-dec-ultrix${UNAME_RELEASE}
446 exit ;;
447 VAX*:ULTRIX*:*:*)
448 echo vax-dec-ultrix${UNAME_RELEASE}
449 exit ;;
450 2020:CLIX:*:* | 2430:CLIX:*:*)
451 echo clipper-intergraph-clix${UNAME_RELEASE}
452 exit ;;
453 mips:*:*:UMIPS | mips:*:*:RISCos)
454 eval $set_cc_for_build
455 sed 's/^ //' << EOF >$dummy.c
456 #ifdef __cplusplus
457 #include <stdio.h> /* for printf() prototype */
458 int main (int argc, char *argv[]) {
459 #else
460 int main (argc, argv) int argc; char *argv[]; {
461 #endif
462 #if defined (host_mips) && defined (MIPSEB)
463 #if defined (SYSTYPE_SYSV)
464 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
465 #endif
466 #if defined (SYSTYPE_SVR4)
467 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
468 #endif
469 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
470 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
471 #endif
472 #endif
473 exit (-1);
476 $CC_FOR_BUILD -o $dummy $dummy.c &&
477 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
478 SYSTEM_NAME=`$dummy $dummyarg` &&
479 { echo "$SYSTEM_NAME"; exit; }
480 echo mips-mips-riscos${UNAME_RELEASE}
481 exit ;;
482 Motorola:PowerMAX_OS:*:*)
483 echo powerpc-motorola-powermax
484 exit ;;
485 Motorola:*:4.3:PL8-*)
486 echo powerpc-harris-powermax
487 exit ;;
488 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
489 echo powerpc-harris-powermax
490 exit ;;
491 Night_Hawk:Power_UNIX:*:*)
492 echo powerpc-harris-powerunix
493 exit ;;
494 m88k:CX/UX:7*:*)
495 echo m88k-harris-cxux7
496 exit ;;
497 m88k:*:4*:R4*)
498 echo m88k-motorola-sysv4
499 exit ;;
500 m88k:*:3*:R3*)
501 echo m88k-motorola-sysv3
502 exit ;;
503 AViiON:dgux:*:*)
504 # DG/UX returns AViiON for all architectures
505 UNAME_PROCESSOR=`/usr/bin/uname -p`
506 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
507 then
508 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
509 [ ${TARGET_BINARY_INTERFACE}x = x ]
510 then
511 echo m88k-dg-dgux${UNAME_RELEASE}
512 else
513 echo m88k-dg-dguxbcs${UNAME_RELEASE}
515 else
516 echo i586-dg-dgux${UNAME_RELEASE}
518 exit ;;
519 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
520 echo m88k-dolphin-sysv3
521 exit ;;
522 M88*:*:R3*:*)
523 # Delta 88k system running SVR3
524 echo m88k-motorola-sysv3
525 exit ;;
526 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
527 echo m88k-tektronix-sysv3
528 exit ;;
529 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
530 echo m68k-tektronix-bsd
531 exit ;;
532 *:IRIX*:*:*)
533 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
534 exit ;;
535 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
536 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
537 exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
538 i*86:AIX:*:*)
539 echo i386-ibm-aix
540 exit ;;
541 ia64:AIX:*:*)
542 if [ -x /usr/bin/oslevel ] ; then
543 IBM_REV=`/usr/bin/oslevel`
544 else
545 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
547 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
548 exit ;;
549 *:AIX:2:3)
550 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
551 eval $set_cc_for_build
552 sed 's/^ //' << EOF >$dummy.c
553 #include <sys/systemcfg.h>
555 main()
557 if (!__power_pc())
558 exit(1);
559 puts("powerpc-ibm-aix3.2.5");
560 exit(0);
563 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
564 then
565 echo "$SYSTEM_NAME"
566 else
567 echo rs6000-ibm-aix3.2.5
569 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
570 echo rs6000-ibm-aix3.2.4
571 else
572 echo rs6000-ibm-aix3.2
574 exit ;;
575 *:AIX:*:[4567])
576 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
577 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
578 IBM_ARCH=rs6000
579 else
580 IBM_ARCH=powerpc
582 if [ -x /usr/bin/lslpp ] ; then
583 IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
584 awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
585 else
586 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
588 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
589 exit ;;
590 *:AIX:*:*)
591 echo rs6000-ibm-aix
592 exit ;;
593 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
594 echo romp-ibm-bsd4.4
595 exit ;;
596 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
597 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
598 exit ;; # report: romp-ibm BSD 4.3
599 *:BOSX:*:*)
600 echo rs6000-bull-bosx
601 exit ;;
602 DPX/2?00:B.O.S.:*:*)
603 echo m68k-bull-sysv3
604 exit ;;
605 9000/[34]??:4.3bsd:1.*:*)
606 echo m68k-hp-bsd
607 exit ;;
608 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
609 echo m68k-hp-bsd4.4
610 exit ;;
611 9000/[34678]??:HP-UX:*:*)
612 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
613 case "${UNAME_MACHINE}" in
614 9000/31? ) HP_ARCH=m68000 ;;
615 9000/[34]?? ) HP_ARCH=m68k ;;
616 9000/[678][0-9][0-9])
617 if [ -x /usr/bin/getconf ]; then
618 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
619 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
620 case "${sc_cpu_version}" in
621 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
622 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
623 532) # CPU_PA_RISC2_0
624 case "${sc_kernel_bits}" in
625 32) HP_ARCH="hppa2.0n" ;;
626 64) HP_ARCH="hppa2.0w" ;;
627 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
628 esac ;;
629 esac
631 if [ "${HP_ARCH}" = "" ]; then
632 eval $set_cc_for_build
633 sed 's/^ //' << EOF >$dummy.c
635 #define _HPUX_SOURCE
636 #include <stdlib.h>
637 #include <unistd.h>
639 int main ()
641 #if defined(_SC_KERNEL_BITS)
642 long bits = sysconf(_SC_KERNEL_BITS);
643 #endif
644 long cpu = sysconf (_SC_CPU_VERSION);
646 switch (cpu)
648 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
649 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
650 case CPU_PA_RISC2_0:
651 #if defined(_SC_KERNEL_BITS)
652 switch (bits)
654 case 64: puts ("hppa2.0w"); break;
655 case 32: puts ("hppa2.0n"); break;
656 default: puts ("hppa2.0"); break;
657 } break;
658 #else /* !defined(_SC_KERNEL_BITS) */
659 puts ("hppa2.0"); break;
660 #endif
661 default: puts ("hppa1.0"); break;
663 exit (0);
666 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
667 test -z "$HP_ARCH" && HP_ARCH=hppa
668 fi ;;
669 esac
670 if [ ${HP_ARCH} = "hppa2.0w" ]
671 then
672 eval $set_cc_for_build
674 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
675 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
676 # generating 64-bit code. GNU and HP use different nomenclature:
678 # $ CC_FOR_BUILD=cc ./config.guess
679 # => hppa2.0w-hp-hpux11.23
680 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
681 # => hppa64-hp-hpux11.23
683 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
684 grep -q __LP64__
685 then
686 HP_ARCH="hppa2.0w"
687 else
688 HP_ARCH="hppa64"
691 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
692 exit ;;
693 ia64:HP-UX:*:*)
694 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
695 echo ia64-hp-hpux${HPUX_REV}
696 exit ;;
697 3050*:HI-UX:*:*)
698 eval $set_cc_for_build
699 sed 's/^ //' << EOF >$dummy.c
700 #include <unistd.h>
702 main ()
704 long cpu = sysconf (_SC_CPU_VERSION);
705 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
706 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
707 results, however. */
708 if (CPU_IS_PA_RISC (cpu))
710 switch (cpu)
712 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
713 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
714 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
715 default: puts ("hppa-hitachi-hiuxwe2"); break;
718 else if (CPU_IS_HP_MC68K (cpu))
719 puts ("m68k-hitachi-hiuxwe2");
720 else puts ("unknown-hitachi-hiuxwe2");
721 exit (0);
724 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
725 { echo "$SYSTEM_NAME"; exit; }
726 echo unknown-hitachi-hiuxwe2
727 exit ;;
728 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
729 echo hppa1.1-hp-bsd
730 exit ;;
731 9000/8??:4.3bsd:*:*)
732 echo hppa1.0-hp-bsd
733 exit ;;
734 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
735 echo hppa1.0-hp-mpeix
736 exit ;;
737 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
738 echo hppa1.1-hp-osf
739 exit ;;
740 hp8??:OSF1:*:*)
741 echo hppa1.0-hp-osf
742 exit ;;
743 i*86:OSF1:*:*)
744 if [ -x /usr/sbin/sysversion ] ; then
745 echo ${UNAME_MACHINE}-unknown-osf1mk
746 else
747 echo ${UNAME_MACHINE}-unknown-osf1
749 exit ;;
750 parisc*:Lites*:*:*)
751 echo hppa1.1-hp-lites
752 exit ;;
753 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
754 echo c1-convex-bsd
755 exit ;;
756 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
757 if getsysinfo -f scalar_acc
758 then echo c32-convex-bsd
759 else echo c2-convex-bsd
761 exit ;;
762 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
763 echo c34-convex-bsd
764 exit ;;
765 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
766 echo c38-convex-bsd
767 exit ;;
768 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
769 echo c4-convex-bsd
770 exit ;;
771 CRAY*Y-MP:*:*:*)
772 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
773 exit ;;
774 CRAY*[A-Z]90:*:*:*)
775 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
776 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
777 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
778 -e 's/\.[^.]*$/.X/'
779 exit ;;
780 CRAY*TS:*:*:*)
781 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
782 exit ;;
783 CRAY*T3E:*:*:*)
784 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
785 exit ;;
786 CRAY*SV1:*:*:*)
787 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
788 exit ;;
789 *:UNICOS/mp:*:*)
790 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
791 exit ;;
792 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
793 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
794 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
795 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
796 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
797 exit ;;
798 5000:UNIX_System_V:4.*:*)
799 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
800 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
801 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
802 exit ;;
803 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
804 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
805 exit ;;
806 sparc*:BSD/OS:*:*)
807 echo sparc-unknown-bsdi${UNAME_RELEASE}
808 exit ;;
809 *:BSD/OS:*:*)
810 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
811 exit ;;
812 *:FreeBSD:*:*)
813 UNAME_PROCESSOR=`/usr/bin/uname -p`
814 case ${UNAME_PROCESSOR} in
815 amd64)
816 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
818 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
819 esac
820 exit ;;
821 i*:CYGWIN*:*)
822 echo ${UNAME_MACHINE}-pc-cygwin
823 exit ;;
824 *:MINGW64*:*)
825 echo ${UNAME_MACHINE}-pc-mingw64
826 exit ;;
827 *:MINGW*:*)
828 echo ${UNAME_MACHINE}-pc-mingw32
829 exit ;;
830 *:MSYS*:*)
831 echo ${UNAME_MACHINE}-pc-msys
832 exit ;;
833 i*:windows32*:*)
834 # uname -m includes "-pc" on this system.
835 echo ${UNAME_MACHINE}-mingw32
836 exit ;;
837 i*:PW*:*)
838 echo ${UNAME_MACHINE}-pc-pw32
839 exit ;;
840 *:Interix*:*)
841 case ${UNAME_MACHINE} in
842 x86)
843 echo i586-pc-interix${UNAME_RELEASE}
844 exit ;;
845 authenticamd | genuineintel | EM64T)
846 echo x86_64-unknown-interix${UNAME_RELEASE}
847 exit ;;
848 IA64)
849 echo ia64-unknown-interix${UNAME_RELEASE}
850 exit ;;
851 esac ;;
852 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
853 echo i${UNAME_MACHINE}-pc-mks
854 exit ;;
855 8664:Windows_NT:*)
856 echo x86_64-pc-mks
857 exit ;;
858 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
859 # How do we know it's Interix rather than the generic POSIX subsystem?
860 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
861 # UNAME_MACHINE based on the output of uname instead of i386?
862 echo i586-pc-interix
863 exit ;;
864 i*:UWIN*:*)
865 echo ${UNAME_MACHINE}-pc-uwin
866 exit ;;
867 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
868 echo x86_64-unknown-cygwin
869 exit ;;
870 p*:CYGWIN*:*)
871 echo powerpcle-unknown-cygwin
872 exit ;;
873 prep*:SunOS:5.*:*)
874 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
875 exit ;;
876 *:GNU:*:*)
877 # the GNU system
878 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
879 exit ;;
880 *:GNU/*:*:*)
881 # other systems with GNU libc and userland
882 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
883 exit ;;
884 i*86:Minix:*:*)
885 echo ${UNAME_MACHINE}-pc-minix
886 exit ;;
887 aarch64:Linux:*:*)
888 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
889 exit ;;
890 aarch64_be:Linux:*:*)
891 UNAME_MACHINE=aarch64_be
892 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
893 exit ;;
894 alpha:Linux:*:*)
895 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
896 EV5) UNAME_MACHINE=alphaev5 ;;
897 EV56) UNAME_MACHINE=alphaev56 ;;
898 PCA56) UNAME_MACHINE=alphapca56 ;;
899 PCA57) UNAME_MACHINE=alphapca56 ;;
900 EV6) UNAME_MACHINE=alphaev6 ;;
901 EV67) UNAME_MACHINE=alphaev67 ;;
902 EV68*) UNAME_MACHINE=alphaev68 ;;
903 esac
904 objdump --private-headers /bin/sh | grep -q ld.so.1
905 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
906 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
907 exit ;;
908 arc:Linux:*:* | arceb:Linux:*:*)
909 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
910 exit ;;
911 arm*:Linux:*:*)
912 eval $set_cc_for_build
913 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
914 | grep -q __ARM_EABI__
915 then
916 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
917 else
918 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
919 | grep -q __ARM_PCS_VFP
920 then
921 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
922 else
923 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
926 exit ;;
927 avr32*:Linux:*:*)
928 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
929 exit ;;
930 cris:Linux:*:*)
931 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
932 exit ;;
933 crisv32:Linux:*:*)
934 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
935 exit ;;
936 frv:Linux:*:*)
937 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
938 exit ;;
939 hexagon:Linux:*:*)
940 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
941 exit ;;
942 i*86:Linux:*:*)
943 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
944 exit ;;
945 ia64:Linux:*:*)
946 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
947 exit ;;
948 m32r*:Linux:*:*)
949 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
950 exit ;;
951 m68*:Linux:*:*)
952 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
953 exit ;;
954 mips:Linux:*:* | mips64:Linux:*:*)
955 eval $set_cc_for_build
956 sed 's/^ //' << EOF >$dummy.c
957 #undef CPU
958 #undef ${UNAME_MACHINE}
959 #undef ${UNAME_MACHINE}el
960 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
961 CPU=${UNAME_MACHINE}el
962 #else
963 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
964 CPU=${UNAME_MACHINE}
965 #else
966 CPU=
967 #endif
968 #endif
970 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
971 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
973 openrisc*:Linux:*:*)
974 echo or1k-unknown-linux-${LIBC}
975 exit ;;
976 or32:Linux:*:* | or1k*:Linux:*:*)
977 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
978 exit ;;
979 padre:Linux:*:*)
980 echo sparc-unknown-linux-${LIBC}
981 exit ;;
982 parisc64:Linux:*:* | hppa64:Linux:*:*)
983 echo hppa64-unknown-linux-${LIBC}
984 exit ;;
985 parisc:Linux:*:* | hppa:Linux:*:*)
986 # Look for CPU level
987 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
988 PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
989 PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
990 *) echo hppa-unknown-linux-${LIBC} ;;
991 esac
992 exit ;;
993 ppc64:Linux:*:*)
994 echo powerpc64-unknown-linux-${LIBC}
995 exit ;;
996 ppc:Linux:*:*)
997 echo powerpc-unknown-linux-${LIBC}
998 exit ;;
999 ppc64le:Linux:*:*)
1000 echo powerpc64le-unknown-linux-${LIBC}
1001 exit ;;
1002 ppcle:Linux:*:*)
1003 echo powerpcle-unknown-linux-${LIBC}
1004 exit ;;
1005 s390:Linux:*:* | s390x:Linux:*:*)
1006 echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
1007 exit ;;
1008 sh64*:Linux:*:*)
1009 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1010 exit ;;
1011 sh*:Linux:*:*)
1012 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1013 exit ;;
1014 sparc:Linux:*:* | sparc64:Linux:*:*)
1015 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1016 exit ;;
1017 tile*:Linux:*:*)
1018 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1019 exit ;;
1020 vax:Linux:*:*)
1021 echo ${UNAME_MACHINE}-dec-linux-${LIBC}
1022 exit ;;
1023 x86_64:Linux:*:*)
1024 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1025 exit ;;
1026 xtensa*:Linux:*:*)
1027 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1028 exit ;;
1029 i*86:DYNIX/ptx:4*:*)
1030 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1031 # earlier versions are messed up and put the nodename in both
1032 # sysname and nodename.
1033 echo i386-sequent-sysv4
1034 exit ;;
1035 i*86:UNIX_SV:4.2MP:2.*)
1036 # Unixware is an offshoot of SVR4, but it has its own version
1037 # number series starting with 2...
1038 # I am not positive that other SVR4 systems won't match this,
1039 # I just have to hope. -- rms.
1040 # Use sysv4.2uw... so that sysv4* matches it.
1041 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1042 exit ;;
1043 i*86:OS/2:*:*)
1044 # If we were able to find `uname', then EMX Unix compatibility
1045 # is probably installed.
1046 echo ${UNAME_MACHINE}-pc-os2-emx
1047 exit ;;
1048 i*86:XTS-300:*:STOP)
1049 echo ${UNAME_MACHINE}-unknown-stop
1050 exit ;;
1051 i*86:atheos:*:*)
1052 echo ${UNAME_MACHINE}-unknown-atheos
1053 exit ;;
1054 i*86:syllable:*:*)
1055 echo ${UNAME_MACHINE}-pc-syllable
1056 exit ;;
1057 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1058 echo i386-unknown-lynxos${UNAME_RELEASE}
1059 exit ;;
1060 i*86:*DOS:*:*)
1061 echo ${UNAME_MACHINE}-pc-msdosdjgpp
1062 exit ;;
1063 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1064 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1065 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1066 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1067 else
1068 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1070 exit ;;
1071 i*86:*:5:[678]*)
1072 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1073 case `/bin/uname -X | grep "^Machine"` in
1074 *486*) UNAME_MACHINE=i486 ;;
1075 *Pentium) UNAME_MACHINE=i586 ;;
1076 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1077 esac
1078 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1079 exit ;;
1080 i*86:*:3.2:*)
1081 if test -f /usr/options/cb.name; then
1082 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1083 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1084 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1085 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1086 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1087 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1088 && UNAME_MACHINE=i586
1089 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1090 && UNAME_MACHINE=i686
1091 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1092 && UNAME_MACHINE=i686
1093 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1094 else
1095 echo ${UNAME_MACHINE}-pc-sysv32
1097 exit ;;
1098 pc:*:*:*)
1099 # Left here for compatibility:
1100 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1101 # the processor, so we play safe by assuming i586.
1102 # Note: whatever this is, it MUST be the same as what config.sub
1103 # prints for the "djgpp" host, or else GDB configury will decide that
1104 # this is a cross-build.
1105 echo i586-pc-msdosdjgpp
1106 exit ;;
1107 Intel:Mach:3*:*)
1108 echo i386-pc-mach3
1109 exit ;;
1110 paragon:*:*:*)
1111 echo i860-intel-osf1
1112 exit ;;
1113 i860:*:4.*:*) # i860-SVR4
1114 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1115 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1116 else # Add other i860-SVR4 vendors below as they are discovered.
1117 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1119 exit ;;
1120 mini*:CTIX:SYS*5:*)
1121 # "miniframe"
1122 echo m68010-convergent-sysv
1123 exit ;;
1124 mc68k:UNIX:SYSTEM5:3.51m)
1125 echo m68k-convergent-sysv
1126 exit ;;
1127 M680?0:D-NIX:5.3:*)
1128 echo m68k-diab-dnix
1129 exit ;;
1130 M68*:*:R3V[5678]*:*)
1131 test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1132 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)
1133 OS_REL=''
1134 test -r /etc/.relid \
1135 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1136 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1137 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1138 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1139 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1140 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1141 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1142 && { echo i486-ncr-sysv4; exit; } ;;
1143 NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1144 OS_REL='.3'
1145 test -r /etc/.relid \
1146 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1147 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1148 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1149 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1150 && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1151 /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1152 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1153 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1154 echo m68k-unknown-lynxos${UNAME_RELEASE}
1155 exit ;;
1156 mc68030:UNIX_System_V:4.*:*)
1157 echo m68k-atari-sysv4
1158 exit ;;
1159 TSUNAMI:LynxOS:2.*:*)
1160 echo sparc-unknown-lynxos${UNAME_RELEASE}
1161 exit ;;
1162 rs6000:LynxOS:2.*:*)
1163 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1164 exit ;;
1165 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1166 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1167 exit ;;
1168 SM[BE]S:UNIX_SV:*:*)
1169 echo mips-dde-sysv${UNAME_RELEASE}
1170 exit ;;
1171 RM*:ReliantUNIX-*:*:*)
1172 echo mips-sni-sysv4
1173 exit ;;
1174 RM*:SINIX-*:*:*)
1175 echo mips-sni-sysv4
1176 exit ;;
1177 *:SINIX-*:*:*)
1178 if uname -p 2>/dev/null >/dev/null ; then
1179 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1180 echo ${UNAME_MACHINE}-sni-sysv4
1181 else
1182 echo ns32k-sni-sysv
1184 exit ;;
1185 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1186 # says <Richard.M.Bartel@ccMail.Census.GOV>
1187 echo i586-unisys-sysv4
1188 exit ;;
1189 *:UNIX_System_V:4*:FTX*)
1190 # From Gerald Hewes <hewes@openmarket.com>.
1191 # How about differentiating between stratus architectures? -djm
1192 echo hppa1.1-stratus-sysv4
1193 exit ;;
1194 *:*:*:FTX*)
1195 # From seanf@swdc.stratus.com.
1196 echo i860-stratus-sysv4
1197 exit ;;
1198 i*86:VOS:*:*)
1199 # From Paul.Green@stratus.com.
1200 echo ${UNAME_MACHINE}-stratus-vos
1201 exit ;;
1202 *:VOS:*:*)
1203 # From Paul.Green@stratus.com.
1204 echo hppa1.1-stratus-vos
1205 exit ;;
1206 mc68*:A/UX:*:*)
1207 echo m68k-apple-aux${UNAME_RELEASE}
1208 exit ;;
1209 news*:NEWS-OS:6*:*)
1210 echo mips-sony-newsos6
1211 exit ;;
1212 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1213 if [ -d /usr/nec ]; then
1214 echo mips-nec-sysv${UNAME_RELEASE}
1215 else
1216 echo mips-unknown-sysv${UNAME_RELEASE}
1218 exit ;;
1219 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1220 echo powerpc-be-beos
1221 exit ;;
1222 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1223 echo powerpc-apple-beos
1224 exit ;;
1225 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1226 echo i586-pc-beos
1227 exit ;;
1228 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1229 echo i586-pc-haiku
1230 exit ;;
1231 x86_64:Haiku:*:*)
1232 echo x86_64-unknown-haiku
1233 exit ;;
1234 SX-4:SUPER-UX:*:*)
1235 echo sx4-nec-superux${UNAME_RELEASE}
1236 exit ;;
1237 SX-5:SUPER-UX:*:*)
1238 echo sx5-nec-superux${UNAME_RELEASE}
1239 exit ;;
1240 SX-6:SUPER-UX:*:*)
1241 echo sx6-nec-superux${UNAME_RELEASE}
1242 exit ;;
1243 SX-7:SUPER-UX:*:*)
1244 echo sx7-nec-superux${UNAME_RELEASE}
1245 exit ;;
1246 SX-8:SUPER-UX:*:*)
1247 echo sx8-nec-superux${UNAME_RELEASE}
1248 exit ;;
1249 SX-8R:SUPER-UX:*:*)
1250 echo sx8r-nec-superux${UNAME_RELEASE}
1251 exit ;;
1252 Power*:Rhapsody:*:*)
1253 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1254 exit ;;
1255 *:Rhapsody:*:*)
1256 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1257 exit ;;
1258 *:Darwin:*:*)
1259 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1260 eval $set_cc_for_build
1261 if test "$UNAME_PROCESSOR" = unknown ; then
1262 UNAME_PROCESSOR=powerpc
1264 if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1265 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1266 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1267 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1268 grep IS_64BIT_ARCH >/dev/null
1269 then
1270 case $UNAME_PROCESSOR in
1271 i386) UNAME_PROCESSOR=x86_64 ;;
1272 powerpc) UNAME_PROCESSOR=powerpc64 ;;
1273 esac
1276 elif test "$UNAME_PROCESSOR" = i386 ; then
1277 # Avoid executing cc on OS X 10.9, as it ships with a stub
1278 # that puts up a graphical alert prompting to install
1279 # developer tools. Any system running Mac OS X 10.7 or
1280 # later (Darwin 11 and later) is required to have a 64-bit
1281 # processor. This is not true of the ARM version of Darwin
1282 # that Apple uses in portable devices.
1283 UNAME_PROCESSOR=x86_64
1285 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1286 exit ;;
1287 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1288 UNAME_PROCESSOR=`uname -p`
1289 if test "$UNAME_PROCESSOR" = "x86"; then
1290 UNAME_PROCESSOR=i386
1291 UNAME_MACHINE=pc
1293 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1294 exit ;;
1295 *:QNX:*:4*)
1296 echo i386-pc-qnx
1297 exit ;;
1298 NEO-?:NONSTOP_KERNEL:*:*)
1299 echo neo-tandem-nsk${UNAME_RELEASE}
1300 exit ;;
1301 NSE-*:NONSTOP_KERNEL:*:*)
1302 echo nse-tandem-nsk${UNAME_RELEASE}
1303 exit ;;
1304 NSR-?:NONSTOP_KERNEL:*:*)
1305 echo nsr-tandem-nsk${UNAME_RELEASE}
1306 exit ;;
1307 *:NonStop-UX:*:*)
1308 echo mips-compaq-nonstopux
1309 exit ;;
1310 BS2000:POSIX*:*:*)
1311 echo bs2000-siemens-sysv
1312 exit ;;
1313 DS/*:UNIX_System_V:*:*)
1314 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1315 exit ;;
1316 *:Plan9:*:*)
1317 # "uname -m" is not consistent, so use $cputype instead. 386
1318 # is converted to i386 for consistency with other x86
1319 # operating systems.
1320 if test "$cputype" = "386"; then
1321 UNAME_MACHINE=i386
1322 else
1323 UNAME_MACHINE="$cputype"
1325 echo ${UNAME_MACHINE}-unknown-plan9
1326 exit ;;
1327 *:TOPS-10:*:*)
1328 echo pdp10-unknown-tops10
1329 exit ;;
1330 *:TENEX:*:*)
1331 echo pdp10-unknown-tenex
1332 exit ;;
1333 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1334 echo pdp10-dec-tops20
1335 exit ;;
1336 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1337 echo pdp10-xkl-tops20
1338 exit ;;
1339 *:TOPS-20:*:*)
1340 echo pdp10-unknown-tops20
1341 exit ;;
1342 *:ITS:*:*)
1343 echo pdp10-unknown-its
1344 exit ;;
1345 SEI:*:*:SEIUX)
1346 echo mips-sei-seiux${UNAME_RELEASE}
1347 exit ;;
1348 *:DragonFly:*:*)
1349 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1350 exit ;;
1351 *:*VMS:*:*)
1352 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1353 case "${UNAME_MACHINE}" in
1354 A*) echo alpha-dec-vms ; exit ;;
1355 I*) echo ia64-dec-vms ; exit ;;
1356 V*) echo vax-dec-vms ; exit ;;
1357 esac ;;
1358 *:XENIX:*:SysV)
1359 echo i386-pc-xenix
1360 exit ;;
1361 i*86:skyos:*:*)
1362 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1363 exit ;;
1364 i*86:rdos:*:*)
1365 echo ${UNAME_MACHINE}-pc-rdos
1366 exit ;;
1367 i*86:AROS:*:*)
1368 echo ${UNAME_MACHINE}-pc-aros
1369 exit ;;
1370 x86_64:VMkernel:*:*)
1371 echo ${UNAME_MACHINE}-unknown-esx
1372 exit ;;
1373 esac
1375 cat >&2 <<EOF
1376 $0: unable to guess system type
1378 This script, last modified $timestamp, has failed to recognize
1379 the operating system you are using. It is advised that you
1380 download the most up to date version of the config scripts from
1382 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1384 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1386 If the version you run ($0) is already up to date, please
1387 send the following data and any information you think might be
1388 pertinent to <config-patches@gnu.org> in order to provide the needed
1389 information to handle your system.
1391 config.guess timestamp = $timestamp
1393 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1394 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1395 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1396 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1398 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1399 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1401 hostinfo = `(hostinfo) 2>/dev/null`
1402 /bin/universe = `(/bin/universe) 2>/dev/null`
1403 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1404 /bin/arch = `(/bin/arch) 2>/dev/null`
1405 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1406 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1408 UNAME_MACHINE = ${UNAME_MACHINE}
1409 UNAME_RELEASE = ${UNAME_RELEASE}
1410 UNAME_SYSTEM = ${UNAME_SYSTEM}
1411 UNAME_VERSION = ${UNAME_VERSION}
1414 exit 1
1416 # Local variables:
1417 # eval: (add-hook 'write-file-hooks 'time-stamp)
1418 # time-stamp-start: "timestamp='"
1419 # time-stamp-format: "%:y-%02m-%02d"
1420 # time-stamp-end: "'"
1421 # End: