<p>Martin Roth has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27598">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">util/crosgcc: Fix most shellcheck errors in buildgcc<br><br>This fixes most of the simpler shellcheck errors in shellcheck 0.4.6<br><br>There are still a few warnings left that weren't simple to fix or<br>would have required more testing before I was confident in them.<br><br>Change-Id: I79ab3614cc1d69d3dfe1e0374e930313f2011cbf<br>Signed-off-by: Martin Roth <gaumless@gmail.com><br>---<br>M util/crossgcc/buildgcc<br>1 file changed, 172 insertions(+), 126 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/98/27598/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc</span><br><span>index a9d9057..5823707 100755</span><br><span>--- a/util/crossgcc/buildgcc</span><br><span>+++ b/util/crossgcc/buildgcc</span><br><span>@@ -1,4 +1,16 @@</span><br><span> #!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+# shellcheck disable=SC2030,SC2031,SC2059</span><br><span style="color: hsl(120, 100%, 40%);">+# The above line must be directly after the shebang line.</span><br><span style="color: hsl(120, 100%, 40%);">+# Disables these warnings:</span><br><span style="color: hsl(120, 100%, 40%);">+# 2030 - Modification of var is local (to subshell caused by pipeline).</span><br><span style="color: hsl(120, 100%, 40%);">+# shell check 0.4.6 gets confused by the read -t 1 command and interprets</span><br><span style="color: hsl(120, 100%, 40%);">+# the '1' as $1 getting modified.</span><br><span style="color: hsl(120, 100%, 40%);">+# 2031 - var was modified in a subshell. That change might be lost.</span><br><span style="color: hsl(120, 100%, 40%);">+# caused by shell check bug with SC2030? This causes any $1 from that</span><br><span style="color: hsl(120, 100%, 40%);">+# point on to be flagged.</span><br><span style="color: hsl(120, 100%, 40%);">+# 2059 - Don't use variables in the printf format string. Use printf "..%s.." "$foo".</span><br><span style="color: hsl(120, 100%, 40%);">+# This is used for all of our color printing.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #</span><br><span> # Copyright (C) 2008-2010 by coresystems GmbH</span><br><span> # written by Patrick Georgi <patrick.georgi@coresystems.de> and</span><br><span>@@ -16,7 +28,7 @@</span><br><span> # GNU General Public License for more details.</span><br><span> #</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-cd $(dirname $0)</span><br><span style="color: hsl(120, 100%, 40%);">+cd "$(dirname "$0")" || exit 1</span><br><span> </span><br><span> CROSSGCC_DATE="June 11th, 2018"</span><br><span> CROSSGCC_VERSION="1.52"</span><br><span>@@ -80,7 +92,9 @@</span><br><span> GMP_DIR="gmp-${GMP_VERSION}"</span><br><span> MPFR_DIR="mpfr-${MPFR_VERSION}"</span><br><span> MPC_DIR="mpc-${MPC_VERSION}"</span><br><span style="color: hsl(120, 100%, 40%);">+# shellcheck disable=SC2034</span><br><span> GCC_DIR="gcc-${GCC_VERSION}"</span><br><span style="color: hsl(120, 100%, 40%);">+# shellcheck disable=SC2034</span><br><span> BINUTILS_DIR="binutils-${BINUTILS_VERSION}"</span><br><span> GDB_DIR="gdb-${GDB_VERSION}"</span><br><span> IASL_DIR="acpica-unix2-${IASL_VERSION}"</span><br><span>@@ -101,51 +115,49 @@</span><br><span> green='\033[0;32m'</span><br><span> GREEN='\033[1;32m'</span><br><span> blue='\033[0;34m'</span><br><span style="color: hsl(0, 100%, 40%);">-BLUE='\033[1;34m'</span><br><span style="color: hsl(0, 100%, 40%);">-cyan='\033[0;36m'</span><br><span> CYAN='\033[1;36m'</span><br><span> NC='\033[0m' # No Color</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-UNAME=$(uname | grep -iq cygwin && echo Cygwin || uname)</span><br><span style="color: hsl(120, 100%, 40%);">+UNAME=$(if uname | grep -iq cygwin; then echo Cygwin; else uname; fi)</span><br><span> HALT_FOR_TOOLS=0</span><br><span> </span><br><span> hostcc()</span><br><span> {</span><br><span> # $1 "host" or "target"</span><br><span style="color: hsl(0, 100%, 40%);">- if [ "$BOOTSTRAP" = 1 -a "$1" = target ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- echo $DESTDIR$TARGETDIR/bin/gcc</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$BOOTSTRAP" = 1 ] && [ "$1" = target ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$DESTDIR$TARGETDIR/bin/gcc"</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- echo $CC</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$CC"</span><br><span> fi</span><br><span> }</span><br><span> </span><br><span> hostcxx()</span><br><span> {</span><br><span> # $1 "host" or "target"</span><br><span style="color: hsl(0, 100%, 40%);">- if [ "$BOOTSTRAP" = 1 -a "$1" = target ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- echo $DESTDIR$TARGETDIR/bin/g++</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$BOOTSTRAP" = 1 ] && [ "$1" = target ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$DESTDIR$TARGETDIR/bin/g++"</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- echo $CXX</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$CXX"</span><br><span> fi</span><br><span> }</span><br><span> </span><br><span> normalize_dirs()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- mkdir -p $DESTDIR$TARGETDIR/lib</span><br><span style="color: hsl(0, 100%, 40%);">- test -d $DESTDIR$TARGETDIR/lib32 && mv $DESTDIR$TARGETDIR/lib32/* $DESTDIR$TARGETDIR/lib</span><br><span style="color: hsl(0, 100%, 40%);">- test -d $DESTDIR$TARGETDIR/lib64 && mv $DESTDIR$TARGETDIR/lib64/* $DESTDIR$TARGETDIR/lib</span><br><span style="color: hsl(0, 100%, 40%);">- rmdir -p $DESTDIR$TARGETDIR/lib32 $DESTDIR$TARGETDIR/lib64</span><br><span style="color: hsl(120, 100%, 40%);">+ mkdir -p "$DESTDIR$TARGETDIR/lib"</span><br><span style="color: hsl(120, 100%, 40%);">+ test -d "$DESTDIR$TARGETDIR/lib32" && mv "$DESTDIR$TARGETDIR"/lib32/* "$DESTDIR$TARGETDIR/lib"</span><br><span style="color: hsl(120, 100%, 40%);">+ test -d "$DESTDIR$TARGETDIR/lib64" && mv "$DESTDIR$TARGETDIR"/lib64/* "$DESTDIR$TARGETDIR/lib"</span><br><span style="color: hsl(120, 100%, 40%);">+ rmdir -p "$DESTDIR$TARGETDIR/lib32" "$DESTDIR$TARGETDIR/lib64"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- perl -pi -e "s,/lib32,/lib," $DESTDIR$TARGETDIR/lib/*.la</span><br><span style="color: hsl(0, 100%, 40%);">- perl -pi -e "s,/lib64,/lib," $DESTDIR$TARGETDIR/lib/*.la</span><br><span style="color: hsl(120, 100%, 40%);">+ perl -pi -e "s,/lib32,/lib," "$DESTDIR$TARGETDIR"/lib/*.la</span><br><span style="color: hsl(120, 100%, 40%);">+ perl -pi -e "s,/lib64,/lib," "$DESTDIR$TARGETDIR"/lib/*.la</span><br><span> }</span><br><span> </span><br><span> countdown()</span><br><span> {</span><br><span> tout=${1:-10}</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf "\nPress Ctrl-C to abort, Enter to continue... %2ds" $tout</span><br><span style="color: hsl(0, 100%, 40%);">- while [ $tout -gt 0 ]; do</span><br><span style="color: hsl(120, 100%, 40%);">+ printf "\nPress Ctrl-C to abort, Enter to continue... %2ds" "$tout"</span><br><span style="color: hsl(120, 100%, 40%);">+ while [ "$tout" -gt 0 ]; do</span><br><span> sleep 1</span><br><span> tout=$((tout - 1))</span><br><span> printf "\b\b\b%2ds" $tout</span><br><span>@@ -162,11 +174,12 @@</span><br><span> # Clean up in case the user aborts.</span><br><span> trap 'kill $counter > /dev/null 2>&1' EXIT</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- (countdown $tout; kill -USR1 $$)&</span><br><span style="color: hsl(120, 100%, 40%);">+ (countdown "$tout"; kill -USR1 $$)&</span><br><span> counter=$!</span><br><span> </span><br><span> # Some shells with sh compatibility mode (e.g. zsh, mksh) only</span><br><span> # let us interrupt `read` if a non-standard -t parameter is given.</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2034,SC2039,SC2162</span><br><span> if echo | read -t 1 foo 2>/dev/null; then</span><br><span> read -t $((tout + 1)) foo</span><br><span> else</span><br><span>@@ -180,6 +193,7 @@</span><br><span> please_install()</span><br><span> {</span><br><span> HALT_FOR_TOOLS=1</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC1091</span><br><span> test -r /etc/os-release && . /etc/os-release</span><br><span> # vanilla debian doesn't define `ID_LIKE`, just `ID`</span><br><span> if [ -z "${ID_LIKE}" ] && [ -n "${ID}" ]; then</span><br><span>@@ -210,59 +224,60 @@</span><br><span> search="$2"</span><br><span> fi</span><br><span> for i in "$1" "g$1" "gnu$1"; do</span><br><span style="color: hsl(0, 100%, 40%);">- if [ -x "$(command -v $i 2>/dev/null)" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ -x "$(command -v "$i" 2>/dev/null)" ]; then</span><br><span> if [ "$(cat /dev/null | $i --version 2>&1 | grep -c "$search")" \</span><br><span> -gt 0 ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- echo $i</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$i"</span><br><span> return</span><br><span> fi</span><br><span> fi</span><br><span> done</span><br><span> # A workaround for OSX 10.9 and some BSDs, whose nongnu</span><br><span> # patch and tar also work.</span><br><span style="color: hsl(0, 100%, 40%);">- if [ $UNAME = "Darwin" -o $UNAME = "FreeBSD" -o $UNAME = "NetBSD" -o $UNAME = "OpenBSD" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- if [ "$1" = "patch" -o "$1" = "tar" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- if [ -x "$(command -v $1 2>/dev/null)" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- echo $1</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$UNAME" = "Darwin" ] || [ "$UNAME" = "FreeBSD" ] || [ "$UNAME" = "NetBSD" ] || [ "$UNAME" = "OpenBSD" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$1" = "patch" ] || [ "$1" = "tar" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ -x "$(command -v "$1" 2>/dev/null)" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$1"</span><br><span> return</span><br><span> fi</span><br><span> fi</span><br><span> fi</span><br><span style="color: hsl(0, 100%, 40%);">- if echo $1 | grep -q "sum" ; then</span><br><span style="color: hsl(0, 100%, 40%);">- algor=$(echo $1 | sed -e 's,sum,,')</span><br><span style="color: hsl(0, 100%, 40%);">- if [ -x "$(command -v $1 2>/dev/null)" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if echo "$1" | grep -q "sum" ; then</span><br><span style="color: hsl(120, 100%, 40%);">+ algor=$(echo "$1" | sed -e 's,sum,,')</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ -x "$(command -v "$1" 2>/dev/null)" ]; then</span><br><span> #xxxsum [file]</span><br><span style="color: hsl(0, 100%, 40%);">- echo $1</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$1"</span><br><span> return</span><br><span style="color: hsl(0, 100%, 40%);">- elif [ -x "$(command -v $algor 2>/dev/null)" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ elif [ -x "$(command -v "$algor" 2>/dev/null)" ]; then</span><br><span> #xxx [file]</span><br><span style="color: hsl(0, 100%, 40%);">- echo $algor</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$algor"</span><br><span> return</span><br><span> elif [ -x "$(command -v openssl 2>/dev/null)" ]; then</span><br><span> #openssl xxx [file]</span><br><span style="color: hsl(0, 100%, 40%);">- echo openssl $algor</span><br><span style="color: hsl(120, 100%, 40%);">+ echo openssl "$algor"</span><br><span> return</span><br><span> elif [ -x "$(command -v cksum 2>/dev/null)" ]; then</span><br><span> #cksum -a xxx [file]</span><br><span> #cksum has special options in NetBSD. Actually, NetBSD will use the second case above.</span><br><span style="color: hsl(0, 100%, 40%);">- echo "buildgcc" | cksum -a $algor > /dev/null 2>/dev/null && \</span><br><span style="color: hsl(0, 100%, 40%);">- echo cksum -a $algor</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "buildgcc" | cksum -a "$algor" > /dev/null 2>/dev/null && \</span><br><span style="color: hsl(120, 100%, 40%);">+ echo cksum -a "$algor"</span><br><span> return</span><br><span> fi</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- [ -z "$3" ] && please_install $1 $4</span><br><span style="color: hsl(120, 100%, 40%);">+ [ -z "$3" ] && please_install "$1" "$4"</span><br><span> false</span><br><span> }</span><br><span> </span><br><span> # Run a compile check of the specified library option to see if it's installed</span><br><span> check_for_library() {</span><br><span style="color: hsl(0, 100%, 40%);">- local LIBRARY_FLAGS=$1</span><br><span style="color: hsl(0, 100%, 40%);">- local LIBRARY_PACKAGES="$2"</span><br><span style="color: hsl(0, 100%, 40%);">- local LIBTEST_FILE=.libtest</span><br><span style="color: hsl(120, 100%, 40%);">+ LIBRARY_FLAGS="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ LIBRARY_PACKAGES="$2"</span><br><span style="color: hsl(120, 100%, 40%);">+ LIBTEST_FILE=.libtest</span><br><span> </span><br><span> echo "int main(int argc, char **argv) { (void) argc; (void) argv; return 0; }" > "${LIBTEST_FILE}.c"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> "$CC" $CFLAGS $LIBRARY_FLAGS "${LIBTEST_FILE}.c" -o "${LIBTEST_FILE}" >/dev/null 2>&1 || \</span><br><span> please_install "$LIBRARY_PACKAGES"</span><br><span> rm -rf "${LIBTEST_FILE}.c" "${LIBTEST_FILE}"</span><br><span>@@ -307,22 +322,23 @@</span><br><span> </span><br><span> download() {</span><br><span> package=$1</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> archive="$(eval echo \$$package"_ARCHIVE")"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- FILE=$(basename $archive)</span><br><span style="color: hsl(120, 100%, 40%);">+ FILE=$(basename "$archive")</span><br><span> printf " * $FILE "</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if test -f tarballs/$FILE; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if test -f "tarballs/$FILE"; then</span><br><span> printf "(cached)... "</span><br><span> else</span><br><span> printf "(downloading from $archive)"</span><br><span style="color: hsl(0, 100%, 40%);">- rm -f tarballs/$FILE</span><br><span style="color: hsl(0, 100%, 40%);">- cd tarballs</span><br><span style="color: hsl(0, 100%, 40%);">- download_showing_percentage $archive</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -f "tarballs/$FILE"</span><br><span style="color: hsl(120, 100%, 40%);">+ cd tarballs || exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+ download_showing_percentage "$archive"</span><br><span> cd ..</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if [ ! -f tarballs/$FILE ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ ! -f "tarballs/$FILE" ]; then</span><br><span> printf "${RED}Failed to download $FILE.${NC}\n"</span><br><span> exit 1</span><br><span> fi</span><br><span>@@ -332,6 +348,7 @@</span><br><span> # hexadecimal hash).</span><br><span> compute_hash() {</span><br><span> package=$1</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> archive="$(eval echo \$$package"_ARCHIVE")"</span><br><span> file="$(basename "$archive")"</span><br><span> </span><br><span>@@ -345,6 +362,7 @@</span><br><span> </span><br><span> error_hash_missing() {</span><br><span> package="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> archive="$(eval echo \$$package"_ARCHIVE")"</span><br><span> file="$(basename "$archive")"</span><br><span> </span><br><span>@@ -361,6 +379,7 @@</span><br><span> # Read the known hash file of the package given in $1, and print it raw.</span><br><span> get_known_hash() {</span><br><span> package=$1</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> archive="$(eval echo \$$package"_ARCHIVE")"</span><br><span> file="$(basename "$archive")"</span><br><span> hashfile="sum/$file.cksum"</span><br><span>@@ -373,13 +392,14 @@</span><br><span> exit 1</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- cat "$hashfile" | sed -e 's@.*\([0-9a-f]\{40,\}\).*@\1@'</span><br><span style="color: hsl(120, 100%, 40%);">+ sed -e 's@.*\([0-9a-f]\{40,\}\).*@\1@' < "$hashfile"</span><br><span> }</span><br><span> </span><br><span> error_hash_mismatch() {</span><br><span> package=$1</span><br><span> known_hash="$2"</span><br><span> computed_hash="$3"</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> archive="$(eval echo \$$package"_ARCHIVE")"</span><br><span> file="$(basename "$archive")"</span><br><span> </span><br><span>@@ -400,6 +420,7 @@</span><br><span> # hash; Bail out on mismatch or missing hash file.</span><br><span> verify_hash() {</span><br><span> package=$1</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> archive="$(eval echo \$$package"_ARCHIVE")"</span><br><span> </span><br><span> known_hash="$(get_known_hash "$package")" || exit "$?"</span><br><span>@@ -410,17 +431,19 @@</span><br><span> exit 1</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- printf "${GREEN}hash verified ("$known_hash")${NC}\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ printf "${GREEN}hash verified (\"$known_hash\")${NC}\n"</span><br><span> }</span><br><span> </span><br><span> unpack_and_patch() {</span><br><span style="color: hsl(0, 100%, 40%);">- package=$1</span><br><span style="color: hsl(120, 100%, 40%);">+ package="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> archive="$(eval echo \$$package"_ARCHIVE")"</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> dir="$(eval echo \$$package"_DIR")"</span><br><span style="color: hsl(0, 100%, 40%);">- test -d ${dir} && test -f ${dir}/.unpack_success || (</span><br><span style="color: hsl(0, 100%, 40%);">- printf " * $(basename $archive)\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ test -d "${dir}" && test -f "${dir}/.unpack_success" || (</span><br><span style="color: hsl(120, 100%, 40%);">+ printf " * $(basename "$archive")\n"</span><br><span> FLAGS=zxf</span><br><span style="color: hsl(0, 100%, 40%);">- suffix=$(echo $archive | sed 's,.*\.,,')</span><br><span style="color: hsl(120, 100%, 40%);">+ suffix=$(echo "$archive" | sed 's,.*\.,,')</span><br><span> if [ "$suffix" = "gz" ] && [ -n "$PIGZ" ]; then FLAGS="-I pigz -xf"</span><br><span> elif [ "$suffix" = "gz" ]; then FLAGS=zxf</span><br><span> elif [ "$suffix" = "bz2" ] && [ -n "$LBZIP2" ]; then FLAGS="-I lbzip2 -xf"</span><br><span>@@ -428,22 +451,24 @@</span><br><span> elif [ "$suffix" = "xz" ]; then FLAGS="--xz -xf"</span><br><span> elif [ "$suffix" = "lzma" ]; then FLAGS="--lzma -xf"</span><br><span> fi</span><br><span style="color: hsl(0, 100%, 40%);">- $TAR $FLAGS tarballs/$(basename $archive)</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span style="color: hsl(120, 100%, 40%);">+ $TAR $FLAGS "tarballs/$(basename "$archive")"</span><br><span> for patch in patches/${dir}_*.patch; do</span><br><span style="color: hsl(0, 100%, 40%);">- test -r $patch || continue</span><br><span style="color: hsl(0, 100%, 40%);">- printf " o $(basename $patch)\n"</span><br><span style="color: hsl(0, 100%, 40%);">- (cd ${dir} && $PATCH -s -N -p1 <../${patch}) || {</span><br><span style="color: hsl(120, 100%, 40%);">+ test -r "$patch" || continue</span><br><span style="color: hsl(120, 100%, 40%);">+ printf " o $(basename "$patch")\n"</span><br><span style="color: hsl(120, 100%, 40%);">+ (cd "${dir}" || exit 1; $PATCH -s -N -p1 <"../${patch}") || {</span><br><span> printf "\n${RED}Failed $patch.${NC}\n"</span><br><span> exit 1</span><br><span> }</span><br><span> done</span><br><span style="color: hsl(0, 100%, 40%);">- touch ${dir}/.unpack_success</span><br><span style="color: hsl(120, 100%, 40%);">+ touch "${dir}/.unpack_success"</span><br><span> )</span><br><span> }</span><br><span> </span><br><span> fn_exists()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- type $1 >/dev/null 2>&1</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2039</span><br><span style="color: hsl(120, 100%, 40%);">+ type "$1" >/dev/null 2>&1</span><br><span> }</span><br><span> </span><br><span> is_package_enabled()</span><br><span>@@ -468,7 +493,7 @@</span><br><span> success=$4</span><br><span> version=$5</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- fn_exists build_$package || return</span><br><span style="color: hsl(120, 100%, 40%);">+ fn_exists "build_$package" || return</span><br><span> </span><br><span> mkdir -p "$builddir"</span><br><span> </span><br><span>@@ -477,10 +502,10 @@</span><br><span> else</span><br><span> printf "Building $package v$version for $host_target ... "</span><br><span> DIR="$PWD"</span><br><span style="color: hsl(0, 100%, 40%);">- cd "$builddir"</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$builddir" || exit 1</span><br><span> rm -f .failed</span><br><span style="color: hsl(0, 100%, 40%);">- build_${package} $host_target > build.log 2>&1</span><br><span style="color: hsl(0, 100%, 40%);">- cd "$DIR"</span><br><span style="color: hsl(120, 100%, 40%);">+ "build_${package}" "$host_target" > build.log 2>&1</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$DIR" || exit 1</span><br><span> if [ ! -f "$builddir/.failed" ]; then</span><br><span> touch "$success";</span><br><span> else</span><br><span>@@ -494,6 +519,7 @@</span><br><span> build_for_host()</span><br><span> {</span><br><span> package="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> version="$(eval echo \$$package"_VERSION")"</span><br><span> generic_build "$package" host "build-$package" "${DESTDIR}${TARGETDIR}/.${package}.${version}.success" "$version"</span><br><span> }</span><br><span>@@ -501,19 +527,20 @@</span><br><span> build_for_target()</span><br><span> {</span><br><span> package="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> version="$(eval echo \$$package"_VERSION")"</span><br><span> generic_build "$package" target "build-${TARGETARCH}-$package" "${DESTDIR}${TARGETDIR}/.${TARGETARCH}-${package}.${version}.success" "$version"</span><br><span> }</span><br><span> </span><br><span> build()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- if package_uses_targetarch $1; then</span><br><span style="color: hsl(0, 100%, 40%);">- if [ $BOOTSTRAP -eq 1 -a ! -f "${DESTDIR}${TARGETDIR}/.GCC.${GCC_VERSION}.success" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if package_uses_targetarch "$1"; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ $BOOTSTRAP -eq 1 ] && [ ! -f "${DESTDIR}${TARGETDIR}/.GCC.${GCC_VERSION}.success" ]; then</span><br><span> build_for_host GCC</span><br><span> fi</span><br><span style="color: hsl(0, 100%, 40%);">- build_for_target $1</span><br><span style="color: hsl(120, 100%, 40%);">+ build_for_target "$1"</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- build_for_host $1</span><br><span style="color: hsl(120, 100%, 40%);">+ build_for_host "$1"</span><br><span> fi</span><br><span> }</span><br><span> </span><br><span>@@ -532,7 +559,8 @@</span><br><span> </span><br><span> printf "Cleaning up temporary files... "</span><br><span> for package in $PACKAGES; do</span><br><span style="color: hsl(0, 100%, 40%);">- rm -rf build-${TARGETARCH}-$package build-$package $(eval echo \$$package"_DIR")</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -rf "build-${TARGETARCH}-$package" "build-$package" "$(eval echo \$$package"_DIR")"</span><br><span> done</span><br><span> rm -f getopt</span><br><span> printf "${green}ok${NC}\n"</span><br><span>@@ -601,14 +629,15 @@</span><br><span> }</span><br><span> </span><br><span> have_hostcflags_from_gmp() {</span><br><span style="color: hsl(0, 100%, 40%);">- grep -q __GMP_CFLAGS $DESTDIR$TARGETDIR/include/gmp.h >/dev/null 2>&1</span><br><span style="color: hsl(120, 100%, 40%);">+ grep -q __GMP_CFLAGS "$DESTDIR$TARGETDIR/include/gmp.h" >/dev/null 2>&1</span><br><span> }</span><br><span> </span><br><span> set_hostcflags_from_gmp() {</span><br><span> # Now set CFLAGS to match GMP CFLAGS but strip out -pedantic</span><br><span> # as GCC 4.6.x fails if it's there.</span><br><span style="color: hsl(0, 100%, 40%);">- export HOSTCFLAGS="$(grep __GMP_CFLAGS $DESTDIR$TARGETDIR/include/gmp.h |cut -d\" -f2 |\</span><br><span style="color: hsl(120, 100%, 40%);">+ HOSTCFLAGS="$(grep __GMP_CFLAGS "$DESTDIR$TARGETDIR/include/gmp.h" |cut -d\" -f2 |\</span><br><span> sed s,-pedantic,,)"</span><br><span style="color: hsl(120, 100%, 40%);">+ export HOSTCFLAGS</span><br><span> }</span><br><span> </span><br><span> build_GMP() {</span><br><span>@@ -619,10 +648,12 @@</span><br><span> OPTIONS="$OPTIONS --with-pic"</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" \</span><br><span> ../${GMP_DIR}/configure --disable-shared --enable-fat \</span><br><span style="color: hsl(0, 100%, 40%);">- --prefix=$TARGETDIR $OPTIONS \</span><br><span style="color: hsl(120, 100%, 40%);">+ --prefix="$TARGETDIR" $OPTIONS \</span><br><span> || touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> </span><br><span>@@ -632,12 +663,13 @@</span><br><span> }</span><br><span> </span><br><span> build_MPFR() {</span><br><span style="color: hsl(0, 100%, 40%);">- test $UNAME = "Darwin" && CFLAGS="$CFLAGS -force_cpusubtype_ALL"</span><br><span style="color: hsl(120, 100%, 40%);">+ test "$UNAME" = "Darwin" && CFLAGS="$CFLAGS -force_cpusubtype_ALL"</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" \</span><br><span style="color: hsl(0, 100%, 40%);">- ../${MPFR_DIR}/configure --disable-shared --prefix=$TARGETDIR \</span><br><span style="color: hsl(0, 100%, 40%);">- --infodir=$TARGETDIR/info \</span><br><span style="color: hsl(0, 100%, 40%);">- --with-gmp=$DESTDIR$TARGETDIR CFLAGS="$HOSTCFLAGS" || \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../${MPFR_DIR}/configure --disable-shared --prefix="$TARGETDIR" \</span><br><span style="color: hsl(120, 100%, 40%);">+ --infodir="$TARGETDIR/info" \</span><br><span style="color: hsl(120, 100%, 40%);">+ --with-gmp="$DESTDIR$TARGETDIR" CFLAGS="$HOSTCFLAGS" || \</span><br><span> touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> </span><br><span>@@ -645,28 +677,29 @@</span><br><span> </span><br><span> # work around build problem of libgmp.la</span><br><span> if [ "$DESTDIR" != "" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- perl -pi -e "s,$DESTDIR,," $DESTDIR$TARGETDIR/lib/libgmp.la</span><br><span style="color: hsl(120, 100%, 40%);">+ perl -pi -e "s,$DESTDIR,," "$DESTDIR$TARGETDIR/lib/libgmp.la"</span><br><span> fi</span><br><span> }</span><br><span> </span><br><span> build_MPC() {</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" \</span><br><span style="color: hsl(0, 100%, 40%);">- ../${MPC_DIR}/configure --disable-shared --prefix=$TARGETDIR \</span><br><span style="color: hsl(0, 100%, 40%);">- --infodir=$TARGETDIR/info --with-mpfr=$DESTDIR$TARGETDIR \</span><br><span style="color: hsl(0, 100%, 40%);">- --with-gmp=$DESTDIR$TARGETDIR CFLAGS="$HOSTCFLAGS" || \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../${MPC_DIR}/configure --disable-shared --prefix="$TARGETDIR" \</span><br><span style="color: hsl(120, 100%, 40%);">+ --infodir="$TARGETDIR/info" --with-mpfr="$DESTDIR$TARGETDIR" \</span><br><span style="color: hsl(120, 100%, 40%);">+ --with-gmp="$DESTDIR$TARGETDIR" CFLAGS="$HOSTCFLAGS" || \</span><br><span> touch .failed</span><br><span> </span><br><span> # work around build problem of libmpfr.la</span><br><span> if [ "$DESTDIR" != "" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- perl -pi -e "s,$TARGETDIR/lib/libgmp.la,$DESTDIR\$&," $DESTDIR$TARGETDIR/lib/libmpfr.la</span><br><span style="color: hsl(120, 100%, 40%);">+ perl -pi -e "s,$TARGETDIR/lib/libgmp.la,$DESTDIR\$&," "$DESTDIR$TARGETDIR/lib/libmpfr.la"</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> </span><br><span> # work around build problem of libmpfr.la</span><br><span> if [ "$DESTDIR" != "" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- perl -pi -e "s,$DESTDIR,," $DESTDIR$TARGETDIR/lib/libmpfr.la</span><br><span style="color: hsl(120, 100%, 40%);">+ perl -pi -e "s,$DESTDIR,," "$DESTDIR$TARGETDIR/lib/libmpfr.la"</span><br><span> fi</span><br><span> </span><br><span> normalize_dirs</span><br><span>@@ -677,7 +710,7 @@</span><br><span> ADDITIONALTARGET=",i386-elf"</span><br><span> fi</span><br><span> CC="$(hostcc target)" CXX="$(hostcxx target)" \</span><br><span style="color: hsl(0, 100%, 40%);">- ../binutils-${BINUTILS_VERSION}/configure --prefix=$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../binutils-${BINUTILS_VERSION}/configure --prefix="$TARGETDIR" \</span><br><span> --target=${TARGETARCH} --enable-targets=${TARGETARCH}${ADDITIONALTARGET} \</span><br><span> --disable-werror --disable-nls --enable-lto --enable-gold \</span><br><span> --enable-interwork --enable-multilib \</span><br><span>@@ -685,11 +718,13 @@</span><br><span> CFLAGS="$HOSTCFLAGS" \</span><br><span> CXXFLAGS="$HOSTCFLAGS" \</span><br><span> || touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> }</span><br><span> </span><br><span> bootstrap_GCC() {</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" \</span><br><span> CFLAGS="$HOSTCFLAGS" \</span><br><span> CFLAGS_FOR_BUILD="$HOSTCFLAGS" \</span><br><span>@@ -698,17 +733,18 @@</span><br><span> CXXFLAGS_FOR_BUILD="$HOSTCFLAGS" \</span><br><span> CXXFLAGS_FOR_TARGET="$HOSTCFLAGS -fPIC" \</span><br><span> ../gcc-${GCC_VERSION}/configure \</span><br><span style="color: hsl(0, 100%, 40%);">- --prefix=$TARGETDIR --libexecdir=$TARGETDIR/lib \</span><br><span style="color: hsl(120, 100%, 40%);">+ --prefix="$TARGETDIR" --libexecdir="$TARGETDIR/lib" \</span><br><span> --enable-bootstrap \</span><br><span> --disable-werror --disable-nls \</span><br><span> --disable-shared --disable-multilib \</span><br><span> --disable-libssp --disable-libquadmath --disable-libcc1 \</span><br><span> --disable-libsanitizer \</span><br><span> ${GCC_OPTIONS} --enable-languages="${LANGUAGES}" \</span><br><span style="color: hsl(0, 100%, 40%);">- --with-gmp=$DESTDIR$TARGETDIR --with-mpfr=$DESTDIR$TARGETDIR \</span><br><span style="color: hsl(0, 100%, 40%);">- --with-mpc=$DESTDIR$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ --with-gmp="$DESTDIR$TARGETDIR" --with-mpfr="$DESTDIR$TARGETDIR" \</span><br><span style="color: hsl(120, 100%, 40%);">+ --with-mpc="$DESTDIR$TARGETDIR" \</span><br><span> --with-pkgversion="coreboot bootstrap v$CROSSGCC_VERSION $CROSSGCC_DATE" \</span><br><span> && \</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS BOOT_CFLAGS="$HOSTCFLAGS" BUILD_CONFIG="" bootstrap && \</span><br><span> $MAKE install-gcc \</span><br><span> install-target-libgcc \</span><br><span>@@ -731,6 +767,7 @@</span><br><span> # libiberty is not compiled with CFLAGS_FOR_BUILD.</span><br><span> # Also set the CXX version of the flags because GCC is now compiled</span><br><span> # using C++.</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> CC="$(hostcc target)" CXX="$(hostcxx target)" \</span><br><span> CFLAGS_FOR_TARGET="-O2 -Dinhibit_libc" \</span><br><span> CFLAGS="$HOSTCFLAGS $CLANGFLAGS" \</span><br><span>@@ -738,7 +775,7 @@</span><br><span> CXXFLAGS="$HOSTCFLAGS $CLANGCXXFLAGS" \</span><br><span> CXXFLAGS_FOR_BUILD="$HOSTCFLAGS $CLANGCXXFLAGS" \</span><br><span> ../gcc-${GCC_VERSION}/configure \</span><br><span style="color: hsl(0, 100%, 40%);">- --prefix=$TARGETDIR --libexecdir=$TARGETDIR/lib \</span><br><span style="color: hsl(120, 100%, 40%);">+ --prefix="$TARGETDIR" --libexecdir="$TARGETDIR/lib" \</span><br><span> --target=${TARGETARCH} --disable-werror --disable-shared \</span><br><span> --enable-lto --enable-plugins --enable-gold --enable-ld=default \</span><br><span> --disable-libssp --disable-bootstrap --disable-nls \</span><br><span>@@ -748,16 +785,17 @@</span><br><span> --disable-libatomic --disable-libcc1 --disable-decimal-float \</span><br><span> ${GCC_OPTIONS} --enable-languages="${LANGUAGES}" \</span><br><span> --with-system-zlib \</span><br><span style="color: hsl(0, 100%, 40%);">- --with-gmp=$DESTDIR$TARGETDIR --with-mpfr=$DESTDIR$TARGETDIR \</span><br><span style="color: hsl(0, 100%, 40%);">- --with-mpc=$DESTDIR$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ --with-gmp="$DESTDIR$TARGETDIR" --with-mpfr="$DESTDIR$TARGETDIR" \</span><br><span style="color: hsl(120, 100%, 40%);">+ --with-mpc="$DESTDIR$TARGETDIR" \</span><br><span> --with-pkgversion="coreboot toolchain v$CROSSGCC_VERSION $CROSSGCC_DATE" \</span><br><span> && \</span><br><span> mkdir -p gcc/$TARGETARCH && \</span><br><span style="color: hsl(0, 100%, 40%);">- ln -s $DESTDIR$TARGETDIR/$TARGETARCH/bin gcc/$TARGETARCH/$GCC_VERSION && \</span><br><span style="color: hsl(120, 100%, 40%);">+ ln -s "$DESTDIR$TARGETDIR/$TARGETARCH/bin" "gcc/$TARGETARCH/$GCC_VERSION" && \</span><br><span> $MAKE $JOBS CFLAGS_FOR_BUILD="$HOSTCFLAGS" all-gcc && \</span><br><span style="color: hsl(0, 100%, 40%);">- $MAKE install-gcc DESTDIR=$DESTDIR || touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ $MAKE install-gcc DESTDIR="$DESTDIR" || touch .failed</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if [ ! -f .failed -a "$(echo $TARGETARCH | grep -c -- -mingw32)" -eq 0 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ ! -f .failed ] && [ "$(echo $TARGETARCH | grep -c -- -mingw32)" -eq 0 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS CFLAGS_FOR_BUILD="$HOSTCFLAGS" all-target-libgcc && \</span><br><span> $MAKE install-target-libgcc DESTDIR=$DESTDIR || touch .failed</span><br><span> fi</span><br><span>@@ -765,15 +803,15 @@</span><br><span> </span><br><span> build_GCC() {</span><br><span> if [ "$1" = host ]; then</span><br><span style="color: hsl(0, 100%, 40%);">- bootstrap_GCC $1</span><br><span style="color: hsl(120, 100%, 40%);">+ bootstrap_GCC "$1"</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- build_cross_GCC $1</span><br><span style="color: hsl(120, 100%, 40%);">+ build_cross_GCC "$1"</span><br><span> fi</span><br><span> }</span><br><span> </span><br><span> build_EXPAT() {</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" CFLAGS="$HOSTCFLAGS"</span><br><span style="color: hsl(0, 100%, 40%);">- ../${EXPAT_DIR}/configure --disable-shared --prefix=$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../${EXPAT_DIR}/configure --disable-shared --prefix="$TARGETDIR" \</span><br><span> || touch .failed</span><br><span> $MAKE || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span>@@ -783,8 +821,9 @@</span><br><span> </span><br><span> build_PYTHON() {</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" CFLAGS="$HOSTCFLAGS"</span><br><span style="color: hsl(0, 100%, 40%);">- ../${PYTHON_DIR}/configure --prefix=$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../${PYTHON_DIR}/configure --prefix="$TARGETDIR" \</span><br><span> || touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> </span><br><span>@@ -793,62 +832,66 @@</span><br><span> </span><br><span> build_GDB() {</span><br><span> export PYTHONHOME=$DESTDIR$TARGETDIR</span><br><span style="color: hsl(0, 100%, 40%);">- if [ $(uname) != "FreeBSD" -a $(uname) != "NetBSD" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$UNAME" != "FreeBSD" ] && [ "$UNAME" != "NetBSD" ]; then</span><br><span> LIBDL="-ldl"</span><br><span> fi</span><br><span> LDFLAGS="-Wl,-rpath,\$\$ORIGIN/../lib/ -L$DESTDIR$TARGETDIR/lib \</span><br><span> -lpthread $LIBDL -lutil" \</span><br><span> CC="$(hostcc target)" CXX="$(hostcxx target)" \</span><br><span> CFLAGS="$HOSTCFLAGS -I$DESTDIR$TARGETDIR/include" \</span><br><span style="color: hsl(0, 100%, 40%);">- ../${GDB_DIR}/configure --prefix=$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../${GDB_DIR}/configure --prefix="$TARGETDIR" \</span><br><span> --target=${TARGETARCH} --disable-werror --disable-nls</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> }</span><br><span> </span><br><span> build_IASL() {</span><br><span> RDIR=$PWD</span><br><span style="color: hsl(0, 100%, 40%);">- cd ../$IASL_DIR/generate/unix</span><br><span style="color: hsl(120, 100%, 40%);">+ cd ../$IASL_DIR/generate/unix || exit 1</span><br><span> CFLAGS="$HOSTCFLAGS"</span><br><span> HOST="_LINUX"</span><br><span style="color: hsl(0, 100%, 40%);">- test $UNAME = "Darwin" && HOST="_APPLE"</span><br><span style="color: hsl(0, 100%, 40%);">- test $UNAME = "FreeBSD" && HOST="_FreeBSD"</span><br><span style="color: hsl(0, 100%, 40%);">- test $UNAME = "Cygwin" && HOST="_CYGWIN"</span><br><span style="color: hsl(120, 100%, 40%);">+ test "$UNAME" = "Darwin" && HOST="_APPLE"</span><br><span style="color: hsl(120, 100%, 40%);">+ test "$UNAME" = "FreeBSD" && HOST="_FreeBSD"</span><br><span style="color: hsl(120, 100%, 40%);">+ test "$UNAME" = "Cygwin" && HOST="_CYGWIN"</span><br><span> HOST="$HOST" CFLAGS="$CFLAGS" \</span><br><span> OPT_CFLAGS="-O -D_FORTIFY_SOURCE=2 -D COREBOOT_TOOLCHAIN_VERSION='\"coreboot toolchain v$CROSSGCC_VERSION $CROSSGCC_DATE\"' " \</span><br><span style="color: hsl(0, 100%, 40%);">- $MAKE CC="$(hostcc host)" iasl || touch $RDIR/.failed</span><br><span style="color: hsl(0, 100%, 40%);">- rm -f $DESTDIR$TARGETDIR/bin/iasl || touch $RDIR/.failed</span><br><span style="color: hsl(0, 100%, 40%);">- cp bin/iasl $DESTDIR$TARGETDIR/bin || touch $RDIR/.failed</span><br><span style="color: hsl(120, 100%, 40%);">+ $MAKE CC="$(hostcc host)" iasl || touch "$RDIR/.failed"</span><br><span style="color: hsl(120, 100%, 40%);">+ rm -f "$DESTDIR$TARGETDIR/bin/iasl" || touch "$RDIR/.failed"</span><br><span style="color: hsl(120, 100%, 40%);">+ cp bin/iasl "$DESTDIR$TARGETDIR/bin" || touch "$RDIR/.failed"</span><br><span> }</span><br><span> </span><br><span> build_LLVM() {</span><br><span style="color: hsl(0, 100%, 40%);">- cd ..</span><br><span style="color: hsl(0, 100%, 40%);">- ln -sf $PWD/$CFE_DIR $LLVM_DIR/tools/clang</span><br><span style="color: hsl(0, 100%, 40%);">- ln -sf $PWD/$CTE_DIR $LLVM_DIR/tools/clang/tools/extra</span><br><span style="color: hsl(0, 100%, 40%);">- ln -sf $PWD/$CRT_DIR $LLVM_DIR/projects/compiler-rt</span><br><span style="color: hsl(0, 100%, 40%);">- cd -</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- $CMAKE -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$DESTDIR$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ cd .. || exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+ ln -sf "$PWD/$CFE_DIR" "$LLVM_DIR/tools/clang"</span><br><span style="color: hsl(120, 100%, 40%);">+ ln -sf "$PWD/$CTE_DIR" "$LLVM_DIR/tools/clang/tools/extra"</span><br><span style="color: hsl(120, 100%, 40%);">+ ln -sf "$PWD/$CRT_DIR" "$LLVM_DIR/projects/compiler-rt"</span><br><span style="color: hsl(120, 100%, 40%);">+ cd - || exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ $CMAKE -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$DESTDIR$TARGETDIR" \</span><br><span> -DCLANG_VENDOR="coreboot toolchain v$CROSSGCC_VERSION $CROSSGCC_DATE - " \</span><br><span> -DCMAKE_BUILD_TYPE=Release ../$LLVM_DIR || touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install || touch .failed</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- cp -a ../$CFE_DIR/tools/scan-build/* $DESTDIR$TARGETDIR/bin</span><br><span style="color: hsl(0, 100%, 40%);">- cp -a ../$CFE_DIR/tools/scan-view/* $DESTDIR$TARGETDIR/bin</span><br><span style="color: hsl(120, 100%, 40%);">+ cp -a ../$CFE_DIR/tools/scan-build/* "$DESTDIR$TARGETDIR/bin"</span><br><span style="color: hsl(120, 100%, 40%);">+ cp -a ../$CFE_DIR/tools/scan-view/* "$DESTDIR$TARGETDIR/bin"</span><br><span> </span><br><span> # create symlinks to work around broken --print-librt-file-name</span><br><span> # when used with -target.</span><br><span style="color: hsl(0, 100%, 40%);">- cd $DESTDIR$TARGETDIR/lib/clang/${CLANG_VERSION}/lib</span><br><span style="color: hsl(120, 100%, 40%);">+ cd "$DESTDIR$TARGETDIR/lib/clang/${CLANG_VERSION}/lib" || exit 1</span><br><span> for i in */libclang_rt.builtins*.a; do</span><br><span style="color: hsl(0, 100%, 40%);">- ln -s $i .</span><br><span style="color: hsl(120, 100%, 40%);">+ ln -s "$i" .</span><br><span> done</span><br><span> }</span><br><span> </span><br><span> build_MAKE() {</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" CFLAGS="$HOSTCFLAGS" \</span><br><span style="color: hsl(0, 100%, 40%);">- ../${MAKE_DIR}/configure --prefix=$TARGETDIR --disable-nls \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../${MAKE_DIR}/configure --prefix="$TARGETDIR" --disable-nls \</span><br><span> || touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> </span><br><span>@@ -857,8 +900,9 @@</span><br><span> </span><br><span> build_CMAKE() {</span><br><span> CC="$(hostcc host)" CXX="$(hostcxx host)" CFLAGS="$HOSTCFLAGS" \</span><br><span style="color: hsl(0, 100%, 40%);">- ../${CMAKE_DIR}/configure --prefix=$TARGETDIR \</span><br><span style="color: hsl(120, 100%, 40%);">+ ../${CMAKE_DIR}/configure --prefix="$TARGETDIR" \</span><br><span> || touch .failed</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> $MAKE $JOBS || touch .failed</span><br><span> $MAKE install DESTDIR=$DESTDIR || touch .failed</span><br><span> </span><br><span>@@ -900,6 +944,7 @@</span><br><span> # Detected non-GNU getopt</span><br><span> args=$(getopt Vhcd:bBp:l:P:j:D:tSys:un $*)</span><br><span> getopt_ret=$?</span><br><span style="color: hsl(120, 100%, 40%);">+ # shellcheck disable=SC2086</span><br><span> set -- $args</span><br><span> fi</span><br><span> </span><br><span>@@ -1026,8 +1071,8 @@</span><br><span> download_showing_percentage() {</span><br><span> url=$1</span><br><span> printf "... ${red} 0%%"</span><br><span style="color: hsl(0, 100%, 40%);">- wget $url 2>&1 | while read line; do</span><br><span style="color: hsl(0, 100%, 40%);">- echo $line | grep -o "[0-9]\+%" | awk '{printf("\b\b\b\b%4s", $1)}'</span><br><span style="color: hsl(120, 100%, 40%);">+ wget "$url" 2>&1 | while read -r line; do</span><br><span style="color: hsl(120, 100%, 40%);">+ echo "$line" | grep -o "[0-9]\+%" | awk '{printf("\b\b\b\b%4s", $1)}'</span><br><span> done</span><br><span> printf "${NC}... "</span><br><span> }</span><br><span>@@ -1035,7 +1080,7 @@</span><br><span> download_showing_percentage() {</span><br><span> url=$1</span><br><span> echo</span><br><span style="color: hsl(0, 100%, 40%);">- curl -#OL $url</span><br><span style="color: hsl(120, 100%, 40%);">+ curl -#OL "$url"</span><br><span> }</span><br><span> fi</span><br><span> </span><br><span>@@ -1089,7 +1134,7 @@</span><br><span> # sane preset: let the configure script figure out things by itself</span><br><span> # more importantly, avoid any values that might already linger in the variable</span><br><span> OPTIONS="ABI="</span><br><span style="color: hsl(0, 100%, 40%);">-if [ $UNAME = "Darwin" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+if [ "$UNAME" = "Darwin" ]; then</span><br><span> #GCC_OPTIONS="$GCC_OPTIONS --enable-threads=posix"</span><br><span> </span><br><span> # generally the OS X compiler can create x64 binaries.</span><br><span>@@ -1097,7 +1142,7 @@</span><br><span> # binaries in 10.6 (even if the kernel is 32bit)</span><br><span> # For some weird reason, 10.5 autodetects an ABI=64 though</span><br><span> # so we're setting the ABI explicitly here.</span><br><span style="color: hsl(0, 100%, 40%);">- if [ $(sysctl -n hw.optional.x86_64 2>/dev/null) -eq 1 ] 2>/dev/null; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$(sysctl -n hw.optional.x86_64 2>/dev/null)" -eq 1 ] 2>/dev/null; then</span><br><span> OPTIONS="ABI=64"</span><br><span> else</span><br><span> OPTIONS="ABI=32"</span><br><span>@@ -1109,13 +1154,13 @@</span><br><span> if $CC -v 2>&1 | grep -q LLVM; then</span><br><span> CC=llvm-gcc</span><br><span> fi</span><br><span style="color: hsl(0, 100%, 40%);">-elif [ $UNAME = "Linux" -o $UNAME = "Cygwin" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+elif [ "$UNAME" = "Linux" ] || [ "$UNAME" = "Cygwin" ]; then</span><br><span> # gmp is overeager with detecting 64bit CPUs even if they run</span><br><span> # a 32bit kernel and userland.</span><br><span> if [ "$(uname -m 2>/dev/null)" = "i686" ]; then</span><br><span> OPTIONS="ABI=32"</span><br><span> fi</span><br><span style="color: hsl(0, 100%, 40%);">-elif [ $UNAME = "NetBSD" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+elif [ "$UNAME" = "NetBSD" ]; then</span><br><span> # same for NetBSD but this one reports an i386</span><br><span> if [ "$(uname -m 2>/dev/null)" = "i386" ]; then</span><br><span> OPTIONS="ABI=32"</span><br><span>@@ -1149,9 +1194,10 @@</span><br><span> fi</span><br><span> if ada_requested; then</span><br><span> if have_gnat; then</span><br><span style="color: hsl(0, 100%, 40%);">- if [ "$BOOTSTRAP" != 1 -a \</span><br><span style="color: hsl(0, 100%, 40%);">- \( "$(hostcc_major)" -lt 4 -o \</span><br><span style="color: hsl(0, 100%, 40%);">- \( "$(hostcc_major)" -eq 4 -a "$(hostcc_minor)" -lt 9 \) \) ]</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$BOOTSTRAP" != 1 ] && \</span><br><span style="color: hsl(120, 100%, 40%);">+ \( [ "$(hostcc_major)" -lt 4 ] || \</span><br><span style="color: hsl(120, 100%, 40%);">+ \( [ "$(hostcc_major)" -eq 4 ] && \</span><br><span style="color: hsl(120, 100%, 40%);">+ [ "$(hostcc_minor)" -lt 9 ] \) \) ]</span><br><span> then</span><br><span> printf "\n${red}WARNING${NC}\n"</span><br><span> printf "Building the Ada compiler (GNAT $(buildcc_version)) with a host compiler older\n"</span><br><span>@@ -1167,7 +1213,7 @@</span><br><span> exit 1</span><br><span> fi</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- if [ "$(hostcc_major)" -lt 4 -a "$BOOTSTRAP" != 1 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ if [ "$(hostcc_major)" -lt 4 ] && [ "$BOOTSTRAP" != 1 ]; then</span><br><span> printf "\n${red}WARNING${NC}\n"</span><br><span> printf "Building GCC $(buildcc_version) with a very old host compiler ($(hostcc_version)).\n"</span><br><span> printf "Bootstrapping (-b) is recommended.\n"</span><br><span>@@ -1187,8 +1233,8 @@</span><br><span> </span><br><span> # Prepare target directory for building GCC</span><br><span> # (dependencies must be in the PATH)</span><br><span style="color: hsl(0, 100%, 40%);">-mkdir -p $DESTDIR$TARGETDIR/bin</span><br><span style="color: hsl(0, 100%, 40%);">-mkdir -p $DESTDIR$TARGETDIR/share</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir -p "$DESTDIR$TARGETDIR/bin"</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir -p "$DESTDIR$TARGETDIR/share"</span><br><span> export PATH=$DESTDIR$TARGETDIR/bin:$PATH</span><br><span> </span><br><span> # Download, unpack, patch and build all packages</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27598">change 27598</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/27598"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I79ab3614cc1d69d3dfe1e0374e930313f2011cbf </div>
<div style="display:none"> Gerrit-Change-Number: 27598 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Martin Roth <martinroth@google.com> </div>