tools: check go compiler version if present

Currently, no minimum go compiler version is required by the configure
scripts. However, the go bindings actually will not build with some
older versions of go. Add a check for a minimum go version of 1.11.1 in
accordance with tools/golang/xenlight/go.mod.

Signed-off-by: Nick Rosbrook <rosbrookn@ainfosec.com>
Acked-by: George Dunlap <george.dunlap@citrix.com>
Tested-by: Nick Rosbrook <rosbrookn@ainfosec.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Release-acked-by: Paul Durrant <paul@xen.org>
This commit is contained in:
Nick Rosbrook authored and Ian Jackson committed 2020-06-15 15:49:13 +01:00
1 parent b91825f628
commit fec6a7af5c
3 files changed
+60

No files matched your search

+4
View File
@@ -1,4 +1,8 @@
AC_DEFUN([AC_PROG_GO], [ AC_DEFUN([AC_PROG_GO], [
dnl Check for the go compiler dnl Check for the go compiler
AC_CHECK_TOOL([GO],[go],[no]) AC_CHECK_TOOL([GO],[go],[no])
if test "$GO" != "no"; then
GOVERSION=`$GO version | cut -d " " -f 3 | sed "s/go//"`
fi
]) ])
+49
View File
@@ -6833,6 +6833,10 @@ else
fi fi
if test "$GO" != "no"; then
GOVERSION=`$GO version | cut -d " " -f 3 | sed "s/go//"`
fi
if test "x$GO" = "xno"; then : if test "x$GO" = "xno"; then :
if test "x$enable_golang" = "xyes"; then : if test "x$enable_golang" = "xyes"; then :
@@ -6842,6 +6846,51 @@ fi
fi fi
golang="n" golang="n"
else
# Used to indicate true or false condition
ax_compare_version=false
# Convert the two version strings to be compared into a format that
# allows a simple string comparison. The end result is that a version
# string of the form 1.12.5-r617 will be converted to the form
# 0001001200050617. In other words, each number is zero padded to four
# digits, and non digits are removed.
ax_compare_version_A=`echo "$GOVERSION" | sed -e 's/\([0-9]*\)/Z\1Z/g' \
-e 's/Z\([0-9]\)Z/Z0\1Z/g' \
-e 's/Z\([0-9][0-9]\)Z/Z0\1Z/g' \
-e 's/Z\([0-9][0-9][0-9]\)Z/Z0\1Z/g' \
-e 's/[^0-9]//g'`
ax_compare_version_B=`echo "1.11.1" | sed -e 's/\([0-9]*\)/Z\1Z/g' \
-e 's/Z\([0-9]\)Z/Z0\1Z/g' \
-e 's/Z\([0-9][0-9]\)Z/Z0\1Z/g' \
-e 's/Z\([0-9][0-9][0-9]\)Z/Z0\1Z/g' \
-e 's/[^0-9]//g'`
ax_compare_version=`echo "x$ax_compare_version_A
x$ax_compare_version_B" | sed 's/^ *//' | sort -r | sed "s/x${ax_compare_version_A}/false/;s/x${ax_compare_version_B}/true/;1q"`
if test "$ax_compare_version" = "true" ; then
if test "x$enable_golang" = "xyes"; then :
as_fn_error $? "\"Your version of go: $GOVERSION is not supported\"" "$LINENO" 5
fi
golang="n"
fi
fi fi
fi fi
+7
View File
@@ -338,6 +338,13 @@ AS_IF([test "x$golang" = "xy"], [
AC_MSG_ERROR([Go tools enabled, but missing go compiler]) AC_MSG_ERROR([Go tools enabled, but missing go compiler])
]) ])
golang="n" golang="n"
], [
AX_COMPARE_VERSION([$GOVERSION], [lt], [1.11.1], [
AS_IF([test "x$enable_golang" = "xyes"], [
AC_MSG_ERROR(["Your version of go: $GOVERSION is not supported"])
])
golang="n"
])
]) ])
]) ])
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.