Message ID | 20220711170854.2291096-1-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v2] Update scripts/config.* files from upstream GNU config version | expand |
On 7/11/22 13:08, Adhemerval Zanella wrote: > This patch updates various miscellaneous files from their upstream > sources (version 2022-05-25). > > It is required for loongarch support. > > Checked on aarch64-linux-gnu. OK for 2.36. Tested on x86_64 with no regressions. Pre-commit CI is clean. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com> > --- > scripts/config.guess | 1437 +++++++++++++++++++++++++----------------- > scripts/config.sub | 693 +++++++++++--------- > 2 files changed, 1252 insertions(+), 878 deletions(-) > > diff --git a/scripts/config.guess b/scripts/config.guess > index 0f9b29c884..1817bdce90 100755 > --- a/scripts/config.guess > +++ b/scripts/config.guess > @@ -1,12 +1,14 @@ > #! /bin/sh > # Attempt to guess a canonical system name. > -# Copyright 1992-2019 Free Software Foundation, Inc. > +# Copyright 1992-2022 Free Software Foundation, Inc. > > -timestamp='2019-01-01' > +# shellcheck disable=SC2006,SC2268 # see below for rationale > + > +timestamp='2022-05-25' > > # 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 > +# 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 > @@ -27,11 +29,19 @@ timestamp='2019-01-01' > # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. > # > # You can get the latest version of this script from: > -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess > +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess > # > # Please send patches to <config-patches@gnu.org>. > > > +# The "shellcheck disable" line above the timestamp inhibits complaints > +# about features and limitations of the classic Bourne shell that were > +# superseded or lifted in POSIX. However, this script identifies a wide > +# variety of pre-POSIX systems that do not have POSIX shells at all, and > +# even some reasonably current systems (Solaris 10 as case-in-point) still > +# have a pre-POSIX /bin/sh. > + > + > me=`echo "$0" | sed -e 's,.*/,,'` > > usage="\ > @@ -50,7 +60,7 @@ version="\ > GNU config.guess ($timestamp) > > Originally written by Per Bothner. > -Copyright 1992-2019 Free Software Foundation, Inc. > +Copyright 1992-2022 Free Software Foundation, Inc. > > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." > @@ -84,6 +94,9 @@ if test $# != 0; then > exit 1 > fi > > +# Just in case it came from the environment. > +GUESS= > + > # 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 > @@ -99,8 +112,10 @@ tmp= > trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 > > set_cc_for_build() { > + # prevent multiple calls if $tmp is already set > + test "$tmp" && return 0 > : "${TMPDIR=/tmp}" > - # shellcheck disable=SC2039 > + # shellcheck disable=SC2039,SC3028 > { 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" 2>/dev/null) ; } || > { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || > @@ -110,7 +125,7 @@ set_cc_for_build() { > ,,) echo "int x;" > "$dummy.c" > for driver in cc gcc c89 c99 ; do > if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then > - CC_FOR_BUILD="$driver" > + CC_FOR_BUILD=$driver > break > fi > done > @@ -131,14 +146,12 @@ 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_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown > UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown > > -case "$UNAME_SYSTEM" in > +case $UNAME_SYSTEM in > Linux|GNU|GNU/*) > - # If the system lacks a compiler, then just pick glibc. > - # We could probably try harder. > - LIBC=gnu > + LIBC=unknown > > set_cc_for_build > cat <<-EOF > "$dummy.c" > @@ -147,24 +160,37 @@ Linux|GNU|GNU/*) > LIBC=uclibc > #elif defined(__dietlibc__) > LIBC=dietlibc > - #else > + #elif defined(__GLIBC__) > LIBC=gnu > + #else > + #include <stdarg.h> > + /* First heuristic to detect musl libc. */ > + #ifdef __DEFINED_va_list > + LIBC=musl > + #endif > #endif > EOF > - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" > + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` > + eval "$cc_set_libc" > > - # 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 > + # Second heuristic to detect musl libc. > + if [ "$LIBC" = unknown ] && > + command -v ldd >/dev/null && > + ldd --version 2>&1 | grep -q ^musl; then > + LIBC=musl > + fi > + > + # If the system lacks a compiler, then just pick glibc. > + # We could probably try harder. > + if [ "$LIBC" = unknown ]; then > + LIBC=gnu > fi > ;; > esac > > # Note: order is significant - the case branches are not exclusive. > > -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in > *:NetBSD:*:*) > # NetBSD (nbsd) targets should (where applicable) match one or > # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, > @@ -176,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > # > # 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" > UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ > - "/sbin/$sysctl" 2>/dev/null || \ > - "/usr/sbin/$sysctl" 2>/dev/null || \ > + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ > + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ > echo unknown)` > - case "$UNAME_MACHINE_ARCH" in > + case $UNAME_MACHINE_ARCH in > + aarch64eb) machine=aarch64_be-unknown ;; > armeb) machine=armeb-unknown ;; > arm*) machine=arm-unknown ;; > sh3el) machine=shl-unknown ;; > @@ -190,13 +216,13 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > earmv*) > 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 > + machine=${arch}${endian}-unknown > ;; > - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; > + *) machine=$UNAME_MACHINE_ARCH-unknown ;; > esac > # The Operating System including object format, if it has switched > # to ELF recently (or will in the future) and ABI. > - case "$UNAME_MACHINE_ARCH" in > + case $UNAME_MACHINE_ARCH in > earm*) > os=netbsdelf > ;; > @@ -217,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > ;; > esac > # Determine ABI tags. > - case "$UNAME_MACHINE_ARCH" in > + case $UNAME_MACHINE_ARCH in > earm*) > expr='s/^earmv[0-9]/-eabi/;s/eb$//' > abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` > @@ -228,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > # 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. > - case "$UNAME_VERSION" in > + case $UNAME_VERSION in > Debian*) > release='-gnu' > ;; > @@ -239,45 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: > # contains redundant information, the shorter form: > # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. > - echo "$machine-${os}${release}${abi-}" > - exit ;; > + GUESS=$machine-${os}${release}${abi-} > + ;; > *:Bitrig:*:*) > UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` > - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE > + ;; > *:OpenBSD:*:*) > UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` > - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE > + ;; > + *:SecBSD:*:*) > + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` > + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE > + ;; > *:LibertyBSD:*:*) > UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` > - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE > + ;; > *:MidnightBSD:*:*) > - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE > + ;; > *:ekkoBSD:*:*) > - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE > + ;; > *:SolidBSD:*:*) > - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE > + ;; > + *:OS108:*:*) > + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE > + ;; > macppc:MirBSD:*:*) > - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" > - exit ;; > + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE > + ;; > *:MirBSD:*:*) > - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE > + ;; > *:Sortix:*:*) > - echo "$UNAME_MACHINE"-unknown-sortix > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-sortix > + ;; > + *:Twizzler:*:*) > + GUESS=$UNAME_MACHINE-unknown-twizzler > + ;; > *:Redox:*:*) > - echo "$UNAME_MACHINE"-unknown-redox > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-redox > + ;; > mips:OSF1:*.*) > - echo mips-dec-osf1 > - exit ;; > + GUESS=mips-dec-osf1 > + ;; > alpha:OSF1:*:*) > + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. > + trap '' 0 > case $UNAME_RELEASE in > *4.0) > UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` > @@ -291,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > # 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 > + case $ALPHA_CPU_TYPE in > "EV4 (21064)") > UNAME_MACHINE=alpha ;; > "EV4.5 (21064)") > @@ -328,117 +366,121 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > # 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. > - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" > - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. > - exitcode=$? > - trap '' 0 > - exit $exitcode ;; > + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` > + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL > + ;; > Amiga*:UNIX_System_V:4.0:*) > - echo m68k-unknown-sysv4 > - exit ;; > + GUESS=m68k-unknown-sysv4 > + ;; > *:[Aa]miga[Oo][Ss]:*:*) > - echo "$UNAME_MACHINE"-unknown-amigaos > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-amigaos > + ;; > *:[Mm]orph[Oo][Ss]:*:*) > - echo "$UNAME_MACHINE"-unknown-morphos > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-morphos > + ;; > *:OS/390:*:*) > - echo i370-ibm-openedition > - exit ;; > + GUESS=i370-ibm-openedition > + ;; > *:z/VM:*:*) > - echo s390-ibm-zvmoe > - exit ;; > + GUESS=s390-ibm-zvmoe > + ;; > *:OS400:*:*) > - echo powerpc-ibm-os400 > - exit ;; > + GUESS=powerpc-ibm-os400 > + ;; > arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) > - echo arm-acorn-riscix"$UNAME_RELEASE" > - exit ;; > + GUESS=arm-acorn-riscix$UNAME_RELEASE > + ;; > arm*:riscos:*:*|arm*:RISCOS:*:*) > - echo arm-unknown-riscos > - exit ;; > + GUESS=arm-unknown-riscos > + ;; > SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) > - echo hppa1.1-hitachi-hiuxmpp > - exit ;; > + GUESS=hppa1.1-hitachi-hiuxmpp > + ;; > 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 ;; > + case `(/bin/universe) 2>/dev/null` in > + att) GUESS=pyramid-pyramid-sysv3 ;; > + *) GUESS=pyramid-pyramid-bsd ;; > + esac > + ;; > NILE*:*:*:dcosx) > - echo pyramid-pyramid-svr4 > - exit ;; > + GUESS=pyramid-pyramid-svr4 > + ;; > DRS?6000:unix:4.0:6*) > - echo sparc-icl-nx6 > - exit ;; > + GUESS=sparc-icl-nx6 > + ;; > 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 ;; > + sparc) GUESS=sparc-icl-nx7 ;; > + esac > + ;; > s390x:SunOS:*:*) > - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" > - exit ;; > + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` > + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL > + ;; > sun4H:SunOS:5.*:*) > - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" > - exit ;; > + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` > + GUESS=sparc-hal-solaris2$SUN_REL > + ;; > sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) > - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" > - exit ;; > + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` > + GUESS=sparc-sun-solaris2$SUN_REL > + ;; > i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) > - echo i386-pc-auroraux"$UNAME_RELEASE" > - exit ;; > + GUESS=i386-pc-auroraux$UNAME_RELEASE > + ;; > i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) > set_cc_for_build > SUN_ARCH=i386 > # 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. > - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then > + if test "$CC_FOR_BUILD" != no_compiler_found; then > if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ > - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ > + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ > grep IS_64BIT_ARCH >/dev/null > then > SUN_ARCH=x86_64 > fi > fi > - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" > - exit ;; > + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` > + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL > + ;; > 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. > - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" > - exit ;; > + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` > + GUESS=sparc-sun-solaris3$SUN_REL > + ;; > sun4*:SunOS:*:*) > - case "`/usr/bin/arch -k`" in > + 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'. > - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" > - exit ;; > + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` > + GUESS=sparc-sun-sunos$SUN_REL > + ;; > sun3*:SunOS:*:*) > - echo m68k-sun-sunos"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-sun-sunos$UNAME_RELEASE > + ;; > sun*:*:4.2BSD:*) > UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` > test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 > - case "`/bin/arch`" in > + case `/bin/arch` in > sun3) > - echo m68k-sun-sunos"$UNAME_RELEASE" > + GUESS=m68k-sun-sunos$UNAME_RELEASE > ;; > sun4) > - echo sparc-sun-sunos"$UNAME_RELEASE" > + GUESS=sparc-sun-sunos$UNAME_RELEASE > ;; > esac > - exit ;; > + ;; > aushp:SunOS:*:*) > - echo sparc-auspex-sunos"$UNAME_RELEASE" > - exit ;; > + GUESS=sparc-auspex-sunos$UNAME_RELEASE > + ;; > # 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 > @@ -448,41 +490,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in > # MiNT. But MiNT is downward compatible to TOS, so this should > # be no problem. > atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) > - echo m68k-atari-mint"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-atari-mint$UNAME_RELEASE > + ;; > atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) > - echo m68k-atari-mint"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-atari-mint$UNAME_RELEASE > + ;; > *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) > - echo m68k-atari-mint"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-atari-mint$UNAME_RELEASE > + ;; > milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) > - echo m68k-milan-mint"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-milan-mint$UNAME_RELEASE > + ;; > hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) > - echo m68k-hades-mint"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-hades-mint$UNAME_RELEASE > + ;; > *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) > - echo m68k-unknown-mint"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-unknown-mint$UNAME_RELEASE > + ;; > m68k:machten:*:*) > - echo m68k-apple-machten"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-apple-machten$UNAME_RELEASE > + ;; > powerpc:machten:*:*) > - echo powerpc-apple-machten"$UNAME_RELEASE" > - exit ;; > + GUESS=powerpc-apple-machten$UNAME_RELEASE > + ;; > RISC*:Mach:*:*) > - echo mips-dec-mach_bsd4.3 > - exit ;; > + GUESS=mips-dec-mach_bsd4.3 > + ;; > RISC*:ULTRIX:*:*) > - echo mips-dec-ultrix"$UNAME_RELEASE" > - exit ;; > + GUESS=mips-dec-ultrix$UNAME_RELEASE > + ;; > VAX*:ULTRIX*:*:*) > - echo vax-dec-ultrix"$UNAME_RELEASE" > - exit ;; > + GUESS=vax-dec-ultrix$UNAME_RELEASE > + ;; > 2020:CLIX:*:* | 2430:CLIX:*:*) > - echo clipper-intergraph-clix"$UNAME_RELEASE" > - exit ;; > + GUESS=clipper-intergraph-clix$UNAME_RELEASE > + ;; > mips:*:*:UMIPS | mips:*:*:RISCos) > set_cc_for_build > sed 's/^ //' << EOF > "$dummy.c" > @@ -510,75 +552,76 @@ EOF > dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && > SYSTEM_NAME=`"$dummy" "$dummyarg"` && > { echo "$SYSTEM_NAME"; exit; } > - echo mips-mips-riscos"$UNAME_RELEASE" > - exit ;; > + GUESS=mips-mips-riscos$UNAME_RELEASE > + ;; > Motorola:PowerMAX_OS:*:*) > - echo powerpc-motorola-powermax > - exit ;; > + GUESS=powerpc-motorola-powermax > + ;; > Motorola:*:4.3:PL8-*) > - echo powerpc-harris-powermax > - exit ;; > + GUESS=powerpc-harris-powermax > + ;; > Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) > - echo powerpc-harris-powermax > - exit ;; > + GUESS=powerpc-harris-powermax > + ;; > Night_Hawk:Power_UNIX:*:*) > - echo powerpc-harris-powerunix > - exit ;; > + GUESS=powerpc-harris-powerunix > + ;; > m88k:CX/UX:7*:*) > - echo m88k-harris-cxux7 > - exit ;; > + GUESS=m88k-harris-cxux7 > + ;; > m88k:*:4*:R4*) > - echo m88k-motorola-sysv4 > - exit ;; > + GUESS=m88k-motorola-sysv4 > + ;; > m88k:*:3*:R3*) > - echo m88k-motorola-sysv3 > - exit ;; > + GUESS=m88k-motorola-sysv3 > + ;; > AViiON:dgux:*:*) > # DG/UX returns AViiON for all architectures > UNAME_PROCESSOR=`/usr/bin/uname -p` > - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] > + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 > then > - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ > - [ "$TARGET_BINARY_INTERFACE"x = x ] > + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ > + test "$TARGET_BINARY_INTERFACE"x = x > then > - echo m88k-dg-dgux"$UNAME_RELEASE" > + GUESS=m88k-dg-dgux$UNAME_RELEASE > else > - echo m88k-dg-dguxbcs"$UNAME_RELEASE" > + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE > fi > else > - echo i586-dg-dgux"$UNAME_RELEASE" > + GUESS=i586-dg-dgux$UNAME_RELEASE > fi > - exit ;; > + ;; > M88*:DolphinOS:*:*) # DolphinOS (SVR3) > - echo m88k-dolphin-sysv3 > - exit ;; > + GUESS=m88k-dolphin-sysv3 > + ;; > M88*:*:R3*:*) > # Delta 88k system running SVR3 > - echo m88k-motorola-sysv3 > - exit ;; > + GUESS=m88k-motorola-sysv3 > + ;; > XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) > - echo m88k-tektronix-sysv3 > - exit ;; > + GUESS=m88k-tektronix-sysv3 > + ;; > Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) > - echo m68k-tektronix-bsd > - exit ;; > + GUESS=m68k-tektronix-bsd > + ;; > *:IRIX*:*:*) > - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" > - exit ;; > + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` > + GUESS=mips-sgi-irix$IRIX_REL > + ;; > ????????: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 ' > + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id > + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' > i*86:AIX:*:*) > - echo i386-ibm-aix > - exit ;; > + GUESS=i386-ibm-aix > + ;; > ia64:AIX:*:*) > - if [ -x /usr/bin/oslevel ] ; then > + if test -x /usr/bin/oslevel ; then > IBM_REV=`/usr/bin/oslevel` > else > - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" > + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE > fi > - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" > - exit ;; > + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV > + ;; > *:AIX:2:3) > if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then > set_cc_for_build > @@ -595,16 +638,16 @@ EOF > EOF > if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` > then > - echo "$SYSTEM_NAME" > + GUESS=$SYSTEM_NAME > else > - echo rs6000-ibm-aix3.2.5 > + GUESS=rs6000-ibm-aix3.2.5 > fi > elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then > - echo rs6000-ibm-aix3.2.4 > + GUESS=rs6000-ibm-aix3.2.4 > else > - echo rs6000-ibm-aix3.2 > + GUESS=rs6000-ibm-aix3.2 > fi > - exit ;; > + ;; > *:AIX:*:[4567]) > IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` > if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then > @@ -612,56 +655,56 @@ EOF > else > IBM_ARCH=powerpc > fi > - if [ -x /usr/bin/lslpp ] ; then > - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | > + if test -x /usr/bin/lslpp ; then > + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ > awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` > else > - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" > + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE > fi > - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" > - exit ;; > + GUESS=$IBM_ARCH-ibm-aix$IBM_REV > + ;; > *:AIX:*:*) > - echo rs6000-ibm-aix > - exit ;; > + GUESS=rs6000-ibm-aix > + ;; > ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) > - echo romp-ibm-bsd4.4 > - exit ;; > + GUESS=romp-ibm-bsd4.4 > + ;; > ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and > - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to > - exit ;; # report: romp-ibm BSD 4.3 > + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to > + ;; # report: romp-ibm BSD 4.3 > *:BOSX:*:*) > - echo rs6000-bull-bosx > - exit ;; > + GUESS=rs6000-bull-bosx > + ;; > DPX/2?00:B.O.S.:*:*) > - echo m68k-bull-sysv3 > - exit ;; > + GUESS=m68k-bull-sysv3 > + ;; > 9000/[34]??:4.3bsd:1.*:*) > - echo m68k-hp-bsd > - exit ;; > + GUESS=m68k-hp-bsd > + ;; > hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) > - echo m68k-hp-bsd4.4 > - exit ;; > + GUESS=m68k-hp-bsd4.4 > + ;; > 9000/[34678]??:HP-UX:*:*) > - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` > - case "$UNAME_MACHINE" in > + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` > + case $UNAME_MACHINE in > 9000/31?) HP_ARCH=m68000 ;; > 9000/[34]??) HP_ARCH=m68k ;; > 9000/[678][0-9][0-9]) > - if [ -x /usr/bin/getconf ]; then > + if test -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` > - case "$sc_cpu_version" in > + case $sc_cpu_version in > 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 > 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 > 532) # CPU_PA_RISC2_0 > - case "$sc_kernel_bits" in > + case $sc_kernel_bits in > 32) HP_ARCH=hppa2.0n ;; > 64) HP_ARCH=hppa2.0w ;; > '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 > esac ;; > esac > fi > - if [ "$HP_ARCH" = "" ]; then > + if test "$HP_ARCH" = ""; then > set_cc_for_build > sed 's/^ //' << EOF > "$dummy.c" > > @@ -700,7 +743,7 @@ EOF > test -z "$HP_ARCH" && HP_ARCH=hppa > fi ;; > esac > - if [ "$HP_ARCH" = hppa2.0w ] > + if test "$HP_ARCH" = hppa2.0w > then > set_cc_for_build > > @@ -721,12 +764,12 @@ EOF > HP_ARCH=hppa64 > fi > fi > - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" > - exit ;; > + GUESS=$HP_ARCH-hp-hpux$HPUX_REV > + ;; > ia64:HP-UX:*:*) > - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` > - echo ia64-hp-hpux"$HPUX_REV" > - exit ;; > + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` > + GUESS=ia64-hp-hpux$HPUX_REV > + ;; > 3050*:HI-UX:*:*) > set_cc_for_build > sed 's/^ //' << EOF > "$dummy.c" > @@ -756,36 +799,36 @@ EOF > EOF > $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && > { echo "$SYSTEM_NAME"; exit; } > - echo unknown-hitachi-hiuxwe2 > - exit ;; > + GUESS=unknown-hitachi-hiuxwe2 > + ;; > 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) > - echo hppa1.1-hp-bsd > - exit ;; > + GUESS=hppa1.1-hp-bsd > + ;; > 9000/8??:4.3bsd:*:*) > - echo hppa1.0-hp-bsd > - exit ;; > + GUESS=hppa1.0-hp-bsd > + ;; > *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) > - echo hppa1.0-hp-mpeix > - exit ;; > + GUESS=hppa1.0-hp-mpeix > + ;; > hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) > - echo hppa1.1-hp-osf > - exit ;; > + GUESS=hppa1.1-hp-osf > + ;; > hp8??:OSF1:*:*) > - echo hppa1.0-hp-osf > - exit ;; > + GUESS=hppa1.0-hp-osf > + ;; > i*86:OSF1:*:*) > - if [ -x /usr/sbin/sysversion ] ; then > - echo "$UNAME_MACHINE"-unknown-osf1mk > + if test -x /usr/sbin/sysversion ; then > + GUESS=$UNAME_MACHINE-unknown-osf1mk > else > - echo "$UNAME_MACHINE"-unknown-osf1 > + GUESS=$UNAME_MACHINE-unknown-osf1 > fi > - exit ;; > + ;; > parisc*:Lites*:*:*) > - echo hppa1.1-hp-lites > - exit ;; > + GUESS=hppa1.1-hp-lites > + ;; > C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) > - echo c1-convex-bsd > - exit ;; > + GUESS=c1-convex-bsd > + ;; > C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) > if getsysinfo -f scalar_acc > then echo c32-convex-bsd > @@ -793,17 +836,18 @@ EOF > fi > exit ;; > C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) > - echo c34-convex-bsd > - exit ;; > + GUESS=c34-convex-bsd > + ;; > C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) > - echo c38-convex-bsd > - exit ;; > + GUESS=c38-convex-bsd > + ;; > C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) > - echo c4-convex-bsd > - exit ;; > + GUESS=c4-convex-bsd > + ;; > CRAY*Y-MP:*:*:*) > - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' > - exit ;; > + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` > + GUESS=ymp-cray-unicos$CRAY_REL > + ;; > CRAY*[A-Z]90:*:*:*) > echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ > | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ > @@ -811,114 +855,129 @@ EOF > -e 's/\.[^.]*$/.X/' > exit ;; > CRAY*TS:*:*:*) > - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' > - exit ;; > + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` > + GUESS=t90-cray-unicos$CRAY_REL > + ;; > CRAY*T3E:*:*:*) > - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' > - exit ;; > + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` > + GUESS=alphaev5-cray-unicosmk$CRAY_REL > + ;; > CRAY*SV1:*:*:*) > - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' > - exit ;; > + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` > + GUESS=sv1-cray-unicos$CRAY_REL > + ;; > *:UNICOS/mp:*:*) > - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' > - exit ;; > + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` > + GUESS=craynv-cray-unicosmp$CRAY_REL > + ;; > F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) > FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` > FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` > FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` > - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" > - exit ;; > + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} > + ;; > 5000:UNIX_System_V:4.*:*) > FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` > FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` > - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" > - exit ;; > + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} > + ;; > i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) > - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE > + ;; > sparc*:BSD/OS:*:*) > - echo sparc-unknown-bsdi"$UNAME_RELEASE" > - exit ;; > + GUESS=sparc-unknown-bsdi$UNAME_RELEASE > + ;; > *:BSD/OS:*:*) > - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE > + ;; > arm:FreeBSD:*:*) > UNAME_PROCESSOR=`uname -p` > set_cc_for_build > if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ > | grep -q __ARM_PCS_VFP > then > - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi > + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` > + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi > else > - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf > + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` > + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf > fi > - exit ;; > + ;; > *:FreeBSD:*:*) > UNAME_PROCESSOR=`/usr/bin/uname -p` > - case "$UNAME_PROCESSOR" in > + case $UNAME_PROCESSOR in > amd64) > UNAME_PROCESSOR=x86_64 ;; > i386) > UNAME_PROCESSOR=i586 ;; > esac > - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" > - exit ;; > + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` > + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL > + ;; > i*:CYGWIN*:*) > - echo "$UNAME_MACHINE"-pc-cygwin > - exit ;; > + GUESS=$UNAME_MACHINE-pc-cygwin > + ;; > *:MINGW64*:*) > - echo "$UNAME_MACHINE"-pc-mingw64 > - exit ;; > + GUESS=$UNAME_MACHINE-pc-mingw64 > + ;; > *:MINGW*:*) > - echo "$UNAME_MACHINE"-pc-mingw32 > - exit ;; > + GUESS=$UNAME_MACHINE-pc-mingw32 > + ;; > *:MSYS*:*) > - echo "$UNAME_MACHINE"-pc-msys > - exit ;; > + GUESS=$UNAME_MACHINE-pc-msys > + ;; > i*:PW*:*) > - echo "$UNAME_MACHINE"-pc-pw32 > - exit ;; > + GUESS=$UNAME_MACHINE-pc-pw32 > + ;; > + *:SerenityOS:*:*) > + GUESS=$UNAME_MACHINE-pc-serenity > + ;; > *:Interix*:*) > - case "$UNAME_MACHINE" in > + case $UNAME_MACHINE in > x86) > - echo i586-pc-interix"$UNAME_RELEASE" > - exit ;; > + GUESS=i586-pc-interix$UNAME_RELEASE > + ;; > authenticamd | genuineintel | EM64T) > - echo x86_64-unknown-interix"$UNAME_RELEASE" > - exit ;; > + GUESS=x86_64-unknown-interix$UNAME_RELEASE > + ;; > IA64) > - echo ia64-unknown-interix"$UNAME_RELEASE" > - exit ;; > + GUESS=ia64-unknown-interix$UNAME_RELEASE > + ;; > esac ;; > i*:UWIN*:*) > - echo "$UNAME_MACHINE"-pc-uwin > - exit ;; > + GUESS=$UNAME_MACHINE-pc-uwin > + ;; > amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) > - echo x86_64-pc-cygwin > - exit ;; > + GUESS=x86_64-pc-cygwin > + ;; > prep*:SunOS:5.*:*) > - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" > - exit ;; > + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` > + GUESS=powerpcle-unknown-solaris2$SUN_REL > + ;; > *:GNU:*:*) > # the GNU system > - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" > - exit ;; > + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` > + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` > + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL > + ;; > *:GNU/*:*:*) > # other systems with GNU libc and userland > - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" > - exit ;; > + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` > + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` > + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC > + ;; > *:Minix:*:*) > - echo "$UNAME_MACHINE"-unknown-minix > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-minix > + ;; > aarch64:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > aarch64_be:Linux:*:*) > UNAME_MACHINE=aarch64_be > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > alpha:Linux:*:*) > - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in > + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in > EV5) UNAME_MACHINE=alphaev5 ;; > EV56) UNAME_MACHINE=alphaev56 ;; > PCA56) UNAME_MACHINE=alphapca56 ;; > @@ -929,183 +988,236 @@ EOF > esac > objdump --private-headers /bin/sh | grep -q ld.so.1 > if test "$?" = 0 ; then LIBC=gnulibc1 ; fi > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > - arc:Linux:*:* | arceb:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > arm*:Linux:*:*) > set_cc_for_build > if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ > | grep -q __ARM_EABI__ > then > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > else > if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ > | grep -q __ARM_PCS_VFP > then > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi > + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi > else > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf > + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf > fi > fi > - exit ;; > + ;; > avr32*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > cris:Linux:*:*) > - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-axis-linux-$LIBC > + ;; > crisv32:Linux:*:*) > - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-axis-linux-$LIBC > + ;; > e2k:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > frv:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > hexagon:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > i*86:Linux:*:*) > - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-pc-linux-$LIBC > + ;; > ia64:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > k1om:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > m32r*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > m68*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > mips:Linux:*:* | mips64:Linux:*:*) > set_cc_for_build > + IS_GLIBC=0 > + test x"${LIBC}" = xgnu && IS_GLIBC=1 > sed 's/^ //' << EOF > "$dummy.c" > #undef CPU > - #undef ${UNAME_MACHINE} > - #undef ${UNAME_MACHINE}el > + #undef mips > + #undef mipsel > + #undef mips64 > + #undef mips64el > + #if ${IS_GLIBC} && defined(_ABI64) > + LIBCABI=gnuabi64 > + #else > + #if ${IS_GLIBC} && defined(_ABIN32) > + LIBCABI=gnuabin32 > + #else > + LIBCABI=${LIBC} > + #endif > + #endif > + > + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 > + CPU=mipsisa64r6 > + #else > + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 > + CPU=mipsisa32r6 > + #else > + #if defined(__mips64) > + CPU=mips64 > + #else > + CPU=mips > + #endif > + #endif > + #endif > + > #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) > - CPU=${UNAME_MACHINE}el > + MIPS_ENDIAN=el > #else > #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) > - CPU=${UNAME_MACHINE} > + MIPS_ENDIAN= > #else > - CPU= > + MIPS_ENDIAN= > #endif > #endif > EOF > - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" > - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } > + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` > + eval "$cc_set_vars" > + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } > ;; > mips64el:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > openrisc*:Linux:*:*) > - echo or1k-unknown-linux-"$LIBC" > - exit ;; > + GUESS=or1k-unknown-linux-$LIBC > + ;; > or32:Linux:*:* | or1k*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > padre:Linux:*:*) > - echo sparc-unknown-linux-"$LIBC" > - exit ;; > + GUESS=sparc-unknown-linux-$LIBC > + ;; > parisc64:Linux:*:* | hppa64:Linux:*:*) > - echo hppa64-unknown-linux-"$LIBC" > - exit ;; > + GUESS=hppa64-unknown-linux-$LIBC > + ;; > parisc:Linux:*:* | hppa:Linux:*:*) > # Look for CPU level > case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in > - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; > - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; > - *) echo hppa-unknown-linux-"$LIBC" ;; > + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; > + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; > + *) GUESS=hppa-unknown-linux-$LIBC ;; > esac > - exit ;; > + ;; > ppc64:Linux:*:*) > - echo powerpc64-unknown-linux-"$LIBC" > - exit ;; > + GUESS=powerpc64-unknown-linux-$LIBC > + ;; > ppc:Linux:*:*) > - echo powerpc-unknown-linux-"$LIBC" > - exit ;; > + GUESS=powerpc-unknown-linux-$LIBC > + ;; > ppc64le:Linux:*:*) > - echo powerpc64le-unknown-linux-"$LIBC" > - exit ;; > + GUESS=powerpc64le-unknown-linux-$LIBC > + ;; > ppcle:Linux:*:*) > - echo powerpcle-unknown-linux-"$LIBC" > - exit ;; > - riscv32:Linux:*:* | riscv64:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=powerpcle-unknown-linux-$LIBC > + ;; > + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > s390:Linux:*:* | s390x:Linux:*:*) > - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC > + ;; > sh64*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > sh*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > sparc:Linux:*:* | sparc64:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > tile*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > vax:Linux:*:*) > - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-dec-linux-$LIBC > + ;; > x86_64:Linux:*:*) > - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" > - exit ;; > + set_cc_for_build > + CPU=$UNAME_MACHINE > + LIBCABI=$LIBC > + if test "$CC_FOR_BUILD" != no_compiler_found; then > + ABI=64 > + sed 's/^ //' << EOF > "$dummy.c" > + #ifdef __i386__ > + ABI=x86 > + #else > + #ifdef __ILP32__ > + ABI=x32 > + #endif > + #endif > +EOF > + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` > + eval "$cc_set_abi" > + case $ABI in > + x86) CPU=i686 ;; > + x32) LIBCABI=${LIBC}x32 ;; > + esac > + fi > + GUESS=$CPU-pc-linux-$LIBCABI > + ;; > xtensa*:Linux:*:*) > - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC > + ;; > i*86:DYNIX/ptx:4*:*) > # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. > # earlier versions are messed up and put the nodename in both > # sysname and nodename. > - echo i386-sequent-sysv4 > - exit ;; > + GUESS=i386-sequent-sysv4 > + ;; > i*86:UNIX_SV:4.2MP:2.*) > # Unixware is an offshoot of SVR4, but it has its own version > # number series starting with 2... > # I am not positive that other SVR4 systems won't match this, > # I just have to hope. -- rms. > # Use sysv4.2uw... so that sysv4* matches it. > - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" > - exit ;; > + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION > + ;; > i*86:OS/2:*:*) > # If we were able to find `uname', then EMX Unix compatibility > # is probably installed. > - echo "$UNAME_MACHINE"-pc-os2-emx > - exit ;; > + GUESS=$UNAME_MACHINE-pc-os2-emx > + ;; > i*86:XTS-300:*:STOP) > - echo "$UNAME_MACHINE"-unknown-stop > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-stop > + ;; > i*86:atheos:*:*) > - echo "$UNAME_MACHINE"-unknown-atheos > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-atheos > + ;; > i*86:syllable:*:*) > - echo "$UNAME_MACHINE"-pc-syllable > - exit ;; > + GUESS=$UNAME_MACHINE-pc-syllable > + ;; > i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) > - echo i386-unknown-lynxos"$UNAME_RELEASE" > - exit ;; > + GUESS=i386-unknown-lynxos$UNAME_RELEASE > + ;; > i*86:*DOS:*:*) > - echo "$UNAME_MACHINE"-pc-msdosdjgpp > - exit ;; > + GUESS=$UNAME_MACHINE-pc-msdosdjgpp > + ;; > i*86:*:4.*:*) > UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` > if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then > - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" > + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL > else > - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" > + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL > fi > - exit ;; > + ;; > i*86:*:5:[678]*) > # UnixWare 7.x, OpenUNIX and OpenServer 6. > case `/bin/uname -X | grep "^Machine"` in > @@ -1113,12 +1225,12 @@ EOF > *Pentium) UNAME_MACHINE=i586 ;; > *Pent*|*Celeron) UNAME_MACHINE=i686 ;; > esac > - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} > + ;; > i*86:*:3.2:*) > if test -f /usr/options/cb.name; then > UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` > - echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" > + GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL > elif /bin/uname -X 2>/dev/null >/dev/null ; then > UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` > (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 > @@ -1128,11 +1240,11 @@ EOF > && UNAME_MACHINE=i686 > (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ > && UNAME_MACHINE=i686 > - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" > + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL > else > - echo "$UNAME_MACHINE"-pc-sysv32 > + GUESS=$UNAME_MACHINE-pc-sysv32 > fi > - exit ;; > + ;; > pc:*:*:*) > # Left here for compatibility: > # uname -m prints for DJGPP always 'pc', but it prints nothing about > @@ -1140,31 +1252,31 @@ EOF > # Note: whatever this is, it MUST be the same as what config.sub > # prints for the "djgpp" host, or else GDB configure will decide that > # this is a cross-build. > - echo i586-pc-msdosdjgpp > - exit ;; > + GUESS=i586-pc-msdosdjgpp > + ;; > Intel:Mach:3*:*) > - echo i386-pc-mach3 > - exit ;; > + GUESS=i386-pc-mach3 > + ;; > paragon:*:*:*) > - echo i860-intel-osf1 > - exit ;; > + GUESS=i860-intel-osf1 > + ;; > i860:*:4.*:*) # i860-SVR4 > if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then > - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 > + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 > else # Add other i860-SVR4 vendors below as they are discovered. > - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 > + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 > fi > - exit ;; > + ;; > mini*:CTIX:SYS*5:*) > # "miniframe" > - echo m68010-convergent-sysv > - exit ;; > + GUESS=m68010-convergent-sysv > + ;; > mc68k:UNIX:SYSTEM5:3.51m) > - echo m68k-convergent-sysv > - exit ;; > + GUESS=m68k-convergent-sysv > + ;; > M680?0:D-NIX:5.3:*) > - echo m68k-diab-dnix > - exit ;; > + GUESS=m68k-diab-dnix > + ;; > M68*:*:R3V[5678]*:*) > test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; > 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) > @@ -1189,253 +1301,407 @@ EOF > /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ > && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; > m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) > - echo m68k-unknown-lynxos"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-unknown-lynxos$UNAME_RELEASE > + ;; > mc68030:UNIX_System_V:4.*:*) > - echo m68k-atari-sysv4 > - exit ;; > + GUESS=m68k-atari-sysv4 > + ;; > TSUNAMI:LynxOS:2.*:*) > - echo sparc-unknown-lynxos"$UNAME_RELEASE" > - exit ;; > + GUESS=sparc-unknown-lynxos$UNAME_RELEASE > + ;; > rs6000:LynxOS:2.*:*) > - echo rs6000-unknown-lynxos"$UNAME_RELEASE" > - exit ;; > + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE > + ;; > PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) > - echo powerpc-unknown-lynxos"$UNAME_RELEASE" > - exit ;; > + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE > + ;; > SM[BE]S:UNIX_SV:*:*) > - echo mips-dde-sysv"$UNAME_RELEASE" > - exit ;; > + GUESS=mips-dde-sysv$UNAME_RELEASE > + ;; > RM*:ReliantUNIX-*:*:*) > - echo mips-sni-sysv4 > - exit ;; > + GUESS=mips-sni-sysv4 > + ;; > RM*:SINIX-*:*:*) > - echo mips-sni-sysv4 > - exit ;; > + GUESS=mips-sni-sysv4 > + ;; > *:SINIX-*:*:*) > if uname -p 2>/dev/null >/dev/null ; then > UNAME_MACHINE=`(uname -p) 2>/dev/null` > - echo "$UNAME_MACHINE"-sni-sysv4 > + GUESS=$UNAME_MACHINE-sni-sysv4 > else > - echo ns32k-sni-sysv > + GUESS=ns32k-sni-sysv > fi > - exit ;; > + ;; > PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort > # says <Richard.M.Bartel@ccMail.Census.GOV> > - echo i586-unisys-sysv4 > - exit ;; > + GUESS=i586-unisys-sysv4 > + ;; > *:UNIX_System_V:4*:FTX*) > # From Gerald Hewes <hewes@openmarket.com>. > # How about differentiating between stratus architectures? -djm > - echo hppa1.1-stratus-sysv4 > - exit ;; > + GUESS=hppa1.1-stratus-sysv4 > + ;; > *:*:*:FTX*) > # From seanf@swdc.stratus.com. > - echo i860-stratus-sysv4 > - exit ;; > + GUESS=i860-stratus-sysv4 > + ;; > i*86:VOS:*:*) > # From Paul.Green@stratus.com. > - echo "$UNAME_MACHINE"-stratus-vos > - exit ;; > + GUESS=$UNAME_MACHINE-stratus-vos > + ;; > *:VOS:*:*) > # From Paul.Green@stratus.com. > - echo hppa1.1-stratus-vos > - exit ;; > + GUESS=hppa1.1-stratus-vos > + ;; > mc68*:A/UX:*:*) > - echo m68k-apple-aux"$UNAME_RELEASE" > - exit ;; > + GUESS=m68k-apple-aux$UNAME_RELEASE > + ;; > news*:NEWS-OS:6*:*) > - echo mips-sony-newsos6 > - exit ;; > + GUESS=mips-sony-newsos6 > + ;; > R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) > - if [ -d /usr/nec ]; then > - echo mips-nec-sysv"$UNAME_RELEASE" > + if test -d /usr/nec; then > + GUESS=mips-nec-sysv$UNAME_RELEASE > else > - echo mips-unknown-sysv"$UNAME_RELEASE" > + GUESS=mips-unknown-sysv$UNAME_RELEASE > fi > - exit ;; > + ;; > BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. > - echo powerpc-be-beos > - exit ;; > + GUESS=powerpc-be-beos > + ;; > BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. > - echo powerpc-apple-beos > - exit ;; > + GUESS=powerpc-apple-beos > + ;; > BePC:BeOS:*:*) # BeOS running on Intel PC compatible. > - echo i586-pc-beos > - exit ;; > + GUESS=i586-pc-beos > + ;; > BePC:Haiku:*:*) # Haiku running on Intel PC compatible. > - echo i586-pc-haiku > - exit ;; > - x86_64:Haiku:*:*) > - echo x86_64-unknown-haiku > - exit ;; > + GUESS=i586-pc-haiku > + ;; > + ppc:Haiku:*:*) # Haiku running on Apple PowerPC > + GUESS=powerpc-apple-haiku > + ;; > + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) > + GUESS=$UNAME_MACHINE-unknown-haiku > + ;; > SX-4:SUPER-UX:*:*) > - echo sx4-nec-superux"$UNAME_RELEASE" > - exit ;; > + GUESS=sx4-nec-superux$UNAME_RELEASE > + ;; > SX-5:SUPER-UX:*:*) > - echo sx5-nec-superux"$UNAME_RELEASE" > - exit ;; > + GUESS=sx5-nec-superux$UNAME_RELEASE > + ;; > SX-6:SUPER-UX:*:*) > - echo sx6-nec-superux"$UNAME_RELEASE" > - exit ;; > + GUESS=sx6-nec-superux$UNAME_RELEASE > + ;; > SX-7:SUPER-UX:*:*) > - echo sx7-nec-superux"$UNAME_RELEASE" > - exit ;; > + GUESS=sx7-nec-superux$UNAME_RELEASE > + ;; > SX-8:SUPER-UX:*:*) > - echo sx8-nec-superux"$UNAME_RELEASE" > - exit ;; > + GUESS=sx8-nec-superux$UNAME_RELEASE > + ;; > SX-8R:SUPER-UX:*:*) > - echo sx8r-nec-superux"$UNAME_RELEASE" > - exit ;; > + GUESS=sx8r-nec-superux$UNAME_RELEASE > + ;; > SX-ACE:SUPER-UX:*:*) > - echo sxace-nec-superux"$UNAME_RELEASE" > - exit ;; > + GUESS=sxace-nec-superux$UNAME_RELEASE > + ;; > Power*:Rhapsody:*:*) > - echo powerpc-apple-rhapsody"$UNAME_RELEASE" > - exit ;; > + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE > + ;; > *:Rhapsody:*:*) > - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE > + ;; > + arm64:Darwin:*:*) > + GUESS=aarch64-apple-darwin$UNAME_RELEASE > + ;; > *:Darwin:*:*) > - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown > - set_cc_for_build > - if test "$UNAME_PROCESSOR" = unknown ; then > - UNAME_PROCESSOR=powerpc > + UNAME_PROCESSOR=`uname -p` > + case $UNAME_PROCESSOR in > + unknown) UNAME_PROCESSOR=powerpc ;; > + esac > + if command -v xcode-select > /dev/null 2> /dev/null && \ > + ! xcode-select --print-path > /dev/null 2> /dev/null ; then > + # Avoid executing cc if there is no toolchain installed as > + # cc will be a stub that puts up a graphical alert > + # prompting the user to install developer tools. > + CC_FOR_BUILD=no_compiler_found > + else > + set_cc_for_build > fi > - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then > - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then > - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ > - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ > - grep IS_64BIT_ARCH >/dev/null > - then > - case $UNAME_PROCESSOR in > - i386) UNAME_PROCESSOR=x86_64 ;; > - powerpc) UNAME_PROCESSOR=powerpc64 ;; > - esac > - fi > - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc > - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ > - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ > - grep IS_PPC >/dev/null > - then > - UNAME_PROCESSOR=powerpc > - fi > + if test "$CC_FOR_BUILD" != no_compiler_found; then > + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ > + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ > + grep IS_64BIT_ARCH >/dev/null > + then > + case $UNAME_PROCESSOR in > + i386) UNAME_PROCESSOR=x86_64 ;; > + powerpc) UNAME_PROCESSOR=powerpc64 ;; > + esac > + fi > + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc > + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ > + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ > + grep IS_PPC >/dev/null > + then > + UNAME_PROCESSOR=powerpc > fi > elif test "$UNAME_PROCESSOR" = i386 ; then > - # Avoid executing cc on OS X 10.9, as it ships with a stub > - # that puts up a graphical alert prompting to install > - # developer tools. Any system running Mac OS X 10.7 or > - # later (Darwin 11 and later) is required to have a 64-bit > - # processor. This is not true of the ARM version of Darwin > - # that Apple uses in portable devices. > - UNAME_PROCESSOR=x86_64 > + # uname -m returns i386 or x86_64 > + UNAME_PROCESSOR=$UNAME_MACHINE > fi > - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE > + ;; > *:procnto*:*:* | *:QNX:[0123456789]*:*) > UNAME_PROCESSOR=`uname -p` > if test "$UNAME_PROCESSOR" = x86; then > UNAME_PROCESSOR=i386 > UNAME_MACHINE=pc > fi > - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE > + ;; > *:QNX:*:4*) > - echo i386-pc-qnx > - exit ;; > + GUESS=i386-pc-qnx > + ;; > NEO-*:NONSTOP_KERNEL:*:*) > - echo neo-tandem-nsk"$UNAME_RELEASE" > - exit ;; > + GUESS=neo-tandem-nsk$UNAME_RELEASE > + ;; > NSE-*:NONSTOP_KERNEL:*:*) > - echo nse-tandem-nsk"$UNAME_RELEASE" > - exit ;; > + GUESS=nse-tandem-nsk$UNAME_RELEASE > + ;; > NSR-*:NONSTOP_KERNEL:*:*) > - echo nsr-tandem-nsk"$UNAME_RELEASE" > - exit ;; > + GUESS=nsr-tandem-nsk$UNAME_RELEASE > + ;; > NSV-*:NONSTOP_KERNEL:*:*) > - echo nsv-tandem-nsk"$UNAME_RELEASE" > - exit ;; > + GUESS=nsv-tandem-nsk$UNAME_RELEASE > + ;; > NSX-*:NONSTOP_KERNEL:*:*) > - echo nsx-tandem-nsk"$UNAME_RELEASE" > - exit ;; > + GUESS=nsx-tandem-nsk$UNAME_RELEASE > + ;; > *:NonStop-UX:*:*) > - echo mips-compaq-nonstopux > - exit ;; > + GUESS=mips-compaq-nonstopux > + ;; > BS2000:POSIX*:*:*) > - echo bs2000-siemens-sysv > - exit ;; > + GUESS=bs2000-siemens-sysv > + ;; > DS/*:UNIX_System_V:*:*) > - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE > + ;; > *:Plan9:*:*) > # "uname -m" is not consistent, so use $cputype instead. 386 > # is converted to i386 for consistency with other x86 > # operating systems. > - # shellcheck disable=SC2154 > - if test "$cputype" = 386; then > + if test "${cputype-}" = 386; then > UNAME_MACHINE=i386 > - else > - UNAME_MACHINE="$cputype" > + elif test "x${cputype-}" != x; then > + UNAME_MACHINE=$cputype > fi > - echo "$UNAME_MACHINE"-unknown-plan9 > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-plan9 > + ;; > *:TOPS-10:*:*) > - echo pdp10-unknown-tops10 > - exit ;; > + GUESS=pdp10-unknown-tops10 > + ;; > *:TENEX:*:*) > - echo pdp10-unknown-tenex > - exit ;; > + GUESS=pdp10-unknown-tenex > + ;; > KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) > - echo pdp10-dec-tops20 > - exit ;; > + GUESS=pdp10-dec-tops20 > + ;; > XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) > - echo pdp10-xkl-tops20 > - exit ;; > + GUESS=pdp10-xkl-tops20 > + ;; > *:TOPS-20:*:*) > - echo pdp10-unknown-tops20 > - exit ;; > + GUESS=pdp10-unknown-tops20 > + ;; > *:ITS:*:*) > - echo pdp10-unknown-its > - exit ;; > + GUESS=pdp10-unknown-its > + ;; > SEI:*:*:SEIUX) > - echo mips-sei-seiux"$UNAME_RELEASE" > - exit ;; > + GUESS=mips-sei-seiux$UNAME_RELEASE > + ;; > *:DragonFly:*:*) > - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" > - exit ;; > + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` > + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL > + ;; > *:*VMS:*:*) > UNAME_MACHINE=`(uname -p) 2>/dev/null` > - case "$UNAME_MACHINE" in > - A*) echo alpha-dec-vms ; exit ;; > - I*) echo ia64-dec-vms ; exit ;; > - V*) echo vax-dec-vms ; exit ;; > + case $UNAME_MACHINE in > + A*) GUESS=alpha-dec-vms ;; > + I*) GUESS=ia64-dec-vms ;; > + V*) GUESS=vax-dec-vms ;; > esac ;; > *:XENIX:*:SysV) > - echo i386-pc-xenix > - exit ;; > + GUESS=i386-pc-xenix > + ;; > i*86:skyos:*:*) > - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" > - exit ;; > + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` > + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL > + ;; > i*86:rdos:*:*) > - echo "$UNAME_MACHINE"-pc-rdos > - exit ;; > - i*86:AROS:*:*) > - echo "$UNAME_MACHINE"-pc-aros > - exit ;; > + GUESS=$UNAME_MACHINE-pc-rdos > + ;; > + i*86:Fiwix:*:*) > + GUESS=$UNAME_MACHINE-pc-fiwix > + ;; > + *:AROS:*:*) > + GUESS=$UNAME_MACHINE-unknown-aros > + ;; > x86_64:VMkernel:*:*) > - echo "$UNAME_MACHINE"-unknown-esx > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-esx > + ;; > amd64:Isilon\ OneFS:*:*) > - echo x86_64-unknown-onefs > - exit ;; > + GUESS=x86_64-unknown-onefs > + ;; > *:Unleashed:*:*) > - echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" > - exit ;; > + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE > + ;; > esac > > +# Do we have a guess based on uname results? > +if test "x$GUESS" != x; then > + echo "$GUESS" > + exit > +fi > + > +# No uname command or uname output not recognized. > +set_cc_for_build > +cat > "$dummy.c" <<EOF > +#ifdef _SEQUENT_ > +#include <sys/types.h> > +#include <sys/utsname.h> > +#endif > +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) > +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) > +#include <signal.h> > +#if defined(_SIZE_T_) || defined(SIGLOST) > +#include <sys/utsname.h> > +#endif > +#endif > +#endif > +main () > +{ > +#if defined (sony) > +#if defined (MIPSEB) > + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, > + I don't know.... */ > + printf ("mips-sony-bsd\n"); exit (0); > +#else > +#include <sys/param.h> > + printf ("m68k-sony-newsos%s\n", > +#ifdef NEWSOS4 > + "4" > +#else > + "" > +#endif > + ); exit (0); > +#endif > +#endif > + > +#if defined (NeXT) > +#if !defined (__ARCHITECTURE__) > +#define __ARCHITECTURE__ "m68k" > +#endif > + int version; > + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; > + if (version < 4) > + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); > + else > + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); > + exit (0); > +#endif > + > +#if defined (MULTIMAX) || defined (n16) > +#if defined (UMAXV) > + printf ("ns32k-encore-sysv\n"); exit (0); > +#else > +#if defined (CMU) > + printf ("ns32k-encore-mach\n"); exit (0); > +#else > + printf ("ns32k-encore-bsd\n"); exit (0); > +#endif > +#endif > +#endif > + > +#if defined (__386BSD__) > + printf ("i386-pc-bsd\n"); exit (0); > +#endif > + > +#if defined (sequent) > +#if defined (i386) > + printf ("i386-sequent-dynix\n"); exit (0); > +#endif > +#if defined (ns32000) > + printf ("ns32k-sequent-dynix\n"); exit (0); > +#endif > +#endif > + > +#if defined (_SEQUENT_) > + struct utsname un; > + > + uname(&un); > + if (strncmp(un.version, "V2", 2) == 0) { > + printf ("i386-sequent-ptx2\n"); exit (0); > + } > + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ > + printf ("i386-sequent-ptx1\n"); exit (0); > + } > + printf ("i386-sequent-ptx\n"); exit (0); > +#endif > + > +#if defined (vax) > +#if !defined (ultrix) > +#include <sys/param.h> > +#if defined (BSD) > +#if BSD == 43 > + printf ("vax-dec-bsd4.3\n"); exit (0); > +#else > +#if BSD == 199006 > + printf ("vax-dec-bsd4.3reno\n"); exit (0); > +#else > + printf ("vax-dec-bsd\n"); exit (0); > +#endif > +#endif > +#else > + printf ("vax-dec-bsd\n"); exit (0); > +#endif > +#else > +#if defined(_SIZE_T_) || defined(SIGLOST) > + struct utsname un; > + uname (&un); > + printf ("vax-dec-ultrix%s\n", un.release); exit (0); > +#else > + printf ("vax-dec-ultrix\n"); exit (0); > +#endif > +#endif > +#endif > +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) > +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) > +#if defined(_SIZE_T_) || defined(SIGLOST) > + struct utsname *un; > + uname (&un); > + printf ("mips-dec-ultrix%s\n", un.release); exit (0); > +#else > + printf ("mips-dec-ultrix\n"); exit (0); > +#endif > +#endif > +#endif > + > +#if defined (alliant) && defined (i860) > + printf ("i860-alliant-bsd\n"); exit (0); > +#endif > + > + exit (1); > +} > +EOF > + > +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && > + { echo "$SYSTEM_NAME"; exit; } > + > +# Apollos put the system type in the environment. > +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } > + > echo "$0: unable to guess system type" >&2 > > -case "$UNAME_MACHINE:$UNAME_SYSTEM" in > +case $UNAME_MACHINE:$UNAME_SYSTEM in > mips:Linux | mips64:Linux) > # If we got here on MIPS GNU/Linux, output extra information. > cat >&2 <<EOF > @@ -1452,9 +1718,17 @@ This script (version $timestamp), has failed to recognize the > operating system you are using. If your script is old, overwrite *all* > copies of config.guess and config.sub with the latest versions from: > > - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess > + https://git.savannah.gnu.org/cgit/config.git/plain/config.guess > and > - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub > + https://git.savannah.gnu.org/cgit/config.git/plain/config.sub > +EOF > + > +our_year=`echo $timestamp | sed 's,-.*,,'` > +thisyear=`date +%Y` > +# shellcheck disable=SC2003 > +script_age=`expr "$thisyear" - "$our_year"` > +if test "$script_age" -lt 3 ; then > + cat >&2 <<EOF > > If $0 has already been updated, send the following data and any > information you think might be pertinent to config-patches@gnu.org to > @@ -1482,6 +1756,7 @@ UNAME_RELEASE = "$UNAME_RELEASE" > UNAME_SYSTEM = "$UNAME_SYSTEM" > UNAME_VERSION = "$UNAME_VERSION" > EOF > +fi > > exit 1 > > diff --git a/scripts/config.sub b/scripts/config.sub > index a8f3f7e7cd..dba16e84c7 100755 > --- a/scripts/config.sub > +++ b/scripts/config.sub > @@ -1,12 +1,14 @@ > #! /bin/sh > # Configuration validation subroutine script. > -# Copyright 1992-2019 Free Software Foundation, Inc. > +# Copyright 1992-2022 Free Software Foundation, Inc. > > -timestamp='2019-01-01' > +# shellcheck disable=SC2006,SC2268 # see below for rationale > + > +timestamp='2022-01-03' > > # 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 > +# 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 > @@ -33,7 +35,7 @@ timestamp='2019-01-01' > # Otherwise, we print the canonical config type on stdout and succeed. > > # You can get the latest version of this script from: > -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub > +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub > > # This file is supposed to be the same for all GNU packages > # and recognize all the CPU types, system types and aliases > @@ -50,6 +52,13 @@ timestamp='2019-01-01' > # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM > # It is wrong to echo any other type of specification. > > +# The "shellcheck disable" line above the timestamp inhibits complaints > +# about features and limitations of the classic Bourne shell that were > +# superseded or lifted in POSIX. However, this script identifies a wide > +# variety of pre-POSIX systems that do not have POSIX shells at all, and > +# even some reasonably current systems (Solaris 10 as case-in-point) still > +# have a pre-POSIX /bin/sh. > + > me=`echo "$0" | sed -e 's,.*/,,'` > > usage="\ > @@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>." > version="\ > GNU config.sub ($timestamp) > > -Copyright 1992-2019 Free Software Foundation, Inc. > +Copyright 1992-2022 Free Software Foundation, Inc. > > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." > @@ -111,9 +120,12 @@ case $# in > esac > > # Split fields of configuration type > +# shellcheck disable=SC2162 > +saved_IFS=$IFS > IFS="-" read field1 field2 field3 field4 <<EOF > $1 > EOF > +IFS=$saved_IFS > > # Separate into logical components for further validation > case $1 in > @@ -123,28 +135,27 @@ case $1 in > ;; > *-*-*-*) > basic_machine=$field1-$field2 > - os=$field3-$field4 > + basic_os=$field3-$field4 > ;; > *-*-*) > # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two > # parts > maybe_os=$field2-$field3 > case $maybe_os in > - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ > - | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ > + nto-qnx* | linux-* | uclinux-uclibc* \ > | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ > | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ > | storm-chaos* | os2-emx* | rtmk-nova*) > basic_machine=$field1 > - os=$maybe_os > + basic_os=$maybe_os > ;; > android-linux) > basic_machine=$field1-unknown > - os=linux-android > + basic_os=linux-android > ;; > *) > basic_machine=$field1-$field2 > - os=$field3 > + basic_os=$field3 > ;; > esac > ;; > @@ -153,7 +164,7 @@ case $1 in > case $field1-$field2 in > decstation-3100) > basic_machine=mips-dec > - os= > + basic_os= > ;; > *-*) > # Second component is usually, but not always the OS > @@ -161,7 +172,11 @@ case $1 in > # Prevent following clause from handling this valid os > sun*os*) > basic_machine=$field1 > - os=$field2 > + basic_os=$field2 > + ;; > + zephyr*) > + basic_machine=$field1-unknown > + basic_os=$field2 > ;; > # Manufacturers > dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ > @@ -174,11 +189,11 @@ case $1 in > | microblaze* | sim | cisco \ > | oki | wec | wrs | winbond) > basic_machine=$field1-$field2 > - os= > + basic_os= > ;; > *) > basic_machine=$field1 > - os=$field2 > + basic_os=$field2 > ;; > esac > ;; > @@ -190,450 +205,451 @@ case $1 in > case $field1 in > 386bsd) > basic_machine=i386-pc > - os=bsd > + basic_os=bsd > ;; > a29khif) > basic_machine=a29k-amd > - os=udi > + basic_os=udi > ;; > adobe68k) > basic_machine=m68010-adobe > - os=scout > + basic_os=scout > ;; > alliant) > basic_machine=fx80-alliant > - os= > + basic_os= > ;; > altos | altos3068) > basic_machine=m68k-altos > - os= > + basic_os= > ;; > am29k) > basic_machine=a29k-none > - os=bsd > + basic_os=bsd > ;; > amdahl) > basic_machine=580-amdahl > - os=sysv > + basic_os=sysv > ;; > amiga) > basic_machine=m68k-unknown > - os= > + basic_os= > ;; > amigaos | amigados) > basic_machine=m68k-unknown > - os=amigaos > + basic_os=amigaos > ;; > amigaunix | amix) > basic_machine=m68k-unknown > - os=sysv4 > + basic_os=sysv4 > ;; > apollo68) > basic_machine=m68k-apollo > - os=sysv > + basic_os=sysv > ;; > apollo68bsd) > basic_machine=m68k-apollo > - os=bsd > + basic_os=bsd > ;; > aros) > basic_machine=i386-pc > - os=aros > + basic_os=aros > ;; > aux) > basic_machine=m68k-apple > - os=aux > + basic_os=aux > ;; > balance) > basic_machine=ns32k-sequent > - os=dynix > + basic_os=dynix > ;; > blackfin) > basic_machine=bfin-unknown > - os=linux > + basic_os=linux > ;; > cegcc) > basic_machine=arm-unknown > - os=cegcc > + basic_os=cegcc > ;; > convex-c1) > basic_machine=c1-convex > - os=bsd > + basic_os=bsd > ;; > convex-c2) > basic_machine=c2-convex > - os=bsd > + basic_os=bsd > ;; > convex-c32) > basic_machine=c32-convex > - os=bsd > + basic_os=bsd > ;; > convex-c34) > basic_machine=c34-convex > - os=bsd > + basic_os=bsd > ;; > convex-c38) > basic_machine=c38-convex > - os=bsd > + basic_os=bsd > ;; > cray) > basic_machine=j90-cray > - os=unicos > + basic_os=unicos > ;; > crds | unos) > basic_machine=m68k-crds > - os= > + basic_os= > ;; > da30) > basic_machine=m68k-da30 > - os= > + basic_os= > ;; > decstation | pmax | pmin | dec3100 | decstatn) > basic_machine=mips-dec > - os= > + basic_os= > ;; > delta88) > basic_machine=m88k-motorola > - os=sysv3 > + basic_os=sysv3 > ;; > dicos) > basic_machine=i686-pc > - os=dicos > + basic_os=dicos > ;; > djgpp) > basic_machine=i586-pc > - os=msdosdjgpp > + basic_os=msdosdjgpp > ;; > ebmon29k) > basic_machine=a29k-amd > - os=ebmon > + basic_os=ebmon > ;; > es1800 | OSE68k | ose68k | ose | OSE) > basic_machine=m68k-ericsson > - os=ose > + basic_os=ose > ;; > gmicro) > basic_machine=tron-gmicro > - os=sysv > + basic_os=sysv > ;; > go32) > basic_machine=i386-pc > - os=go32 > + basic_os=go32 > ;; > h8300hms) > basic_machine=h8300-hitachi > - os=hms > + basic_os=hms > ;; > h8300xray) > basic_machine=h8300-hitachi > - os=xray > + basic_os=xray > ;; > h8500hms) > basic_machine=h8500-hitachi > - os=hms > + basic_os=hms > ;; > harris) > basic_machine=m88k-harris > - os=sysv3 > + basic_os=sysv3 > ;; > - hp300) > + hp300 | hp300hpux) > basic_machine=m68k-hp > + basic_os=hpux > ;; > hp300bsd) > basic_machine=m68k-hp > - os=bsd > - ;; > - hp300hpux) > - basic_machine=m68k-hp > - os=hpux > + basic_os=bsd > ;; > hppaosf) > basic_machine=hppa1.1-hp > - os=osf > + basic_os=osf > ;; > hppro) > basic_machine=hppa1.1-hp > - os=proelf > + basic_os=proelf > ;; > i386mach) > basic_machine=i386-mach > - os=mach > - ;; > - vsta) > - basic_machine=i386-pc > - os=vsta > + basic_os=mach > ;; > isi68 | isi) > basic_machine=m68k-isi > - os=sysv > + basic_os=sysv > ;; > m68knommu) > basic_machine=m68k-unknown > - os=linux > + basic_os=linux > ;; > magnum | m3230) > basic_machine=mips-mips > - os=sysv > + basic_os=sysv > ;; > merlin) > basic_machine=ns32k-utek > - os=sysv > + basic_os=sysv > ;; > mingw64) > basic_machine=x86_64-pc > - os=mingw64 > + basic_os=mingw64 > ;; > mingw32) > basic_machine=i686-pc > - os=mingw32 > + basic_os=mingw32 > ;; > mingw32ce) > basic_machine=arm-unknown > - os=mingw32ce > + basic_os=mingw32ce > ;; > monitor) > basic_machine=m68k-rom68k > - os=coff > + basic_os=coff > ;; > morphos) > basic_machine=powerpc-unknown > - os=morphos > + basic_os=morphos > ;; > moxiebox) > basic_machine=moxie-unknown > - os=moxiebox > + basic_os=moxiebox > ;; > msdos) > basic_machine=i386-pc > - os=msdos > + basic_os=msdos > ;; > msys) > basic_machine=i686-pc > - os=msys > + basic_os=msys > ;; > mvs) > basic_machine=i370-ibm > - os=mvs > + basic_os=mvs > ;; > nacl) > basic_machine=le32-unknown > - os=nacl > + basic_os=nacl > ;; > ncr3000) > basic_machine=i486-ncr > - os=sysv4 > + basic_os=sysv4 > ;; > netbsd386) > basic_machine=i386-pc > - os=netbsd > + basic_os=netbsd > ;; > netwinder) > basic_machine=armv4l-rebel > - os=linux > + basic_os=linux > ;; > news | news700 | news800 | news900) > basic_machine=m68k-sony > - os=newsos > + basic_os=newsos > ;; > news1000) > basic_machine=m68030-sony > - os=newsos > + basic_os=newsos > ;; > necv70) > basic_machine=v70-nec > - os=sysv > + basic_os=sysv > ;; > nh3000) > basic_machine=m68k-harris > - os=cxux > + basic_os=cxux > ;; > nh[45]000) > basic_machine=m88k-harris > - os=cxux > + basic_os=cxux > ;; > nindy960) > basic_machine=i960-intel > - os=nindy > + basic_os=nindy > ;; > mon960) > basic_machine=i960-intel > - os=mon960 > + basic_os=mon960 > ;; > nonstopux) > basic_machine=mips-compaq > - os=nonstopux > + basic_os=nonstopux > ;; > os400) > basic_machine=powerpc-ibm > - os=os400 > + basic_os=os400 > ;; > OSE68000 | ose68000) > basic_machine=m68000-ericsson > - os=ose > + basic_os=ose > ;; > os68k) > basic_machine=m68k-none > - os=os68k > + basic_os=os68k > ;; > paragon) > basic_machine=i860-intel > - os=osf > + basic_os=osf > ;; > parisc) > basic_machine=hppa-unknown > - os=linux > + basic_os=linux > + ;; > + psp) > + basic_machine=mipsallegrexel-sony > + basic_os=psp > ;; > pw32) > basic_machine=i586-unknown > - os=pw32 > + basic_os=pw32 > ;; > rdos | rdos64) > basic_machine=x86_64-pc > - os=rdos > + basic_os=rdos > ;; > rdos32) > basic_machine=i386-pc > - os=rdos > + basic_os=rdos > ;; > rom68k) > basic_machine=m68k-rom68k > - os=coff > + basic_os=coff > ;; > sa29200) > basic_machine=a29k-amd > - os=udi > + basic_os=udi > ;; > sei) > basic_machine=mips-sei > - os=seiux > + basic_os=seiux > ;; > sequent) > basic_machine=i386-sequent > - os= > + basic_os= > ;; > sps7) > basic_machine=m68k-bull > - os=sysv2 > + basic_os=sysv2 > ;; > st2000) > basic_machine=m68k-tandem > - os= > + basic_os= > ;; > stratus) > basic_machine=i860-stratus > - os=sysv4 > + basic_os=sysv4 > ;; > sun2) > basic_machine=m68000-sun > - os= > + basic_os= > ;; > sun2os3) > basic_machine=m68000-sun > - os=sunos3 > + basic_os=sunos3 > ;; > sun2os4) > basic_machine=m68000-sun > - os=sunos4 > + basic_os=sunos4 > ;; > sun3) > basic_machine=m68k-sun > - os= > + basic_os= > ;; > sun3os3) > basic_machine=m68k-sun > - os=sunos3 > + basic_os=sunos3 > ;; > sun3os4) > basic_machine=m68k-sun > - os=sunos4 > + basic_os=sunos4 > ;; > sun4) > basic_machine=sparc-sun > - os= > + basic_os= > ;; > sun4os3) > basic_machine=sparc-sun > - os=sunos3 > + basic_os=sunos3 > ;; > sun4os4) > basic_machine=sparc-sun > - os=sunos4 > + basic_os=sunos4 > ;; > sun4sol2) > basic_machine=sparc-sun > - os=solaris2 > + basic_os=solaris2 > ;; > sun386 | sun386i | roadrunner) > basic_machine=i386-sun > - os= > + basic_os= > ;; > sv1) > basic_machine=sv1-cray > - os=unicos > + basic_os=unicos > ;; > symmetry) > basic_machine=i386-sequent > - os=dynix > + basic_os=dynix > ;; > t3e) > basic_machine=alphaev5-cray > - os=unicos > + basic_os=unicos > ;; > t90) > basic_machine=t90-cray > - os=unicos > + basic_os=unicos > ;; > toad1) > basic_machine=pdp10-xkl > - os=tops20 > + basic_os=tops20 > ;; > tpf) > basic_machine=s390x-ibm > - os=tpf > + basic_os=tpf > ;; > udi29k) > basic_machine=a29k-amd > - os=udi > + basic_os=udi > ;; > ultra3) > basic_machine=a29k-nyu > - os=sym1 > + basic_os=sym1 > ;; > v810 | necv810) > basic_machine=v810-nec > - os=none > + basic_os=none > ;; > vaxv) > basic_machine=vax-dec > - os=sysv > + basic_os=sysv > ;; > vms) > basic_machine=vax-dec > - os=vms > + basic_os=vms > + ;; > + vsta) > + basic_machine=i386-pc > + basic_os=vsta > ;; > vxworks960) > basic_machine=i960-wrs > - os=vxworks > + basic_os=vxworks > ;; > vxworks68) > basic_machine=m68k-wrs > - os=vxworks > + basic_os=vxworks > ;; > vxworks29k) > basic_machine=a29k-wrs > - os=vxworks > + basic_os=vxworks > ;; > xbox) > basic_machine=i686-pc > - os=mingw32 > + basic_os=mingw32 > ;; > ymp) > basic_machine=ymp-cray > - os=unicos > + basic_os=unicos > ;; > *) > basic_machine=$1 > - os= > + basic_os= > ;; > esac > ;; > @@ -685,17 +701,17 @@ case $basic_machine in > bluegene*) > cpu=powerpc > vendor=ibm > - os=cnk > + basic_os=cnk > ;; > decsystem10* | dec10*) > cpu=pdp10 > vendor=dec > - os=tops10 > + basic_os=tops10 > ;; > decsystem20* | dec20*) > cpu=pdp10 > vendor=dec > - os=tops20 > + basic_os=tops20 > ;; > delta | 3300 | motorola-3300 | motorola-delta \ > | 3300-motorola | delta-motorola) > @@ -705,7 +721,7 @@ case $basic_machine in > dpx2*) > cpu=m68k > vendor=bull > - os=sysv3 > + basic_os=sysv3 > ;; > encore | umax | mmax) > cpu=ns32k > @@ -714,7 +730,7 @@ case $basic_machine in > elxsi) > cpu=elxsi > vendor=elxsi > - os=${os:-bsd} > + basic_os=${basic_os:-bsd} > ;; > fx2800) > cpu=i860 > @@ -727,7 +743,7 @@ case $basic_machine in > h3050r* | hiux*) > cpu=hppa1.1 > vendor=hitachi > - os=hiuxwe2 > + basic_os=hiuxwe2 > ;; > hp3k9[0-9][0-9] | hp9[0-9][0-9]) > cpu=hppa1.0 > @@ -770,36 +786,36 @@ case $basic_machine in > i*86v32) > cpu=`echo "$1" | sed -e 's/86.*/86/'` > vendor=pc > - os=sysv32 > + basic_os=sysv32 > ;; > i*86v4*) > cpu=`echo "$1" | sed -e 's/86.*/86/'` > vendor=pc > - os=sysv4 > + basic_os=sysv4 > ;; > i*86v) > cpu=`echo "$1" | sed -e 's/86.*/86/'` > vendor=pc > - os=sysv > + basic_os=sysv > ;; > i*86sol2) > cpu=`echo "$1" | sed -e 's/86.*/86/'` > vendor=pc > - os=solaris2 > + basic_os=solaris2 > ;; > j90 | j90-cray) > cpu=j90 > vendor=cray > - os=${os:-unicos} > + basic_os=${basic_os:-unicos} > ;; > iris | iris4d) > cpu=mips > vendor=sgi > - case $os in > + case $basic_os in > irix*) > ;; > *) > - os=irix4 > + basic_os=irix4 > ;; > esac > ;; > @@ -810,24 +826,26 @@ case $basic_machine in > *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) > cpu=m68k > vendor=atari > - os=mint > + basic_os=mint > ;; > news-3600 | risc-news) > cpu=mips > vendor=sony > - os=newsos > + basic_os=newsos > ;; > next | m*-next) > cpu=m68k > vendor=next > - case $os in > - nextstep* ) > + case $basic_os in > + openstep*) > + ;; > + nextstep*) > ;; > ns2*) > - os=nextstep2 > + basic_os=nextstep2 > ;; > *) > - os=nextstep3 > + basic_os=nextstep3 > ;; > esac > ;; > @@ -838,12 +856,12 @@ case $basic_machine in > op50n-* | op60c-*) > cpu=hppa1.1 > vendor=oki > - os=proelf > + basic_os=proelf > ;; > pa-hitachi) > cpu=hppa1.1 > vendor=hitachi > - os=hiuxwe2 > + basic_os=hiuxwe2 > ;; > pbd) > cpu=sparc > @@ -880,12 +898,12 @@ case $basic_machine in > sde) > cpu=mipsisa32 > vendor=sde > - os=${os:-elf} > + basic_os=${basic_os:-elf} > ;; > simso-wrs) > cpu=sparclite > vendor=wrs > - os=vxworks > + basic_os=vxworks > ;; > tower | tower-32) > cpu=m68k > @@ -902,7 +920,7 @@ case $basic_machine in > w89k-*) > cpu=hppa1.1 > vendor=winbond > - os=proelf > + basic_os=proelf > ;; > none) > cpu=none > @@ -918,9 +936,12 @@ case $basic_machine in > ;; > > *-*) > + # shellcheck disable=SC2162 > + saved_IFS=$IFS > IFS="-" read cpu vendor <<EOF > $basic_machine > EOF > + IFS=$saved_IFS > ;; > # We use `pc' rather than `unknown' > # because (1) that's what they normally are, and > @@ -954,11 +975,11 @@ case $cpu-$vendor in > # some cases the only manufacturer, in others, it is the most popular. > craynv-unknown) > vendor=cray > - os=${os:-unicosmp} > + basic_os=${basic_os:-unicosmp} > ;; > c90-unknown | c90-cray) > vendor=cray > - os=${os:-unicos} > + basic_os=${Basic_os:-unicos} > ;; > fx80-unknown) > vendor=alliant > @@ -999,10 +1020,15 @@ case $cpu-$vendor in > ;; > > # Here we normalize CPU types with a missing or matching vendor > + armh-unknown | armh-alt) > + cpu=armv7l > + vendor=alt > + basic_os=${basic_os:-linux-gnueabihf} > + ;; > dpx20-unknown | dpx20-bull) > cpu=rs6000 > vendor=bull > - os=${os:-bosx} > + basic_os=${basic_os:-bosx} > ;; > > # Here we normalize CPU types irrespective of the vendor > @@ -1011,7 +1037,7 @@ case $cpu-$vendor in > ;; > blackfin-*) > cpu=bfin > - os=linux > + basic_os=linux > ;; > c54x-*) > cpu=tic54x > @@ -1024,7 +1050,7 @@ case $cpu-$vendor in > ;; > e500v[12]-*) > cpu=powerpc > - os=$os"spe" > + basic_os=${basic_os}"spe" > ;; > mips3*-*) > cpu=mips64 > @@ -1034,7 +1060,7 @@ case $cpu-$vendor in > ;; > m68knommu-*) > cpu=m68k > - os=linux > + basic_os=linux > ;; > m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) > cpu=s12z > @@ -1044,7 +1070,7 @@ case $cpu-$vendor in > ;; > parisc-*) > cpu=hppa > - os=linux > + basic_os=linux > ;; > pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) > cpu=i586 > @@ -1100,11 +1126,14 @@ case $cpu-$vendor in > xscale-* | xscalee[bl]-*) > cpu=`echo "$cpu" | sed 's/^xscale/arm/'` > ;; > + arm64-* | aarch64le-*) > + cpu=aarch64 > + ;; > > # Recognize the canonical CPU Types that limit and/or modify the > # company names they are paired with. > cr16-*) > - os=${os:-elf} > + basic_os=${basic_os:-elf} > ;; > crisv32-* | etraxfs*-*) > cpu=crisv32 > @@ -1115,7 +1144,7 @@ case $cpu-$vendor in > vendor=axis > ;; > crx-*) > - os=${os:-elf} > + basic_os=${basic_os:-elf} > ;; > neo-tandem) > cpu=neo > @@ -1137,16 +1166,12 @@ case $cpu-$vendor in > cpu=nsx > vendor=tandem > ;; > - s390-*) > - cpu=s390 > - vendor=ibm > - ;; > - s390x-*) > - cpu=s390x > - vendor=ibm > + mipsallegrexel-sony) > + cpu=mipsallegrexel > + vendor=sony > ;; > tile*-*) > - os=${os:-linux-gnu} > + basic_os=${basic_os:-linux-gnu} > ;; > > *) > @@ -1162,13 +1187,13 @@ case $cpu-$vendor in > | alphapca5[67] | alpha64pca5[67] \ > | am33_2.0 \ > | amdgcn \ > - | arc | arceb \ > - | arm | arm[lb]e | arme[lb] | armv* \ > + | arc | arceb | arc32 | arc64 \ > + | arm | arm[lb]e | arme[lb] | armv* \ > | avr | avr32 \ > | asmjs \ > | ba \ > | be32 | be64 \ > - | bfin | bs2000 \ > + | bfin | bpf | bs2000 \ > | c[123]* | c30 | [cjt]90 | c4x \ > | c8051 | clipper | craynv | csky | cydra \ > | d10v | d30v | dlx | dsp16xx \ > @@ -1182,14 +1207,15 @@ case $cpu-$vendor in > | k1om \ > | le32 | le64 \ > | lm32 \ > + | loongarch32 | loongarch64 | loongarchx32 \ > | m32c | m32r | m32rle \ > - | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ > - | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ > + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ > + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ > | m88110 | m88k | maxq | mb | mcore | mep | metag \ > | microblaze | microblazeel \ > | mips | mipsbe | mipseb | mipsel | mipsle \ > | mips16 \ > - | mips64 | mips64el \ > + | mips64 | mips64eb | mips64el \ > | mips64octeon | mips64octeonel \ > | mips64orion | mips64orionel \ > | mips64r5900 | mips64r5900el \ > @@ -1200,9 +1226,13 @@ case $cpu-$vendor in > | mips64vr5900 | mips64vr5900el \ > | mipsisa32 | mipsisa32el \ > | mipsisa32r2 | mipsisa32r2el \ > + | mipsisa32r3 | mipsisa32r3el \ > + | mipsisa32r5 | mipsisa32r5el \ > | mipsisa32r6 | mipsisa32r6el \ > | mipsisa64 | mipsisa64el \ > | mipsisa64r2 | mipsisa64r2el \ > + | mipsisa64r3 | mipsisa64r3el \ > + | mipsisa64r5 | mipsisa64r5el \ > | mipsisa64r6 | mipsisa64r6el \ > | mipsisa64sb1 | mipsisa64sb1el \ > | mipsisa64sr71k | mipsisa64sr71kel \ > @@ -1216,32 +1246,37 @@ case $cpu-$vendor in > | nds32 | nds32le | nds32be \ > | nfp \ > | nios | nios2 | nios2eb | nios2el \ > - | none | np1 | ns16k | ns32k \ > + | none | np1 | ns16k | ns32k | nvptx \ > | open8 \ > | or1k* \ > | or32 \ > | orion \ > + | picochip \ > | pdp10 | pdp11 | pj | pjl | pn | power \ > | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ > | pru \ > | pyramid \ > - | riscv | riscv32 | riscv64 \ > + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ > | rl78 | romp | rs6000 | rx \ > + | s390 | s390x \ > | score \ > - | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ > + | sh | shl \ > + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ > | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ > | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ > | sparclite \ > | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ > | spu \ > | tahoe \ > + | thumbv7* \ > | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ > | tron \ > | ubicom32 \ > - | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ > + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ > | vax \ > | visium \ > - | wasm32 \ > + | w65 \ > + | wasm32 | wasm64 \ > | we32k \ > | x86 | x86_64 | xc16x | xgate | xps100 \ > | xstormy16 | xtensa* \ > @@ -1271,8 +1306,49 @@ esac > > # Decode manufacturer-specific aliases for certain operating systems. > > -if [ x$os != x ] > +if test x$basic_os != x > then > + > +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just > +# set os. > +case $basic_os in > + gnu/linux*) > + kernel=linux > + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` > + ;; > + os2-emx) > + kernel=os2 > + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` > + ;; > + nto-qnx*) > + kernel=nto > + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` > + ;; > + *-*) > + # shellcheck disable=SC2162 > + saved_IFS=$IFS > + IFS="-" read kernel os <<EOF > +$basic_os > +EOF > + IFS=$saved_IFS > + ;; > + # Default OS when just kernel was specified > + nto*) > + kernel=nto > + os=`echo "$basic_os" | sed -e 's|nto|qnx|'` > + ;; > + linux*) > + kernel=linux > + os=`echo "$basic_os" | sed -e 's|linux|gnu|'` > + ;; > + *) > + kernel= > + os=$basic_os > + ;; > +esac > + > +# Now, normalize the OS (knowing we just have one component, it's not a kernel, > +# etc.) > case $os in > # First match some system type aliases that might get confused > # with valid system types. > @@ -1284,7 +1360,7 @@ case $os in > os=cnk > ;; > solaris1 | solaris1.*) > - os=`echo $os | sed -e 's|solaris1|sunos4|'` > + os=`echo "$os" | sed -e 's|solaris1|sunos4|'` > ;; > solaris) > os=solaris2 > @@ -1292,9 +1368,6 @@ case $os in > unixware*) > os=sysv4.2uw > ;; > - gnu/linux*) > - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` > - ;; > # es1800 is here to avoid being matched by es* (a different OS) > es1800*) > os=ose > @@ -1316,12 +1389,9 @@ case $os in > os=sco3.2v4 > ;; > sco3.2.[4-9]*) > - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` > + os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` > ;; > - sco3.2v[4-9]* | sco5v6*) > - # Don't forget version if it is 3.2v4 or newer. > - ;; > - scout) > + sco*v* | scout) > # Don't match below > ;; > sco*) > @@ -1330,77 +1400,25 @@ case $os in > psos*) > os=psos > ;; > - # Now accept the basic system types. > - # The portable systems comes first. > - # Each alternative MUST end in a * to match a version number. > - # sysv* is not here because it comes later, after sysvr4. > - gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ > - | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ > - | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ > - | sym* | kopensolaris* | plan9* \ > - | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ > - | aos* | aros* | cloudabi* | sortix* \ > - | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ > - | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ > - | knetbsd* | mirbsd* | netbsd* \ > - | bitrig* | openbsd* | solidbsd* | libertybsd* \ > - | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ > - | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ > - | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ > - | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ > - | chorusrdb* | cegcc* | glidix* \ > - | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ > - | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ > - | linux-newlib* | linux-musl* | linux-uclibc* \ > - | uxpv* | beos* | mpeix* | udk* | moxiebox* \ > - | interix* | uwin* | mks* | rhapsody* | darwin* \ > - | openstep* | oskit* | conix* | pw32* | nonstopux* \ > - | storm-chaos* | tops10* | tenex* | tops20* | its* \ > - | os2* | vos* | palmos* | uclinux* | nucleus* \ > - | morphos* | superux* | rtmk* | windiss* \ > - | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ > - | skyos* | haiku* | rdos* | toppers* | drops* | es* \ > - | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ > - | midnightbsd* | amdhsa* | unleashed* | emscripten*) > - # Remember, each alternative MUST END IN *, to match a version number. > - ;; > qnx*) > - case $cpu in > - x86 | i*86) > - ;; > - *) > - os=nto-$os > - ;; > - esac > + os=qnx > ;; > hiux*) > os=hiuxwe2 > ;; > - nto-qnx*) > - ;; > - nto*) > - os=`echo $os | sed -e 's|nto|nto-qnx|'` > - ;; > - sim | xray | os68k* | v88r* \ > - | windows* | osx | abug | netware* | os9* \ > - | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) > - ;; > - linux-dietlibc) > - os=linux-dietlibc > - ;; > - linux*) > - os=`echo $os | sed -e 's|linux|linux-gnu|'` > - ;; > lynx*178) > os=lynxos178 > ;; > lynx*5) > os=lynxos5 > ;; > + lynxos*) > + # don't get caught up in next wildcard > + ;; > lynx*) > os=lynxos > ;; > - mac*) > + mac[0-9]*) > os=`echo "$os" | sed -e 's|mac|macos|'` > ;; > opened*) > @@ -1445,12 +1463,9 @@ case $os in > ns2) > os=nextstep2 > ;; > - nsk*) > - os=nsk > - ;; > # Preserve the version number of sinix5. > sinix5.*) > - os=`echo $os | sed -e 's|sinix|sysv|'` > + os=`echo "$os" | sed -e 's|sinix|sysv|'` > ;; > sinix*) > os=sysv4 > @@ -1473,18 +1488,12 @@ case $os in > sysvr4) > os=sysv4 > ;; > - # This must come after sysvr4. > - sysv*) > - ;; > ose*) > os=ose > ;; > *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) > os=mint > ;; > - zvmoe) > - os=zvmoe > - ;; > dicos*) > os=dicos > ;; > @@ -1501,19 +1510,11 @@ case $os in > ;; > esac > ;; > - nacl*) > - ;; > - ios) > - ;; > - none) > - ;; > - *-eabi) > - ;; > *) > - echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 > - exit 1 > + # No normalization, but not necessarily accepted, that comes below. > ;; > esac > + > else > > # Here we handle the default operating systems that come with various machines. > @@ -1526,6 +1527,7 @@ else > # will signal an error saying that MANUFACTURER isn't an operating > # system, and we'll never get to this point. > > +kernel= > case $cpu-$vendor in > score-*) > os=elf > @@ -1537,7 +1539,8 @@ case $cpu-$vendor in > os=riscix1.2 > ;; > arm*-rebel) > - os=linux > + kernel=linux > + os=gnu > ;; > arm*-semi) > os=aout > @@ -1703,84 +1706,180 @@ case $cpu-$vendor in > os=none > ;; > esac > + > fi > > +# Now, validate our (potentially fixed-up) OS. > +case $os in > + # Sometimes we do "kernel-libc", so those need to count as OSes. > + musl* | newlib* | relibc* | uclibc*) > + ;; > + # Likewise for "kernel-abi" > + eabi* | gnueabi*) > + ;; > + # VxWorks passes extra cpu info in the 4th filed. > + simlinux | simwindows | spe) > + ;; > + # Now accept the basic system types. > + # The portable systems comes first. > + # Each alternative MUST end in a * to match a version number. > + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ > + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ > + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ > + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ > + | hiux* | abug | nacl* | netware* | windows* \ > + | os9* | macos* | osx* | ios* \ > + | mpw* | magic* | mmixware* | mon960* | lnews* \ > + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ > + | aos* | aros* | cloudabi* | sortix* | twizzler* \ > + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ > + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ > + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ > + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ > + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ > + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ > + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ > + | udi* | lites* | ieee* | go32* | aux* | hcos* \ > + | chorusrdb* | cegcc* | glidix* | serenity* \ > + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ > + | midipix* | mingw32* | mingw64* | mint* \ > + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ > + | interix* | uwin* | mks* | rhapsody* | darwin* \ > + | openstep* | oskit* | conix* | pw32* | nonstopux* \ > + | storm-chaos* | tops10* | tenex* | tops20* | its* \ > + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ > + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ > + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ > + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ > + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ > + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ > + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ > + | fiwix* ) > + ;; > + # This one is extra strict with allowed versions > + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) > + # Don't forget version if it is 3.2v4 or newer. > + ;; > + none) > + ;; > + *) > + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 > + exit 1 > + ;; > +esac > + > +# As a final step for OS-related things, validate the OS-kernel combination > +# (given a valid OS), if there is a kernel. > +case $kernel-$os in > + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ > + | linux-musl* | linux-relibc* | linux-uclibc* ) > + ;; > + uclinux-uclibc* ) > + ;; > + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) > + # These are just libc implementations, not actual OSes, and thus > + # require a kernel. > + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 > + exit 1 > + ;; > + kfreebsd*-gnu* | kopensolaris*-gnu*) > + ;; > + vxworks-simlinux | vxworks-simwindows | vxworks-spe) > + ;; > + nto-qnx*) > + ;; > + os2-emx) > + ;; > + *-eabi* | *-gnueabi*) > + ;; > + -*) > + # Blank kernel with real OS is always fine. > + ;; > + *-*) > + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 > + exit 1 > + ;; > +esac > + > # Here we handle the case where we know the os, and the CPU type, but not the > # manufacturer. We pick the logical manufacturer. > case $vendor in > unknown) > - case $os in > - riscix*) > + case $cpu-$os in > + *-riscix*) > vendor=acorn > ;; > - sunos*) > + *-sunos*) > vendor=sun > ;; > - cnk*|-aix*) > + *-cnk* | *-aix*) > vendor=ibm > ;; > - beos*) > + *-beos*) > vendor=be > ;; > - hpux*) > + *-hpux*) > vendor=hp > ;; > - mpeix*) > + *-mpeix*) > vendor=hp > ;; > - hiux*) > + *-hiux*) > vendor=hitachi > ;; > - unos*) > + *-unos*) > vendor=crds > ;; > - dgux*) > + *-dgux*) > vendor=dg > ;; > - luna*) > + *-luna*) > vendor=omron > ;; > - genix*) > + *-genix*) > vendor=ns > ;; > - clix*) > + *-clix*) > vendor=intergraph > ;; > - mvs* | opened*) > + *-mvs* | *-opened*) > + vendor=ibm > + ;; > + *-os400*) > vendor=ibm > ;; > - os400*) > + s390-* | s390x-*) > vendor=ibm > ;; > - ptx*) > + *-ptx*) > vendor=sequent > ;; > - tpf*) > + *-tpf*) > vendor=ibm > ;; > - vxsim* | vxworks* | windiss*) > + *-vxsim* | *-vxworks* | *-windiss*) > vendor=wrs > ;; > - aux*) > + *-aux*) > vendor=apple > ;; > - hms*) > + *-hms*) > vendor=hitachi > ;; > - mpw* | macos*) > + *-mpw* | *-macos*) > vendor=apple > ;; > - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) > + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) > vendor=atari > ;; > - vos*) > + *-vos*) > vendor=stratus > ;; > esac > ;; > esac > > -echo "$cpu-$vendor-$os" > +echo "$cpu-$vendor-${kernel:+$kernel-}$os" > exit > > # Local variables:
diff --git a/scripts/config.guess b/scripts/config.guess index 0f9b29c884..1817bdce90 100755 --- a/scripts/config.guess +++ b/scripts/config.guess @@ -1,12 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2019 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. -timestamp='2019-01-01' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-05-25' # 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 +# 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 @@ -27,11 +29,19 @@ timestamp='2019-01-01' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to <config-patches@gnu.org>. +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + me=`echo "$0" | sed -e 's,.*/,,'` usage="\ @@ -50,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2019 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,6 +94,9 @@ if test $# != 0; then exit 1 fi +# Just in case it came from the environment. +GUESS= + # 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 @@ -99,8 +112,10 @@ tmp= trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039 + # shellcheck disable=SC2039,SC3028 { 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" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || @@ -110,7 +125,7 @@ set_cc_for_build() { ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$driver" + CC_FOR_BUILD=$driver break fi done @@ -131,14 +146,12 @@ 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_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$UNAME_SYSTEM" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown set_cc_for_build cat <<-EOF > "$dummy.c" @@ -147,24 +160,37 @@ Linux|GNU|GNU/*) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include <stdarg.h> + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" - # 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 + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -176,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # # 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" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; @@ -190,13 +216,13 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in earmv*) 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 + machine=${arch}${endian}-unknown ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; @@ -217,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in ;; esac # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` @@ -228,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # 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. - case "$UNAME_VERSION" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; @@ -239,45 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi-}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; + GUESS=$UNAME_MACHINE-unknown-redox + ;; mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; + GUESS=mips-dec-osf1 + ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -291,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # 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 + case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") @@ -328,117 +366,121 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # 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. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; + GUESS=m68k-unknown-sysv4 + ;; *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; + GUESS=$UNAME_MACHINE-unknown-morphos + ;; *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; + GUESS=i370-ibm-openedition + ;; *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; + GUESS=s390-ibm-zvmoe + ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + GUESS=powerpc-ibm-os400 + ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + GUESS=arm-unknown-riscos + ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; + GUESS=hppa1.1-hitachi-hiuxmpp + ;; 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 ;; + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; + GUESS=pyramid-pyramid-svr4 + ;; DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; + GUESS=sparc-icl-nx6 + ;; 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 ;; + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 # 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. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; 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. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + 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'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in + case `/bin/arch` in sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" + GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" + GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac - exit ;; + ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; # 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 @@ -448,41 +490,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; + GUESS=mips-dec-mach_bsd4.3 + ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -510,75 +552,76 @@ EOF dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; + GUESS=powerpc-motorola-powermax + ;; Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; + GUESS=powerpc-harris-powerunix + ;; m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; + GUESS=m88k-harris-cxux7 + ;; m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; + GUESS=m88k-motorola-sysv4 + ;; m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux"$UNAME_RELEASE" + GUESS=m88k-dg-dgux$UNAME_RELEASE else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else - echo i586-dg-dgux"$UNAME_RELEASE" + GUESS=i586-dg-dgux$UNAME_RELEASE fi - exit ;; + ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; + GUESS=m88k-dolphin-sysv3 + ;; M88*:*:R3*:*) # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; + GUESS=m88k-tektronix-sysv3 + ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; + GUESS=m68k-tektronix-bsd + ;; *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; ????????: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 ' + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; + GUESS=i386-ibm-aix + ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then + if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build @@ -595,16 +638,16 @@ EOF EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then - echo "$SYSTEM_NAME" + GUESS=$SYSTEM_NAME else - echo rs6000-ibm-aix3.2.5 + GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 + GUESS=rs6000-ibm-aix3.2.4 else - echo rs6000-ibm-aix3.2 + GUESS=rs6000-ibm-aix3.2 fi - exit ;; + ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then @@ -612,56 +655,56 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; + GUESS=rs6000-ibm-aix + ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; + GUESS=romp-ibm-bsd4.4 + ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; + GUESS=rs6000-bull-bosx + ;; DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; + GUESS=m68k-bull-sysv3 + ;; 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; + GUESS=m68k-hp-bsd + ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; + GUESS=m68k-hp-bsd4.4 + ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then + if test -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` - case "$sc_cpu_version" in + case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in + case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "$HP_ARCH" = "" ]; then + if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -700,7 +743,7 @@ EOF test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ "$HP_ARCH" = hppa2.0w ] + if test "$HP_ARCH" = hppa2.0w then set_cc_for_build @@ -721,12 +764,12 @@ EOF HP_ARCH=hppa64 fi fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -756,36 +799,36 @@ EOF EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; + GUESS=unknown-hitachi-hiuxwe2 + ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; + GUESS=hppa1.1-hp-bsd + ;; 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; + GUESS=hppa1.0-hp-bsd + ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; + GUESS=hppa1.0-hp-mpeix + ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; + GUESS=hppa1.1-hp-osf + ;; hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; + GUESS=hppa1.0-hp-osf + ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo "$UNAME_MACHINE"-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk else - echo "$UNAME_MACHINE"-unknown-osf1 + GUESS=$UNAME_MACHINE-unknown-osf1 fi - exit ;; + ;; parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; + GUESS=hppa1.1-hp-lites + ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; + GUESS=c1-convex-bsd + ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd @@ -793,17 +836,18 @@ EOF fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; + GUESS=c34-convex-bsd + ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; + GUESS=c38-convex-bsd + ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; + GUESS=c4-convex-bsd + ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ @@ -811,114 +855,129 @@ EOF -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi - exit ;; + ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in + case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; + GUESS=$UNAME_MACHINE-pc-cygwin + ;; *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; + GUESS=$UNAME_MACHINE-pc-msys + ;; i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; *:Interix*:*) - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; + GUESS=i586-pc-interix$UNAME_RELEASE + ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; esac ;; i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; + GUESS=$UNAME_MACHINE-pc-uwin + ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-pc-cygwin - exit ;; + GUESS=x86_64-pc-cygwin + ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; *:GNU:*:*) # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; *:Minix:*:*) - echo "$UNAME_MACHINE"-unknown-minix - exit ;; + GUESS=$UNAME_MACHINE-unknown-minix + ;; aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -929,183 +988,236 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi - exit ;; + ;; avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; + GUESS=or1k-unknown-linux-$LIBC + ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; + GUESS=sparc-unknown-linux-$LIBC + ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; + GUESS=hppa64-unknown-linux-$LIBC + ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; esac - exit ;; + ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64-unknown-linux-$LIBC + ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc-unknown-linux-$LIBC + ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64le-unknown-linux-$LIBC + ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; x86_64:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac + fi + GUESS=$CPU-pc-linux-$LIBCABI + ;; xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; + GUESS=i386-sequent-sysv4 + ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; + GUESS=$UNAME_MACHINE-unknown-stop + ;; i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; + GUESS=$UNAME_MACHINE-unknown-atheos + ;; i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; + GUESS=$UNAME_MACHINE-pc-syllable + ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi - exit ;; + ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in @@ -1113,12 +1225,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" - exit ;; + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1128,11 +1240,11 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv32 + GUESS=$UNAME_MACHINE-pc-sysv32 fi - exit ;; + ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -1140,31 +1252,31 @@ EOF # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; + GUESS=i586-pc-msdosdjgpp + ;; Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; + GUESS=i386-pc-mach3 + ;; paragon:*:*:*) - echo i860-intel-osf1 - exit ;; + GUESS=i860-intel-osf1 + ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi - exit ;; + ;; mini*:CTIX:SYS*5:*) # "miniframe" - echo m68010-convergent-sysv - exit ;; + GUESS=m68010-convergent-sysv + ;; mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; + GUESS=m68k-convergent-sysv + ;; M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; + GUESS=m68k-diab-dnix + ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 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) @@ -1189,253 +1301,407 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; + GUESS=m68k-atari-sysv4 + ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 + GUESS=$UNAME_MACHINE-sni-sysv4 else - echo ns32k-sni-sysv + GUESS=ns32k-sni-sysv fi - exit ;; + ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says <Richard.M.Bartel@ccMail.Census.GOV> - echo i586-unisys-sysv4 - exit ;; + GUESS=i586-unisys-sysv4 + ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; + GUESS=hppa1.1-stratus-sysv4 + ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; + GUESS=i860-stratus-sysv4 + ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; + GUESS=$UNAME_MACHINE-stratus-vos + ;; *:VOS:*:*) # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; + GUESS=hppa1.1-stratus-vos + ;; mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; + GUESS=mips-sony-newsos6 + ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv"$UNAME_RELEASE" + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE else - echo mips-unknown-sysv"$UNAME_RELEASE" + GUESS=mips-unknown-sysv$UNAME_RELEASE fi - exit ;; + ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; + GUESS=powerpc-be-beos + ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; + GUESS=powerpc-apple-beos + ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; + GUESS=i586-pc-beos + ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; + GUESS=i586-pc-haiku + ;; + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku + ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; *:QNX:*:4*) - echo i386-pc-qnx - exit ;; + GUESS=i386-pc-qnx + ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; + GUESS=mips-compaq-nonstopux + ;; BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; + GUESS=bs2000-siemens-sysv + ;; DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - # shellcheck disable=SC2154 - if test "$cputype" = 386; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; + GUESS=pdp10-unknown-tops10 + ;; *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; + GUESS=pdp10-unknown-tenex + ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; + GUESS=pdp10-dec-tops20 + ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; + GUESS=pdp10-xkl-tops20 + ;; *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; + GUESS=pdp10-unknown-tops20 + ;; *:ITS:*:*) - echo pdp10-unknown-its - exit ;; + GUESS=pdp10-unknown-its + ;; SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; + GUESS=i386-pc-xenix + ;; i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; + GUESS=$UNAME_MACHINE-unknown-esx + ;; amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; + GUESS=x86_64-unknown-onefs + ;; *:Unleashed:*:*) - echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; esac +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" <<EOF +#ifdef _SEQUENT_ +#include <sys/types.h> +#include <sys/utsname.h> +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include <signal.h> +#if defined(_SIZE_T_) || defined(SIGLOST) +#include <sys/utsname.h> +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include <sys/param.h> +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + echo "$0: unable to guess system type" >&2 -case "$UNAME_MACHINE:$UNAME_SYSTEM" in +case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <<EOF @@ -1452,9 +1718,17 @@ This script (version $timestamp), has failed to recognize the operating system you are using. If your script is old, overwrite *all* copies of config.guess and config.sub with the latest versions from: - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess + https://git.savannah.gnu.org/cgit/config.git/plain/config.guess and - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + https://git.savannah.gnu.org/cgit/config.git/plain/config.sub +EOF + +our_year=`echo $timestamp | sed 's,-.*,,'` +thisyear=`date +%Y` +# shellcheck disable=SC2003 +script_age=`expr "$thisyear" - "$our_year"` +if test "$script_age" -lt 3 ; then + cat >&2 <<EOF If $0 has already been updated, send the following data and any information you think might be pertinent to config-patches@gnu.org to @@ -1482,6 +1756,7 @@ UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF +fi exit 1 diff --git a/scripts/config.sub b/scripts/config.sub index a8f3f7e7cd..dba16e84c7 100755 --- a/scripts/config.sub +++ b/scripts/config.sub @@ -1,12 +1,14 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2019 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. -timestamp='2019-01-01' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-01-03' # 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 +# 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 @@ -33,7 +35,7 @@ timestamp='2019-01-01' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -50,6 +52,13 @@ timestamp='2019-01-01' # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + me=`echo "$0" | sed -e 's,.*/,,'` usage="\ @@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright 1992-2019 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -111,9 +120,12 @@ case $# in esac # Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <<EOF $1 EOF +IFS=$saved_IFS # Separate into logical components for further validation case $1 in @@ -123,28 +135,27 @@ case $1 in ;; *-*-*-*) basic_machine=$field1-$field2 - os=$field3-$field4 + basic_os=$field3-$field4 ;; *-*-*) # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two # parts maybe_os=$field2-$field3 case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ - | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ + nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | storm-chaos* | os2-emx* | rtmk-nova*) basic_machine=$field1 - os=$maybe_os + basic_os=$maybe_os ;; android-linux) basic_machine=$field1-unknown - os=linux-android + basic_os=linux-android ;; *) basic_machine=$field1-$field2 - os=$field3 + basic_os=$field3 ;; esac ;; @@ -153,7 +164,7 @@ case $1 in case $field1-$field2 in decstation-3100) basic_machine=mips-dec - os= + basic_os= ;; *-*) # Second component is usually, but not always the OS @@ -161,7 +172,11 @@ case $1 in # Prevent following clause from handling this valid os sun*os*) basic_machine=$field1 - os=$field2 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 ;; # Manufacturers dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ @@ -174,11 +189,11 @@ case $1 in | microblaze* | sim | cisco \ | oki | wec | wrs | winbond) basic_machine=$field1-$field2 - os= + basic_os= ;; *) basic_machine=$field1 - os=$field2 + basic_os=$field2 ;; esac ;; @@ -190,450 +205,451 @@ case $1 in case $field1 in 386bsd) basic_machine=i386-pc - os=bsd + basic_os=bsd ;; a29khif) basic_machine=a29k-amd - os=udi + basic_os=udi ;; adobe68k) basic_machine=m68010-adobe - os=scout + basic_os=scout ;; alliant) basic_machine=fx80-alliant - os= + basic_os= ;; altos | altos3068) basic_machine=m68k-altos - os= + basic_os= ;; am29k) basic_machine=a29k-none - os=bsd + basic_os=bsd ;; amdahl) basic_machine=580-amdahl - os=sysv + basic_os=sysv ;; amiga) basic_machine=m68k-unknown - os= + basic_os= ;; amigaos | amigados) basic_machine=m68k-unknown - os=amigaos + basic_os=amigaos ;; amigaunix | amix) basic_machine=m68k-unknown - os=sysv4 + basic_os=sysv4 ;; apollo68) basic_machine=m68k-apollo - os=sysv + basic_os=sysv ;; apollo68bsd) basic_machine=m68k-apollo - os=bsd + basic_os=bsd ;; aros) basic_machine=i386-pc - os=aros + basic_os=aros ;; aux) basic_machine=m68k-apple - os=aux + basic_os=aux ;; balance) basic_machine=ns32k-sequent - os=dynix + basic_os=dynix ;; blackfin) basic_machine=bfin-unknown - os=linux + basic_os=linux ;; cegcc) basic_machine=arm-unknown - os=cegcc + basic_os=cegcc ;; convex-c1) basic_machine=c1-convex - os=bsd + basic_os=bsd ;; convex-c2) basic_machine=c2-convex - os=bsd + basic_os=bsd ;; convex-c32) basic_machine=c32-convex - os=bsd + basic_os=bsd ;; convex-c34) basic_machine=c34-convex - os=bsd + basic_os=bsd ;; convex-c38) basic_machine=c38-convex - os=bsd + basic_os=bsd ;; cray) basic_machine=j90-cray - os=unicos + basic_os=unicos ;; crds | unos) basic_machine=m68k-crds - os= + basic_os= ;; da30) basic_machine=m68k-da30 - os= + basic_os= ;; decstation | pmax | pmin | dec3100 | decstatn) basic_machine=mips-dec - os= + basic_os= ;; delta88) basic_machine=m88k-motorola - os=sysv3 + basic_os=sysv3 ;; dicos) basic_machine=i686-pc - os=dicos + basic_os=dicos ;; djgpp) basic_machine=i586-pc - os=msdosdjgpp + basic_os=msdosdjgpp ;; ebmon29k) basic_machine=a29k-amd - os=ebmon + basic_os=ebmon ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson - os=ose + basic_os=ose ;; gmicro) basic_machine=tron-gmicro - os=sysv + basic_os=sysv ;; go32) basic_machine=i386-pc - os=go32 + basic_os=go32 ;; h8300hms) basic_machine=h8300-hitachi - os=hms + basic_os=hms ;; h8300xray) basic_machine=h8300-hitachi - os=xray + basic_os=xray ;; h8500hms) basic_machine=h8500-hitachi - os=hms + basic_os=hms ;; harris) basic_machine=m88k-harris - os=sysv3 + basic_os=sysv3 ;; - hp300) + hp300 | hp300hpux) basic_machine=m68k-hp + basic_os=hpux ;; hp300bsd) basic_machine=m68k-hp - os=bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=hpux + basic_os=bsd ;; hppaosf) basic_machine=hppa1.1-hp - os=osf + basic_os=osf ;; hppro) basic_machine=hppa1.1-hp - os=proelf + basic_os=proelf ;; i386mach) basic_machine=i386-mach - os=mach - ;; - vsta) - basic_machine=i386-pc - os=vsta + basic_os=mach ;; isi68 | isi) basic_machine=m68k-isi - os=sysv + basic_os=sysv ;; m68knommu) basic_machine=m68k-unknown - os=linux + basic_os=linux ;; magnum | m3230) basic_machine=mips-mips - os=sysv + basic_os=sysv ;; merlin) basic_machine=ns32k-utek - os=sysv + basic_os=sysv ;; mingw64) basic_machine=x86_64-pc - os=mingw64 + basic_os=mingw64 ;; mingw32) basic_machine=i686-pc - os=mingw32 + basic_os=mingw32 ;; mingw32ce) basic_machine=arm-unknown - os=mingw32ce + basic_os=mingw32ce ;; monitor) basic_machine=m68k-rom68k - os=coff + basic_os=coff ;; morphos) basic_machine=powerpc-unknown - os=morphos + basic_os=morphos ;; moxiebox) basic_machine=moxie-unknown - os=moxiebox + basic_os=moxiebox ;; msdos) basic_machine=i386-pc - os=msdos + basic_os=msdos ;; msys) basic_machine=i686-pc - os=msys + basic_os=msys ;; mvs) basic_machine=i370-ibm - os=mvs + basic_os=mvs ;; nacl) basic_machine=le32-unknown - os=nacl + basic_os=nacl ;; ncr3000) basic_machine=i486-ncr - os=sysv4 + basic_os=sysv4 ;; netbsd386) basic_machine=i386-pc - os=netbsd + basic_os=netbsd ;; netwinder) basic_machine=armv4l-rebel - os=linux + basic_os=linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony - os=newsos + basic_os=newsos ;; news1000) basic_machine=m68030-sony - os=newsos + basic_os=newsos ;; necv70) basic_machine=v70-nec - os=sysv + basic_os=sysv ;; nh3000) basic_machine=m68k-harris - os=cxux + basic_os=cxux ;; nh[45]000) basic_machine=m88k-harris - os=cxux + basic_os=cxux ;; nindy960) basic_machine=i960-intel - os=nindy + basic_os=nindy ;; mon960) basic_machine=i960-intel - os=mon960 + basic_os=mon960 ;; nonstopux) basic_machine=mips-compaq - os=nonstopux + basic_os=nonstopux ;; os400) basic_machine=powerpc-ibm - os=os400 + basic_os=os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson - os=ose + basic_os=ose ;; os68k) basic_machine=m68k-none - os=os68k + basic_os=os68k ;; paragon) basic_machine=i860-intel - os=osf + basic_os=osf ;; parisc) basic_machine=hppa-unknown - os=linux + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp ;; pw32) basic_machine=i586-unknown - os=pw32 + basic_os=pw32 ;; rdos | rdos64) basic_machine=x86_64-pc - os=rdos + basic_os=rdos ;; rdos32) basic_machine=i386-pc - os=rdos + basic_os=rdos ;; rom68k) basic_machine=m68k-rom68k - os=coff + basic_os=coff ;; sa29200) basic_machine=a29k-amd - os=udi + basic_os=udi ;; sei) basic_machine=mips-sei - os=seiux + basic_os=seiux ;; sequent) basic_machine=i386-sequent - os= + basic_os= ;; sps7) basic_machine=m68k-bull - os=sysv2 + basic_os=sysv2 ;; st2000) basic_machine=m68k-tandem - os= + basic_os= ;; stratus) basic_machine=i860-stratus - os=sysv4 + basic_os=sysv4 ;; sun2) basic_machine=m68000-sun - os= + basic_os= ;; sun2os3) basic_machine=m68000-sun - os=sunos3 + basic_os=sunos3 ;; sun2os4) basic_machine=m68000-sun - os=sunos4 + basic_os=sunos4 ;; sun3) basic_machine=m68k-sun - os= + basic_os= ;; sun3os3) basic_machine=m68k-sun - os=sunos3 + basic_os=sunos3 ;; sun3os4) basic_machine=m68k-sun - os=sunos4 + basic_os=sunos4 ;; sun4) basic_machine=sparc-sun - os= + basic_os= ;; sun4os3) basic_machine=sparc-sun - os=sunos3 + basic_os=sunos3 ;; sun4os4) basic_machine=sparc-sun - os=sunos4 + basic_os=sunos4 ;; sun4sol2) basic_machine=sparc-sun - os=solaris2 + basic_os=solaris2 ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun - os= + basic_os= ;; sv1) basic_machine=sv1-cray - os=unicos + basic_os=unicos ;; symmetry) basic_machine=i386-sequent - os=dynix + basic_os=dynix ;; t3e) basic_machine=alphaev5-cray - os=unicos + basic_os=unicos ;; t90) basic_machine=t90-cray - os=unicos + basic_os=unicos ;; toad1) basic_machine=pdp10-xkl - os=tops20 + basic_os=tops20 ;; tpf) basic_machine=s390x-ibm - os=tpf + basic_os=tpf ;; udi29k) basic_machine=a29k-amd - os=udi + basic_os=udi ;; ultra3) basic_machine=a29k-nyu - os=sym1 + basic_os=sym1 ;; v810 | necv810) basic_machine=v810-nec - os=none + basic_os=none ;; vaxv) basic_machine=vax-dec - os=sysv + basic_os=sysv ;; vms) basic_machine=vax-dec - os=vms + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta ;; vxworks960) basic_machine=i960-wrs - os=vxworks + basic_os=vxworks ;; vxworks68) basic_machine=m68k-wrs - os=vxworks + basic_os=vxworks ;; vxworks29k) basic_machine=a29k-wrs - os=vxworks + basic_os=vxworks ;; xbox) basic_machine=i686-pc - os=mingw32 + basic_os=mingw32 ;; ymp) basic_machine=ymp-cray - os=unicos + basic_os=unicos ;; *) basic_machine=$1 - os= + basic_os= ;; esac ;; @@ -685,17 +701,17 @@ case $basic_machine in bluegene*) cpu=powerpc vendor=ibm - os=cnk + basic_os=cnk ;; decsystem10* | dec10*) cpu=pdp10 vendor=dec - os=tops10 + basic_os=tops10 ;; decsystem20* | dec20*) cpu=pdp10 vendor=dec - os=tops20 + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) @@ -705,7 +721,7 @@ case $basic_machine in dpx2*) cpu=m68k vendor=bull - os=sysv3 + basic_os=sysv3 ;; encore | umax | mmax) cpu=ns32k @@ -714,7 +730,7 @@ case $basic_machine in elxsi) cpu=elxsi vendor=elxsi - os=${os:-bsd} + basic_os=${basic_os:-bsd} ;; fx2800) cpu=i860 @@ -727,7 +743,7 @@ case $basic_machine in h3050r* | hiux*) cpu=hppa1.1 vendor=hitachi - os=hiuxwe2 + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) cpu=hppa1.0 @@ -770,36 +786,36 @@ case $basic_machine in i*86v32) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc - os=sysv32 + basic_os=sysv32 ;; i*86v4*) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc - os=sysv4 + basic_os=sysv4 ;; i*86v) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc - os=sysv + basic_os=sysv ;; i*86sol2) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc - os=solaris2 + basic_os=solaris2 ;; j90 | j90-cray) cpu=j90 vendor=cray - os=${os:-unicos} + basic_os=${basic_os:-unicos} ;; iris | iris4d) cpu=mips vendor=sgi - case $os in + case $basic_os in irix*) ;; *) - os=irix4 + basic_os=irix4 ;; esac ;; @@ -810,24 +826,26 @@ case $basic_machine in *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) cpu=m68k vendor=atari - os=mint + basic_os=mint ;; news-3600 | risc-news) cpu=mips vendor=sony - os=newsos + basic_os=newsos ;; next | m*-next) cpu=m68k vendor=next - case $os in - nextstep* ) + case $basic_os in + openstep*) + ;; + nextstep*) ;; ns2*) - os=nextstep2 + basic_os=nextstep2 ;; *) - os=nextstep3 + basic_os=nextstep3 ;; esac ;; @@ -838,12 +856,12 @@ case $basic_machine in op50n-* | op60c-*) cpu=hppa1.1 vendor=oki - os=proelf + basic_os=proelf ;; pa-hitachi) cpu=hppa1.1 vendor=hitachi - os=hiuxwe2 + basic_os=hiuxwe2 ;; pbd) cpu=sparc @@ -880,12 +898,12 @@ case $basic_machine in sde) cpu=mipsisa32 vendor=sde - os=${os:-elf} + basic_os=${basic_os:-elf} ;; simso-wrs) cpu=sparclite vendor=wrs - os=vxworks + basic_os=vxworks ;; tower | tower-32) cpu=m68k @@ -902,7 +920,7 @@ case $basic_machine in w89k-*) cpu=hppa1.1 vendor=winbond - os=proelf + basic_os=proelf ;; none) cpu=none @@ -918,9 +936,12 @@ case $basic_machine in ;; *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS IFS="-" read cpu vendor <<EOF $basic_machine EOF + IFS=$saved_IFS ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -954,11 +975,11 @@ case $cpu-$vendor in # some cases the only manufacturer, in others, it is the most popular. craynv-unknown) vendor=cray - os=${os:-unicosmp} + basic_os=${basic_os:-unicosmp} ;; c90-unknown | c90-cray) vendor=cray - os=${os:-unicos} + basic_os=${Basic_os:-unicos} ;; fx80-unknown) vendor=alliant @@ -999,10 +1020,15 @@ case $cpu-$vendor in ;; # Here we normalize CPU types with a missing or matching vendor + armh-unknown | armh-alt) + cpu=armv7l + vendor=alt + basic_os=${basic_os:-linux-gnueabihf} + ;; dpx20-unknown | dpx20-bull) cpu=rs6000 vendor=bull - os=${os:-bosx} + basic_os=${basic_os:-bosx} ;; # Here we normalize CPU types irrespective of the vendor @@ -1011,7 +1037,7 @@ case $cpu-$vendor in ;; blackfin-*) cpu=bfin - os=linux + basic_os=linux ;; c54x-*) cpu=tic54x @@ -1024,7 +1050,7 @@ case $cpu-$vendor in ;; e500v[12]-*) cpu=powerpc - os=$os"spe" + basic_os=${basic_os}"spe" ;; mips3*-*) cpu=mips64 @@ -1034,7 +1060,7 @@ case $cpu-$vendor in ;; m68knommu-*) cpu=m68k - os=linux + basic_os=linux ;; m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) cpu=s12z @@ -1044,7 +1070,7 @@ case $cpu-$vendor in ;; parisc-*) cpu=hppa - os=linux + basic_os=linux ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) cpu=i586 @@ -1100,11 +1126,14 @@ case $cpu-$vendor in xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; + arm64-* | aarch64le-*) + cpu=aarch64 + ;; # Recognize the canonical CPU Types that limit and/or modify the # company names they are paired with. cr16-*) - os=${os:-elf} + basic_os=${basic_os:-elf} ;; crisv32-* | etraxfs*-*) cpu=crisv32 @@ -1115,7 +1144,7 @@ case $cpu-$vendor in vendor=axis ;; crx-*) - os=${os:-elf} + basic_os=${basic_os:-elf} ;; neo-tandem) cpu=neo @@ -1137,16 +1166,12 @@ case $cpu-$vendor in cpu=nsx vendor=tandem ;; - s390-*) - cpu=s390 - vendor=ibm - ;; - s390x-*) - cpu=s390x - vendor=ibm + mipsallegrexel-sony) + cpu=mipsallegrexel + vendor=sony ;; tile*-*) - os=${os:-linux-gnu} + basic_os=${basic_os:-linux-gnu} ;; *) @@ -1162,13 +1187,13 @@ case $cpu-$vendor in | alphapca5[67] | alpha64pca5[67] \ | am33_2.0 \ | amdgcn \ - | arc | arceb \ - | arm | arm[lb]e | arme[lb] | armv* \ + | arc | arceb | arc32 | arc64 \ + | arm | arm[lb]e | arme[lb] | armv* \ | avr | avr32 \ | asmjs \ | ba \ | be32 | be64 \ - | bfin | bs2000 \ + | bfin | bpf | bs2000 \ | c[123]* | c30 | [cjt]90 | c4x \ | c8051 | clipper | craynv | csky | cydra \ | d10v | d30v | dlx | dsp16xx \ @@ -1182,14 +1207,15 @@ case $cpu-$vendor in | k1om \ | le32 | le64 \ | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ | m32c | m32r | m32rle \ - | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ - | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ | m88110 | m88k | maxq | mb | mcore | mep | metag \ | microblaze | microblazeel \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ - | mips64 | mips64el \ + | mips64 | mips64eb | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ @@ -1200,9 +1226,13 @@ case $cpu-$vendor in | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r3 | mipsisa32r3el \ + | mipsisa32r5 | mipsisa32r5el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r3 | mipsisa64r3el \ + | mipsisa64r5 | mipsisa64r5el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ @@ -1216,32 +1246,37 @@ case $cpu-$vendor in | nds32 | nds32le | nds32be \ | nfp \ | nios | nios2 | nios2eb | nios2el \ - | none | np1 | ns16k | ns32k \ + | none | np1 | ns16k | ns32k | nvptx \ | open8 \ | or1k* \ | or32 \ | orion \ + | picochip \ | pdp10 | pdp11 | pj | pjl | pn | power \ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ | pru \ | pyramid \ - | riscv | riscv32 | riscv64 \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ | spu \ | tahoe \ + | thumbv7* \ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ | tron \ | ubicom32 \ - | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ | vax \ | visium \ - | wasm32 \ + | w65 \ + | wasm32 | wasm64 \ | we32k \ | x86 | x86_64 | xc16x | xgate | xps100 \ | xstormy16 | xtensa* \ @@ -1271,8 +1306,49 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if [ x$os != x ] +if test x$basic_os != x then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <<EOF +$basic_os +EOF + IFS=$saved_IFS + ;; + # Default OS when just kernel was specified + nto*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto|qnx|'` + ;; + linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|linux|gnu|'` + ;; + *) + kernel= + os=$basic_os + ;; +esac + +# Now, normalize the OS (knowing we just have one component, it's not a kernel, +# etc.) case $os in # First match some system type aliases that might get confused # with valid system types. @@ -1284,7 +1360,7 @@ case $os in os=cnk ;; solaris1 | solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` + os=`echo "$os" | sed -e 's|solaris1|sunos4|'` ;; solaris) os=solaris2 @@ -1292,9 +1368,6 @@ case $os in unixware*) os=sysv4.2uw ;; - gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; # es1800 is here to avoid being matched by es* (a different OS) es1800*) os=ose @@ -1316,12 +1389,9 @@ case $os in os=sco3.2v4 ;; sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` ;; - sco3.2v[4-9]* | sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - ;; - scout) + sco*v* | scout) # Don't match below ;; sco*) @@ -1330,77 +1400,25 @@ case $os in psos*) os=psos ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. - # sysv* is not here because it comes later, after sysvr4. - gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ - | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ - | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ - | sym* | kopensolaris* | plan9* \ - | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ - | aos* | aros* | cloudabi* | sortix* \ - | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ - | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ - | knetbsd* | mirbsd* | netbsd* \ - | bitrig* | openbsd* | solidbsd* | libertybsd* \ - | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ - | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ - | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ - | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ - | chorusrdb* | cegcc* | glidix* \ - | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ - | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ - | linux-newlib* | linux-musl* | linux-uclibc* \ - | uxpv* | beos* | mpeix* | udk* | moxiebox* \ - | interix* | uwin* | mks* | rhapsody* | darwin* \ - | openstep* | oskit* | conix* | pw32* | nonstopux* \ - | storm-chaos* | tops10* | tenex* | tops20* | its* \ - | os2* | vos* | palmos* | uclinux* | nucleus* \ - | morphos* | superux* | rtmk* | windiss* \ - | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ - | skyos* | haiku* | rdos* | toppers* | drops* | es* \ - | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ - | midnightbsd* | amdhsa* | unleashed* | emscripten*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; qnx*) - case $cpu in - x86 | i*86) - ;; - *) - os=nto-$os - ;; - esac + os=qnx ;; hiux*) os=hiuxwe2 ;; - nto-qnx*) - ;; - nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - sim | xray | os68k* | v88r* \ - | windows* | osx | abug | netware* | os9* \ - | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) - ;; - linux-dietlibc) - os=linux-dietlibc - ;; - linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; lynx*178) os=lynxos178 ;; lynx*5) os=lynxos5 ;; + lynxos*) + # don't get caught up in next wildcard + ;; lynx*) os=lynxos ;; - mac*) + mac[0-9]*) os=`echo "$os" | sed -e 's|mac|macos|'` ;; opened*) @@ -1445,12 +1463,9 @@ case $os in ns2) os=nextstep2 ;; - nsk*) - os=nsk - ;; # Preserve the version number of sinix5. sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` + os=`echo "$os" | sed -e 's|sinix|sysv|'` ;; sinix*) os=sysv4 @@ -1473,18 +1488,12 @@ case $os in sysvr4) os=sysv4 ;; - # This must come after sysvr4. - sysv*) - ;; ose*) os=ose ;; *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) os=mint ;; - zvmoe) - os=zvmoe - ;; dicos*) os=dicos ;; @@ -1501,19 +1510,11 @@ case $os in ;; esac ;; - nacl*) - ;; - ios) - ;; - none) - ;; - *-eabi) - ;; *) - echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1526,6 +1527,7 @@ else # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. +kernel= case $cpu-$vendor in score-*) os=elf @@ -1537,7 +1539,8 @@ case $cpu-$vendor in os=riscix1.2 ;; arm*-rebel) - os=linux + kernel=linux + os=gnu ;; arm*-semi) os=aout @@ -1703,84 +1706,180 @@ case $cpu-$vendor in os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | relibc* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* | serenity* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ + | fiwix* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) - case $os in - riscix*) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - sunos*) + *-sunos*) vendor=sun ;; - cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - beos*) + *-beos*) vendor=be ;; - hpux*) + *-hpux*) vendor=hp ;; - mpeix*) + *-mpeix*) vendor=hp ;; - hiux*) + *-hiux*) vendor=hitachi ;; - unos*) + *-unos*) vendor=crds ;; - dgux*) + *-dgux*) vendor=dg ;; - luna*) + *-luna*) vendor=omron ;; - genix*) + *-genix*) vendor=ns ;; - clix*) + *-clix*) vendor=intergraph ;; - mvs* | opened*) + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - os400*) + s390-* | s390x-*) vendor=ibm ;; - ptx*) + *-ptx*) vendor=sequent ;; - tpf*) + *-tpf*) vendor=ibm ;; - vxsim* | vxworks* | windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - aux*) + *-aux*) vendor=apple ;; - hms*) + *-hms*) vendor=hitachi ;; - mpw* | macos*) + *-mpw* | *-macos*) vendor=apple ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - vos*) + *-vos*) vendor=stratus ;; esac ;; esac -echo "$cpu-$vendor-$os" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: