> -----Original Message----- > From: Panu Matilainen [mailto:[email protected]] > Sent: Wednesday, March 30, 2016 1:06 PM > To: Bodireddy, Bhanuprakash <[email protected]>; > [email protected] > Cc: [email protected] > Subject: Re: [PATCH v3] acinclude: Autodetect DPDK when configuring OVS > > On 03/25/2016 05:31 PM, Bhanuprakash Bodireddy wrote: > > When using DPDK datapath, the OVS configure script requires the DPDK > > build directory passed on --with-dpdk. This can be avoided if DPDK > > library, headers are in standard compiler search paths. > > > > This patch fixes the problem by searching for DPDK libraries in > > standard locations and configures OVS sources for dpdk datapath. > > > > If the install location is manually specified in "--with-dpdk" > > autodiscovery shall be skipped > > > > Signed-off-by: Bhanuprakash Bodireddy > > <[email protected]> > > --- > > acinclude.m4 | 61 ++++++++++++++++++++++++++++++++++++----------- > ------------- > > 1 file changed, 37 insertions(+), 24 deletions(-) > > > > diff --git a/acinclude.m4 b/acinclude.m4 index f345c31..edb9563 100644 > > --- a/acinclude.m4 > > +++ b/acinclude.m4 > > @@ -163,22 +163,32 @@ AC_DEFUN([OVS_CHECK_DPDK], [ > > [AC_HELP_STRING([--with-dpdk=/path/to/dpdk], > > [Specify the DPDK build directory])]) > > > > - if test X"$with_dpdk" != X; then > > - RTE_SDK=$with_dpdk > > + AC_MSG_CHECKING([whether dpdk datapath is enabled]) if test -z > > + "$with_dpdk" || test "$with_dpdk" == no; then > > + AC_MSG_RESULT([no]) > > + DPDKLIB_FOUND=false > > + elif test -n "$with_dpdk"; then > > + AC_MSG_RESULT([yes]) > > + case "$with_dpdk" in > > + yes) > > + DPDK_AUTO_DISCOVER="true" > > + ;; > > + *) > > + DPDK_AUTO_DISCOVER="false" > > + ;; > > + esac > > > > - DPDK_INCLUDE=$RTE_SDK/include > > - DPDK_LIB_DIR=$RTE_SDK/lib > > + if $DPDK_AUTO_DISCOVER; then > > + DPDK_INCLUDE="/usr/local/include/dpdk -I/usr/include/dpdk" > > + DPDK_LIB_DIR="/usr/local/lib -L/usr/lib64 -L/usr/lib" > > This raises questions like why /usr/lib64 but not /usr/local/lib64? > However, the bigger issue there is that lib and lib64 contents cannot be > mixed because on a system where lib64 paths are valid, lib paths are 32bit > libraries. The linker already knows all that, so instead of trying to guess > paths > in vain, just try to link to -ldpdk. If that fails then its either outside > standard > library paths or does not exist on the system.
Ok, In case of autodiscovery mechanism I will let the linker do the job and will have the DPDK_LIB_DIR set only when user explicitly pass the build location on "--with-dpdk". > > The include path does need to be determined since it needs to be added to - > I, those two locations should be enough though.. Fine. > > + else > > + DPDK_INCLUDE="$with_dpdk/include" > > + # If 'with_dpdk' is passed install directory, point to headers > > + # installed in $DESTDIR/$prefix/include/dpdk > > + > AC_CHECK_FILE([$DPDK_INCLUDE/rte_config.h],,[AC_CHECK_FILE([$DPDK_I > NCLUDE/dpdk/rte_config.h],[DPDK_INCLUDE=$DPDK_INCLUDE/dpdk],[])]) > > + DPDK_LIB_DIR="$with_dpdk/lib" > > + fi > > DPDK_LIB="-ldpdk" > > - DPDK_EXTRA_LIB="" > > - RTE_SDK_FULL=`readlink -f $RTE_SDK` > > - > > - AC_COMPILE_IFELSE( > > - [AC_LANG_PROGRAM([#include > <$RTE_SDK_FULL/include/rte_config.h> > > -#if !RTE_LIBRTE_VHOST_USER > > -#error > > -#endif], [])], > > - [], [AC_DEFINE([VHOST_CUSE], [1], [DPDK vhost-cuse > > support > enabled, vhost-user disabled.]) > > - DPDK_EXTRA_LIB="-lfuse"]) > > This is silently removing vhost-cuse/vhost-user detection. I personally > wouldn't mind support for vhost-cuse dropped but this is not the way to do > it, it belongs to a separate patch along with appropriate explanation. Point taken, I will handle this separately in a different patch with updates to INSTALL.DPDK.md. - Bhanu Prakash. > > > - Panu - _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
