diff mbox series

[ovs-dev,v2] acinclude: Remove default library for DPDK.

Message ID 20210128103224.331608-1-sunil.pai.g@intel.com
State Accepted
Headers show
Series [ovs-dev,v2] acinclude: Remove default library for DPDK. | expand

Commit Message

Pai G, Sunil Jan. 28, 2021, 10:32 a.m. UTC
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@redhat.com>
Tested-at: https://github.com/Sunil-Pai-G/ovs/actions/runs/514412775
Signed-off-by: Sunil Pai G <sunil.pai.g@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(-)

Comments

Kevin Traynor Jan. 28, 2021, 12:34 p.m. UTC | #1
On 28/01/2021 10:32, Sunil Pai G wrote:
> 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@redhat.com>

> Tested-at: https://github.com/Sunil-Pai-G/ovs/actions/runs/514412775

It doesn't seem necessary to have ^ in the commit log but may be useful
after the cutline? I guess it can be stripped out when applying.

> Signed-off-by: Sunil Pai G <sunil.pai.g@intel.com>
> 

It resolved issue with incorrect reporting about pkg-config version on
Fedora and improves the docs.

Acked-by: Kevin Traynor <ktraynor@redhat.com>
Ilya Maximets Jan. 29, 2021, 7:54 p.m. UTC | #2
On 1/28/21 1:34 PM, Kevin Traynor wrote:
> On 28/01/2021 10:32, Sunil Pai G wrote:
>> 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@redhat.com>
> 
>> Tested-at: https://github.com/Sunil-Pai-G/ovs/actions/runs/514412775
> 
> It doesn't seem necessary to have ^ in the commit log but may be useful
> after the cutline? I guess it can be stripped out when applying.
> 
>> Signed-off-by: Sunil Pai G <sunil.pai.g@intel.com>
>>
> 
> It resolved issue with incorrect reporting about pkg-config version on
> Fedora and improves the docs.
> 
> Acked-by: Kevin Traynor <ktraynor@redhat.com>
> 

Thanks!
Applied to master and branch-2.15.

Best regards, Ilya Maximets.
diff mbox series

Patch

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