This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via fbcf3e60c699c5f450fd6a4e7a5c78980b3512c5 (commit) via 4a6bae575eb67aa5a484d70d765f6283ea76c183 (commit) via b63e52ee345ae1d69435deded1391167d311bff3 (commit) via 9cb360c18f3948c14bb902351a0ace971479c336 (commit) via 99300f9db4c368e7519c52af93c93d702790b2b4 (commit) from 9ea61da809269644ac6332a1b0f53be68a7e26d7 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit fbcf3e60c699c5f450fd6a4e7a5c78980b3512c5 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Fri Jan 19 03:48:20 2018 +0300
travis: test ODP with shared DPDK
Add testcase compiling and running ODP with shared DPDK lib
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/.travis.yml b/.travis.yml index ce1fd27e..7dd7522d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,6 +47,7 @@ env: # for individual commit validation. But you you want to track tests history # you need generated new one at https://codecov.io specific for your repo. - CODECOV_TOKEN=a733c34c-5f5c-4ff1-af4b-e9f5edb1ab5e + - DPDK_VERS="17.08" matrix: - CONF="" - CONF="--disable-abi-compat" @@ -56,6 +57,7 @@ env: - CONF="--enable-schedule-scalable" - CONF="--enable-dpdk-zero-copy" - CONF="--disable-static-applications" + - DPDK_SHARED="y" CONF="--disable-static-applications" - CROSS_ARCH="arm64" - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a" - CROSS_ARCH="powerpc" @@ -159,7 +161,6 @@ install: - gem install asciidoctor
# DPDK pktio. Note that cache must be purged if dpdk version changes. - - DPDK_VERS="17.08" - | CACHED_DPDK_VERS=`fgrep Version dpdk/pkg/dpdk.spec | cut -d " " -f 2` if [ "${CACHED_DPDK_VERS}" != "${DPDK_VERS}" ]; then @@ -168,43 +169,53 @@ install: - | case "$CROSS_ARCH" in "arm64") - TARGET="arm64-armv8a-linuxapp-gcc" + DPDK_TARGET="arm64-armv8a-linuxapp-gcc" ;; "armhf") - TARGET="arm-armv7a-linuxapp-gcc" + DPDK_TARGET="arm-armv7a-linuxapp-gcc" ;; "i386") - TARGET="i686-native-linuxapp-gcc" + DPDK_TARGET="i686-native-linuxapp-gcc" ;; "") - TARGET="x86_64-native-linuxapp-gcc" + DPDK_TARGET="x86_64-native-linuxapp-gcc" DPDK_MACHINE=snb ;; esac - | - if [ -n "$TARGET" ] ; then - if [ ! -f "dpdk/${TARGET}/lib/libdpdk.a" ] ; then + if [ -n "$DPDK_TARGET" ] ; then + if [ -n "$DPDK_SHARED" ] ; then + TARGET="$DPDK_TARGET"-shared + LIBDPDKEXT=so + export LD_LIBRARY_PATH="`pwd`/${TARGET}:$LD_LIBRARY_PATH" + echo $LD_LIBRARY_PATH + else + TARGET="$DPDK_TARGET" + LIBDPDKEXT=a + fi + if [ ! -f "dpdk/${TARGET}/lib/libdpdk.$LIBDPDKEXT" ]; then git -c advice.detachedHead=false clone -q --depth=1 --single-branch --branch=v${DPDK_VERS} http://dpdk.org/git/dpdk dpdk pushd dpdk git log --oneline --decorate - echo $CC # AArch64 && ARMv7 fixup sed -i -e 's/40900/40800/g' lib/librte_eal/common/include/arch/arm/rte_vect.h sed -i -e 's/!(/!(defined(__arm__) && defined(__clang__) || /g' lib/librte_eal/common/include/arch/arm/rte_byteorder.h sed -i -e 's/__GNUC__/defined(__arm__) && defined(__clang__) || __GNUC__/' lib/librte_eal/common/include/generic/rte_byteorder.h - make config T=${TARGET} O=${TARGET} + make config T=${DPDK_TARGET} O=${TARGET} pushd ${TARGET} sed -ri 's,(CONFIG_RTE_LIBRTE_PMD_PCAP=).*,\1y,' .config - cat .config |grep RTE_MACHINE if test -n "${DPDK_MACHINE}" ; then sed -ri 's,(CONFIG_RTE_MACHINE=).*,\1"'${DPDK_MACHINE}'",' .config fi + if test -n "${DPDK_SHARED}" ; then + sed -ri 's,(CONFIG_RTE_BUILD_SHARED_LIB=).*,\1y,' .config + fi if test -n "$CROSS_ARCH" ; then sed -ri -e 's,(CONFIG_RTE_EAL_IGB_UIO=).*,\1n,' .config sed -ri -e 's,(CONFIG_RTE_KNI_KMOD=).*,\1n,' .config fi popd - make install T=${TARGET} EXTRA_CFLAGS="-fPIC $DPDK_CFLAGS" CROSS="$DPDK_CROSS" -j $(nproc) + make build T=${DPDK_TARGET} O=${TARGET} EXTRA_CFLAGS="-fPIC $DPDK_CFLAGS" CROSS="$DPDK_CROSS" -j $(nproc) rm -r ./doc ./${TARGET}/app ./${TARGET}/build popd fi @@ -243,11 +254,17 @@ script: - pushd $HOME - echo "Dynamic link.." - ${CC} ${CFLAGS} ${OLDPWD}/example/hello/odp_hello.c -o odp_hello_inst_dynamic `PKG_CONFIG_PATH=${HOME}/odp-install/lib/pkgconfig:${PKG_CONFIG_PATH} pkg-config --cflags --libs libodp-linux` - - echo "Static link.." - - ${CC} ${CFLAGS} ${OLDPWD}/example/hello/odp_hello.c -o odp_hello_inst_static `PKG_CONFIG_PATH=${HOME}/odp-install/lib/pkgconfig:${PKG_CONFIG_PATH} pkg-config --cflags --libs libodp-linux --static` -static - if [ -z "$CROSS_ARCH" ] ; then - LD_LIBRARY_PATH="${HOME}/odp-install/lib:$LD_LIBRARY_PATH" ./odp_hello_inst_dynamic ; - ./odp_hello_inst_static ; + LD_LIBRARY_PATH="${HOME}/odp-install/lib:$LD_LIBRARY_PATH" ./odp_hello_inst_dynamic ; + fi + - | + # it is not possible to do static linking if we only have shared DPDK library. Compiler complains about missing -ldpdk + if [ -z "$TARGET" -o -z "$DPDK_SHARED" ] ; then + echo "Static link.." + ${CC} ${CFLAGS} ${OLDPWD}/example/hello/odp_hello.c -o odp_hello_inst_static `PKG_CONFIG_PATH=${HOME}/odp-install/lib/pkgconfig:${PKG_CONFIG_PATH} pkg-config --cflags --libs libodp-linux --static` -static || exit 1 + if [ -z "$CROSS_ARCH" ] ; then + ./odp_hello_inst_static; + fi fi - popd - ccache -s
commit 4a6bae575eb67aa5a484d70d765f6283ea76c183 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Wed Jan 24 03:48:06 2018 +0300
travis: merge variable sections
Travis ignores first env setting once it encountered second one. Merge them together.
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/.travis.yml b/.travis.yml index fca06a0d..ce1fd27e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,28 +14,6 @@ group: deprecated-2017Q2 stages: - "build only" - test -env: - global: - # COVERITY_SCAN_TOKEN - # ** specific to your project ** - # Note: - # You should have a github account and travis linked travis account. - # The secure key to be filled below is the 685 character long encrypted - # token you can find as follow from your coverity dashboard - # (at https://scan.coverity.com/dashboard): - # Click on the github project (<you>/odp) - # Click on "submit build" - # Click on "Configure Travis CI" - # Look at the COVERITY_SCAN_TOKEN in the env: global: section - # of the configuration example. - # copy the secure:<key> below - # - - secure: "xxxx" - # - # By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see - # for individual commit validation. But you you want to track tests history - # you need generated new one at https://codecov.io specific for your repo. - - CODECOV_TOKEN=a733c34c-5f5c-4ff1-af4b-e9f5edb1ab5e
addons: apt: @@ -53,10 +31,6 @@ addons: # build_command: "make" # branch_pattern: coverity_scan
-compiler: - - gcc - - clang-3.8 - cache: ccache: true pip: true @@ -67,6 +41,13 @@ cache: - $HOME/doxygen-install
env: + global: + # + # By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see + # for individual commit validation. But you you want to track tests history + # you need generated new one at https://codecov.io specific for your repo. + - CODECOV_TOKEN=a733c34c-5f5c-4ff1-af4b-e9f5edb1ab5e + matrix: - CONF="" - CONF="--disable-abi-compat" - CONF="--enable-deprecated" @@ -84,6 +65,10 @@ env: - CROSS_ARCH="powerpc" CONF="--disable-abi-compat" - CROSS_ARCH="i386" CONF="--disable-abi-compat"
+compiler: + - gcc + - clang-3.8 + before_install:
# Install cross toolchains, etc
commit b63e52ee345ae1d69435deded1391167d311bff3 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Mon Jan 22 13:34:52 2018 +0300
build: configure: print notice about unsupported configuration
If we are using shared DPDK library, we can not guarantee that there will be a static one (to fullfill dependencies if gcc -static is used). Thus mark this configuration as not supported.
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/configure.ac b/configure.ac index 56a422b4..6d76bead 100644 --- a/configure.ac +++ b/configure.ac @@ -191,6 +191,12 @@ AC_ARG_ENABLE([static-applications], [ with ODP])], [], [enable_static_applications=yes]) AM_CONDITIONAL([STATIC_APPS], [test "x$enable_static_applications" != "xno"]) +if test "x$DPDK_SHARED" = "xyes" -a "x$enable_static_applications" != "xno" ; +then + AC_MSG_WARN([Static linking of examples and tests might fail when ] + [shared DPDK is detected. If build fails please retry with ] + [--disable-static-applications]) +fi
########################################################################## # Include m4 files
commit 9cb360c18f3948c14bb902351a0ace971479c336 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Tue Jan 23 22:22:54 2018 +0300
build: odp_dpdk: print info on detected DPDK type and location
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/m4/odp_dpdk.m4 b/m4/odp_dpdk.m4 index 81ace08a..bf3dfccf 100644 --- a/m4/odp_dpdk.m4 +++ b/m4/odp_dpdk.m4 @@ -130,5 +130,8 @@ AS_IF([test "x$1" = "xsystem"], [dnl DPDK_SHARED=yes fi ]) +AS_IF([test "x$DPDK_SHARED" = "xyes"], + [AC_MSG_NOTICE([Using shared DPDK library found at $DPDK_PMD_PATH])], + [AC_MSG_NOTICE([Using static DPDK library found at $DPDK_PMD_PATH])]) _ODP_DPDK_CHECK([$DPDK_CPPFLAGS], [$DPDK_LDFLAGS], [$2], [$3]) ])
commit 99300f9db4c368e7519c52af93c93d702790b2b4 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Thu Jan 18 04:59:56 2018 +0300
build: odp_dpdk: another fix for linking with shared libdpdk
Older toolchains won't include all shared objects from the group so file to DT_NEEDED section. So use --as-needed/--no-as-needed flags to control linking with DPDK PMD libs.
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/m4/odp_dpdk.m4 b/m4/odp_dpdk.m4 index 1887b043..81ace08a 100644 --- a/m4/odp_dpdk.m4 +++ b/m4/odp_dpdk.m4 @@ -17,18 +17,29 @@ AS_VAR_APPEND([DPDK_PMDS], [--no-whole-archive])
# _ODP_DPDK_SET_LIBS # -------------------- -# Set DPDK_LIBS/DPDK_LIBS_LT depending on DPDK setup +# Set DPDK_LIBS/DPDK_LIBS_LT/DPDK_LIBS_LIBODP depending on DPDK setup AC_DEFUN([_ODP_DPDK_SET_LIBS], [dnl AS_IF([test "x$DPDK_SHARED" = "xyes"], [dnl - DPDK_LIBS_LT="" + # applications don't need to be linked to anything, just rpath + DPDK_LIBS_LT="$DPDK_RPATH_LT" + # static linking flags will need -ldpdk + DPDK_LIBS="-Wl,--no-as-needed,-ldpdk,--as-needed,`echo $DPDK_LIBS | sed -e 's/ /,/g'`" DPDK_LIBS="$DPDK_LDFLAGS $DPDK_RPATH $DPDK_LIBS" + # link libodp-linux with -ldpdk + DPDK_LIBS_LIBODP="$DPDK_LIBS" ], [dnl ODP_DPDK_PMDS([$DPDK_PMD_PATH]) + # build long list of libraries for applications, which should not be + # rearranged by libtool DPDK_LIBS_LT="`echo $DPDK_LIBS | sed -e 's/^/-Wc,/' -e 's/ /,/g'`" DPDK_LIBS_LT="$DPDK_LDFLAGS $DPDK_PMDS $DPDK_LIBS_LT $DPDK_LIBS" + # static linking flags follow the suite DPDK_LIBS="$DPDK_LDFLAGS $DPDK_PMDS $DPDK_LIBS" + # link libodp-linux with libtool linking flags + DPDK_LIBS_LIBODP="$DPDK_LIBS_LT" ]) AC_SUBST([DPDK_LIBS]) +AC_SUBST([DPDK_LIBS_LIBODP]) AC_SUBST([DPDK_LIBS_LT]) ])
@@ -99,7 +110,6 @@ AC_DEFUN([ODP_DPDK], [dnl AS_IF([test "x$1" = "xsystem"], [dnl DPDK_CPPFLAGS="-isystem/usr/include/dpdk" DPDK_LDFLAGS="" - DPDK_RPATH="" DPDK_LIB_PATH="`$CC --print-file-name=libdpdk.so`" if test "x$DPDK_LIB_PATH" = "x" ; then DPDK_LIB_PATH="`$CC --print-file-name=libdpdk.a`" @@ -115,10 +125,9 @@ AS_IF([test "x$1" = "xsystem"], [dnl DPDK_LDFLAGS="-L$DPDK_LIB_PATH" DPDK_PMD_PATH="$DPDK_LIB_PATH" if test -r "$DPDK_LIB_PATH"/libdpdk.so ; then - DPDK_RPATH="-R$DPDK_LIB_PATH" + DPDK_RPATH="-Wl,-rpath,$DPDK_LIB_PATH" + DPDK_RPATH_LT="-R$DPDK_LIB_PATH" DPDK_SHARED=yes - else - DPDK_RPATH= fi ]) _ODP_DPDK_CHECK([$DPDK_CPPFLAGS], [$DPDK_LDFLAGS], [$2], [$3]) diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 4cfc7488..da5540fe 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -274,7 +274,7 @@ endif
__LIB__libodp_linux_la_LIBADD = $(ATOMIC_LIBS) __LIB__libodp_linux_la_LIBADD += $(OPENSSL_LIBS) -__LIB__libodp_linux_la_LIBADD += $(DPDK_LIBS_LT) +__LIB__libodp_linux_la_LIBADD += $(DPDK_LIBS_LIBODP) __LIB__libodp_linux_la_LIBADD += $(PTHREAD_LIBS) __LIB__libodp_linux_la_LIBADD += $(TIMER_LIBS)
-----------------------------------------------------------------------
Summary of changes: .travis.yml | 84 +++++++++++++++++++------------------- configure.ac | 6 +++ m4/odp_dpdk.m4 | 24 ++++++++--- platform/linux-generic/Makefile.am | 2 +- 4 files changed, 68 insertions(+), 48 deletions(-)
hooks/post-receive