diff options
Diffstat (limited to 'meta-dpdk/recipes-extended/dpdk')
10 files changed, 535 insertions, 0 deletions
diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk.inc b/meta-dpdk/recipes-extended/dpdk/dpdk.inc new file mode 100644 index 00000000..c1d01491 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk.inc @@ -0,0 +1,146 @@ +DESCRIPTION = "Intel(r) Data Plane Development Kit" +HOMEPAGE = "http://dpdk.org" +LICENSE = "BSD & LGPLv2 & GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "http://fast.dpdk.org/rel/${BP}.tar.gz;name=dpdk \ + file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ + file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \ + file://dpdk-16.04-Fix-for-misleading-indentation-error.patch \ + file://dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch \ + file://dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch \ + file://dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch \ + " + +# A machine needs to enable this using: +# COMPATIBLE_MACHINE_pn-dpdk-dev-libibverbs = "<machine name>" + +COMPATIBLE_MACHINE = "null" +COMPATIBLE_HOST_libc-musl_class-target = "null" + + +# dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat. +# fuse is in meta-filesystems and qat is not yet upstreamed. +# So adding mechanism to explicitly disable the use of fuse and qat. +# To enable, uncomment the below line or include in .bbappend. +# PACKAGECONFIG ?= " dpdk_qat vhost libvirt" + +PACKAGECONFIG[dpdk_qat] = ",,virtual/qat" +PACKAGECONFIG[vhost] = ",,fuse" +PACKAGECONFIG[libvirt] = ",,libvirt" + +export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}" +export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}" +export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}" + +RDEPENDS_${PN} += "python-subprocess dpdk-dev-libibverbs" +DEPENDS = "virtual/kernel dpdk-dev-libibverbs" +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +inherit module + +export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net" +export RTE_SDK = "${S}" +export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "m64", "x86_64-native-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}" + +export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include" +export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib" +export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}" +export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}" +export INSTALL_PATH = "${prefix}/share" +export RTE_OUTPUT = "${S}/${RTE_TARGET}" +export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/" +export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}" +export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}" +export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac" + +# The list of intel Comms platforms and their target machine +# process mapping. The supported target machine is listed under +# dpdk/mk/machine +def get_dpdk_target_mach(bb, d): + target_arch = d.getVar('DPDK_TARGET_MACHINE', True) + if target_arch: + target_arch + return "default" + +do_configure () { + ############################################################# + ### default value for prefix is "usr", unsetting it, so it + ### will not be concatenated in ${RTE_TARGET}/Makefile + ### which will cause compilation failure + ############################################################# + unset prefix + + # Fix-up CONFIG_RTE_MACHINE based on target machine + sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_x86_64-native-linuxapp-gcc + sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_i686-native-linuxapp-gcc + + # Fix-up vhost configs based on package config + sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp + sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp + sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp + + make O=$RTE_TARGET T=$RTE_TARGET config +} + +do_compile () { + unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS + + cd ${S}/${RTE_TARGET} + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \ + EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \ + CROSS="${TARGET_PREFIX}" \ + prefix="" LDFLAGS="" WERROR_FLAGS="-w" V=1 + + cd ${S}/examples/ + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ + EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \ + CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/" +} + +do_install () { + oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D} + oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR} + oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D} + + # Install examples + for dirname in ${S}/examples/* + do + install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}` + + for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"` + do + install -m 755 ${appname} ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/ + done + done +} + +PACKAGES += "${PN}-examples" + +FILES_${PN}-dbg += " \ + ${INSTALL_PATH}/.debug \ + ${INSTALL_PATH}/examples/*/.debug \ + " + +FILES_${PN}-doc += "\ + ${INSTALL_PATH}/doc \ + " + +FILES_${PN}-dev += " \ + ${INSTALL_PATH}/${RTE_TARGET}/.config \ + ${includedir} \ + ${includedir}/${ARCHDIR} \ + ${includedir}/exec-env \ + ${INSTALL_PATH}/buildtools/ \ + ${INSTALL_PATH}/${RTE_TARGET}/include \ + ${INSTALL_PATH}/${RTE_TARGET}/lib \ + " + +FILES_${PN} += " ${INSTALL_PATH}/usertools/ \ + ${prefix}/sbin/ \ + ${prefix}/bin/ \ + ${libdir}/ \ + " +FILES_${PN}-examples += " \ + ${INSTALL_PATH}/examples/* \ + " diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/0001-examples-Fix-maybe-uninitialized-warning.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/0001-examples-Fix-maybe-uninitialized-warning.patch new file mode 100644 index 00000000..cc8041e7 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/0001-examples-Fix-maybe-uninitialized-warning.patch @@ -0,0 +1,44 @@ +From 3924f5df5aca5ba23abbe9a84173280ede8be2dd Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 1 Aug 2017 20:18:46 -0700 +Subject: [PATCH] examples: Fix maybe-uninitialized warning + +Initialize arrays to 0, makes compiler happy about + +error: 'vals[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + examples/qos_sched/args.c | 2 +- + examples/vhost/virtio_net.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/examples/qos_sched/args.c b/examples/qos_sched/args.c +index 476a0ee..fd601c3 100644 +--- a/examples/qos_sched/args.c ++++ b/examples/qos_sched/args.c +@@ -241,7 +241,7 @@ static int + app_parse_flow_conf(const char *conf_str) + { + int ret; +- uint32_t vals[5]; ++ uint32_t vals[5] = {0}; + struct flow_conf *pconf; + uint64_t mask; + +diff --git a/examples/vhost/virtio_net.c b/examples/vhost/virtio_net.c +index cc2c3d8..16b5392 100644 +--- a/examples/vhost/virtio_net.c ++++ b/examples/vhost/virtio_net.c +@@ -327,7 +327,7 @@ vs_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id, + { + struct vhost_queue *queue; + struct rte_vhost_vring *vr; +- uint32_t desc_indexes[MAX_PKT_BURST]; ++ uint32_t desc_indexes[MAX_PKT_BURST] = {0}; + uint32_t used_idx; + uint32_t i = 0; + uint16_t free_entries; +-- +2.13.3 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch new file mode 100644 index 00000000..8786af7c --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch @@ -0,0 +1,56 @@ +From 8cd0a16af531cca0af6b4f9b729c252b8bdbf8e2 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +Date: Tue, 5 Jul 2016 00:05:25 +0800 +Subject: [PATCH] Fix for misleading indentation error + +fix the indentation of the code to match the block structure. This may cause +build errors if you have -Wall -Werror in your project. + +Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +--- + lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c | 8 ++++---- + lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c | 2 +- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c +index df22470..ba28eba 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c +@@ -3302,8 +3302,8 @@ s32 e1000_read_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 *data) + /* Disable access to mPHY if it was originally disabled */ + if (locked) + ready = e1000_is_mphy_ready(hw); +- if (!ready) +- return -E1000_ERR_PHY; ++ if (!ready) ++ return -E1000_ERR_PHY; + E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, + E1000_MPHY_DIS_ACCESS); + +@@ -3367,8 +3367,8 @@ s32 e1000_write_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 data, + /* Disable access to mPHY if it was originally disabled */ + if (locked) + ready = e1000_is_mphy_ready(hw); +- if (!ready) +- return -E1000_ERR_PHY; ++ if (!ready) ++ return -E1000_ERR_PHY; + E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL, + E1000_MPHY_DIS_ACCESS); + +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c +index 017dfe1..7248a7e 100644 +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c +@@ -870,7 +870,7 @@ s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw, + if (speed & IXGBE_LINK_SPEED_10GB_FULL) + if (orig_autoc & IXGBE_AUTOC_KX4_SUPP) + autoc |= IXGBE_AUTOC_KX4_SUPP; +- if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) && ++ if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) && + (hw->phy.smart_speed_active == false)) + autoc |= IXGBE_AUTOC_KR_SUPP; + if (speed & IXGBE_LINK_SPEED_1GB_FULL) +-- +1.9.1 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch new file mode 100644 index 00000000..e446ce44 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch @@ -0,0 +1,52 @@ +From 6c8d348190a8cf6c35111913cbf117ca98137e84 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +Date: Fri, 18 Dec 2015 18:30:47 +0800 +Subject: [PATCH] dpdk v2.2.0: add RTE_KERNELDIR_OUT to split kernel build + artifact + +Introduce RTE_KERNELDIR_OUT to be the path to which kernel build +artifacts are located. This is for matching the workflow change +since Yocto Project v1.8 onwards whereby tmp/work-shared contains +separate directories for kernel source and kernel artifacts. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +--- + mk/rte.module.mk | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mk/rte.module.mk b/mk/rte.module.mk +index 53ed4fe..b7a014b 100644 +--- a/mk/rte.module.mk ++++ b/mk/rte.module.mk +@@ -77,7 +77,7 @@ build: _postbuild + # build module + $(MODULE).ko: $(SRCS_LINKS) + @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi +- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ ++ @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ + CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0) + + # install module in $(RTE_OUTPUT)/kmod +@@ -88,7 +88,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko + + # install module + modules_install: +- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ ++ @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ + modules_install + + .PHONY: clean +@@ -98,7 +98,7 @@ clean: _postclean + .PHONY: doclean + doclean: + @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi +- $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean ++ $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean + @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\ + if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;) + @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi +-- +1.9.1 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch new file mode 100644 index 00000000..3719aa78 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch @@ -0,0 +1,33 @@ +From f7be643cc62860a986c9e0aec990c90bfc58a941 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +Date: Fri, 1 Apr 2016 17:31:55 +0800 +Subject: [PATCH] dpdk: enable ip_fragmentation in common_base config + +Upstream-Status: Inappropriate [Configuration] + +This configuration need to set for ip_fragmentation application. + +Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +--- + config/common_base | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/config/common_base b/config/common_base +index abd6a64..90259f0 100644 +--- a/config/common_base ++++ b/config/common_base +@@ -442,6 +442,11 @@ CONFIG_RTE_LIBRTE_POWER_DEBUG=n + CONFIG_RTE_MAX_LCORE_FREQS=64 + + # ++# Compile ip_fragmentation ++# ++CONFIG_RTE_IP_FRAG=y ++ ++# + # Compile librte_net + # + CONFIG_RTE_LIBRTE_NET=y +-- +1.9.1 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch new file mode 100644 index 00000000..4254d073 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch @@ -0,0 +1,30 @@ +From 8ce0e3249942a90f733bb2113e70e5a90ae67b00 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +Date: Thu, 21 Jul 2016 05:53:52 +0800 +Subject: [PATCH 1/2] dpdk: fix compilation with dynamic libs + +Upstream-Status: Inappropriate [Configuration] + +Ensure that the correct cflags are being used. + +Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +--- + mk/rte.lib.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk +index 8f7e021..42610c9 100644 +--- a/mk/rte.lib.mk ++++ b/mk/rte.lib.mk +@@ -70,7 +70,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) + + ifeq ($(LINK_USING_CC),1) + # Override the definition of LD here, since we're linking with CC +-LD := $(CC) $(CPU_CFLAGS) ++LD := $(CC) $(CPU_CFLAGS) $(EXTRA_CFLAGS) + _CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS)) + override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS)) + else +-- +1.9.1 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch new file mode 100644 index 00000000..a4c47112 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch @@ -0,0 +1,32 @@ +From a33a9e7559b59bc5fb0988af85062436ec4389a4 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +Date: Fri, 19 Aug 2016 11:57:49 +0800 +Subject: [PATCH] dpdk: add --sysroot option within app makefile + +Upstream-Status: Inappropriate [configuration] + +rte.app.mk has been changed to add -Wl, to all items listed +under EXTRA_LDFLAGS. It causes --sysroot=<path> to not setup +correctly when we depends on gcc to setup for GNU ld. + +Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +--- + mk/rte.app.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mk/rte.app.mk b/mk/rte.app.mk +index eb28e11..296c8c7 100644 +--- a/mk/rte.app.mk ++++ b/mk/rte.app.mk +@@ -195,7 +195,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) + ifeq ($(LINK_USING_CC),1) + O_TO_EXE = $(CC) -o $@ $(CFLAGS) $(OBJS-y) $(call linkerprefix, \ + $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ +- $(MAPFLAGS)) ++ $(MAPFLAGS)) $(SYSROOTPATH) + else + O_TO_EXE = $(LD) -o $@ $(OBJS-y) \ + $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ +-- +1.9.1 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch new file mode 100644 index 00000000..fc965fa4 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch @@ -0,0 +1,42 @@ +From 4cdcb5ea4af9677677a007c4f9b286948123be87 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +Date: Fri, 2 Sep 2016 15:48:52 +0800 +Subject: [PATCH] dpdk: fix for parellel make issue + +To make sure that the path of libraries should be correct and +libraries will be build before, And available at the time of +linking example apps. + +Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +--- + examples/Makefile | 1 + + examples/ethtool/ethtool-app/Makefile | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/examples/Makefile b/examples/Makefile +index 18b41b9..c7c2beb 100644 +--- a/examples/Makefile ++++ b/examples/Makefile +@@ -43,6 +43,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor + DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bond + DIRS-y += cmdline + DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor ++DEPDIRS-y += examples/ethtool/lib + DIRS-y += ethtool + DIRS-y += exception_path + DIRS-y += helloworld +diff --git a/examples/ethtool/ethtool-app/Makefile b/examples/ethtool/ethtool-app/Makefile +index 09c66ad..ec068e6 100644 +--- a/examples/ethtool/ethtool-app/Makefile ++++ b/examples/ethtool/ethtool-app/Makefile +@@ -47,6 +47,7 @@ SRCS-y := main.c ethapp.c + CFLAGS += -O3 -D_GNU_SOURCE -pthread -I$(SRCDIR)/../lib + CFLAGS += $(WERROR_FLAGS) + ++LDLIBS += -L$(ETHTOOL_LIB_PATH)/ + LDLIBS += -L$(subst ethtool-app,lib,$(RTE_OUTPUT))/lib + LDLIBS += -lrte_ethtool + +-- +1.9.1 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch new file mode 100644 index 00000000..f5171674 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch @@ -0,0 +1,81 @@ +From 363817bf84286fc167e0c3c255a7fd522bf87d8c Mon Sep 17 00:00:00 2001 +From: Shashwat Pandey <shashwatx.p@intel.com> +Date: Mon, 20 Feb 2017 15:46:22 +0800 +Subject: [PATCH] dpdk: fix installation warning and issue + +Upstream-Status: Inappropriate [configuration] + +Ensure that all compiled libs should be installed to correct location. +For cross compiling cp -r and extra tar flags used to avoid QA warning +[host-user-contaminated]. +Added excluded files from bin and removing mk and app/dpdk-pmdinfogen files +installation since it is not needed as a part of image. + +Signed-off-by: Shashwat Pandey <shashwatx.p@intel.com> +--- + mk/rte.sdkinstall.mk | 29 ++++++++++++++--------------- + 1 file changed, 14 insertions(+), 15 deletions(-) + +diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk +index dbac2a2..563954e 100644 +--- a/mk/rte.sdkinstall.mk ++++ b/mk/rte.sdkinstall.mk +@@ -115,16 +115,17 @@ endif + + install-runtime: + $(Q)$(call rte_mkdir, $(DESTDIR)$(libdir)) +- $(Q)cp -a $O/lib/* $(DESTDIR)$(libdir) ++ $(Q)cp -r $O/lib/* $(DESTDIR)$(libdir) + $(Q)$(call rte_mkdir, $(DESTDIR)$(bindir)) +- $(Q)tar -cf - -C $O --exclude 'app/*.map' \ +- --exclude app/dpdk-pmdinfogen \ +- --exclude 'app/cmdline*' --exclude app/test \ +- --exclude app/testacl --exclude app/testpipeline app | \ +- tar -xf - -C $(DESTDIR)$(bindir) --strip-components=1 \ +- --keep-newer-files ++ $(Q)tar -cf - -C $O --exclude app/dpdk-pmdinfogen app | \ ++ tar -xf - -C $(DESTDIR)$(bindir) --no-same-owner --no-same-permissions \ ++ --strip-components=1 --keep-newer-files --warning=no-ignore-newer + $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir)) +- $(Q)cp -a $(RTE_SDK)/usertools $(DESTDIR)$(datadir) ++ $(Q)cp -r $(RTE_SDK)/usertools $(DESTDIR)$(datadir) ++ $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/usertools/dpdk-setup.sh, \ ++ $(DESTDIR)$(datadir)/usertools/setup.sh) ++ $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/usertools/dpdk-devbind.py, \ ++ $(DESTDIR)$(datadir)/usertools/dpdk_nic_bind.py) + $(Q)$(call rte_mkdir, $(DESTDIR)$(sbindir)) + $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/usertools/dpdk-devbind.py, \ + $(DESTDIR)$(sbindir)/dpdk-devbind) +@@ -142,7 +143,7 @@ endif + install-kmod: + ifneq ($(wildcard $O/kmod/*),) + $(Q)$(call rte_mkdir, $(DESTDIR)$(kerneldir)) +- $(Q)cp -a $O/kmod/* $(DESTDIR)$(kerneldir) ++ $(Q)cp -r $O/kmod/* $(DESTDIR)$(kerneldir) + endif + + install-sdk: +@@ -151,11 +152,9 @@ install-sdk: + tar -xf - -C $(DESTDIR)$(includedir) --strip-components=1 \ + --keep-newer-files + $(Q)$(call rte_mkdir, $(DESTDIR)$(sdkdir)) +- $(Q)cp -a $(RTE_SDK)/mk $(DESTDIR)$(sdkdir) +- $(Q)cp -a $(RTE_SDK)/buildtools $(DESTDIR)$(sdkdir) +- $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir)/app) +- $(Q)cp -a $O/.config $(DESTDIR)$(targetdir) +- $(Q)cp -a $O/app/dpdk-pmdinfogen $(DESTDIR)$(targetdir)/app ++ $(Q)cp -r $(RTE_SDK)/buildtools $(DESTDIR)$(sdkdir) ++ $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir)) ++ $(Q)cp -r $O/.config $(DESTDIR)$(targetdir) + $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include) + $(Q)$(call rte_symlink, $(DESTDIR)$(libdir), $(DESTDIR)$(targetdir)/lib) + +@@ -171,4 +170,4 @@ ifneq ($(wildcard $O/doc/*/*/*pdf),) + $(Q)cp -a $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides + endif + $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir)) +- $(Q)cp -a $(RTE_SDK)/examples $(DESTDIR)$(datadir) ++ $(Q)cp -r $(RTE_SDK)/examples $(DESTDIR)$(datadir) +-- +1.9.1 + diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk_17.05.bb b/meta-dpdk/recipes-extended/dpdk/dpdk_17.05.bb new file mode 100644 index 00000000..1a696ede --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk_17.05.bb @@ -0,0 +1,19 @@ +include dpdk.inc + +SRC_URI += "\ + file://dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch \ + file://0001-examples-Fix-maybe-uninitialized-warning.patch \ + " + +SRC_URI[dpdk.md5sum] = "39c4e1110dd1ef9dab33edbae820f939" +SRC_URI[dpdk.sha256sum] = "763bfb7e1765efcc949e79d645dc9f1ebd16591431ba0db5ce22becd928dcd0a" + +export EXAMPLES_BUILD_DIR = "${RTE_TARGET}" +export ARCHDIR = "generic" + +do_configure_prepend () { + sed -e "s#CONFIG_RTE_LIBRTE_POWER=y#CONFIG_RTE_LIBRTE_POWER=${CONFIG_EXAMPLE_VM_POWER_MANAGER}#" -i ${S}/config/common_linuxapp +} + +COMPATIBLE_HOST_linux-gnux32 = "null" +COMPATIBLE_HOST_libc-musl_class-target = "null" |