[ovs-dev] [PATCH v2] acinclude: Remove default library for DPDK.
Sunil Pai G
sunil.pai.g at intel.com
Thu Jan 28 10:32:24 UTC 2021
The default DPDK library used before this patch
in case pkg-config fails to find libdpdk is only
valid for make based DPDK builds. Hence remove them.
As a consequence, now this error message [1] is thrown
when pkg-config cannot find libdpdk instead of proceeding
to check for a faulty pkg-config and reporting
incorrect error message [2].
Also, update the documentation to export
PKG_CONFIG_PATH since on some systems, the default
install path for DPDK libraries is not present in the default
search path of pkg-config.
Ex: for Fedora 32
default pkg-config search path:
/usr/lib64/pkgconfig:/usr/share/pkgconfig
while by default Meson installs DPDK libraries at:
/usr/local/lib64/pkgconfig
[1] Package libdpdk was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdpdk.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libdpdk', required by 'virtual:world', not found
[2] checking for DPDK... no
checking for faulty pkg-config version... yes
configure: error: Please upgrade pkg-config
Also, update the build documentation for AVX512 optimization.
Fixes: 252e1e576443 ("dpdk: Update to use DPDK v20.11.")
Reported-by: Kevin Traynor <ktraynor at redhat.com>
Tested-at: https://github.com/Sunil-Pai-G/ovs/actions/runs/514412775
Signed-off-by: Sunil Pai G <sunil.pai.g at intel.com>
---
v1 -> v2:
1. Update DPDK build docs as per comments on v1.
2. Update doc of AVX512 optimization for meson built DPDK.
---
Documentation/intro/install/dpdk.rst | 19 +++++++++++++++----
acinclude.m4 | 8 ++------
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst
index a595417ce..3a24e54f9 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -88,6 +88,19 @@ Install DPDK
$ sudo ninja -C build install
$ sudo ldconfig
+ Check if libdpdk can be found by pkg-config::
+
+ $ pkg-config --modversion libdpdk
+
+ The above command should return the DPDK version installed. If not found,
+ export the path to the installed DPDK libraries::
+
+ $ export PKG_CONFIG_PATH=/path/to/installed/".pc" file/for/DPDK
+
+ For example, On Fedora 32::
+
+ $ export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
+
Detailed information can be found at `DPDK documentation`_.
#. (Optional) Configure and export the DPDK shared library location
@@ -97,11 +110,9 @@ Install DPDK
Exporting the path to library is not necessary if the DPDK libraries are
system installed. For libraries installed using a prefix, export the path
- to this library and also update the $PKG_CONFIG_PATH for use
- before building OVS::
+ to this library::
$ export LD_LIBRARY_PATH=/path/to/installed/DPDK/libraries
- $ export PKG_CONFIG_PATH=/path/to/installed/".pc" file/for/DPDK
.. note::
@@ -152,7 +163,7 @@ has to be configured to build against the DPDK library (``--with-dpdk``).
An example that enables the AVX512 optimizations is::
- $ ./configure --with-dpdk=$DPDK_BUILD CFLAGS="-Ofast -msse4.2 -mpopcnt"
+ $ ./configure --with-dpdk=static CFLAGS="-Ofast -msse4.2 -mpopcnt"
#. Build and install OVS, as described in :ref:`general-building`
diff --git a/acinclude.m4 b/acinclude.m4
index a67e397b6..435685c93 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -350,16 +350,12 @@ AC_DEFUN([OVS_CHECK_DPDK], [
"shared")
PKG_CHECK_MODULES([DPDK], [libdpdk], [
DPDK_INCLUDE="$DPDK_CFLAGS"
- DPDK_LIB="$DPDK_LIBS"], [
- DPDK_INCLUDE="-I/usr/local/include/dpdk -I/usr/include/dpdk"
- DPDK_LIB="-ldpdk"])
+ DPDK_LIB="$DPDK_LIBS"])
;;
"static" | "yes")
PKG_CHECK_MODULES_STATIC([DPDK], [libdpdk], [
DPDK_INCLUDE="$DPDK_CFLAGS"
- DPDK_LIB="$DPDK_LIBS"], [
- DPDK_INCLUDE="-I/usr/local/include/dpdk -I/usr/include/dpdk"
- DPDK_LIB="-ldpdk"])
+ DPDK_LIB="$DPDK_LIBS"])
dnl Statically linked private DPDK objects of form
dnl -l:file.a must be positioned between
--
2.25.1
More information about the dev
mailing list