configure: fix check_min_lib_version() eval
authorStefan Hajnoczi <stefanha@redhat.com>
Thu, 6 May 2021 16:23:31 +0000 (17:23 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 6 May 2021 16:24:58 +0000 (10:24 -0600)
The following shell statement:

  if eval "echo \$$_feature" = "yes" ; then

executes:

  echo $... = "yes"

It does not actually compare the variable named by $_feature to the
string "yes".

Add the missing "test" call so the comparison happens as intended and
wrap the eval so it doesn't include the = "yes".

Fixes: 3e48f7c9de61 ("configure: fix syntax error with NetBSD")
Cc: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
configure

index a7d82be06b3c886550a77c34636c539895bc6b16..e886bdc8c0705c4a7e2a69fd162977b49e64ae46 100755 (executable)
--- a/configure
+++ b/configure
@@ -142,7 +142,7 @@ check_min_lib_version() {
   fi
   : "${_feature:=${1}}"
   if "${cross_prefix}"pkg-config --version > /dev/null 2>&1; then
   fi
   : "${_feature:=${1}}"
   if "${cross_prefix}"pkg-config --version > /dev/null 2>&1; then
-    if eval "echo \$$_feature" = "yes" ; then
+    if test "$(eval echo \"\$$_feature\")" = "yes" ; then
       feature_not_found "$_feature" "$1 >= $2"
     fi
   else
       feature_not_found "$_feature" "$1 >= $2"
     fi
   else