[meta-virtualization] [PATCH] ovs:fix cross compilation failure

zhe.he at windriver.com zhe.he at windriver.com
Tue Jun 27 01:25:32 PDT 2017


From: He Zhe <zhe.he at windriver.com>

configure with_dpdk and cross compile fails with:
"configure: error: cannot check for file existence
when cross compiling"

This is due to the usages of AC_CHECK_FILES.

AC_CHECK_FILES only works when not cross compiling. It test
a feature of the host machine, and therefore, die when
cross-compiling.

The current patch put the check in condition, i.e. check only
if not cross-compiling.

This patch has been tested on ARM64 platform with DPDK16.07

UpstreamLink::https://mail.openvswitch.org/pipermail/ovs-dev/
2016-August/322005.html

Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
Signed-off-by: Yadi.hu <yadi.hu at windriver.com>
[ Adjust context to apply. Note that this patch is from mailing
  list but is not merged into upstream repo.]
Signed-off-by: He Zhe <zhe.he at windriver.com>
---
 .../files/fix-cross-compilation-failure.patch       | 21 +++++++++++++++++++++
 recipes-networking/openvswitch/openvswitch_git.bb   |  5 +++--
 2 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 recipes-networking/openvswitch/files/fix-cross-compilation-failure.patch

diff --git a/recipes-networking/openvswitch/files/fix-cross-compilation-failure.patch b/recipes-networking/openvswitch/files/fix-cross-compilation-failure.patch
new file mode 100644
index 0000000..2d2851a
--- /dev/null
+++ b/recipes-networking/openvswitch/files/fix-cross-compilation-failure.patch
@@ -0,0 +1,21 @@
+openvswitch:fix cross compilation failure
+
+upstreamlink:https://mail.openvswitch.org/pipermail/ovs-dev/
+2016-August/322005.html
+
+--- git/acinclude.m4   2017-05-14 23:52:13.031712727 -0700
++++ git/acinclude.m4   2017-05-14 23:53:48.639691817 -0700
+@@ -180,9 +180,10 @@ AC_DEFUN([OVS_CHECK_DPDK], [
+         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_INCLUDE/dpdk/rte_config.h],
+-                                     [DPDK_INCLUDE=$DPDK_INCLUDE/dpdk], [])])
++      if test ! -e "$DPDK_INCLUDE/rte_config.h" && \
++              test -e "$DPDK_INCLUDE/dpdk/rte_config.h"; then
++              DPDK_INCLUDE=$DPDK_INCLUDE/dpdk/rte_config.h
++        fi
+         DPDK_LIB_DIR="$with_dpdk/lib"
+         ;;
+     esac
diff --git a/recipes-networking/openvswitch/openvswitch_git.bb b/recipes-networking/openvswitch/openvswitch_git.bb
index 6ab0c40..9608095 100644
--- a/recipes-networking/openvswitch/openvswitch_git.bb
+++ b/recipes-networking/openvswitch/openvswitch_git.bb
@@ -30,12 +30,13 @@ SRC_URI = "file://openvswitch-switch \
            file://0001-use-the-linux-if_packet.h-Interface-directly.patch \
            file://0002-Define-WAIT_ANY-if-not-provided-by-system.patch \
            file://CVE-2017-9263.patch \
+           file://fix-cross-compilation-failure.patch \
            "
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=17b2c9d4c70853a09c0e143137754b35"
 
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[dpdk] = "--with-dpdk=${STAGING_DIR_TARGET}/opt/dpdk/${TARGET_ARCH}-native-linuxapp-gcc,,dpdk,"
+PACKAGECONFIG ?= "dpdk"
+PACKAGECONFIG[dpdk] = "--with-dpdk=${STAGING_DIR_TARGET}/opt/dpdk/share/${TARGET_ARCH}-native-linuxapp-gcc,,dpdk,"
 
 # Don't compile kernel modules by default since it heavily depends on
 # kernel version. Use the in-kernel module for now.
-- 
2.8.1



More information about the meta-virtualization mailing list