Hi Ilya, Gentle reminder for patch review.
Thanks and regards, Sunil > -----Original Message----- > From: Pai G, Sunil <[email protected]> > Sent: Thursday, November 19, 2020 6:06 PM > To: [email protected] > Cc: Stokes, Ian <[email protected]>; [email protected]; > [email protected]; Pai G, Sunil <[email protected]>; > [email protected]; [email protected] > Subject: [PATCH dpdk-latest v2] build: Remove DPDK make build references. > > Building DPDK using Make is removed since DPDK 20.08. > Hence, remove its references in OVS as well. > > Fixes: 540e70fba6d5 ("build: Add support for DPDK meson build.") > Tested-at: https://travis-ci.org/github/Sunil-Pai-G/ovs/builds/742699277 > Signed-off-by: Sunil Pai G <[email protected]> > > --- > v1->v2: > - replace python script for pkg-config output parsing > with native linux tools. > --- > .travis/linux-build.sh | 4 +- > Documentation/intro/install/afxdp.rst | 2 +- > Documentation/intro/install/dpdk.rst | 75 ++++++---------------- > acinclude.m4 | 89 +++++++++------------------ > python/automake.mk | 3 +- > python/build/pkgcfg.py | 30 --------- > 6 files changed, 52 insertions(+), 151 deletions(-) delete mode 100644 > python/build/pkgcfg.py > > diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh index > 917bbf962..e085780e9 100755 > --- a/.travis/linux-build.sh > +++ b/.travis/linux-build.sh > @@ -145,12 +145,12 @@ function install_dpdk() > > CC=gcc meson $DPDK_OPTS build > ninja -C build > - sudo ninja -C build install > + ninja -C build install > > # Update the library paths. > sudo ldconfig > > - echo "Installed DPDK source" > + echo "Installed DPDK source in $(pwd)" > popd > echo "${DPDK_VER}" > ${VERSION_FILE} } diff --git > a/Documentation/intro/install/afxdp.rst > b/Documentation/intro/install/afxdp.rst > index 327f2b3df..aad0aeebe 100644 > --- a/Documentation/intro/install/afxdp.rst > +++ b/Documentation/intro/install/afxdp.rst > @@ -396,7 +396,7 @@ PVP using vhostuser device > -------------------------- > First, build OVS with DPDK and AFXDP:: > > - ./configure --enable-afxdp --with-dpdk=shared|static|<dpdk path> > + ./configure --enable-afxdp --with-dpdk=shared|static > make -j4 && make install > > Create a vhost-user port from OVS:: > diff --git a/Documentation/intro/install/dpdk.rst > b/Documentation/intro/install/dpdk.rst > index 7a1852bc5..46419d9f9 100644 > --- a/Documentation/intro/install/dpdk.rst > +++ b/Documentation/intro/install/dpdk.rst > @@ -80,62 +80,37 @@ Install DPDK > > #. Configure and install DPDK using Meson > > - Meson is the preferred tool to build recent DPDK releases > - as Make support is deprecated and will be removed from DPDK 20.11. > - OVS supports DPDK Meson builds from DPDK 19.11 onwards. > - > Build and install the DPDK library:: > > - $ export DPDK_TARGET=x86_64-native-linuxapp-gcc > - $ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET > - $ meson $DPDK_TARGET > - $ ninja -C $DPDK_TARGET > - $ sudo ninja -C $DPDK_TARGET install > + $ export DPDK_BUILD=$DPDK_DIR/build > + $ meson build > + $ ninja -C build > + $ sudo ninja -C build install > $ sudo ldconfig > > Detailed information can be found at `DPDK documentation`_. > > -#. (Optional) Configure DPDK as a shared library > +#. (Optional) Configure and export the DPDK shared library location > + > + Since DPDK is built both as static and shared library by default, no extra > + configuration is required for the build. > > - When using Meson, DPDK is built both as static and shared library. > - So no extra configuration is required in this case. > + Exporting the path to library is not necessary if the DPDK libraries are > + system installed. For libraries installed using a prefix > + (assuming $DPDK_INSTALL in the below case), export the path to this > + library and also update the $PKG_CONFIG_PATH for use before building > OVS:: > > - In case of Make, DPDK can be built as either a static library or a shared > - library. By default, it is configured for the former. If you wish to use > - the latter, set > - ``CONFIG_RTE_BUILD_SHARED_LIB=y`` in > ``$DPDK_DIR/config/common_base``. > + $ export LD_LIBRARY_PATH=$DPDK_INSTALL/lib/x86_64-linux-gnu/ > + $ export > + PKG_CONFIG_PATH=$DPDK_INSTALL/lib/x86_64-linux-gnu/pkgconfig/ > > .. note:: > > Minor performance loss is expected when using OVS with a shared DPDK > library compared to a static DPDK library. > > -#. Configure and install DPDK using Make > - > - Build and install the DPDK library:: > - > - $ export DPDK_TARGET=x86_64-native-linuxapp-gcc > - $ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET > - $ make install T=$DPDK_TARGET DESTDIR=install > - > -#. (Optional) Export the DPDK shared library location > - > - If DPDK was built as a shared library using Make, export the path to this > - library for use when building OVS:: > - > - $ export LD_LIBRARY_PATH=$DPDK_DIR/x86_64-native-linuxapp-gcc/lib > - > - In case of Meson, exporting the path to library is not necessary if > - the DPDK libraries are system installed. For libraries installed using > - a prefix(assuming $DPDK_INSTALL in the below case), export the path to > this > - library and also update the $PKG_CONFIG_PATH for use before building > OVS:: > - > - $ export $DPDK_LIB=$DPDK_INSTALL/lib/x86_64-linux-gnu > - $ export LD_LIBRARY_PATH=$DPDK_LIB/:$LD_LIBRARY_PATH > - $ export > PKG_CONFIG_PATH=$DPDK_LIB/pkgconfig/:$PKG_CONFIG_PATH > - > .. _DPDK sources: http://dpdk.org/rel > -.. _DPDK documentation: > https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html > +.. _DPDK documentation: > + https://doc.dpdk.org/guides-20.08/linux_gsg/build_dpdk.html > > Install OVS > ~~~~~~~~~~~ > @@ -156,24 +131,14 @@ has to be configured to build against the DPDK > library (``--with-dpdk``). > > #. Configure the package using the ``--with-dpdk`` flag: > > - Depending on the tool used to build DPDK and the type of > - DPDK library to use, one can configure OVS as follows: > - > - When DPDK is built using Meson, and OVS must consume DPDK shared > libraries > - (also equivalent to leaving --with-dpdk option empty):: > - > - $ ./configure --with-dpdk=shared > - > - When DPDK is built using Meson, and OVS must consume DPDK static > libraries:: > + If OVS must consume DPDK static libraries > + (also equivalent to ``--with-dpdk=yes`` ):: > > $ ./configure --with-dpdk=static > > - When DPDK is built using Make(for shared or static):: > + If OVS must consume DPDK shared libraries:: > > - $ ./configure --with-dpdk=$DPDK_BUILD > - > - where ``DPDK_BUILD`` is the path to the built DPDK library. This can be > - skipped if DPDK library is installed in its default location. > + $ ./configure --with-dpdk=shared > > .. note:: > While ``--with-dpdk`` is required, you can pass any other configuration > diff > --git a/acinclude.m4 b/acinclude.m4 index 061afda4e..c9a4dcfce 100644 > --- a/acinclude.m4 > +++ b/acinclude.m4 > @@ -334,10 +334,9 @@ dnl > dnl Configure DPDK source tree > AC_DEFUN([OVS_CHECK_DPDK], [ > AC_ARG_WITH([dpdk], > - [AC_HELP_STRING([--with-dpdk=static|shared|/path/to/dpdk], > + [AC_HELP_STRING([--with-dpdk=static|shared|yes], > [Specify "static" or "shared" depending on the > - DPDK libraries to use only if built using Meson > - OR the DPDK build directory in case of Make])], > + DPDK libraries to use])], > [have_dpdk=true]) > > AC_MSG_CHECKING([whether dpdk is enabled]) @@ -347,46 +346,25 @@ > AC_DEFUN([OVS_CHECK_DPDK], [ > else > AC_MSG_RESULT([yes]) > case "$with_dpdk" in > - "shared" | "static" | "yes") > - DPDK_AUTO_DISCOVER="true" > - case "$with_dpdk" in > - "shared" | "yes") > - 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"]) > - ;; > - "static") > - 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"]) > - ;; > - esac > - ;; > - *) > - DPDK_AUTO_DISCOVER="false" > - DPDK_INCLUDE_PATH="$with_dpdk/include" > - # If 'with_dpdk' is passed install directory, point to headers > - # installed in $DESTDIR/$prefix/include/dpdk > - if test -e "$DPDK_INCLUDE_PATH/rte_config.h"; then > - DPDK_INCLUDE="-I$DPDK_INCLUDE_PATH" > - elif test -e "$DPDK_INCLUDE_PATH/dpdk/rte_config.h"; then > - DPDK_INCLUDE="-I$DPDK_INCLUDE_PATH/dpdk" > - fi > - DPDK_LIB_DIR="$with_dpdk/lib" > - DPDK_LIB="-ldpdk" > - ;; > + "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"]) > + ;; > + "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"]) > + ;; > esac > > ovs_save_CFLAGS="$CFLAGS" > ovs_save_LDFLAGS="$LDFLAGS" > CFLAGS="$CFLAGS $DPDK_INCLUDE" > - if test "$DPDK_AUTO_DISCOVER" = "false"; then > - LDFLAGS="$LDFLAGS -L${DPDK_LIB_DIR}" > - fi > > AC_CHECK_HEADERS([rte_config.h], [], [ > AC_MSG_ERROR([unable to find rte_config.h in $with_dpdk]) @@ - > 435,21 +413,14 @@ AC_DEFUN([OVS_CHECK_DPDK], [ > [AC_MSG_RESULT([yes]) > DPDKLIB_FOUND=true], > [AC_MSG_RESULT([no]) > - if test "$DPDK_AUTO_DISCOVER" = "true"; then > - AC_MSG_ERROR(m4_normalize([ > - Could not find DPDK library in default search path, update > - PKG_CONFIG_PATH for pkg-config to find the .pc file in > - non-standard location])) > - else > - AC_MSG_ERROR([Could not find DPDK libraries in $DPDK_LIB_DIR]) > - fi > + AC_MSG_ERROR(m4_normalize([ > + Could not find DPDK library in default search path, update > + PKG_CONFIG_PATH for pkg-config to find the .pc file in > + non-standard location])) > ]) > > CFLAGS="$ovs_save_CFLAGS" > LDFLAGS="$ovs_save_LDFLAGS" > - if test "$DPDK_AUTO_DISCOVER" = "false"; then > - OVS_LDFLAGS="$OVS_LDFLAGS -L$DPDK_LIB_DIR" > - fi > OVS_CFLAGS="$OVS_CFLAGS $DPDK_INCLUDE" > OVS_ENABLE_OPTION([-mssse3]) > > @@ -458,18 +429,14 @@ AC_DEFUN([OVS_CHECK_DPDK], [ > # This happens because the rest of the DPDK code doesn't use any symbol > in > # the pmd driver objects, and the drivers register themselves using an > # __attribute__((constructor)) function. > - # > - # These options are specified inside a single -Wl directive to prevent > - # autotools from reordering them. > - # > - # OTOH newer versions of dpdk pkg-config (generated with Meson) > - # will already have flagged just the right set of libs with > - # --whole-archive - in those cases do not wrap it once more. > - if [[ "$pkg_failed" != "no" ]];then > - DPDK_vswitchd_LDFLAGS=-Wl,--whole-archive,$DPDK_LIB,--no-whole- > archive > - else > - DPDK_vswitchd_LDFLAGS=`python3 ${srcdir}/python/build/pkgcfg.py > $DPDK_LIB` > - fi > + > + # Wrap the DPDK libraries inside a single -Wl directive > + # after comma separation to prevent autotools from reordering them. > + DPDK_vswitchd_LDFLAGS=$(echo "$DPDK_LIB"| tr -s ' ' ',' | \ > + sed 's/-Wl,//g' | sed 's/,/ -Wl,/') > + # Replace -pthread with -lpthread for LD and remove the last extra > comma. > + DPDK_vswitchd_LDFLAGS=$(echo "$DPDK_vswitchd_LDFLAGS"| sed > 's/,$//' | \ > + sed 's/-pthread/-lpthread/g') > > AC_SUBST([DPDK_vswitchd_LDFLAGS]) > AC_DEFINE([DPDK_NETDEV], [1], [System uses the DPDK module.]) diff -- > git a/python/automake.mk b/python/automake.mk index > 69d9800f9..2f08c7701 100644 > --- a/python/automake.mk > +++ b/python/automake.mk > @@ -47,8 +47,7 @@ ovs_pyfiles = \ > EXTRA_DIST += \ > python/build/__init__.py \ > python/build/nroff.py \ > - python/build/soutil.py \ > - python/build/pkgcfg.py > + python/build/soutil.py > > # PyPI support. > EXTRA_DIST += \ > diff --git a/python/build/pkgcfg.py b/python/build/pkgcfg.py deleted file > mode 100644 index 7cee3cb03..000000000 > --- a/python/build/pkgcfg.py > +++ /dev/null > @@ -1,30 +0,0 @@ > -# Copyright (c) 2020 Intel, Inc. > -# > -# Licensed under the Apache License, Version 2.0 (the "License") -# You may > not use this file except in compliance with the License. > -# You may obtain a copy of the License at: > -# > -# http://www.apache.org/licenses/LICENSE-2.0 > -# > -# Unless required by applicable law or agreed to in writing, software -# > Distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT > WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > -# See the License for the specific language governing permissions and -# > Limitations under the License. > - > -# The purpose of this script is to parse the libraries -# From pkg-config in > case of DPDK Meson builds. > - > -import sys > -def parse_pkg_cfg_libs(arg): > - linker_prefix = "-Wl," > - # Libtool expects libraries to be comma separated > - # And -Wl must appear only once. > - final_string = ','.join(map(str.strip,arg[1:])).replace('-Wl,','') > - final_string = arg[0]+" "+linker_prefix+final_string > - # Ld only understands -lpthread. > - final_string = final_string.replace('-pthread','-lpthread') > - return final_string > - > -if __name__ == "__main__": > - print(parse_pkg_cfg_libs(sys.argv[1:])) > -- > 2.17.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
