Fix a few problems with download_prerequisites.
authorAndrew Pinski <apinski@marvell.com>
Tue, 24 Aug 2021 05:56:59 +0000 (05:56 +0000)
committerAndrew Pinski <apinski@marvell.com>
Tue, 24 Aug 2021 08:09:53 +0000 (08:09 +0000)
There are a few problems with download_prerequisites are
described in PR 82704.  The first is on busy-box version of
shasum and md5sum the extended option --check don't exist
so just use -c.  The second issue is the code for which
shasum program to use is included twice and is different.
So move which program to use for the checksum after argument
parsing.  The last issue is --md5 option has been broken for
sometime now as the program is named md5sum and not just md5.
Nobody updated switch table to be correct.

contrib/ChangeLog:

PR other/82704
* download_prerequisites: Fix issues with --md5 and
--sha512 options.

contrib/download_prerequisites

index 51e715f..8f69b61 100755 (executable)
@@ -46,18 +46,6 @@ verify=1
 force=0
 OS=$(uname)
 
-case $OS in
-  "Darwin"|"FreeBSD"|"DragonFly"|"AIX")
-    chksum='shasum -a 512 --check'
-  ;;
-  "OpenBSD")
-    chksum='sha512 -c'
-  ;;
-  *)
-    chksum='sha512sum -c'
-  ;;
-esac
-
 if type wget > /dev/null ; then
   fetch='wget'
 else
@@ -113,7 +101,7 @@ do
 done
 unset arg
 
-# Emulate Linux's 'md5 --check' on macOS
+# Emulate Linux's 'md5sum --check' on macOS
 md5_check() {
   # Store the standard input: a line from contrib/prerequisites.md5:
   md5_checksum_line=$(cat -)
@@ -162,26 +150,10 @@ do
                 verify=0
                 ;;
             --sha512)
-                case $OS in
-                  "Darwin")
-                    chksum='shasum -a 512 --check'
-                  ;;
-                  *)
-                    chksum='sha512sum --check'
-                  ;;
-                esac
                 chksum_extension='sha512'
                 verify=1
                 ;;
             --md5)
-                case $OS in
-                  "Darwin")
-                    chksum='md5_check'
-                  ;;
-                  *)
-                    chksum='md5 --check'
-                  ;;
-                esac
                 chksum_extension='md5'
                 verify=1
                 ;;
@@ -212,6 +184,35 @@ done
 [ "x${argnext}" = x ] || die "Missing argument for option --${argnext}"
 unset arg argnext
 
+case $chksum_extension in
+  sha512)
+    case $OS in
+      "Darwin"|"FreeBSD"|"DragonFly"|"AIX")
+        chksum='shasum -a 512 --check'
+      ;;
+      "OpenBSD")
+        chksum='sha512 -c'
+      ;;
+      *)
+        chksum='sha512sum -c'
+      ;;
+    esac
+  ;;
+  md5)
+    case $OS in
+      "Darwin")
+        chksum='md5_check'
+      ;;
+      *)
+        chksum='md5sum -c'
+      ;;
+    esac
+    ;;
+  *)
+    die "Unkown checksum $chksum_extension"
+  ;;
+esac
+
 [ -e ./gcc/BASE-VER ]                                                         \
     || die "You must run this script in the top-level GCC source directory"