<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>