toolchain/external: use -dumpversion to check gcc version

Currently, `--version` option is used and later matched with a regex to get
the actual gcc version.  There's a dedicated gcc option to do exactly that:
`-dumpversion`.

Also `--version` may return a string customised by a vendor that provides
the toolchain, which makes the current regex approach error prone.  In
fact, this situation has been seen with a real customised toolchain.

Signed-off-by: Krzysztof Konopko <kris@youview.com>
Signed-off-by: Tomasz Szkutkowski <tomasz.szkutkowski@youview.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Krzysztof Konopko 2017-03-09 09:01:36 +01:00 committed by Thomas Petazzoni
parent ece884a704
commit 06cd604ec6

View File

@ -148,7 +148,7 @@ check_gcc_version = \
if [ -z "$${expected_version}" ]; then \ if [ -z "$${expected_version}" ]; then \
exit 0 ; \ exit 0 ; \
fi; \ fi; \
real_version=`$(1) --version | sed -r -e '1!d; s/^[^)]+\) ([^[:space:]]+).*/\1/;'` ; \ real_version=`$(1) -dumpversion` ; \
if [[ ! "$${real_version}" =~ ^$${expected_version}\. ]] ; then \ if [[ ! "$${real_version}" =~ ^$${expected_version}\. ]] ; then \
printf "Incorrect selection of gcc version: expected %s.x, got %s\n" \ printf "Incorrect selection of gcc version: expected %s.x, got %s\n" \
"$${expected_version}" "$${real_version}" ; \ "$${expected_version}" "$${real_version}" ; \