WIP towards parallel parsing
[dyninst.git] / parseThat / config.guess
1 #! /bin/sh
2 # Attempt to guess a canonical system name.
3 #   Copyright 1992-2016 Free Software Foundation, Inc.
4
5 timestamp='2016-04-02'
6
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.
11 #
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.
16 #
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/>.
19 #
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").
26 #
27 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
28 #
29 # You can get the latest version of this script from:
30 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
31 #
32 # Please send patches to <config-patches@gnu.org>.
33
34
35 me=`echo "$0" | sed -e 's,.*/,,'`
36
37 usage="\
38 Usage: $0 [OPTION]
39
40 Output the configuration name of the system \`$me' is run on.
41
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
46
47 Report bugs and patches to <config-patches@gnu.org>."
48
49 version="\
50 GNU config.guess ($timestamp)
51
52 Originally written by Per Bothner.
53 Copyright 1992-2016 Free Software Foundation, Inc.
54
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."
57
58 help="
59 Try \`$me --help' for more information."
60
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
81
82 if test $# != 0; then
83   echo "$me: too many arguments$help" >&2
84   exit 1
85 fi
86
87 trap 'exit 1' 1 2 15
88
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.
93
94 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
95 # use `HOST_CC' if defined, but it is deprecated.
96
97 # Portable tmp directory creation inspired by the Autoconf team.
98
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 ;
118         fi
119         ;;
120  ,,*)   CC_FOR_BUILD=$CC ;;
121  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
122 esac ; set_cc_for_build= ;'
123
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
128 fi
129
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
134
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
140
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
151         EOF
152         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
153         ;;
154 esac
155
156 # Note: order is significant - the case branches are not exclusive.
157
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.
167         #
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
185                 ;;
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
201                 fi
202                 ;;
203             *)
204                 os=netbsd
205                 ;;
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"`
212                 ;;
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'
222                 ;;
223             *)
224                 release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
225                 ;;
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}'`
263                 ;;
264         *5.*)
265                 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
266                 ;;
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
357         fi
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
393             fi
394         fi
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`
407                 ;;
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}
421                 ;;
422             sun4)
423                 echo sparc-sun-sunos${UNAME_RELEASE}
424                 ;;
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);
495         }
496 EOF
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}
535             fi
536         else
537             echo i586-dg-dgux${UNAME_RELEASE}
538         fi
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}
567         fi
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>
575
576                 main()
577                         {
578                         if (!__power_pc())
579                                 exit(1);
580                         puts("powerpc-ibm-aix3.2.5");
581                         exit(0);
582                         }
583 EOF
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
589                 fi
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
594         fi
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
602         fi
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}
608         fi
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
651                 fi
652                 if [ "${HP_ARCH}" = "" ]; then
653                     eval $set_cc_for_build
654                     sed 's/^            //' << EOF >$dummy.c
655
656                 #define _HPUX_SOURCE
657                 #include <stdlib.h>
658                 #include <unistd.h>
659
660                 int main ()
661                 {
662                 #if defined(_SC_KERNEL_BITS)
663                     long bits = sysconf(_SC_KERNEL_BITS);
664                 #endif
665                     long cpu  = sysconf (_SC_CPU_VERSION);
666
667                     switch (cpu)
668                         {
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)
674                                 {
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;
683                         }
684                     exit (0);
685                 }
686 EOF
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
694
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:
698             #
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
703
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
710             fi
711         fi
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>
722         int
723         main ()
724         {
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))
730             {
731               switch (cpu)
732                 {
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;
737                 }
738             }
739           else if (CPU_IS_HP_MC68K (cpu))
740             puts ("m68k-hitachi-hiuxwe2");
741           else puts ("unknown-hitachi-hiuxwe2");
742           exit (0);
743         }
744 EOF
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
769         fi
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
781         fi
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/[-(].*//'` ;;
838             *)
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
945             fi
946         fi
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
996 EOF
997         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
998         test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
999         ;;
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         eval $set_cc_for_build
1052         X86_64_ABI=
1053         # If there is a compiler, see if it is configured for 32-bit objects.
1054         if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1055             if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
1056                 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1057                 grep IS_X32 >/dev/null
1058             then
1059                 X86_64_ABI=x32
1060             fi
1061         fi
1062         echo ${UNAME_MACHINE}-pc-linux-${LIBC}${X86_64_ABI}
1063         exit ;;
1064     xtensa*:Linux:*:*)
1065         echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1066         exit ;;
1067     i*86:DYNIX/ptx:4*:*)
1068         # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1069         # earlier versions are messed up and put the nodename in both
1070         # sysname and nodename.
1071         echo i386-sequent-sysv4
1072         exit ;;
1073     i*86:UNIX_SV:4.2MP:2.*)
1074         # Unixware is an offshoot of SVR4, but it has its own version
1075         # number series starting with 2...
1076         # I am not positive that other SVR4 systems won't match this,
1077         # I just have to hope.  -- rms.
1078         # Use sysv4.2uw... so that sysv4* matches it.
1079         echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1080         exit ;;
1081     i*86:OS/2:*:*)
1082         # If we were able to find `uname', then EMX Unix compatibility
1083         # is probably installed.
1084         echo ${UNAME_MACHINE}-pc-os2-emx
1085         exit ;;
1086     i*86:XTS-300:*:STOP)
1087         echo ${UNAME_MACHINE}-unknown-stop
1088         exit ;;
1089     i*86:atheos:*:*)
1090         echo ${UNAME_MACHINE}-unknown-atheos
1091         exit ;;
1092     i*86:syllable:*:*)
1093         echo ${UNAME_MACHINE}-pc-syllable
1094         exit ;;
1095     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1096         echo i386-unknown-lynxos${UNAME_RELEASE}
1097         exit ;;
1098     i*86:*DOS:*:*)
1099         echo ${UNAME_MACHINE}-pc-msdosdjgpp
1100         exit ;;
1101     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1102         UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1103         if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1104                 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1105         else
1106                 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1107         fi
1108         exit ;;
1109     i*86:*:5:[678]*)
1110         # UnixWare 7.x, OpenUNIX and OpenServer 6.
1111         case `/bin/uname -X | grep "^Machine"` in
1112             *486*)           UNAME_MACHINE=i486 ;;
1113             *Pentium)        UNAME_MACHINE=i586 ;;
1114             *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1115         esac
1116         echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1117         exit ;;
1118     i*86:*:3.2:*)
1119         if test -f /usr/options/cb.name; then
1120                 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1121                 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1122         elif /bin/uname -X 2>/dev/null >/dev/null ; then
1123                 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1124                 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1125                 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1126                         && UNAME_MACHINE=i586
1127                 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1128                         && UNAME_MACHINE=i686
1129                 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1130                         && UNAME_MACHINE=i686
1131                 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1132         else
1133                 echo ${UNAME_MACHINE}-pc-sysv32
1134         fi
1135         exit ;;
1136     pc:*:*:*)
1137         # Left here for compatibility:
1138         # uname -m prints for DJGPP always 'pc', but it prints nothing about
1139         # the processor, so we play safe by assuming i586.
1140         # Note: whatever this is, it MUST be the same as what config.sub
1141         # prints for the "djgpp" host, or else GDB configure will decide that
1142         # this is a cross-build.
1143         echo i586-pc-msdosdjgpp
1144         exit ;;
1145     Intel:Mach:3*:*)
1146         echo i386-pc-mach3
1147         exit ;;
1148     paragon:*:*:*)
1149         echo i860-intel-osf1
1150         exit ;;
1151     i860:*:4.*:*) # i860-SVR4
1152         if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1153           echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1154         else # Add other i860-SVR4 vendors below as they are discovered.
1155           echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
1156         fi
1157         exit ;;
1158     mini*:CTIX:SYS*5:*)
1159         # "miniframe"
1160         echo m68010-convergent-sysv
1161         exit ;;
1162     mc68k:UNIX:SYSTEM5:3.51m)
1163         echo m68k-convergent-sysv
1164         exit ;;
1165     M680?0:D-NIX:5.3:*)
1166         echo m68k-diab-dnix
1167         exit ;;
1168     M68*:*:R3V[5678]*:*)
1169         test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1170     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)
1171         OS_REL=''
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     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1179         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1180           && { echo i486-ncr-sysv4; exit; } ;;
1181     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1182         OS_REL='.3'
1183         test -r /etc/.relid \
1184             && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1185         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1186             && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1187         /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1188             && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1189         /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1190             && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1191     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1192         echo m68k-unknown-lynxos${UNAME_RELEASE}
1193         exit ;;
1194     mc68030:UNIX_System_V:4.*:*)
1195         echo m68k-atari-sysv4
1196         exit ;;
1197     TSUNAMI:LynxOS:2.*:*)
1198         echo sparc-unknown-lynxos${UNAME_RELEASE}
1199         exit ;;
1200     rs6000:LynxOS:2.*:*)
1201         echo rs6000-unknown-lynxos${UNAME_RELEASE}
1202         exit ;;
1203     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1204         echo powerpc-unknown-lynxos${UNAME_RELEASE}
1205         exit ;;
1206     SM[BE]S:UNIX_SV:*:*)
1207         echo mips-dde-sysv${UNAME_RELEASE}
1208         exit ;;
1209     RM*:ReliantUNIX-*:*:*)
1210         echo mips-sni-sysv4
1211         exit ;;
1212     RM*:SINIX-*:*:*)
1213         echo mips-sni-sysv4
1214         exit ;;
1215     *:SINIX-*:*:*)
1216         if uname -p 2>/dev/null >/dev/null ; then
1217                 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1218                 echo ${UNAME_MACHINE}-sni-sysv4
1219         else
1220                 echo ns32k-sni-sysv
1221         fi
1222         exit ;;
1223     PENTIUM:*:4.0*:*)   # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1224                         # says <Richard.M.Bartel@ccMail.Census.GOV>
1225         echo i586-unisys-sysv4
1226         exit ;;
1227     *:UNIX_System_V:4*:FTX*)
1228         # From Gerald Hewes <hewes@openmarket.com>.
1229         # How about differentiating between stratus architectures? -djm
1230         echo hppa1.1-stratus-sysv4
1231         exit ;;
1232     *:*:*:FTX*)
1233         # From seanf@swdc.stratus.com.
1234         echo i860-stratus-sysv4
1235         exit ;;
1236     i*86:VOS:*:*)
1237         # From Paul.Green@stratus.com.
1238         echo ${UNAME_MACHINE}-stratus-vos
1239         exit ;;
1240     *:VOS:*:*)
1241         # From Paul.Green@stratus.com.
1242         echo hppa1.1-stratus-vos
1243         exit ;;
1244     mc68*:A/UX:*:*)
1245         echo m68k-apple-aux${UNAME_RELEASE}
1246         exit ;;
1247     news*:NEWS-OS:6*:*)
1248         echo mips-sony-newsos6
1249         exit ;;
1250     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1251         if [ -d /usr/nec ]; then
1252                 echo mips-nec-sysv${UNAME_RELEASE}
1253         else
1254                 echo mips-unknown-sysv${UNAME_RELEASE}
1255         fi
1256         exit ;;
1257     BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
1258         echo powerpc-be-beos
1259         exit ;;
1260     BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
1261         echo powerpc-apple-beos
1262         exit ;;
1263     BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
1264         echo i586-pc-beos
1265         exit ;;
1266     BePC:Haiku:*:*)     # Haiku running on Intel PC compatible.
1267         echo i586-pc-haiku
1268         exit ;;
1269     x86_64:Haiku:*:*)
1270         echo x86_64-unknown-haiku
1271         exit ;;
1272     SX-4:SUPER-UX:*:*)
1273         echo sx4-nec-superux${UNAME_RELEASE}
1274         exit ;;
1275     SX-5:SUPER-UX:*:*)
1276         echo sx5-nec-superux${UNAME_RELEASE}
1277         exit ;;
1278     SX-6:SUPER-UX:*:*)
1279         echo sx6-nec-superux${UNAME_RELEASE}
1280         exit ;;
1281     SX-7:SUPER-UX:*:*)
1282         echo sx7-nec-superux${UNAME_RELEASE}
1283         exit ;;
1284     SX-8:SUPER-UX:*:*)
1285         echo sx8-nec-superux${UNAME_RELEASE}
1286         exit ;;
1287     SX-8R:SUPER-UX:*:*)
1288         echo sx8r-nec-superux${UNAME_RELEASE}
1289         exit ;;
1290     SX-ACE:SUPER-UX:*:*)
1291         echo sxace-nec-superux${UNAME_RELEASE}
1292         exit ;;
1293     Power*:Rhapsody:*:*)
1294         echo powerpc-apple-rhapsody${UNAME_RELEASE}
1295         exit ;;
1296     *:Rhapsody:*:*)
1297         echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1298         exit ;;
1299     *:Darwin:*:*)
1300         UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1301         eval $set_cc_for_build
1302         if test "$UNAME_PROCESSOR" = unknown ; then
1303             UNAME_PROCESSOR=powerpc
1304         fi
1305         if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1306             if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1307                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1308                     (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1309                     grep IS_64BIT_ARCH >/dev/null
1310                 then
1311                     case $UNAME_PROCESSOR in
1312                         i386) UNAME_PROCESSOR=x86_64 ;;
1313                         powerpc) UNAME_PROCESSOR=powerpc64 ;;
1314                     esac
1315                 fi
1316             fi
1317         elif test "$UNAME_PROCESSOR" = i386 ; then
1318             # Avoid executing cc on OS X 10.9, as it ships with a stub
1319             # that puts up a graphical alert prompting to install
1320             # developer tools.  Any system running Mac OS X 10.7 or
1321             # later (Darwin 11 and later) is required to have a 64-bit
1322             # processor. This is not true of the ARM version of Darwin
1323             # that Apple uses in portable devices.
1324             UNAME_PROCESSOR=x86_64
1325         fi
1326         echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1327         exit ;;
1328     *:procnto*:*:* | *:QNX:[0123456789]*:*)
1329         UNAME_PROCESSOR=`uname -p`
1330         if test "$UNAME_PROCESSOR" = x86; then
1331                 UNAME_PROCESSOR=i386
1332                 UNAME_MACHINE=pc
1333         fi
1334         echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1335         exit ;;
1336     *:QNX:*:4*)
1337         echo i386-pc-qnx
1338         exit ;;
1339     NEO-?:NONSTOP_KERNEL:*:*)
1340         echo neo-tandem-nsk${UNAME_RELEASE}
1341         exit ;;
1342     NSE-*:NONSTOP_KERNEL:*:*)
1343         echo nse-tandem-nsk${UNAME_RELEASE}
1344         exit ;;
1345     NSR-?:NONSTOP_KERNEL:*:*)
1346         echo nsr-tandem-nsk${UNAME_RELEASE}
1347         exit ;;
1348     *:NonStop-UX:*:*)
1349         echo mips-compaq-nonstopux
1350         exit ;;
1351     BS2000:POSIX*:*:*)
1352         echo bs2000-siemens-sysv
1353         exit ;;
1354     DS/*:UNIX_System_V:*:*)
1355         echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1356         exit ;;
1357     *:Plan9:*:*)
1358         # "uname -m" is not consistent, so use $cputype instead. 386
1359         # is converted to i386 for consistency with other x86
1360         # operating systems.
1361         if test "$cputype" = 386; then
1362             UNAME_MACHINE=i386
1363         else
1364             UNAME_MACHINE="$cputype"
1365         fi
1366         echo ${UNAME_MACHINE}-unknown-plan9
1367         exit ;;
1368     *:TOPS-10:*:*)
1369         echo pdp10-unknown-tops10
1370         exit ;;
1371     *:TENEX:*:*)
1372         echo pdp10-unknown-tenex
1373         exit ;;
1374     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1375         echo pdp10-dec-tops20
1376         exit ;;
1377     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1378         echo pdp10-xkl-tops20
1379         exit ;;
1380     *:TOPS-20:*:*)
1381         echo pdp10-unknown-tops20
1382         exit ;;
1383     *:ITS:*:*)
1384         echo pdp10-unknown-its
1385         exit ;;
1386     SEI:*:*:SEIUX)
1387         echo mips-sei-seiux${UNAME_RELEASE}
1388         exit ;;
1389     *:DragonFly:*:*)
1390         echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1391         exit ;;
1392     *:*VMS:*:*)
1393         UNAME_MACHINE=`(uname -p) 2>/dev/null`
1394         case "${UNAME_MACHINE}" in
1395             A*) echo alpha-dec-vms ; exit ;;
1396             I*) echo ia64-dec-vms ; exit ;;
1397             V*) echo vax-dec-vms ; exit ;;
1398         esac ;;
1399     *:XENIX:*:SysV)
1400         echo i386-pc-xenix
1401         exit ;;
1402     i*86:skyos:*:*)
1403         echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
1404         exit ;;
1405     i*86:rdos:*:*)
1406         echo ${UNAME_MACHINE}-pc-rdos
1407         exit ;;
1408     i*86:AROS:*:*)
1409         echo ${UNAME_MACHINE}-pc-aros
1410         exit ;;
1411     x86_64:VMkernel:*:*)
1412         echo ${UNAME_MACHINE}-unknown-esx
1413         exit ;;
1414     amd64:Isilon\ OneFS:*:*)
1415         echo x86_64-unknown-onefs
1416         exit ;;
1417 esac
1418
1419 cat >&2 <<EOF
1420 $0: unable to guess system type
1421
1422 This script, last modified $timestamp, has failed to recognize
1423 the operating system you are using. It is advised that you
1424 download the most up to date version of the config scripts from
1425
1426   http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
1427 and
1428   http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1429
1430 If the version you run ($0) is already up to date, please
1431 send the following data and any information you think might be
1432 pertinent to <config-patches@gnu.org> in order to provide the needed
1433 information to handle your system.
1434
1435 config.guess timestamp = $timestamp
1436
1437 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1438 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1439 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1440 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1441
1442 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1443 /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
1444
1445 hostinfo               = `(hostinfo) 2>/dev/null`
1446 /bin/universe          = `(/bin/universe) 2>/dev/null`
1447 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
1448 /bin/arch              = `(/bin/arch) 2>/dev/null`
1449 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
1450 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1451
1452 UNAME_MACHINE = ${UNAME_MACHINE}
1453 UNAME_RELEASE = ${UNAME_RELEASE}
1454 UNAME_SYSTEM  = ${UNAME_SYSTEM}
1455 UNAME_VERSION = ${UNAME_VERSION}
1456 EOF
1457
1458 exit 1
1459
1460 # Local variables:
1461 # eval: (add-hook 'write-file-hooks 'time-stamp)
1462 # time-stamp-start: "timestamp='"
1463 # time-stamp-format: "%:y-%02m-%02d"
1464 # time-stamp-end: "'"
1465 # End: