2
2
# Attempt to guess a canonical system name.
3
3
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
4
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
5
5
# Free Software Foundation, Inc.
9
9
# This file is free software; you can redistribute it and/or modify it
10
10
# under the terms of the GNU General Public License as published by
27
27
# the same distribution terms that you use for the rest of that program.
30
# Originally written by Per Bothner. Please send patches (context
31
# diff format) to <config-patches@gnu.org> and include a ChangeLog
30
# Originally written by Per Bothner <per@bothner.com>.
31
# Please send patches to <config-patches@gnu.org>. Submit a context
32
# diff and a properly formatted ChangeLog entry.
34
34
# This script attempts to guess a canonical system name similar to
35
35
# config.sub. If it succeeds, it prints the system name on stdout, and
36
36
# exits with 0. Otherwise, it exits with 1.
38
# You can get the latest version of this script from:
39
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
38
# The plan is that this can be called by configure scripts if you
39
# don't specify an explicit build system type.
41
41
me=`echo "$0" | sed -e 's,.*/,,'`
170
170
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
171
171
eval $set_cc_for_build
172
172
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
173
| grep __ELF__ >/dev/null
175
175
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
176
176
# Return netbsd for either. FIX?
333
333
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
334
334
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
337
echo i386-pc-auroraux${UNAME_RELEASE}
339
336
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
340
337
eval $set_cc_for_build
811
808
echo ${UNAME_MACHINE}-pc-pw32
814
811
case ${UNAME_MACHINE} in
816
813
echo i586-pc-interix${UNAME_RELEASE}
818
authenticamd | genuineintel | EM64T)
815
EM64T | authenticamd | genuineintel)
819
816
echo x86_64-unknown-interix${UNAME_RELEASE}
825
822
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
826
823
echo i${UNAME_MACHINE}-pc-mks
831
825
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
832
826
# How do we know it's Interix rather than the generic POSIX subsystem?
833
827
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
858
852
echo ${UNAME_MACHINE}-pc-minix
861
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
862
EV5) UNAME_MACHINE=alphaev5 ;;
863
EV56) UNAME_MACHINE=alphaev56 ;;
864
PCA56) UNAME_MACHINE=alphapca56 ;;
865
PCA57) UNAME_MACHINE=alphapca56 ;;
866
EV6) UNAME_MACHINE=alphaev6 ;;
867
EV67) UNAME_MACHINE=alphaev67 ;;
868
EV68*) UNAME_MACHINE=alphaev68 ;;
870
objdump --private-headers /bin/sh | grep -q ld.so.1
871
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
872
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
875
855
eval $set_cc_for_build
876
856
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
894
874
echo frv-unknown-linux-gnu
898
eval $set_cc_for_build
899
sed 's/^ //' << EOF >$dummy.c
904
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
905
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
908
877
echo ${UNAME_MACHINE}-unknown-linux-gnu
914
883
echo ${UNAME_MACHINE}-unknown-linux-gnu
916
mips:Linux:*:* | mips64:Linux:*:*)
917
eval $set_cc_for_build
918
sed 's/^ //' << EOF >$dummy.c
920
#undef ${UNAME_MACHINE}
921
#undef ${UNAME_MACHINE}el
922
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
923
CPU=${UNAME_MACHINE}el
925
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
932
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
886
eval $set_cc_for_build
887
sed 's/^ //' << EOF >$dummy.c
891
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
894
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
901
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
906
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
909
eval $set_cc_for_build
910
sed 's/^ //' << EOF >$dummy.c
914
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
917
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
924
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
933
929
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
936
932
echo or32-unknown-linux-gnu
935
echo powerpc-unknown-linux-gnu
938
echo powerpc64-unknown-linux-gnu
941
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
942
EV5) UNAME_MACHINE=alphaev5 ;;
943
EV56) UNAME_MACHINE=alphaev56 ;;
944
PCA56) UNAME_MACHINE=alphapca56 ;;
945
PCA57) UNAME_MACHINE=alphapca56 ;;
946
EV6) UNAME_MACHINE=alphaev6 ;;
947
EV67) UNAME_MACHINE=alphaev67 ;;
948
EV68*) UNAME_MACHINE=alphaev68 ;;
950
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
951
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
952
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
939
955
echo sparc-unknown-linux-gnu
941
parisc64:Linux:*:* | hppa64:Linux:*:*)
942
echo hppa64-unknown-linux-gnu
944
957
parisc:Linux:*:* | hppa:Linux:*:*)
945
958
# Look for CPU level
946
959
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
949
962
*) echo hppa-unknown-linux-gnu ;;
953
echo powerpc64-unknown-linux-gnu
956
echo powerpc-unknown-linux-gnu
965
parisc64:Linux:*:* | hppa64:Linux:*:*)
966
echo hppa64-unknown-linux-gnu
958
968
s390:Linux:*:* | s390x:Linux:*:*)
959
969
echo ${UNAME_MACHINE}-ibm-linux
976
986
xtensa*:Linux:*:*)
977
987
echo ${UNAME_MACHINE}-unknown-linux-gnu
990
# The BFD linker knows what the default object file format is, so
991
# first see if it will tell us. cd to the root directory to prevent
992
# problems with other programs or directories called `ld' in the path.
993
# Set LC_ALL=C to ensure ld outputs messages in English.
994
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
995
| sed -ne '/supported targets:/!d
997
s/.*supported targets: *//
1000
case "$ld_supported_targets" in
1002
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
1005
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
1008
# Either a pre-BFD a.out linker (linux-gnuoldld) or
1009
# one that does not give us useful --help.
1010
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
1013
# Determine whether the default compiler is a.out or elf
1014
eval $set_cc_for_build
1015
sed 's/^ //' << EOF >$dummy.c
1016
#include <features.h>
1028
#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1038
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1043
test x"${LIBC}" != x && {
1044
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1047
test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
979
1049
i*86:DYNIX/ptx:4*:*)
980
1050
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
981
1051
# earlier versions are messed up and put the nodename in both
1004
1074
i*86:syllable:*:*)
1005
1075
echo ${UNAME_MACHINE}-pc-syllable
1007
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1077
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1008
1078
echo i386-unknown-lynxos${UNAME_RELEASE}
1112
1182
rs6000:LynxOS:2.*:*)
1113
1183
echo rs6000-unknown-lynxos${UNAME_RELEASE}
1115
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1185
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1116
1186
echo powerpc-unknown-lynxos${UNAME_RELEASE}
1118
1188
SM[BE]S:UNIX_SV:*:*)
1206
1276
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1207
1277
case $UNAME_PROCESSOR in
1209
eval $set_cc_for_build
1210
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1211
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1212
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1213
grep IS_64BIT_ARCH >/dev/null
1215
UNAME_PROCESSOR="x86_64"
1218
1278
unknown) UNAME_PROCESSOR=powerpc ;;
1220
1280
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}