From cc204b83b0c7fa8631a8c9bc30a1afcc3d3c9384 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Sat, 19 Aug 2017 17:33:37 +0300 Subject: [PATCH] Bugfix --- lib/compilation.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/compilation.sh b/lib/compilation.sh index 6011f9ccb..fbebc291d 100644 --- a/lib/compilation.sh +++ b/lib/compilation.sh @@ -424,15 +424,18 @@ find_toolchain() local dist=10 local toolchain="" # extract target major.minor version from expression - local target_ver=$(grep -oE "[[:digit:]]+\.[[:digit:]]+" <<< "$expression") + local target_ver=$(grep -oE "[[:digit:]]+\.[[:digit:]]" <<< "$expression") for dir in $SRC/cache/toolchains/*/; do # check if is a toolchain for current $ARCH [[ ! -f ${dir}bin/${compiler}gcc ]] && continue # get toolchain major.minor version - local gcc_ver=$(${dir}bin/${compiler}gcc -dumpversion | grep -oE "^[[:digit:]]+\.[[:digit:]]+") + local gcc_ver=$(${dir}bin/${compiler}gcc -dumpversion | grep -oE "^[[:digit:]]+\.[[:digit:]]") # check if toolchain version satisfies requirement awk "BEGIN{exit ! ($gcc_ver $expression)}" >/dev/null || continue # check if found version is the closest to target + # may need different logic here with more than 1 digit minor version numbers + # numbers: 3.9 > 3.10; versions: 3.9 < 3.10 + # dpkg --compare-versions can be used here if operators are changed local d=$(awk '{x = $1 - $2}{printf "%.1f\n", (x > 0) ? x : -x}' <<< "$target_ver $gcc_ver") if awk "BEGIN{exit ! ($d < $dist)}" >/dev/null ; then dist=$d