toolchain/external: better check for gcc-5
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 9 Aug 2015 11:11:42 +0000 (13:11 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 9 Aug 2015 14:58:55 +0000 (16:58 +0200)
gcc will always report a three-digit version sting, like 4.9.3 or 5.1.0.

For gcc before 5, we want to check the first two digits, while starting
with gcc 5, we are only concerned about the first digit.

So, change our matching code to test for the leading part of the version
string, up to the first dot after as-many version digit we're interested
in.

Note: we're adding the dot in the .mk code rather than in the Kconfig
symbol, because it seemed cleaner to do so.

Reported-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/helpers.mk

index 018f3edb9278c38360e47cace8d8a81971760964..7c70d35a3af5a4171edf7a449fa21622bbf6640d 100644 (file)
@@ -191,16 +191,12 @@ check_kernel_headers_version = \
 #   - eat all the remaining chars on the line
 #   - replace by the matched expression
 #
-# - s/\.[[:digit:]]+$//
-#   - eat a dot followed by as many digits as possible up to the end
-#     of line
-#   - replace with nothing
-#
 check_gcc_version = \
        expected_version="$(strip $2)" ; \
-       real_version=`$(1) --version | sed -r -e '1!d; s/^[^)]+\) ([^[:space:]]+).*/\1/; s/\.[[:digit:]]+$$//;'` ; \
-       if [ "$${real_version}" != "$${expected_version}" ] ; then \
-               echo "Incorrect selection of gcc version: expected $${expected_version}, got $${real_version}" ; \
+       real_version=`$(1) --version | sed -r -e '1!d; s/^[^)]+\) ([^[:space:]]+).*/\1/;'` ; \
+       if [[ ! "$${real_version}" =~ ^$${expected_version}\. ]] ; then \
+               printf "Incorrect selection of gcc version: expected %s.x, got %s\n" \
+                       "$${expected_version}" "$${real_version}" ; \
                exit 1 ; \
        fi