Compass-ci
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
October 2020
- 31 participants
- 682 discussions

[PATCH v5 compass-ci] feat: build centos initramfs image with one command
by Wang Chenglong 21 Oct '20
by Wang Chenglong 21 Oct '20
21 Oct '20
Use the tool to create a new centos-$version initramfs image with one command.
and we also can customize the pre-installed software by configuring
./bin/packages-to-install.
Signed-off-by: Wang Chenglong <18509160991(a)163.com>
---
container/osimage/centos/README.md | 15 ++++++++
container/osimage/centos/create-image | 37 +++++++++++++++++++
container/osimage/centos/files-to-exclude | 11 ++++++
container/osimage/centos/lib | 38 ++++++++++++++++++++
container/osimage/centos/packages-to-install | 9 +++++
container/osimage/centos/run | 27 ++++++++++++++
6 files changed, 137 insertions(+)
create mode 100644 container/osimage/centos/README.md
create mode 100755 container/osimage/centos/create-image
create mode 100644 container/osimage/centos/files-to-exclude
create mode 100755 container/osimage/centos/lib
create mode 100644 container/osimage/centos/packages-to-install
create mode 100755 container/osimage/centos/run
diff --git a/container/osimage/centos/README.md b/container/osimage/centos/README.md
new file mode 100644
index 0000000..88166c8
--- /dev/null
+++ b/container/osimage/centos/README.md
@@ -0,0 +1,15 @@
+# Use the tool to create a new centos-${os_version} initramfs image.
+
+Usage:
+ cd ${CCI_SRC}/rootfs/initramfs/centos/aarch64/${os_version}/
+ ./build
+
+Some configuration items:
+./packages-to-install
+ If you want to pre-install the software, you can write the package names in ./packages-to-install.
+
+./files-to-exclude
+ If you want remove some unnecessary files, you can write the names in ./files-to-exclude
+
+$HOME/.config/compass-ci/rootfs-passwd
+ Set the password for the image into this file.
diff --git a/container/osimage/centos/create-image b/container/osimage/centos/create-image
new file mode 100755
index 0000000..61f3e1c
--- /dev/null
+++ b/container/osimage/centos/create-image
@@ -0,0 +1,37 @@
+#!/bin/bash
+# SPDX-License-Identifier: MulanPSL-2.0+
+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
+
+install_packages()
+{
+ yum repolist
+ yum -y install --skip-broken $(</tmp/packages-to-install)
+ yum clean all
+}
+
+setup_rootfs()
+{
+ ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+}
+
+
+setup_login() {
+ [ -n "$ROOT_NEW_PASSWD" ] || return
+ echo "Changing root password"
+ passwd_md5=$(openssl passwd -1 "$ROOT_NEW_PASSWD")
+ sed -i -r "s/^root:[^:]*:(.*)/root:${passwd_md5//\//\\/}:\1/" "$ROOTFS_DIR/etc/shadow"
+
+ sed -i 's/[# ]PermitRootLogin.*/PermitRootLogin yes/' "$ROOTFS_DIR/etc/ssh/sshd_config"
+}
+
+pack_cgz()
+{
+ echo "Packing package. Please wait."
+ find / ! -path "/tmp/${image_name}" | grep -vf /tmp/files-to-exclude | cpio -o -Hnewc | gzip -9 > /tmp/${image_name}
+ chmod 644 /tmp/${image_name}
+}
+
+install_packages
+setup_rootfs
+setup_login
+pack_cgz
diff --git a/container/osimage/centos/files-to-exclude b/container/osimage/centos/files-to-exclude
new file mode 100644
index 0000000..3854947
--- /dev/null
+++ b/container/osimage/centos/files-to-exclude
@@ -0,0 +1,11 @@
+/.dockerenv
+/lib/modules
+/usr/lib/modules
+/usr/share/doc
+/usr/share/man
+/usr/share/info
+/usr/share/i18n
+/usr/share/locale
+/usr/share/terminfo
+/tmp/files-to-exclude
+/tmp/packages-to-install
diff --git a/container/osimage/centos/lib b/container/osimage/centos/lib
new file mode 100755
index 0000000..bb6d693
--- /dev/null
+++ b/container/osimage/centos/lib
@@ -0,0 +1,38 @@
+#!/bin/bash
+# SPDX-License-Identifier: MulanPSL-2.0+
+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
+
+DIR="$(pwd)"
+os_name="$(echo $DIR |awk -F "/" '{print $(NF - 2)}')"
+os_version="$(echo $DIR |awk -F "/" '{print $NF}')"
+image="${os_name}:${os_version}"
+image_name="${os_name}-${os_version}-$(date +"%Y%m%d").cgz"
+
+check_passwd_file() {
+ root_pwd_file="$HOME/.config/compass-ci/rootfs-passwd"
+ export ROOT_NEW_PASSWD=
+ [ -f "$root_pwd_file" ] || {
+ echo "[INFO] Please set the password file."
+ echo "$HOME/.config/compass-ci/rootfs-passwd"
+ exit 1
+ }
+
+ export ROOT_NEW_PASSWD=$(cat "$root_pwd_file")
+}
+
+pull_docker_image()
+{
+ docker pull $image
+ if [ $? = 0 ]; then
+ echo "finish downloading image"
+ else
+ echo "[INFO] Pull docker image failed."
+ exit
+ fi
+}
+
+docker_cp_image()
+{
+ docker cp -a init_docker:/tmp/${image_name} $HOME/
+ echo "result: $(ls $HOME/${image_name})"
+}
diff --git a/container/osimage/centos/packages-to-install b/container/osimage/centos/packages-to-install
new file mode 100644
index 0000000..a09bc28
--- /dev/null
+++ b/container/osimage/centos/packages-to-install
@@ -0,0 +1,9 @@
+openssh-server
+openssl
+cifs-utils
+hostname
+curl
+iproute
+iputils
+which
+time
diff --git a/container/osimage/centos/run b/container/osimage/centos/run
new file mode 100755
index 0000000..3851429
--- /dev/null
+++ b/container/osimage/centos/run
@@ -0,0 +1,27 @@
+#!/bin/bash
+# SPDX-License-Identifier: MulanPSL-2.0+
+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
+
+. ${CCI_SRC}/container/osimage/centos/lib
+. ${CCI_SRC}/container/defconfig.sh
+
+check_passwd_file
+
+DIR=$(dirname $(realpath $0))
+cmd=(
+ docker run
+ --name init_docker
+ -v $DIR/create-image:/root/bin/create-image
+ -v $DIR/packages-to-install:/tmp/packages-to-install
+ -v $DIR/files-to-exclude:/tmp/files-to-exclude
+ -e ROOT_NEW_PASSWD=$ROOT_NEW_PASSWD
+ -e image_name=$image_name
+ $image
+ /root/bin/create-image
+)
+
+pull_docker_image
+${cmd[@]}
+docker_cp_image
+docker_rm init_docker &> /dev/null
+echo "build finished"
--
2.23.0
2
2
[why]
when run multi-docker job on physical machine, run 50 client to request
job, if server down or error like Connection refused. these client
will exit. when the server recovers, need to run these client again.
[how]
add exception handing to ensure all client does not exit
---
providers/docker/docker.rb | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/providers/docker/docker.rb b/providers/docker/docker.rb
index c241d3c..4e6bc2f 100755
--- a/providers/docker/docker.rb
+++ b/providers/docker/docker.rb
@@ -88,6 +88,20 @@ def main(hostname)
run(hostname, load_path, hash)
end
+def loop_main(hostname)
+ loop do
+ begin
+ main(hostname)
+ rescue StandardError => e
+ puts e.backtrace
+ # if an exception happend, request the next time after 30 seconds
+ sleep 25
+ ensure
+ sleep 5
+ end
+ end
+end
+
def save_pid(pids)
FileUtils.cd("#{ENV['CCI_SRC']}/providers")
f = File.new('dc.pid', 'a')
@@ -99,10 +113,7 @@ def multi_docker(hostname, nr_container)
pids = []
nr_container.to_i.times do |i|
pid = Process.fork do
- loop do
- main("#{hostname}-#{i}")
- sleep 5
- end
+ loop_main("#{hostname}-#{i}")
end
pids << pid
end
--
2.23.0
1
0

[PATCH v3 lkp-tests] fix(iso2rootfs): support skipping iso that not used for dailybuild
by Yu Chuan 20 Oct '20
by Yu Chuan 20 Oct '20
20 Oct '20
[Why]
Openeuler release two kinds of iso type now, we need to skip the
released iso type that not used for dailybuild.
[How]
1. Confirm whether the purpose is dailybuild by iso name.
2. Exit 0 while the released iso is not used for dailybuild.
Signed-off-by: Yu Chuan <13186087857(a)163.com>
---
tests/iso2rootfs | 53 ++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 51 insertions(+), 2 deletions(-)
diff --git a/tests/iso2rootfs b/tests/iso2rootfs
index 89328f2f4a9b..bf1f995e78df 100755
--- a/tests/iso2rootfs
+++ b/tests/iso2rootfs
@@ -22,6 +22,12 @@ log_info()
echo "[INFO] $*"
}
+exit_info()
+{
+ log_info "$@"
+ exit 0
+}
+
die()
{
echo "[ERROR] $*" >&2
@@ -56,6 +62,48 @@ check_yaml_vars()
done
}
+check_iso_name()
+{
+ # Why need this step:
+ #
+ # 1. Our current strategy for detecting iso updates is as follows:
+ # - Monitor iso releases for different os (such as Openeuler).
+ # - Openeuler currently provides an http release_iso file that is
+ # updated each time a new iso is released. we can get the
+ # following two contents from this file:
+ # - Latest iso url;
+ # - Latest iso sha256sum; # Can be obtained by splicing:
+ # {latest_iso_url}. sha256sum
+ #
+ # 2. Regarding the iso name in the iso url, I consulted the support
+ # staff of openeuler's iso release and got the following reply:
+ # - There are currently two kinds of iso names:
+ # - openEuler-2.0-SP8-xxx.iso;
+ # - openEuler-20.03-xxx.iso;
+ # - openEuler-2.0.SP8-xxx. iso is not used for dailybuild;
+ # - Not sure if new uses of iso will be added in the future;
+ #
+ # 3. So we've prepared an array to fill in iso names to skip and
+ # exclude any additions later.
+
+ local iso_prefixes_to_skip
+ case ${iso_os} in
+ "openeuler")
+ iso_prefixes_to_skip=("openEuler-2.0-SP8")
+ ;;
+ *)
+ return
+ ;;
+ esac
+
+ local prefix
+ for prefix in "${iso_prefixes_to_skip[@]}"
+ do
+ [[ ${ISO_NAME} != ${prefix}* ]] ||
+ exit_info "${iso_os} haven't release new iso for openEuler, no need to generate rootfs"
+ done
+}
+
get_daily_iso_checksum()
{
ISO_URL="$(curl "${iso_url_file}")"
@@ -63,8 +111,10 @@ get_daily_iso_checksum()
local pub_ip=$(echo "${iso_url_file}" | grep -oEw "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}")
ISO_URL="$(curl "${iso_url_file}" |sed -r "s/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/${pub_ip}/g")"
}
+
ISO_NAME=$(basename "$ISO_URL")
ISO_CHECKSUM_URL="${ISO_URL}.sha256sum"
+ check_iso_name
curl -o "${CHECKSUM_FILE_CACHE}.tmp" "${ISO_CHECKSUM_URL}"
SHA256SUM_NET=$(awk '{print $1}' "${CHECKSUM_FILE_CACHE}.tmp")
@@ -118,9 +168,8 @@ check_sha256sum_update()
if [ "$SHA256SUM_CACHE" == "$SHA256SUM_NET" ]
then
- log_info "${iso_os} haven't release new iso, no need to generate rootfs"
rm -f "${CHECKSUM_FILE_CACHE}.tmp"
- exit 0
+ exit_info "${iso_os} haven't release new iso, no need to generate rootfs"
else
log_info "${iso_os} release a new iso, start to generate rootfs ..."
return
--
2.23.0
1
0

[PATCH v2 lkp-tests 2/2] fix(iso2rootfs): support skipping iso that not used for dailybuild
by Yu Chuan 20 Oct '20
by Yu Chuan 20 Oct '20
20 Oct '20
[Why]
Openeuler release two kinds of iso type now, we need to skip the
released iso type that not used for dailybuild.
[How]
1. Confirm whether the purpose is dailybuild by iso name.
2. Exit 0 while the released iso is not used for dailybuild.
Signed-off-by: Yu Chuan <13186087857(a)163.com>
---
tests/iso2rootfs | 31 +++++++++++++++++++++++++++++--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/tests/iso2rootfs b/tests/iso2rootfs
index 89328f2f4a9b..9e891d585681 100755
--- a/tests/iso2rootfs
+++ b/tests/iso2rootfs
@@ -22,6 +22,12 @@ log_info()
echo "[INFO] $*"
}
+exit_info()
+{
+ log_info "$@"
+ exit 0
+}
+
die()
{
echo "[ERROR] $*" >&2
@@ -56,6 +62,26 @@ check_yaml_vars()
done
}
+check_iso_name()
+{
+ local skipped_iso_prefixes
+ case ${iso_os} in
+ "openeuler")
+ skipped_iso_prefixes=("openEuler-2.0-SP8")
+ ;;
+ *)
+ return
+ ;;
+ esac
+
+ local prefix
+ for prefix in "${skipped_iso_prefixes[@]}"
+ do
+ [[ ${ISO_NAME} != ${prefix}* ]] ||
+ exit_info "${iso_os} haven't release new iso for openEuler, no need to generate rootfs"
+ done
+}
+
get_daily_iso_checksum()
{
ISO_URL="$(curl "${iso_url_file}")"
@@ -63,8 +89,10 @@ get_daily_iso_checksum()
local pub_ip=$(echo "${iso_url_file}" | grep -oEw "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}")
ISO_URL="$(curl "${iso_url_file}" |sed -r "s/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/${pub_ip}/g")"
}
+
ISO_NAME=$(basename "$ISO_URL")
ISO_CHECKSUM_URL="${ISO_URL}.sha256sum"
+ check_iso_name
curl -o "${CHECKSUM_FILE_CACHE}.tmp" "${ISO_CHECKSUM_URL}"
SHA256SUM_NET=$(awk '{print $1}' "${CHECKSUM_FILE_CACHE}.tmp")
@@ -118,9 +146,8 @@ check_sha256sum_update()
if [ "$SHA256SUM_CACHE" == "$SHA256SUM_NET" ]
then
- log_info "${iso_os} haven't release new iso, no need to generate rootfs"
rm -f "${CHECKSUM_FILE_CACHE}.tmp"
- exit 0
+ exit_info "${iso_os} haven't release new iso, no need to generate rootfs"
else
log_info "${iso_os} release a new iso, start to generate rootfs ..."
return
--
2.23.0
2
4
Solve go download timeout.
Signed-off-by: cuiyili <2268260388(a)qq.com>
---
bin/lkp-setup-rootfs | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/bin/lkp-setup-rootfs b/bin/lkp-setup-rootfs
index 15002feb..2890601e 100755
--- a/bin/lkp-setup-rootfs
+++ b/bin/lkp-setup-rootfs
@@ -157,12 +157,22 @@ modify_gem_source()
return 0
}
+install_goproxy()
+{
+ mkdir -p /root/.config/go/
+ echo "GOPROXY=https://goproxy.io,direct" >> /root/.config/go/env
+
+ return 0
+}
+
install_proxy()
{
modify_gem_source
install_docker_proxy
+ install_goproxy
+
[ -z "$SQUID_HOST" ] && return
[ -z "$SQUID_PORT" ] && return
--
2.23.0
1
0

20 Oct '20
problem:
../scripts/gnu-os: unable to guess system type. This script,
last modified 2004-08-18,has failed to recognize the operating
system you are using
Modification:
1.sed -i 's/llseek/lseek64/g' ./src/disk.c
2.mkdir SCCS && touch ./SCCS/s.ChangeSet
3.sripts/gnu-os update
Signed-off-by: Bai Jing <799286817(a)qq.com>
---
pkg/lmbench3/PKGBUILD | 5 +-
pkg/lmbench3/lmbench.patch | 2358 ++++++++++++++++++++++++++++++++++++
2 files changed, 2361 insertions(+), 2 deletions(-)
create mode 100644 pkg/lmbench3/lmbench.patch
diff --git a/pkg/lmbench3/PKGBUILD b/pkg/lmbench3/PKGBUILD
index 82667fcb..ee96e26b 100644
--- a/pkg/lmbench3/PKGBUILD
+++ b/pkg/lmbench3/PKGBUILD
@@ -5,8 +5,9 @@ pkgdesc="A suite of simple, portable, ANSI/C microbenchmarks for UNIX/POSIX, mea
arch=('i386' 'x86_64')
url="http://www.bitmover.com/lmbench/"
license=('GPL')
-source=("https://github.com/intel/lmbench.git")
-md5sums=('SKIP')
+source=("https://github.com/intel/lmbench.git"
+ "lmbench.patch")
+md5sums=('SKIP' 'SKIP')
build() {
cd "$srcdir/$pkgname"
diff --git a/pkg/lmbench3/lmbench.patch b/pkg/lmbench3/lmbench.patch
new file mode 100644
index 00000000..78550d56
--- /dev/null
+++ b/pkg/lmbench3/lmbench.patch
@@ -0,0 +1,2358 @@
+diff -uNr b/scripts/gnu-os a/scripts/gnu-os
+--- b/scripts/gnu-os 2020-09-23 09:33:24.921303235 +0800
++++ a/scripts/gnu-os 2020-09-23 09:33:24.913302982 +0800
+@@ -1,13 +1,12 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++# Copyright 1992-2020 Free Software Foundation, Inc.
+
+-timestamp='2004-08-18'
++timestamp='2020-04-26'
+
+ # 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 2 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
+@@ -16,24 +15,22 @@
+ # General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++# along with this program; if not, see <https://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-# Originally written by Per Bothner <per(a)bothner.com>.
+-# Please send patches to <config-patches(a)gnu.org>. Submit a context
+-# diff and a properly formatted ChangeLog entry.
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
++#
++# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+ #
+-# This script attempts to guess a canonical system name similar to
+-# config.sub. If it succeeds, it prints the system name on stdout, and
+-# exits with 0. Otherwise, it exits with 1.
++# You can get the latest version of this script from:
++# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.gue…
+ #
+-# The plan is that this can be called by configure scripts if you
+-# don't specify an explicit build system type.
++# Please send patches to <config-patches(a)gnu.org>.
++
+
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+@@ -42,7 +39,7 @@
+
+ Output the configuration name of the system \`$me' is run on.
+
+-Operation modes:
++Options:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+@@ -53,8 +50,7 @@
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+-Free Software Foundation, Inc.
++Copyright 1992-2020 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."
+@@ -66,11 +62,11 @@
+ while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+- echo "$timestamp" ; exit 0 ;;
++ echo "$timestamp" ; exit ;;
+ --version | -v )
+- echo "$version" ; exit 0 ;;
++ echo "$version" ; exit ;;
+ --help | --h* | -h )
+- echo "$usage"; exit 0 ;;
++ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+@@ -88,15 +84,6 @@
+ exit 1
+ fi
+
+-trap 'exit 1' 1 2 15
+-
+-for t in /usr/tmp /var/tmp /tmp; do
+- if [ -d $t -a -w $t ]
+- then TMPDIR=$t
+- break
+- fi
+-done
+-
+ # 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
+@@ -107,34 +94,40 @@
+
+ # Portable tmp directory creation inspired by the Autoconf team.
+
+-set_cc_for_build='
+-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+-: ${TMPDIR=/tmp} ;
+- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+-dummy=$tmp/dummy ;
+-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+-case $CC_FOR_BUILD,$HOST_CC,$CC in
+- ,,) echo "int x;" > $dummy.c ;
+- for c in cc gcc c89 c99 ; do
+- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+- CC_FOR_BUILD="$c"; break ;
+- fi ;
+- done ;
+- if test x"$CC_FOR_BUILD" = x ; then
+- CC_FOR_BUILD=no_compiler_found ;
+- fi
+- ;;
+- ,,*) CC_FOR_BUILD=$CC ;;
+- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+-esac ;'
++tmp=
++# shellcheck disable=SC2172
++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
++ { 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 ; } ||
++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
++ dummy=$tmp/dummy
++ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
++ ,,) 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"
++ break
++ fi
++ done
++ if test x"$CC_FOR_BUILD" = x ; then
++ CC_FOR_BUILD=no_compiler_found
++ fi
++ ;;
++ ,,*) CC_FOR_BUILD=$CC ;;
++ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
++ esac
++}
+
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+ # (ghazi(a)noc.rutgers.edu 1994-08-24)
+-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
++if test -f /.attbin/uname ; then
+ PATH=$PATH:/.attbin ; export PATH
+ fi
+
+@@ -143,12 +136,40 @@
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
++case "$UNAME_SYSTEM" in
++Linux|GNU|GNU/*)
++ # If the system lacks a compiler, then just pick glibc.
++ # We could probably try harder.
++ LIBC=gnu
++
++ set_cc_for_build
++ cat <<-EOF > "$dummy.c"
++ #include <features.h>
++ #if defined(__UCLIBC__)
++ LIBC=uclibc
++ #elif defined(__dietlibc__)
++ LIBC=dietlibc
++ #else
++ LIBC=gnu
++ #endif
++ EOF
++ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
++
++ # If ldd exists, use it to detect musl libc.
++ if command -v ldd >/dev/null && \
++ ldd --version 2>&1 | grep -q ^musl
++ then
++ LIBC=musl
++ fi
++ ;;
++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 tupples: *-*-netbsdelf*, *-*-netbsdaout*,
++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+@@ -158,22 +179,33 @@
+ # 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=`(/sbin/$sysctl 2>/dev/null || \
+- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+- case "${UNAME_MACHINE_ARCH}" in
++ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
++ "/sbin/$sysctl" 2>/dev/null || \
++ "/usr/sbin/$sysctl" 2>/dev/null || \
++ echo unknown)`
++ case "$UNAME_MACHINE_ARCH" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
++ sh5el) machine=sh5le-unknown ;;
++ 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="$UNAME_MACHINE_ARCH"-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+- # to ELF recently, or will in the future.
+- case "${UNAME_MACHINE_ARCH}" in
++ # to ELF recently (or will in the future) and ABI.
++ case "$UNAME_MACHINE_ARCH" in
++ earm*)
++ os=netbsdelf
++ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+- eval $set_cc_for_build
++ set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+- | grep __ELF__ >/dev/null
++ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+@@ -183,7 +215,14 @@
+ fi
+ ;;
+ *)
+- os=netbsd
++ os=netbsd
++ ;;
++ esac
++ # Determine ABI tags.
++ case "$UNAME_MACHINE_ARCH" in
++ earm*)
++ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
++ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+ ;;
+ esac
+ # The OS release
+@@ -191,65 +230,70 @@
+ # 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'
+ ;;
+ *)
+- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+- echo "${machine}-${os}${release}"
+- exit 0 ;;
+- amiga:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- arc:OpenBSD:*:*)
+- echo mipsel-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- hp300:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mac68k:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- macppc:OpenBSD:*:*)
+- echo powerpc-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvme68k:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvme88k:OpenBSD:*:*)
+- echo m88k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- mvmeppc:OpenBSD:*:*)
+- echo powerpc-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- pegasos:OpenBSD:*:*)
+- echo powerpc-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- pmax:OpenBSD:*:*)
+- echo mipsel-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- sgi:OpenBSD:*:*)
+- echo mipseb-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- sun3:OpenBSD:*:*)
+- echo m68k-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- wgrisc:OpenBSD:*:*)
+- echo mipsel-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ echo "$machine-${os}${release}${abi-}"
++ exit ;;
++ *:Bitrig:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
++ exit ;;
+ *:OpenBSD:*:*)
+- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
++ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
++ exit ;;
++ *:LibertyBSD:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
++ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
++ exit ;;
++ *:MidnightBSD:*:*)
++ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
++ exit ;;
++ *:ekkoBSD:*:*)
++ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
++ exit ;;
++ *:SolidBSD:*:*)
++ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
++ exit ;;
++ *:OS108:*:*)
++ echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
++ exit ;;
++ macppc:MirBSD:*:*)
++ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
++ exit ;;
++ *:MirBSD:*:*)
++ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
++ exit ;;
++ *:Sortix:*:*)
++ echo "$UNAME_MACHINE"-unknown-sortix
++ exit ;;
++ *:Twizzler:*:*)
++ echo "$UNAME_MACHINE"-unknown-twizzler
++ exit ;;
++ *:Redox:*:*)
++ echo "$UNAME_MACHINE"-unknown-redox
++ exit ;;
++ mips:OSF1:*.*)
++ echo mips-dec-osf1
++ exit ;;
+ alpha:OSF1:*:*)
+- if test $UNAME_RELEASE = "V4.0"; then
++ case $UNAME_RELEASE in
++ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+- fi
++ ;;
++ *5.*)
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++ ;;
++ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+@@ -257,75 +301,73 @@
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "EV4.5 (21064)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "LCA4 (21066/21068)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "EV5 (21164)")
+- UNAME_MACHINE="alphaev5" ;;
++ UNAME_MACHINE=alphaev5 ;;
+ "EV5.6 (21164A)")
+- UNAME_MACHINE="alphaev56" ;;
++ UNAME_MACHINE=alphaev56 ;;
+ "EV5.6 (21164PC)")
+- UNAME_MACHINE="alphapca56" ;;
++ UNAME_MACHINE=alphapca56 ;;
+ "EV5.7 (21164PC)")
+- UNAME_MACHINE="alphapca57" ;;
++ UNAME_MACHINE=alphapca57 ;;
+ "EV6 (21264)")
+- UNAME_MACHINE="alphaev6" ;;
++ UNAME_MACHINE=alphaev6 ;;
+ "EV6.7 (21264A)")
+- UNAME_MACHINE="alphaev67" ;;
++ UNAME_MACHINE=alphaev67 ;;
+ "EV6.8CB (21264C)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8AL (21264B)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8CX (21264D)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.9A (21264/EV69A)")
+- UNAME_MACHINE="alphaev69" ;;
++ UNAME_MACHINE=alphaev69 ;;
+ "EV7 (21364)")
+- UNAME_MACHINE="alphaev7" ;;
++ UNAME_MACHINE=alphaev7 ;;
+ "EV7.9 (21364A)")
+- UNAME_MACHINE="alphaev79" ;;
++ UNAME_MACHINE=alphaev79 ;;
+ esac
++ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- exit 0 ;;
+- Alpha*:OpenVMS:*:*)
+- echo alpha-hp-vms
+- exit 0 ;;
+- Alpha\ *:Windows_NT*:*)
+- # How do we know it's Interix rather than the generic POSIX subsystem?
+- # Should we change UNAME_MACHINE based on the output of uname instead
+- # of the specific Alpha model?
+- echo alpha-pc-interix
+- exit 0 ;;
+- 21064:Windows_NT:50:3)
+- echo alpha-dec-winnt3.5
+- exit 0 ;;
++ 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 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+- exit 0;;
++ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+- echo ${UNAME_MACHINE}-unknown-amigaos
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-amigaos
++ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+- echo ${UNAME_MACHINE}-unknown-morphos
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-morphos
++ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+- exit 0 ;;
++ exit ;;
++ *:z/VM:*:*)
++ echo s390-ibm-zvmoe
++ exit ;;
+ *:OS400:*:*)
+- echo powerpc-ibm-os400
+- exit 0 ;;
++ echo powerpc-ibm-os400
++ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+- echo arm-acorn-riscix${UNAME_RELEASE}
+- exit 0;;
++ echo arm-acorn-riscix"$UNAME_RELEASE"
++ exit ;;
++ arm*:riscos:*:*|arm*:RISCOS:*:*)
++ echo arm-unknown-riscos
++ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+- exit 0;;
++ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee(a)wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+@@ -333,32 +375,51 @@
+ else
+ echo pyramid-pyramid-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+- exit 0 ;;
++ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+- exit 0 ;;
+- DRS?6000:UNIX_SV:4.2*:7*)
++ exit ;;
++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+- sparc) echo sparc-icl-nx7 && exit 0 ;;
++ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
++ s390x:SunOS:*:*)
++ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
++ exit ;;
+ sun4H:SunOS:5.*:*)
+- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
++ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
+- i86pc:SunOS:5.*:*)
+- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
++ exit ;;
++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
++ echo i386-pc-auroraux"$UNAME_RELEASE"
++ exit ;;
++ 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 (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS="" $CC_FOR_BUILD -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 ;;
+ 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 0 ;;
++ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
++ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+@@ -366,26 +427,26 @@
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+- exit 0 ;;
++ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
++ exit ;;
+ sun3*:SunOS:*:*)
+- echo m68k-sun-sunos${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-sun-sunos"$UNAME_RELEASE"
++ exit ;;
+ 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
++ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+- echo m68k-sun-sunos${UNAME_RELEASE}
++ echo m68k-sun-sunos"$UNAME_RELEASE"
+ ;;
+ sun4)
+- echo sparc-sun-sunos${UNAME_RELEASE}
++ echo sparc-sun-sunos"$UNAME_RELEASE"
+ ;;
+ esac
+- exit 0 ;;
++ exit ;;
+ aushp:SunOS:*:*)
+- echo sparc-auspex-sunos${UNAME_RELEASE}
+- exit 0 ;;
++ echo sparc-auspex-sunos"$UNAME_RELEASE"
++ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+@@ -395,41 +456,44 @@
+ # 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 0 ;;
++ echo m68k-atari-mint"$UNAME_RELEASE"
++ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+- echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-atari-mint"$UNAME_RELEASE"
++ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+- echo m68k-atari-mint${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-atari-mint"$UNAME_RELEASE"
++ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+- echo m68k-milan-mint${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-milan-mint"$UNAME_RELEASE"
++ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+- echo m68k-hades-mint${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-hades-mint"$UNAME_RELEASE"
++ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+- echo m68k-unknown-mint${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-unknown-mint"$UNAME_RELEASE"
++ exit ;;
++ m68k:machten:*:*)
++ echo m68k-apple-machten"$UNAME_RELEASE"
++ exit ;;
+ powerpc:machten:*:*)
+- echo powerpc-apple-machten${UNAME_RELEASE}
+- exit 0 ;;
++ echo powerpc-apple-machten"$UNAME_RELEASE"
++ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+- exit 0 ;;
++ exit ;;
+ RISC*:ULTRIX:*:*)
+- echo mips-dec-ultrix${UNAME_RELEASE}
+- exit 0 ;;
++ echo mips-dec-ultrix"$UNAME_RELEASE"
++ exit ;;
+ VAX*:ULTRIX*:*:*)
+- echo vax-dec-ultrix${UNAME_RELEASE}
+- exit 0 ;;
++ echo vax-dec-ultrix"$UNAME_RELEASE"
++ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+- echo clipper-intergraph-clix${UNAME_RELEASE}
+- exit 0 ;;
++ echo clipper-intergraph-clix"$UNAME_RELEASE"
++ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
++ set_cc_for_build
++ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __cplusplus
+ #include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+@@ -438,94 +502,95 @@
+ #endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
++ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
++ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
++ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c \
+- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+- && exit 0
+- echo mips-mips-riscos${UNAME_RELEASE}
+- exit 0 ;;
++ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
++ 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 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+- exit 0 ;;
++ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+- exit 0 ;;
++ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+- exit 0 ;;
++ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+- exit 0 ;;
++ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+- exit 0 ;;
++ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+- exit 0 ;;
++ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+- exit 0 ;;
++ exit ;;
+ AViiON:dgux:*:*)
+- # DG/UX returns AViiON for all architectures
+- UNAME_PROCESSOR=`/usr/bin/uname -p`
+- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
++ # DG/UX returns AViiON for all architectures
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+ then
+- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+- [ ${TARGET_BINARY_INTERFACE}x = x ]
++ if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
++ [ "$TARGET_BINARY_INTERFACE"x = x ]
+ then
+- echo m88k-dg-dgux${UNAME_RELEASE}
++ echo m88k-dg-dgux"$UNAME_RELEASE"
+ else
+- echo m88k-dg-dguxbcs${UNAME_RELEASE}
++ echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+ fi
+ else
+- echo i586-dg-dgux${UNAME_RELEASE}
++ echo i586-dg-dgux"$UNAME_RELEASE"
+ fi
+- exit 0 ;;
++ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+- exit 0 ;;
++ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+- exit 0 ;;
++ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+- exit 0 ;;
++ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+- exit 0 ;;
++ exit ;;
+ *:IRIX*:*:*)
+- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+- exit 0 ;;
++ echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
++ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+- exit 0 ;;
++ exit ;;
+ ia64:AIX:*:*)
+ if [ -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 0 ;;
++ echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
++ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
++ set_cc_for_build
++ sed 's/^ //' << EOF > "$dummy.c"
+ #include <sys/systemcfg.h>
+
+ main()
+@@ -536,128 +601,143 @@
+ exit(0);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+- echo rs6000-ibm-aix3.2.5
++ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
++ then
++ echo "$SYSTEM_NAME"
++ else
++ echo rs6000-ibm-aix3.2.5
++ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+- exit 0 ;;
+- *:AIX:*:[45])
++ 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
++ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+- if [ -x /usr/bin/oslevel ] ; then
+- IBM_REV=`/usr/bin/oslevel`
++ if [ -x /usr/bin/lslpp ] ; then
++ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ else
+- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ fi
+- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+- exit 0 ;;
++ echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
++ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+- exit 0 ;;
+- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
++ exit ;;
++ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ echo romp-ibm-bsd4.4
+- exit 0 ;;
++ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+- exit 0 ;; # report: romp-ibm BSD 4.3
++ echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
++ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+- exit 0 ;;
++ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+- exit 0 ;;
++ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+- exit 0 ;;
++ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+- exit 0 ;;
++ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+- case "${UNAME_MACHINE}" in
+- 9000/31? ) HP_ARCH=m68000 ;;
+- 9000/[34]?? ) HP_ARCH=m68k ;;
++ 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
+ 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
+- 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
+- 32) HP_ARCH="hppa2.0n" ;;
+- 64) HP_ARCH="hppa2.0w" ;;
+- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+- esac ;;
+- esac
++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++ 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
++ 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
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+-
+- #define _HPUX_SOURCE
+- #include <stdlib.h>
+- #include <unistd.h>
+-
+- int main ()
+- {
+- #if defined(_SC_KERNEL_BITS)
+- long bits = sysconf(_SC_KERNEL_BITS);
+- #endif
+- long cpu = sysconf (_SC_CPU_VERSION);
+-
+- switch (cpu)
+- {
+- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+- case CPU_PA_RISC2_0:
+- #if defined(_SC_KERNEL_BITS)
+- switch (bits)
+- {
+- case 64: puts ("hppa2.0w"); break;
+- case 32: puts ("hppa2.0n"); break;
+- default: puts ("hppa2.0"); break;
+- } break;
+- #else /* !defined(_SC_KERNEL_BITS) */
+- puts ("hppa2.0"); break;
+- #endif
+- default: puts ("hppa1.0"); break;
+- }
+- exit (0);
+- }
++ if [ "$HP_ARCH" = "" ]; then
++ set_cc_for_build
++ sed 's/^ //' << EOF > "$dummy.c"
++
++ #define _HPUX_SOURCE
++ #include <stdlib.h>
++ #include <unistd.h>
++
++ int main ()
++ {
++ #if defined(_SC_KERNEL_BITS)
++ long bits = sysconf(_SC_KERNEL_BITS);
++ #endif
++ long cpu = sysconf (_SC_CPU_VERSION);
++
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++ case CPU_PA_RISC2_0:
++ #if defined(_SC_KERNEL_BITS)
++ switch (bits)
++ {
++ case 64: puts ("hppa2.0w"); break;
++ case 32: puts ("hppa2.0n"); break;
++ default: puts ("hppa2.0"); break;
++ } break;
++ #else /* !defined(_SC_KERNEL_BITS) */
++ puts ("hppa2.0"); break;
++ #endif
++ default: puts ("hppa1.0"); break;
++ }
++ exit (0);
++ }
+ EOF
+- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+- if [ ${HP_ARCH} = "hppa2.0w" ]
++ if [ "$HP_ARCH" = hppa2.0w ]
+ then
+- # avoid double evaluation of $set_cc_for_build
+- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
++ set_cc_for_build
++
++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
++ # generating 64-bit code. GNU and HP use different nomenclature:
++ #
++ # $ CC_FOR_BUILD=cc ./config.guess
++ # => hppa2.0w-hp-hpux11.23
++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++ # => hppa64-hp-hpux11.23
++
++ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
++ grep -q __LP64__
+ then
+- HP_ARCH="hppa2.0w"
++ HP_ARCH=hppa2.0w
+ else
+- HP_ARCH="hppa64"
++ HP_ARCH=hppa64
+ fi
+ fi
+- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+- exit 0 ;;
++ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
++ exit ;;
+ ia64:HP-UX:*:*)
+- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+- echo ia64-hp-hpux${HPUX_REV}
+- exit 0 ;;
++ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
++ echo ia64-hp-hpux"$HPUX_REV"
++ exit ;;
+ 3050*:HI-UX:*:*)
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
++ set_cc_for_build
++ sed 's/^ //' << EOF > "$dummy.c"
+ #include <unistd.h>
+ int
+ main ()
+@@ -682,357 +762,409 @@
+ exit (0);
+ }
+ EOF
+- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
++ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
++ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+- exit 0 ;;
+- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
++ exit ;;
++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ echo hppa1.1-hp-bsd
+- exit 0 ;;
++ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+- exit 0 ;;
++ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+- exit 0 ;;
+- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
++ exit ;;
++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ echo hppa1.1-hp-osf
+- exit 0 ;;
++ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+- exit 0 ;;
++ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+- echo ${UNAME_MACHINE}-unknown-osf1mk
++ echo "$UNAME_MACHINE"-unknown-osf1mk
+ else
+- echo ${UNAME_MACHINE}-unknown-osf1
++ echo "$UNAME_MACHINE"-unknown-osf1
+ fi
+- exit 0 ;;
++ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+- exit 0 ;;
++ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+- exit 0 ;;
++ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+- exit 0 ;;
++ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+- exit 0 ;;
++ exit ;;
+ CRAY*Y-MP:*:*:*)
+- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
++ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ exit ;;
+ CRAY*TS:*:*:*)
+- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
+ CRAY*T3E:*:*:*)
+- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
+ CRAY*SV1:*:*:*)
+- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
+ *:UNICOS/mp:*:*)
+- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+- exit 0 ;;
++ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
+ 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 0 ;;
++ 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 ;;
+ 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 0 ;;
++ 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 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
++ exit ;;
+ sparc*:BSD/OS:*:*)
+- echo sparc-unknown-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ echo sparc-unknown-bsdi"$UNAME_RELEASE"
++ exit ;;
+ *:BSD/OS:*:*)
+- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
++ exit ;;
++ 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
++ else
++ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
++ fi
++ exit ;;
+ *:FreeBSD:*:*)
+- # Determine whether the default compiler uses glibc.
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #include <features.h>
+- #if __GLIBC__ >= 2
+- LIBC=gnu
+- #else
+- LIBC=
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+- # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
+- # FreeBSD's kernel, but not the complete OS.
+- case ${LIBC} in gnu) kernel_only='k' ;; esac
+- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+- exit 0 ;;
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ 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 ;;
+ i*:CYGWIN*:*)
+- echo ${UNAME_MACHINE}-pc-cygwin
+- exit 0 ;;
+- i*:MINGW*:*)
+- echo ${UNAME_MACHINE}-pc-mingw32
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-pc-cygwin
++ exit ;;
++ *:MINGW64*:*)
++ echo "$UNAME_MACHINE"-pc-mingw64
++ exit ;;
++ *:MINGW*:*)
++ echo "$UNAME_MACHINE"-pc-mingw32
++ exit ;;
++ *:MSYS*:*)
++ echo "$UNAME_MACHINE"-pc-msys
++ exit ;;
+ i*:PW*:*)
+- echo ${UNAME_MACHINE}-pc-pw32
+- exit 0 ;;
+- x86:Interix*:[34]*)
+- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+- exit 0 ;;
+- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+- echo i${UNAME_MACHINE}-pc-mks
+- exit 0 ;;
+- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+- # How do we know it's Interix rather than the generic POSIX subsystem?
+- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+- # UNAME_MACHINE based on the output of uname instead of i386?
+- echo i586-pc-interix
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-pc-pw32
++ exit ;;
++ *:Interix*:*)
++ case "$UNAME_MACHINE" in
++ x86)
++ echo i586-pc-interix"$UNAME_RELEASE"
++ exit ;;
++ authenticamd | genuineintel | EM64T)
++ echo x86_64-unknown-interix"$UNAME_RELEASE"
++ exit ;;
++ IA64)
++ echo ia64-unknown-interix"$UNAME_RELEASE"
++ exit ;;
++ esac ;;
+ i*:UWIN*:*)
+- echo ${UNAME_MACHINE}-pc-uwin
+- exit 0 ;;
+- p*:CYGWIN*:*)
+- echo powerpcle-unknown-cygwin
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-pc-uwin
++ exit ;;
++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
++ echo x86_64-pc-cygwin
++ exit ;;
+ prep*:SunOS:5.*:*)
+- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit 0 ;;
++ echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
++ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+- exit 0 ;;
++ echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
++ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+- exit 0 ;;
+- i*86:Minix:*:*)
+- echo ${UNAME_MACHINE}-pc-minix
+- exit 0 ;;
++ echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
++ exit ;;
++ *:Minix:*:*)
++ echo "$UNAME_MACHINE"-unknown-minix
++ exit ;;
++ aarch64:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ aarch64_be:Linux:*:*)
++ UNAME_MACHINE=aarch64_be
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ alpha:Linux:*:*)
++ 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 ;;
++ PCA57) UNAME_MACHINE=alphapca56 ;;
++ EV6) UNAME_MACHINE=alphaev6 ;;
++ EV67) UNAME_MACHINE=alphaev67 ;;
++ EV68*) UNAME_MACHINE=alphaev68 ;;
++ esac
++ objdump --private-headers /bin/sh | grep -q ld.so.1
++ 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 ;;
+ arm*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ 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"
++ 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
++ else
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
++ fi
++ fi
++ exit ;;
++ avr32*:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
+ cris:Linux:*:*)
+- echo cris-axis-linux-gnu
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
++ exit ;;
++ crisv32:Linux:*:*)
++ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
++ exit ;;
++ e2k:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ frv:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ hexagon:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ i*86:Linux:*:*)
++ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
++ exit ;;
+ ia64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ k1om:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ m32r*:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
+ m68*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
+- mips:Linux:*:*)
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ 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 mips
+ #undef mipsel
+- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+- CPU=mipsel
++ #undef mips64
++ #undef mips64el
++ #if ${IS_GLIBC} && defined(_ABI64)
++ LIBCABI=gnuabi64
+ #else
+- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+- CPU=mips
++ #if ${IS_GLIBC} && defined(_ABIN32)
++ LIBCABI=gnuabin32
+ #else
+- CPU=
++ LIBCABI=${LIBC}
+ #endif
+ #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+- ;;
+- mips64:Linux:*:*)
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #undef CPU
+- #undef mips64
+- #undef mips64el
++
++ #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=mips64el
++ MIPS_ENDIAN=el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+- CPU=mips64
++ 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-gnu" && exit 0
++ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
++ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+ ;;
+- ppc:Linux:*:*)
+- echo powerpc-unknown-linux-gnu
+- exit 0 ;;
+- ppc64:Linux:*:*)
+- echo powerpc64-unknown-linux-gnu
+- exit 0 ;;
+- alpha:Linux:*:*)
+- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+- EV5) UNAME_MACHINE=alphaev5 ;;
+- EV56) UNAME_MACHINE=alphaev56 ;;
+- PCA56) UNAME_MACHINE=alphapca56 ;;
+- PCA57) UNAME_MACHINE=alphapca56 ;;
+- EV6) UNAME_MACHINE=alphaev6 ;;
+- EV67) UNAME_MACHINE=alphaev67 ;;
+- EV68*) UNAME_MACHINE=alphaev68 ;;
+- esac
+- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+- exit 0 ;;
++ mips64el:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ openrisc*:Linux:*:*)
++ echo or1k-unknown-linux-"$LIBC"
++ exit ;;
++ or32:Linux:*:* | or1k*:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ padre:Linux:*:*)
++ echo sparc-unknown-linux-"$LIBC"
++ exit ;;
++ parisc64:Linux:*:* | hppa64:Linux:*:*)
++ echo hppa64-unknown-linux-"$LIBC"
++ exit ;;
+ 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-gnu ;;
+- PA8*) echo hppa2.0-unknown-linux-gnu ;;
+- *) echo hppa-unknown-linux-gnu ;;
++ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
++ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
++ *) echo hppa-unknown-linux-"$LIBC" ;;
+ esac
+- exit 0 ;;
+- parisc64:Linux:*:* | hppa64:Linux:*:*)
+- echo hppa64-unknown-linux-gnu
+- exit 0 ;;
++ exit ;;
++ ppc64:Linux:*:*)
++ echo powerpc64-unknown-linux-"$LIBC"
++ exit ;;
++ ppc:Linux:*:*)
++ echo powerpc-unknown-linux-"$LIBC"
++ exit ;;
++ ppc64le:Linux:*:*)
++ echo powerpc64le-unknown-linux-"$LIBC"
++ exit ;;
++ ppcle:Linux:*:*)
++ echo powerpcle-unknown-linux-"$LIBC"
++ exit ;;
++ riscv32:Linux:*:* | riscv64:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+- echo ${UNAME_MACHINE}-ibm-linux
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
++ exit ;;
+ sh64*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
+ sh*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ tile*:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
++ vax:Linux:*:*)
++ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
++ exit ;;
+ x86_64:Linux:*:*)
+- echo x86_64-unknown-linux-gnu
+- exit 0 ;;
+- i*86:Linux:*:*)
+- # The BFD linker knows what the default object file format is, so
+- # first see if it will tell us. cd to the root directory to prevent
+- # problems with other programs or directories called `ld' in the path.
+- # Set LC_ALL=C to ensure ld outputs messages in English.
+- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+- | sed -ne '/supported targets:/!d
+- s/[ ][ ]*/ /g
+- s/.*supported targets: *//
+- s/ .*//
+- p'`
+- case "$ld_supported_targets" in
+- elf32-i386)
+- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+- ;;
+- a.out-i386-linux)
+- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+- exit 0 ;;
+- coff-i386)
+- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+- exit 0 ;;
+- "")
+- # Either a pre-BFD a.out linker (linux-gnuoldld) or
+- # one that does not give us useful --help.
+- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+- exit 0 ;;
+- esac
+- # Determine whether the default compiler is a.out or elf
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #include <features.h>
+- #ifdef __ELF__
+- # ifdef __GLIBC__
+- # if __GLIBC__ >= 2
+- LIBC=gnu
+- # else
+- LIBC=gnulibc1
+- # endif
+- # else
+- LIBC=gnulibc1
+- # endif
+- #else
+- #ifdef __INTEL_COMPILER
+- LIBC=gnu
+- #else
+- LIBC=gnuaout
+- #endif
+- #endif
+- #ifdef __dietlibc__
+- LIBC=dietlibc
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+- ;;
++ set_cc_for_build
++ LIBCABI=$LIBC
++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
++ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_X32 >/dev/null
++ then
++ LIBCABI="$LIBC"x32
++ fi
++ fi
++ echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
++ exit ;;
++ xtensa*:Linux:*:*)
++ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
++ exit ;;
+ 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 0 ;;
++ exit ;;
+ 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,
++ # 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 0 ;;
++ # Use sysv4.2uw... so that sysv4* matches it.
++ echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
++ exit ;;
+ 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 0 ;;
++ echo "$UNAME_MACHINE"-pc-os2-emx
++ exit ;;
+ i*86:XTS-300:*:STOP)
+- echo ${UNAME_MACHINE}-unknown-stop
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-stop
++ exit ;;
+ i*86:atheos:*:*)
+- echo ${UNAME_MACHINE}-unknown-atheos
+- exit 0 ;;
+- i*86:syllable:*:*)
+- echo ${UNAME_MACHINE}-pc-syllable
+- exit 0 ;;
+- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+- echo i386-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-atheos
++ exit ;;
++ i*86:syllable:*:*)
++ echo "$UNAME_MACHINE"-pc-syllable
++ exit ;;
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
++ echo i386-unknown-lynxos"$UNAME_RELEASE"
++ exit ;;
+ i*86:*DOS:*:*)
+- echo ${UNAME_MACHINE}-pc-msdosdjgpp
+- exit 0 ;;
+- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
++ echo "$UNAME_MACHINE"-pc-msdosdjgpp
++ exit ;;
++ 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}
++ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+ else
+- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
++ echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+ fi
+- exit 0 ;;
+- i*86:*:5:[78]*)
++ exit ;;
++ i*86:*:5:[678]*)
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+- exit 0 ;;
++ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
++ exit ;;
+ 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
++ echo "$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
+@@ -1042,214 +1174,326 @@
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
++ echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+ else
+- echo ${UNAME_MACHINE}-pc-sysv32
++ echo "$UNAME_MACHINE"-pc-sysv32
+ fi
+- exit 0 ;;
++ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+- # uname -m prints for DJGPP always 'pc', but it prints nothing about
+- # the processor, so we play safe by assuming i386.
+- echo i386-pc-msdosdjgpp
+- exit 0 ;;
++ # uname -m prints for DJGPP always 'pc', but it prints nothing about
++ # the processor, so we play safe by assuming i586.
++ # 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 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+- exit 0 ;;
++ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+- exit 0 ;;
++ exit ;;
+ 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
++ echo 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
++ echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
+ fi
+- exit 0 ;;
++ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+- exit 0 ;;
++ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+- exit 0 ;;
++ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+- exit 0 ;;
+- M68*:*:R3V[567]*:*)
+- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+- 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)
++ exit ;;
++ 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)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
++ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
++ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && echo i486-ncr-sysv4 && exit 0 ;;
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4; exit; } ;;
++ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
++ OS_REL='.3'
++ test -r /etc/.relid \
++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
++ /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 0 ;;
++ echo m68k-unknown-lynxos"$UNAME_RELEASE"
++ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+- exit 0 ;;
++ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+- echo sparc-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ echo sparc-unknown-lynxos"$UNAME_RELEASE"
++ exit ;;
+ rs6000:LynxOS:2.*:*)
+- echo rs6000-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
+- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+- echo powerpc-unknown-lynxos${UNAME_RELEASE}
+- exit 0 ;;
++ echo rs6000-unknown-lynxos"$UNAME_RELEASE"
++ exit ;;
++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
++ echo powerpc-unknown-lynxos"$UNAME_RELEASE"
++ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+- echo mips-dde-sysv${UNAME_RELEASE}
+- exit 0 ;;
++ echo mips-dde-sysv"$UNAME_RELEASE"
++ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+- exit 0 ;;
++ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+- exit 0 ;;
++ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+- echo ${UNAME_MACHINE}-sni-sysv4
++ echo "$UNAME_MACHINE"-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+- exit 0 ;;
+- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+- # says <Richard.M.Bartel(a)ccMail.Census.GOV>
+- echo i586-unisys-sysv4
+- exit 0 ;;
++ exit ;;
++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says <Richard.M.Bartel(a)ccMail.Census.GOV>
++ echo i586-unisys-sysv4
++ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes(a)openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+- exit 0 ;;
++ exit ;;
+ *:*:*:FTX*)
+ # From seanf(a)swdc.stratus.com.
+ echo i860-stratus-sysv4
+- exit 0 ;;
++ exit ;;
++ i*86:VOS:*:*)
++ # From Paul.Green(a)stratus.com.
++ echo "$UNAME_MACHINE"-stratus-vos
++ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green(a)stratus.com.
+ echo hppa1.1-stratus-vos
+- exit 0 ;;
++ exit ;;
+ mc68*:A/UX:*:*)
+- echo m68k-apple-aux${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-apple-aux"$UNAME_RELEASE"
++ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+- exit 0 ;;
++ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+- echo mips-nec-sysv${UNAME_RELEASE}
++ echo mips-nec-sysv"$UNAME_RELEASE"
+ else
+- echo mips-unknown-sysv${UNAME_RELEASE}
++ echo mips-unknown-sysv"$UNAME_RELEASE"
+ fi
+- exit 0 ;;
++ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+- exit 0 ;;
++ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+- exit 0 ;;
++ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+- exit 0 ;;
++ exit ;;
++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
++ echo i586-pc-haiku
++ exit ;;
++ x86_64:Haiku:*:*)
++ echo x86_64-unknown-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+- echo sx4-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ echo sx4-nec-superux"$UNAME_RELEASE"
++ exit ;;
+ SX-5:SUPER-UX:*:*)
+- echo sx5-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ echo sx5-nec-superux"$UNAME_RELEASE"
++ exit ;;
+ SX-6:SUPER-UX:*:*)
+- echo sx6-nec-superux${UNAME_RELEASE}
+- exit 0 ;;
++ echo sx6-nec-superux"$UNAME_RELEASE"
++ exit ;;
++ SX-7:SUPER-UX:*:*)
++ echo sx7-nec-superux"$UNAME_RELEASE"
++ exit ;;
++ SX-8:SUPER-UX:*:*)
++ echo sx8-nec-superux"$UNAME_RELEASE"
++ exit ;;
++ SX-8R:SUPER-UX:*:*)
++ echo sx8r-nec-superux"$UNAME_RELEASE"
++ exit ;;
++ SX-ACE:SUPER-UX:*:*)
++ echo sxace-nec-superux"$UNAME_RELEASE"
++ exit ;;
+ Power*:Rhapsody:*:*)
+- echo powerpc-apple-rhapsody${UNAME_RELEASE}
+- exit 0 ;;
++ echo powerpc-apple-rhapsody"$UNAME_RELEASE"
++ exit ;;
+ *:Rhapsody:*:*)
+- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
++ exit ;;
+ *:Darwin:*:*)
+- case `uname -p` in
+- *86) UNAME_PROCESSOR=i686 ;;
+- powerpc) UNAME_PROCESSOR=powerpc ;;
++ UNAME_PROCESSOR=`uname -p`
++ case $UNAME_PROCESSOR in
++ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+- exit 0 ;;
++ 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 [ "$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
++ # uname -m returns i386 or x86_64
++ UNAME_PROCESSOR=$UNAME_MACHINE
++ fi
++ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
++ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+- if test "$UNAME_PROCESSOR" = "x86"; then
++ if test "$UNAME_PROCESSOR" = x86; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+- exit 0 ;;
++ echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
++ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+- exit 0 ;;
+- NSR-?:NONSTOP_KERNEL:*:*)
+- echo nsr-tandem-nsk${UNAME_RELEASE}
+- exit 0 ;;
++ exit ;;
++ NEO-*:NONSTOP_KERNEL:*:*)
++ echo neo-tandem-nsk"$UNAME_RELEASE"
++ exit ;;
++ NSE-*:NONSTOP_KERNEL:*:*)
++ echo nse-tandem-nsk"$UNAME_RELEASE"
++ exit ;;
++ NSR-*:NONSTOP_KERNEL:*:*)
++ echo nsr-tandem-nsk"$UNAME_RELEASE"
++ exit ;;
++ NSV-*:NONSTOP_KERNEL:*:*)
++ echo nsv-tandem-nsk"$UNAME_RELEASE"
++ exit ;;
++ NSX-*:NONSTOP_KERNEL:*:*)
++ echo nsx-tandem-nsk"$UNAME_RELEASE"
++ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+- exit 0 ;;
++ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+- exit 0 ;;
++ exit ;;
+ DS/*:UNIX_System_V:*:*)
+- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
++ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+- if test "$cputype" = "386"; then
++ # shellcheck disable=SC2154
++ if test "$cputype" = 386; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+- echo ${UNAME_MACHINE}-unknown-plan9
+- exit 0 ;;
++ echo "$UNAME_MACHINE"-unknown-plan9
++ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+- exit 0 ;;
++ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+- exit 0 ;;
++ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+- exit 0 ;;
++ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+- exit 0 ;;
++ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+- exit 0 ;;
++ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+- exit 0 ;;
++ exit ;;
+ SEI:*:*:SEIUX)
+- echo mips-sei-seiux${UNAME_RELEASE}
+- exit 0 ;;
+- *:DRAGONFLY:*:*)
+- echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE}
+- exit 0 ;;
++ echo mips-sei-seiux"$UNAME_RELEASE"
++ exit ;;
++ *:DragonFly:*:*)
++ echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
++ exit ;;
++ *:*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 ;;
++ esac ;;
++ *:XENIX:*:SysV)
++ echo i386-pc-xenix
++ exit ;;
++ i*86:skyos:*:*)
++ echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
++ exit ;;
++ i*86:rdos:*:*)
++ echo "$UNAME_MACHINE"-pc-rdos
++ exit ;;
++ i*86:AROS:*:*)
++ echo "$UNAME_MACHINE"-pc-aros
++ exit ;;
++ x86_64:VMkernel:*:*)
++ echo "$UNAME_MACHINE"-unknown-esx
++ exit ;;
++ amd64:Isilon\ OneFS:*:*)
++ echo x86_64-unknown-onefs
++ exit ;;
++ *:Unleashed:*:*)
++ echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
++ exit ;;
+ esac
+
+-#echo '(No uname command or uname output not recognized.)' 1>&2
+-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+-
+-eval $set_cc_for_build
+-cat >$dummy.c <<EOF
++# 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>
++#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 ()
+ {
+@@ -1262,20 +1506,12 @@
+ #include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+ #ifdef NEWSOS4
+- "4"
++ "4"
+ #else
+- ""
+-#endif
+- ); exit (0);
++ ""
+ #endif
++ ); exit (0);
+ #endif
+-
+-#if defined (__arm) && defined (__acorn) && defined (__unix)
+- printf ("arm-acorn-riscix"); exit (0);
+-#endif
+-
+-#if defined (hp300) && !defined (hpux)
+- printf ("m68k-hp-bsd\n"); exit (0);
+ #endif
+
+ #if defined (NeXT)
+@@ -1317,39 +1553,54 @@
+ #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);
++ 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
+- printf ("vax-dec-ultrix\n"); exit (0);
+-# endif
++#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)
+@@ -1360,51 +1611,44 @@
+ }
+ EOF
+
+-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
++$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; }
+
+-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
++echo "$0: unable to guess system type" >&2
+
+-# Convex versions that predate uname can use getsysinfo(1)
++case "$UNAME_MACHINE:$UNAME_SYSTEM" in
++ mips:Linux | mips64:Linux)
++ # If we got here on MIPS GNU/Linux, output extra information.
++ cat >&2 <<EOF
+
+-if [ -x /usr/convex/getsysinfo ]
+-then
+- case `getsysinfo -f cpu_type` in
+- c1*)
+- echo c1-convex-bsd
+- exit 0 ;;
+- c2*)
+- if getsysinfo -f scalar_acc
+- then echo c32-convex-bsd
+- else echo c2-convex-bsd
+- fi
+- exit 0 ;;
+- c34*)
+- echo c34-convex-bsd
+- exit 0 ;;
+- c38*)
+- echo c38-convex-bsd
+- exit 0 ;;
+- c4*)
+- echo c4-convex-bsd
+- exit 0 ;;
+- esac
+-fi
++NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
++the system type. Please install a C compiler and try again.
++EOF
++ ;;
++esac
+
+ cat >&2 <<EOF
+-$0: unable to guess system type
+
+-This script, last modified $timestamp, has failed to recognize
+-the operating system you are using. It is advised that you
+-download the most up to date version of the config scripts from
+-
+- ftp://ftp.gnu.org/pub/gnu/config/
+-
+-If the version you run ($0) is already up to date, please
+-send the following data and any information you think might be
+-pertinent to <config-patches(a)gnu.org> in order to provide the needed
+-information to handle your system.
++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.gue…
++and
++ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
++EOF
++
++year=`echo $timestamp | sed 's,-.*,,'`
++# shellcheck disable=SC2003
++if test "`expr "\`date +%Y\`" - "$year"`" -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(a)gnu.org to
++provide the necessary information to handle your system.
+
+ config.guess timestamp = $timestamp
+
+@@ -1423,16 +1667,17 @@
+ /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+ /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+-UNAME_MACHINE = ${UNAME_MACHINE}
+-UNAME_RELEASE = ${UNAME_RELEASE}
+-UNAME_SYSTEM = ${UNAME_SYSTEM}
+-UNAME_VERSION = ${UNAME_VERSION}
++UNAME_MACHINE = "$UNAME_MACHINE"
++UNAME_RELEASE = "$UNAME_RELEASE"
++UNAME_SYSTEM = "$UNAME_SYSTEM"
++UNAME_VERSION = "$UNAME_VERSION"
+ EOF
++fi
+
+ exit 1
+
+ # Local variables:
+-# eval: (add-hook 'write-file-hooks 'time-stamp)
++# eval: (add-hook 'before-save-hook 'time-stamp)
+ # time-stamp-start: "timestamp='"
+ # time-stamp-format: "%:y-%02m-%02d"
+ # time-stamp-end: "'"
+diff -uNr b/src/disk.c a/src/disk.c
+--- b/src/disk.c 2020-09-23 09:33:24.921303235 +0800
++++ a/src/disk.c 2020-09-23 09:33:24.901302603 +0800
+@@ -288,16 +288,16 @@
+ int
+ seekto(int fd, uint64 off)
+ {
+- // In modern times, lseek() is 64-bit clean.
++ // In modern times, lseek64() is 64-bit clean.
+
+ uint64 here = 0;
+
+- lseek(fd, 0, 0);
++ lseek64(fd, 0, 0);
+ while ((uint64)(off - here) > (uint64)BIGSEEK) {
+- if (lseek(fd, BIGSEEK, SEEK_CUR) == -1) break;
++ if (lseek64(fd, BIGSEEK, SEEK_CUR) == -1) break;
+ here += BIGSEEK;
+ }
+ assert((uint64)(off - here) <= (uint64)BIGSEEK);
+- if (lseek(fd, (int)(off - here), SEEK_CUR) == -1) return (-1);
++ if (lseek64(fd, (int)(off - here), SEEK_CUR) == -1) return (-1);
+ return (0);
+ }
--
2.23.0
1
0
Solve go download timeout.
Signed-off-by: cuiyili <2268260388(a)qq.com>
---
bin/lkp-setup-rootfs | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/bin/lkp-setup-rootfs b/bin/lkp-setup-rootfs
index 15002feb..4aacb970 100755
--- a/bin/lkp-setup-rootfs
+++ b/bin/lkp-setup-rootfs
@@ -157,12 +157,22 @@ modify_gem_source()
return 0
}
+install_goproxy()
+{
+ mkdir -p /root/.config/go/env
+ echo "GOPROXY=https://goproxy.io,direct" >> /root/.config/go/env
+
+ return 0
+}
+
install_proxy()
{
modify_gem_source
install_docker_proxy
+ install_goproxy
+
[ -z "$SQUID_HOST" ] && return
[ -z "$SQUID_PORT" ] && return
--
2.23.0
3
2

[PATCH compass-ci] git_mirror: repo updates frequently will be updated first
by Li Yuanchao 20 Oct '20
by Li Yuanchao 20 Oct '20
20 Oct '20
PriorityQueue will pop whose priority is minimum first.
Signed-off-by: Li Yuanchao <lyc163mail(a)163.com>
---
lib/git_mirror.rb | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/lib/git_mirror.rb b/lib/git_mirror.rb
index e80b7ca..593d1eb 100644
--- a/lib/git_mirror.rb
+++ b/lib/git_mirror.rb
@@ -155,6 +155,7 @@ class MirrorMain
@fork_stat[git_repo][:queued] = false
return unless feedback_info[:possible_new_refs]
+ @fork_stat[git_repo][:priority] += 1
return reload_fork_info if git_repo == 'upstream-repos/upstream-repos'
new_refs = check_new_refs(git_repo)
@@ -164,16 +165,18 @@ class MirrorMain
send_message(feedback_info)
end
+ def do_push(fork_key)
+ @fork_stat[fork_key][:queued] = true
+ @git_info[fork_key][:cur_refs] = get_cur_refs(fork_key) if @git_info[fork_key][:cur_refs].nil?
+ @git_queue.push(@git_info[fork_key])
+ end
+
def push_git_queue
return if @git_queue.size >= 1
fork_key = @priority_queue.delete_min_return_key
- unless @fork_stat[fork_key][:queued]
- @fork_stat[fork_key][:queued] = true
- @git_info[fork_key][:cur_refs] = get_cur_refs(fork_key) if @git_info[fork_key][:cur_refs].nil?
- @git_queue.push(@git_info[fork_key])
- end
- @priority_queue.push fork_key, @priority
+ do_push(fork_key) unless @fork_stat[fork_key][:queued]
+ @priority_queue.push fork_key, (@priority - @fork_stat[fork_key][:priority])
@priority += 1
end
--
2.23.0
1
0
error:
Style/UnlessElse: Favour if over unless with else
Signed-off-by: Bai Jing <799286817(a)qq.com>
---
src/lib/sched.cr | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/lib/sched.cr b/src/lib/sched.cr
index a4ddcec..5076366 100644
--- a/src/lib/sched.cr
+++ b/src/lib/sched.cr
@@ -267,10 +267,10 @@ class Sched
}] unless tbox_group
# only single job will has "idle job" and "execute rate limiter"
- unless job["idle_job"].empty?
- tbox_group = "#{tbox_group}/idle"
- else
+ if job["idle_job"].empty?
tbox_group += "#{job.get_uuid_tag}"
+ else
+ tbox_group = "#{tbox_group}/idle"
end
job_id = add_task(tbox_group, job.lab)
--
2.23.0
1
0

[PATCH compass-ci 1/3] user-client/maintain: submit test rootfs job in z9 tbox
by Liu Yinsi 20 Oct '20
by Liu Yinsi 20 Oct '20
20 Oct '20
1. submit job in z9 tbox, remove my-qemu.sh.
2. submit 'key=value' instead of -s.
3. remove job yaml redundant field.
Signed-off-by: Liu Yinsi <liuyinsi(a)163.com>
---
.../maintain/walk-os-test/iperf-walk-os.yaml | 4 -
.../maintain/walk-os-test/walk-os-iperf-test | 119 +++++++++---------
2 files changed, 58 insertions(+), 65 deletions(-)
diff --git a/user-client/maintain/walk-os-test/iperf-walk-os.yaml b/user-client/maintain/walk-os-test/iperf-walk-os.yaml
index 647220c..237d006 100644
--- a/user-client/maintain/walk-os-test/iperf-walk-os.yaml
+++ b/user-client/maintain/walk-os-test/iperf-walk-os.yaml
@@ -7,9 +7,5 @@ if role server:
if role client:
iperf:
protocol: tcp
-testbox: vm-2p8g--USER
-os: OS
-os_arch: OS_ARCH
-os_version: OS_VER
node_roles: server client
LKP_DEBUG_PREFIX: bash -x
diff --git a/user-client/maintain/walk-os-test/walk-os-iperf-test b/user-client/maintain/walk-os-test/walk-os-iperf-test
index 21e1428..9910723 100755
--- a/user-client/maintain/walk-os-test/walk-os-iperf-test
+++ b/user-client/maintain/walk-os-test/walk-os-iperf-test
@@ -1,62 +1,59 @@
-#!/bin/bash -e
+#!/usr/bin/env ruby
# SPDX-License-Identifier: MulanPSL-2.0+
-
-# os test rounds
-test_times=1
-
-test_logs=walk-test.report
-test_yaml=iperf-walk-os.yaml
-test_os=(
- 'openeuler aarch64 20'
- 'openeuler aarch64 20.03'
- 'centos aarch64 7.6'
- 'centos aarch64 7.8'
- 'centos aarch64 8.1.1911'
- 'debian aarch64 sid'
-)
-
-trap 'echo User Cancelled! && exit' SIGINT
-
-sec2date() {
- date -d@$1 +"%Y%m%d_%H:%M:%S"
-}
-
-logging() {
- if [ 'new' == "$1" ] ; then
- printf "%-5s %-8s %-25s %-20s %-20s %-8s %-10s\n" ${@:2} > $test_logs
- else
- printf "%-5s %-8s %-25s %-20s %-20s %-8s %-10s\n" $@ >> $test_logs
- fi
-}
-
-create_test_yaml() {
- local hwarch os os_arch os_ver cur_os
- hwarch=$(arch)
- cur_os="$@"
- os=$(echo $cur_os |cut -d' ' -f1)
- os_arch=$(echo $cur_os |cut -d' ' -f2)
- os_ver=$(echo $cur_os |cut -d' ' -f3)
- sed "s/USER/$USER/" $test_yaml > test.yaml
- sed -i "s/OS_ARCH/$os_arch/" test.yaml
- sed -i "s/OS_VER/$os_ver/" test.yaml
- sed -i "s/OS/$os/" test.yaml
- echo "$hwarch $os/$os_arch/$os_ver"
-}
-
-job_test() {
- local job_id bef aft
- job_id=$(submit test.yaml |awk '{print $NF}')
- bef=$(date +%s)
- ./my-qemu.sh
- aft=$(date +%s)
- logging "$1" "$2" "$3" "$(sec2date $bef)" "$(sec2date $aft)" "$((aft - bef))" "$job_id"
-}
-
-logging new "Index" "hwArch" "OS" "Begin" "End" "Cost/sec" "Job_ID"
-for round in $(seq $test_times)
-do
- for idx in "${!test_os[@]}"
- do
- job_test $round $(create_test_yaml "${test_os[$idx]}")
- done
-done
+# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
+# frozen_string_literal: true
+
+# rootfs test via job, including cifs, initramfs files.
+# boot way including PXE and kvm.
+# input: job yaml, os, os_version, os_arch, os_mount, testbox
+# output: a test report, including job ID, os, runtime, job state and url to check logs,
+# and send mail.
+#
+# Eg: test report format:
+#
+# Job_ID OS Begin
+# crystal.104748 openeuler/aarch64/20.03/initramfs 2020-10-19/18:42:41
+#
+# End Cost/sec Job_State Result_Url
+# 2020-10-19/18:44:48 127 finished #{SRV_HTTP_HOST}:#{SRV_HTTP_PORT}/#{result_root}
+
+TEST_OS = [
+ 'openeuler aarch64 20.03',
+ 'centos aarch64 7.6.1810',
+ 'centos aarch64 7.8.2003',
+ 'centos aarch64 8.1.1911',
+ 'debian aarch64 sid'
+].freeze
+
+MOUNT_TYPE = %w[cifs initramfs].freeze
+TESTBOX = %w[vm-2p8g vm-pxe-2p8g].freeze
+TEST_REPORT = 'walk-test.report'
+TEST_YAML = 'iperf-walk-os.yaml'
+
+def submit_job(os_array, testbox)
+ os = os_array[0]
+ os_arch = os_array[1]
+ os_ver = os_array[2]
+ os_mount = os_array[3]
+ message = %(submit 'testbox=#{testbox}' 'os=#{os}' 'os_arch=#{os_arch}' 'os_version=#{os_ver}' 'os_mount=#{os_mount}' #{TEST_YAML})
+ return if message.include? 'error'
+
+ # if job not running on tbox, add this the task will be consumed.
+ # Process.fork do
+ # %x(./my-qemu.sh >/dev/null 2>&1)
+ # end
+end
+
+def get_os_array(os_mount, testbox)
+ TEST_OS.each do |item|
+ os_array = item.split.push(os_mount)
+
+ submit_job(os_array, testbox)
+ end
+end
+
+def get_testbox(os_mount)
+ TESTBOX.each { |testbox| get_os_array(os_mount, testbox) }
+end
+
+MOUNT_TYPE.each { |os_mount| get_testbox(os_mount) }
--
2.23.0
1
0