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