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