Fix detection of vhost_cuse in dpdk rte_config.h

Dpdk allows users to create a config that includes other config files and
then override values.

Eg.
defconfig_x86_64-native_vhost_cuse-linuxapp-gcc:

CONFIG_RTE_BUILD_COMBINE_LIBS=y
CONFIG_RTE_BUILD_SHARED_LIB=n
CONFIG_RTE_LIBRTE_VHOST=y
CONFIG_RTE_LIBRTE_VHOST_USER=n

This allows you to have both a vhostuser and vhostcuse config in the same
source tree without the need to replicate everything in those config files
just to change a couple of settings. The resultant .config file has all of
the settings from the included files with the updated settings at the end.
The resultant rte_config.h contains multiple undefs and defines for the
overridden settings.

Eg.
> grep RTE_LIBRTE_VHOST_USER 
> x86_64-native_vhost_cuse-linuxapp-gcc/include/rte_config.h

The current mechanism to detect the RTE_LIBRTE_VHOST_USER setting merely
greps the rte_config.h file for the string "define RTE_LIBRTE_VHOST_USER 1"
rather than the final setting of RTE_LIBRTE_VHOST_USER. The following patch
changes this test to detect the final setting of RTE_LIBRTE_VHOST_USER.

Signed-off-by: Gary Mussar <[email protected]>
---
 acinclude.m4 | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 20391ec..ef6523a 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -221,8 +221,13 @@ AC_DEFUN([OVS_CHECK_DPDK], [
     AC_SUBST([DPDK_vswitchd_LDFLAGS])
     AC_DEFINE([DPDK_NETDEV], [1], [System uses the DPDK module.])

-    OVS_GREP_IFELSE([$RTE_SDK/include/rte_config.h], [define 
RTE_LIBRTE_VHOST_USER 1],
+    AC_LANG_PUSH(C)
+    AC_EGREP_CPP([int vhost = 1;], [
+#include <$RTE_SDK/include/rte_config.h>
+int vhost = RTE_LIBRTE_VHOST_USER;
+],
                     [], [AC_DEFINE([VHOST_CUSE], [1], [DPDK vhost-cuse support 
enabled, vhost-user disabled.])])
+    AC_LANG_POP()
   else
     RTE_SDK=
   fi
--
1.9.1
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to