[ovs-dev] [PATCH ovn] configure: Save OVSDIR as an absolute path.

Mark Michelson mmichels at redhat.com
Mon Mar 22 18:02:07 UTC 2021

Lately, `make check` runs have been failing. When "--with-ovs-source"
is not specified at configure time, the configure script automatically
sets the location to "$srcdir/ovs". This location is passed along the
chain and eventually added to AUTOTEST_PATH when running the tests.

$srcdir is a relative path name, which is fine when building the code.
This falls apart, though, when tests are run. Tests are not run from
the build directory, but instead from the tests/ directory. Therefore,
the relative path to ovs/ is different. This causes most tests to fail
since files are not in the expected location.

The fix is to set OVSDIR to an absolute path instead. Autoconf documents
an $abs_srcdir variable, but this is not set until after configure
checks are run. It is meant to be used by Makefiles. Therefore, we use
the trick of cd-ing to the directory and calling pwd to expand it to the
absolute path.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
 acinclude.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 3f8db03cf..2c607ea8e 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -381,7 +381,7 @@ AC_DEFUN([OVN_CHECK_OVS], [
       AC_ERROR([$OVSDIR is not an OVS source directory])
-    OVSDIR=$srcdir/ovs
+    OVSDIR=$(cd $srcdir/ovs; pwd)

More information about the dev mailing list