/
config.guess
executable file
·1476 lines (1430 loc) · 43.1 KB
1
2
#! /bin/sh
# Attempt to guess a canonical system name.
3
# Copyright 1992-2018 Free Software Foundation, Inc.
4
5
timestamp='2018-03-08'
6
7
8
9
10
11
12
13
14
15
16
17
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
18
# along with this program; if not, see <https://www.gnu.org/licenses/>.
19
20
21
22
23
24
25
26
27
28
29
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
30
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
31
32
33
34
35
36
37
38
39
40
41
#
# Please send patches to <config-patches@gnu.org>.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
42
Options:
43
44
45
46
47
48
49
50
51
52
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
53
Copyright 1992-2018 Free Software Foundation, Inc.
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
135
case "$UNAME_SYSTEM" in
136
137
138
139
140
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
141
142
eval "$set_cc_for_build"
cat <<-EOF > "$dummy.c"
143
144
145
146
147
148
149
150
151
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
LIBC=gnu
#endif
EOF
152
153
154
155
156
157
158
159
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
# If ldd exists, use it to detect musl libc.
if command -v ldd >/dev/null && \
ldd --version 2>&1 | grep -q ^musl
then
LIBC=musl
fi
160
161
162
163
164
;;
esac
# Note: order is significant - the case branches are not exclusive.
165
case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
166
167
168
169
170
171
172
173
174
175
176
177
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
178
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
179
180
"/sbin/$sysctl" 2>/dev/null || \
"/usr/sbin/$sysctl" 2>/dev/null || \
181
echo unknown)`
182
case "$UNAME_MACHINE_ARCH" in
183
184
185
186
187
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
188
earmv*)
189
190
191
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
machine="${arch}${endian}"-unknown
192
;;
193
*) machine="$UNAME_MACHINE_ARCH"-unknown ;;
194
195
esac
# The Operating System including object format, if it has switched
196
# to ELF recently (or will in the future) and ABI.
197
case "$UNAME_MACHINE_ARCH" in
198
199
200
earm*)
os=netbsdelf
;;
201
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
202
eval "$set_cc_for_build"
203
204
205
206
207
208
209
210
211
212
213
214
215
216
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
217
# Determine ABI tags.
218
case "$UNAME_MACHINE_ARCH" in
219
220
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
221
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
222
223
;;
esac
224
225
226
227
228
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
229
case "$UNAME_VERSION" in
230
231
232
233
Debian*)
release='-gnu'
;;
*)
234
release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
235
236
237
238
239
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
240
echo "$machine-${os}${release}${abi}"
241
242
243
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
244
echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
245
246
247
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
248
echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
249
exit ;;
250
251
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
252
253
254
255
echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
exit ;;
*:MidnightBSD:*:*)
echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
256
exit ;;
257
*:ekkoBSD:*:*)
258
echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
259
260
exit ;;
*:SolidBSD:*:*)
261
echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
262
263
exit ;;
macppc:MirBSD:*:*)
264
echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
265
266
exit ;;
*:MirBSD:*:*)
267
echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
268
exit ;;
269
*:Sortix:*:*)
270
271
272
273
echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
*:Redox:*:*)
echo "$UNAME_MACHINE"-unknown-redox
274
exit ;;
275
276
277
mips:OSF1:*.*)
echo mips-dec-osf1
exit ;;
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
294
UNAME_MACHINE=alpha ;;
295
"EV4.5 (21064)")
296
UNAME_MACHINE=alpha ;;
297
"LCA4 (21066/21068)")
298
UNAME_MACHINE=alpha ;;
299
"EV5 (21164)")
300
UNAME_MACHINE=alphaev5 ;;
301
"EV5.6 (21164A)")
302
UNAME_MACHINE=alphaev56 ;;
303
"EV5.6 (21164PC)")
304
UNAME_MACHINE=alphapca56 ;;
305
"EV5.7 (21164PC)")
306
UNAME_MACHINE=alphapca57 ;;
307
"EV6 (21264)")
308
UNAME_MACHINE=alphaev6 ;;
309
"EV6.7 (21264A)")
310
UNAME_MACHINE=alphaev67 ;;
311
"EV6.8CB (21264C)")
312
UNAME_MACHINE=alphaev68 ;;
313
"EV6.8AL (21264B)")
314
UNAME_MACHINE=alphaev68 ;;
315
"EV6.8CX (21264D)")
316
UNAME_MACHINE=alphaev68 ;;
317
"EV6.9A (21264/EV69A)")
318
UNAME_MACHINE=alphaev69 ;;
319
"EV7 (21364)")
320
UNAME_MACHINE=alphaev7 ;;
321
"EV7.9 (21364A)")
322
UNAME_MACHINE=alphaev79 ;;
323
324
325
326
327
328
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
329
echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
330
331
332
333
334
335
336
337
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
338
echo "$UNAME_MACHINE"-unknown-amigaos
339
340
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
341
echo "$UNAME_MACHINE"-unknown-morphos
342
343
344
345
346
347
348
349
350
351
352
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
353
echo arm-acorn-riscix"$UNAME_RELEASE"
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
380
echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
381
382
exit ;;
sun4H:SunOS:5.*:*)
383
echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
384
385
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
386
echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
387
388
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
389
echo i386-pc-auroraux"$UNAME_RELEASE"
390
391
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
392
eval "$set_cc_for_build"
393
SUN_ARCH=i386
394
395
396
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
397
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
398
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
399
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
400
401
grep IS_64BIT_ARCH >/dev/null
then
402
SUN_ARCH=x86_64
403
404
fi
fi
405
echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
406
407
408
409
410
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
411
echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
412
413
414
415
416
417
418
419
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
420
echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
421
422
exit ;;
sun3*:SunOS:*:*)
423
echo m68k-sun-sunos"$UNAME_RELEASE"
424
425
426
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
427
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
428
429
case "`/bin/arch`" in
sun3)
430
echo m68k-sun-sunos"$UNAME_RELEASE"
431
432
;;
sun4)
433
echo sparc-sun-sunos"$UNAME_RELEASE"
434
435
436
437
;;
esac
exit ;;
aushp:SunOS:*:*)
438
echo sparc-auspex-sunos"$UNAME_RELEASE"
439
440
441
442
443
444
445
446
447
448
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
449
echo m68k-atari-mint"$UNAME_RELEASE"
450
451
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
452
echo m68k-atari-mint"$UNAME_RELEASE"
453
454
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
455
echo m68k-atari-mint"$UNAME_RELEASE"
456
457
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
458
echo m68k-milan-mint"$UNAME_RELEASE"
459
460
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
461
echo m68k-hades-mint"$UNAME_RELEASE"
462
463
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
464
echo m68k-unknown-mint"$UNAME_RELEASE"
465
466
exit ;;
m68k:machten:*:*)
467
echo m68k-apple-machten"$UNAME_RELEASE"
468
469
exit ;;
powerpc:machten:*:*)
470
echo powerpc-apple-machten"$UNAME_RELEASE"
471
472
473
474
475
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
476
echo mips-dec-ultrix"$UNAME_RELEASE"
477
478
exit ;;
VAX*:ULTRIX*:*:*)
479
echo vax-dec-ultrix"$UNAME_RELEASE"
480
481
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
482
echo clipper-intergraph-clix"$UNAME_RELEASE"
483
484
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
485
486
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
487
488
489
490
491
492
493
494
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
495
printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
496
497
#endif
#if defined (SYSTYPE_SVR4)
498
printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
499
500
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
501
printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
502
503
504
505
506
#endif
#endif
exit (-1);
}
EOF
507
508
509
$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
510
{ echo "$SYSTEM_NAME"; exit; }
511
echo mips-mips-riscos"$UNAME_RELEASE"
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
537
if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
538
then
539
540
if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
[ "$TARGET_BINARY_INTERFACE"x = x ]
541
then
542
echo m88k-dg-dgux"$UNAME_RELEASE"
543
else
544
echo m88k-dg-dguxbcs"$UNAME_RELEASE"
545
546
fi
else
547
echo i586-dg-dgux"$UNAME_RELEASE"
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
564
echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
565
566
567
568
569
570
571
572
573
574
575
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
576
IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
577
fi
578
echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
579
580
581
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
582
583
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
584
585
586
587
588
589
590
591
592
593
#include <sys/systemcfg.h>
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
594
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
595
596
597
598
599
600
601
602
603
604
605
606
607
then
echo "$SYSTEM_NAME"
else
echo rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
608
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
609
610
611
612
613
614
615
616
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/lslpp ] ; then
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
617
IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
618
fi
619
echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
620
621
622
623
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
624
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
625
626
627
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
628
echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
629
630
631
632
633
634
635
636
637
638
639
640
641
642
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
643
644
645
646
HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
case "$UNAME_MACHINE" in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
647
648
649
650
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
651
case "$sc_cpu_version" in
652
653
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
654
532) # CPU_PA_RISC2_0
655
case "$sc_kernel_bits" in
656
657
658
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
659
660
661
esac ;;
esac
fi
662
663
664
if [ "$HP_ARCH" = "" ]; then
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
697
(CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
698
699
700
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
701
if [ "$HP_ARCH" = hppa2.0w ]
702
then
703
eval "$set_cc_for_build"
704
705
706
707
708
709
710
711
712
713
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
714
if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
715
716
grep -q __LP64__
then
717
HP_ARCH=hppa2.0w
718
else
719
HP_ARCH=hppa64
720
721
fi
fi
722
echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
723
724
exit ;;
ia64:HP-UX:*:*)
725
726
HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux"$HPUX_REV"
727
728
exit ;;
3050*:HI-UX:*:*)
729
730
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
755
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
756
757
758
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
759
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
760
761
762
763
764
765
766
767
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
768
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
769
770
771
772
773
774
775
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
776
echo "$UNAME_MACHINE"-unknown-osf1mk
777
else
778
echo "$UNAME_MACHINE"-unknown-osf1
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
fi
exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
803
echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
804
805
exit ;;
CRAY*[A-Z]90:*:*:*)
806
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
807
808
809
810
811
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
812
echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
813
814
exit ;;
CRAY*T3E:*:*:*)
815
echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
816
817
exit ;;
CRAY*SV1:*:*:*)
818
echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
819
820
exit ;;
*:UNICOS/mp:*:*)
821
echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
822
823
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
824
825
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
826
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
827
828
829
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
830
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
831
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
832
833
834
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
835
echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
836
837
exit ;;
sparc*:BSD/OS:*:*)
838
echo sparc-unknown-bsdi"$UNAME_RELEASE"
839
840
exit ;;
*:BSD/OS:*:*)
841
echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
842
843
844
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
845
case "$UNAME_PROCESSOR" in
846
amd64)
847
848
849
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
850
esac
851
echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
852
853
exit ;;
i*:CYGWIN*:*)
854
echo "$UNAME_MACHINE"-pc-cygwin
855
856
exit ;;
*:MINGW64*:*)
857
echo "$UNAME_MACHINE"-pc-mingw64
858
859
exit ;;
*:MINGW*:*)
860
echo "$UNAME_MACHINE"-pc-mingw32
861
862
exit ;;
*:MSYS*:*)
863
echo "$UNAME_MACHINE"-pc-msys
864
865
exit ;;
i*:PW*:*)
866
echo "$UNAME_MACHINE"-pc-pw32
867
868
exit ;;
*:Interix*:*)
869
case "$UNAME_MACHINE" in
870
x86)
871
echo i586-pc-interix"$UNAME_RELEASE"
872
873
exit ;;
authenticamd | genuineintel | EM64T)
874
echo x86_64-unknown-interix"$UNAME_RELEASE"
875
876
exit ;;
IA64)
877
echo ia64-unknown-interix"$UNAME_RELEASE"
878
879
880
exit ;;
esac ;;
i*:UWIN*:*)
881
echo "$UNAME_MACHINE"-pc-uwin
882
883
884
885
886
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
prep*:SunOS:5.*:*)
887
echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
888
889
890
exit ;;
*:GNU:*:*)
# the GNU system
891
echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
892
893
894
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
895
echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
896
897
exit ;;
i*86:Minix:*:*)
898
echo "$UNAME_MACHINE"-pc-minix
899
900
exit ;;
aarch64:Linux:*:*)
901
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
902
903
904
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
905
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
906
907
908
909
910
911
912
913
914
915
916
917
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
918
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
919
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
920
921
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
922
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
923
924
exit ;;
arm*:Linux:*:*)
925
eval "$set_cc_for_build"
926
927
928
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
929
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
930
931
932
933
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
934
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
935
else
936
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
937
938
939
940
fi
fi
exit ;;
avr32*:Linux:*:*)
941
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
942
943
exit ;;
cris:Linux:*:*)
944
echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
945
946
exit ;;
crisv32:Linux:*:*)
947
echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
948
exit ;;
949
e2k:Linux:*:*)
950
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
951
exit ;;
952
frv:Linux:*:*)
953
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
954
955
exit ;;
hexagon:Linux:*:*)
956
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
957
958
exit ;;
i*86:Linux:*:*)
959
echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
960
961
exit ;;
ia64:Linux:*:*)
962
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
963
exit ;;
964
k1om:Linux:*:*)
965
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
966
exit ;;
967
m32r*:Linux:*:*)
968
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
969
970
exit ;;
m68*:Linux:*:*)
971
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
972
973
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
974
975
eval "$set_cc_for_build"
sed 's/^ //' << EOF > "$dummy.c"
976
977
978
979
980
981
982
983
984
985
986
987
988
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
989
990
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
991
;;
992
mips64el:Linux:*:*)
993
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
994
exit ;;
995
openrisc*:Linux:*:*)
996
echo or1k-unknown-linux-"$LIBC"
997
998
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
999
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1000
exit ;;