Fix a few problems with download_prerequisites.

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.
This commit is contained in:
Andrew Pinski 2021-08-24 05:56:59 +00:00
parent f897716613
commit 0deabebedd

View file

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