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