On 4/2/21 5:44 AM, Dumitru Ceara wrote:
On 3/22/21 7:08 PM, Mark Michelson wrote:
On 3/22/21 2:02 PM, Mark Michelson wrote:
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 <[email protected]>
I didn't mention this above, but there is also an $ac_abs_confdir
variable that expands to the absolute path of the configure script. I
tested and this works as well, but general advice online is not to use
this. It's a variable internal to autoconf, it's not documented, and it
has the potential to be removed without notice in some future autoconf
version.
---
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])
fi
else
- OVSDIR=$srcdir/ovs
+ OVSDIR=$(cd $srcdir/ovs; pwd)
fi
AC_MSG_RESULT([$OVSDIR])
Hi Mark,
This works fine and also fixes running system tests when using the OVS
submodule.
However, maybe it makes sense set $with_ovs_source to `pwd`/ovs if
$with_ovs_source is empty. Afterwards, unconditionally, set OVSDIR,
turn it into an absolute path and check that it's actually an OVS source
directory.
What do you think?
That process sounds good. The only change I will make is to use
$srcdir/ovs instead of `pwd`/ovs. People that build in a separate
directory from the source will have issues if we use `pwd`.
See
https://github.com/ovn-org/ovn/commit/3442eb5e7ce344bc9ca2a05d2eba371308f45d14
Thanks,
Dumitru
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev