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