From a20d06d7e4b07c8ba12364a5262eeab8455235af Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 25 Sep 2017 12:38:20 -0500 Subject: Move dpdk and qat components to meta-dpdk and meta-qat meta-dpdk / meta-qat: * Move content from meta-intel/common * Create new basic README/LICENSE files from meta-intel * Create new layer.conf files * Fill out the maintainers files meta-intel: * update the maintainers files * bump the meta-intel layer version * add layer recommend No other content changes made in this commit. Signed-off-by: Mark Hatle Signed-off-by: Saul Wold --- meta-dpdk/COPYING.MIT | 17 +++ meta-dpdk/LICENSE | 5 + meta-dpdk/README | 85 ++++++++++++ meta-dpdk/conf/include/maintainers.inc | 4 + meta-dpdk/conf/layer.conf | 17 +++ .../dpdk-dev-libibverbs_1.2.1-3.4-2.0.0.0.bb | 24 ++++ .../files/0001-Fix-build-with-clang.patch | 32 +++++ ...02-typecast-enum-to-int-before-comparison.patch | 115 ++++++++++++++++ .../files/0003-initialize-use_config_mr.patch | 31 +++++ .../files/0004-Fix-clang-warnings.patch | 56 ++++++++ .../dpdk-dev-libibverbs/files/init_c.patch | 23 ++++ meta-dpdk/recipes-extended/dpdk/dpdk.inc | 150 +++++++++++++++++++++ ...-examples-Fix-maybe-uninitialized-warning.patch | 44 ++++++ ...6.04-Fix-for-misleading-indentation-error.patch | 56 ++++++++ ...-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch | 52 +++++++ ...le-ip_fragmentation-in-common_base-config.patch | 33 +++++ ...04-dpdk-fix-compilation-with-dynamic-libs.patch | 30 +++++ ...07-add-sysroot-option-within-app-makefile.patch | 32 +++++ ...dk-16.07-dpdk-fix-for-parellel-make-issue.patch | 42 ++++++ ...2-dpdk-fix-installation-warning-and-issue.patch | 81 +++++++++++ meta-dpdk/recipes-extended/dpdk/dpdk_17.05.bb | 19 +++ 21 files changed, 948 insertions(+) create mode 100644 meta-dpdk/COPYING.MIT create mode 100644 meta-dpdk/LICENSE create mode 100644 meta-dpdk/README create mode 100644 meta-dpdk/conf/include/maintainers.inc create mode 100644 meta-dpdk/conf/layer.conf create mode 100644 meta-dpdk/recipes-extended/dpdk-dev-libibverbs/dpdk-dev-libibverbs_1.2.1-3.4-2.0.0.0.bb create mode 100644 meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0001-Fix-build-with-clang.patch create mode 100644 meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0002-typecast-enum-to-int-before-comparison.patch create mode 100644 meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0003-initialize-use_config_mr.patch create mode 100644 meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0004-Fix-clang-warnings.patch create mode 100644 meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/init_c.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk.inc create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/0001-examples-Fix-maybe-uninitialized-warning.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-Fix-for-misleading-indentation-error.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.04-dpdk-fix-compilation-with-dynamic-libs.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-add-sysroot-option-within-app-makefile.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk/dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch create mode 100644 meta-dpdk/recipes-extended/dpdk/dpdk_17.05.bb (limited to 'meta-dpdk') diff --git a/meta-dpdk/COPYING.MIT b/meta-dpdk/COPYING.MIT new file mode 100644 index 00000000..fb950dc6 --- /dev/null +++ b/meta-dpdk/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/meta-dpdk/LICENSE b/meta-dpdk/LICENSE new file mode 100644 index 00000000..e57d3b90 --- /dev/null +++ b/meta-dpdk/LICENSE @@ -0,0 +1,5 @@ +All metadata files (including, but not limited to bb, bbappend, +bbclass, inc and conf files) are MIT licensed unless otherwise stated. +Source code included in tree for individual recipes is under the +LICENSE stated in the associated recipe (.bb file) unless otherwise +stated. diff --git a/meta-dpdk/README b/meta-dpdk/README new file mode 100644 index 00000000..071290ba --- /dev/null +++ b/meta-dpdk/README @@ -0,0 +1,85 @@ +meta-dpdk +========= + +This README file contains information on building and booting +meta-intel BSP layers. Please see the corresponding sections below +for details. + + +Yocto Project Compatible +======================== + +The BSPs contained in this layer are compatible with the Yocto Project +as per the requirements listed here: + + https://www.yoctoproject.org/webform/yocto-project-compatible-registration + + +Dependencies +============ + +This layer depends on: + + URI: git://git.openembedded.org/bitbake + branch: 1.34 + + URI: git://git.openembedded.org/openembedded-core + layers: meta + branch: pyro + + +Guidelines for submitting patches +==================================== + +Please submit any patches against meta-dpdk to the meta-intel +mailing list (meta-intel@yoctoproject.org). Also, if your patches are +available via a public git repository, please also include a URL to +the repo and branch containing your patches as that makes it easier +for maintainers to grab and test your patches. + +There are patch submission scripts available that will, among other +things, automatically include the repo URL and branch as mentioned. +Please see the Yocto Project Development Manual sections entitled +'Using Scripts to Push a Change Upstream and Request a Pull' and +'Using Email to Submit a Patch' for details. + +Regardless of how you submit a patch or patchset, the patches should +at minimum follow the suggestions outlined in the 'Submitting a Change +to the Yocto Project' section in the Yocto Project Development Manual. +Specifically, they should: + + - Include a 'Signed-off-by:' line. A commit can't legally be pulled + in without this. + + - Provide a single-line, short summary of the change. This short + description should be prefixed by the BSP or recipe name, as + appropriate, followed by a colon. Capitalize the first character + of the summary (following the colon). + + - For the body of the commit message, provide detailed information + that describes what you changed, why you made the change, and the + approach you used. + + - If the change addresses a specific bug or issue that is associated + with a bug-tracking ID, include a reference to that ID in your + detailed description in the following format: [YOCTO #]. + + - Pay attention to line length - please don't allow any particular + line in the commit message to stretch past 72 characters. + + - For any non-trivial patch, provide information about how you + tested the patch, and for any non-trivial or non-obvious testing + setup, provide details of that setup. + +Doing a quick 'git log' in meta-intel will provide you with many +examples of good example commits if you have questions about any +aspect of the preferred format. + +The meta-intel maintainers will do their best to review and/or pull in +a patch or patchset within 24 hours of the time it was posted. For +larger and/or more involved patches and patchsets, the review process +may take longer. + +Please see the meta-intel/MAINTAINERS file for the list of maintainers +and their specific areas; it's also a good idea to cc: the specific +maintainer, if applicable. diff --git a/meta-dpdk/conf/include/maintainers.inc b/meta-dpdk/conf/include/maintainers.inc new file mode 100644 index 00000000..b1499f6c --- /dev/null +++ b/meta-dpdk/conf/include/maintainers.inc @@ -0,0 +1,4 @@ +# This file contains a list of recipe maintainers for meta-intel + +RECIPE_MAINTAINER_pn-dpdk = "TBD DPDK Flex Team" +RECIPE_MAINTAINER_pn-dpdk-dev-libibverbs = "TBD DPDK Flex Team" diff --git a/meta-dpdk/conf/layer.conf b/meta-dpdk/conf/layer.conf new file mode 100644 index 00000000..5c11debf --- /dev/null +++ b/meta-dpdk/conf/layer.conf @@ -0,0 +1,17 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "dpdk" +BBFILE_PATTERN_dpdk := "^${LAYERDIR}/" +BBFILE_PRIORITY_dpdk = "5" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_dpdk = "1" +LAYERSERIES_COMPAT_dpdk = "rocko" + +require ${LAYERDIR}/conf/include/maintainers.inc diff --git a/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/dpdk-dev-libibverbs_1.2.1-3.4-2.0.0.0.bb b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/dpdk-dev-libibverbs_1.2.1-3.4-2.0.0.0.bb new file mode 100644 index 00000000..c06cceb7 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/dpdk-dev-libibverbs_1.2.1-3.4-2.0.0.0.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "libibverbs library to support Mellanox config" +HOMEPAGE = "https://github.com/Mellanox/dpdk-dev-libibverbs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=7c557f27dd795ba77cc419dddc656b51" + +SRC_URI = "https://github.com/Mellanox/dpdk-dev-libibverbs/archive/libibverbs-${PV}.tar.gz;name=${PN} \ + file://init_c.patch \ + file://0001-Fix-build-with-clang.patch \ + file://0002-typecast-enum-to-int-before-comparison.patch \ + file://0003-initialize-use_config_mr.patch \ + file://0004-Fix-clang-warnings.patch \ + " + +SRC_URI[dpdk-dev-libibverbs.md5sum] = "65234ee278eb437a7069326f37cd4d86" +SRC_URI[dpdk-dev-libibverbs.sha256sum] = "a6471515556cb8d10ad471bb7efb8cf760b248a28aceb57d4534d50d572f56cd" + +COMPATIBLE_MACHINE = "intel-corei7-64" +COMPATIBLE_HOST_libc-musl_class-target = "null" + +S = "${WORKDIR}/${PN}-libibverbs-${PV}" +COMPATIBLE_HOST = '(i.86|x86_64).*-linux' +DEPENDS = "libnl" + +inherit pkgconfig autotools diff --git a/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0001-Fix-build-with-clang.patch b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0001-Fix-build-with-clang.patch new file mode 100644 index 00000000..93d8aba6 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0001-Fix-build-with-clang.patch @@ -0,0 +1,32 @@ +From b705caef6c717adc80585843b7fcc68700ced4b6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Aug 2017 09:25:24 -0700 +Subject: [PATCH 1/4] Fix build with clang + +Fix +error: logical not is only applied to the left hand side of this bitwise operator [-Werror,-Wlogical-not-parentheses] + if ((!port_attr->comp_mask & IBV_EXP_QUERY_PORT_ATTR_MASK1) || + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + include/infiniband/verbs_exp.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/infiniband/verbs_exp.h b/include/infiniband/verbs_exp.h +index ae94deb..42ed83d 100644 +--- a/include/infiniband/verbs_exp.h ++++ b/include/infiniband/verbs_exp.h +@@ -2955,7 +2955,7 @@ static inline int ibv_exp_query_port(struct ibv_context *context, + &port_attr->port_attr); + + /* Check that only valid flags were given */ +- if ((!port_attr->comp_mask & IBV_EXP_QUERY_PORT_ATTR_MASK1) || ++ if (!(port_attr->comp_mask & IBV_EXP_QUERY_PORT_ATTR_MASK1) || + (port_attr->comp_mask & ~IBV_EXP_QUERY_PORT_ATTR_MASKS) || + (port_attr->mask1 & ~IBV_EXP_QUERY_PORT_MASK)) { + errno = EINVAL; +-- +2.14.1 + diff --git a/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0002-typecast-enum-to-int-before-comparison.patch b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0002-typecast-enum-to-int-before-comparison.patch new file mode 100644 index 00000000..00516eba --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0002-typecast-enum-to-int-before-comparison.patch @@ -0,0 +1,115 @@ +From 7edab012f2d28de7e6d3657ec698e1090d0112de Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Aug 2017 09:25:49 -0700 +Subject: [PATCH 2/4] typecast enum to int before comparison + +Fix +error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare] + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + examples/cc_pingpong.c | 2 +- + examples/rc_pingpong.c | 2 +- + examples/srq_pingpong.c | 2 +- + examples/task_pingpong.c | 2 +- + examples/uc_pingpong.c | 2 +- + examples/umr_rc.c | 2 +- + examples/xsrq_pingpong.c | 2 +- + 7 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/examples/cc_pingpong.c b/examples/cc_pingpong.c +index 7b3e397..567c503 100644 +--- a/examples/cc_pingpong.c ++++ b/examples/cc_pingpong.c +@@ -1408,7 +1408,7 @@ int main(int argc, char *argv[]) + + case 'm': + mtu = pp_mtu_to_enum(strtol(optarg, NULL, 0)); +- if (mtu < 0) { ++ if ((int)mtu < 0) { + usage(argv[0]); + return 1; + } +diff --git a/examples/rc_pingpong.c b/examples/rc_pingpong.c +index 786577e..e661368 100644 +--- a/examples/rc_pingpong.c ++++ b/examples/rc_pingpong.c +@@ -759,7 +759,7 @@ int main(int argc, char *argv[]) + + case 'm': + mtu = pp_mtu_to_enum(strtol(optarg, NULL, 0)); +- if (mtu < 0) { ++ if ((int)mtu < 0) { + usage(argv[0]); + return 1; + } +diff --git a/examples/srq_pingpong.c b/examples/srq_pingpong.c +index 9762866..f85a7cd 100644 +--- a/examples/srq_pingpong.c ++++ b/examples/srq_pingpong.c +@@ -697,7 +697,7 @@ int main(int argc, char *argv[]) + + case 'm': + mtu = pp_mtu_to_enum(strtol(optarg, NULL, 0)); +- if (mtu < 0) { ++ if ((int)mtu < 0) { + usage(argv[0]); + return 1; + } +diff --git a/examples/task_pingpong.c b/examples/task_pingpong.c +index 748f8bb..d03a8b2 100644 +--- a/examples/task_pingpong.c ++++ b/examples/task_pingpong.c +@@ -1005,7 +1005,7 @@ int main(int argc, char *argv[]) + + case 'm': + mtu = pp_mtu_to_enum(strtol(optarg, NULL, 0)); +- if (mtu < 0) { ++ if ((int)mtu < 0) { + usage(argv[0]); + return 1; + } +diff --git a/examples/uc_pingpong.c b/examples/uc_pingpong.c +index 879bd77..a38a054 100644 +--- a/examples/uc_pingpong.c ++++ b/examples/uc_pingpong.c +@@ -606,7 +606,7 @@ int main(int argc, char *argv[]) + + case 'm': + mtu = pp_mtu_to_enum(strtol(optarg, NULL, 0)); +- if (mtu < 0) { ++ if ((int)mtu < 0) { + usage(argv[0]); + return 1; + } +diff --git a/examples/umr_rc.c b/examples/umr_rc.c +index ab76d3c..0ec636a 100644 +--- a/examples/umr_rc.c ++++ b/examples/umr_rc.c +@@ -950,7 +950,7 @@ int main(int argc, char *argv[]) + + case 'm': + mtu = pp_mtu_to_enum(strtol(optarg, NULL, 0)); +- if (mtu < 0) { ++ if ((int)mtu < 0) { + usage(argv[0]); + return 1; + } +diff --git a/examples/xsrq_pingpong.c b/examples/xsrq_pingpong.c +index c4ae51d..cebae5d 100644 +--- a/examples/xsrq_pingpong.c ++++ b/examples/xsrq_pingpong.c +@@ -910,7 +910,7 @@ int main(int argc, char *argv[]) + break; + case 'm': + ctx.mtu = pp_mtu_to_enum(strtol(optarg, NULL, 0)); +- if (ctx.mtu < 0) { ++ if ((int)ctx.mtu < 0) { + usage(argv[0]); + return 1; + } +-- +2.14.1 + diff --git a/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0003-initialize-use_config_mr.patch b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0003-initialize-use_config_mr.patch new file mode 100644 index 00000000..da4ef15b --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0003-initialize-use_config_mr.patch @@ -0,0 +1,31 @@ +From 936da7fcab06ff3bc7c1c1e1ab108a36797da039 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Aug 2017 09:28:00 -0700 +Subject: [PATCH 3/4] initialize use_config_mr + +Fixes +error: variable 'use_contig_mr' is uninitialized when used here [-Werror,-Wuninitialized] + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + examples/dcini.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/examples/dcini.c b/examples/dcini.c +index 001e905..08d75ec 100644 +--- a/examples/dcini.c ++++ b/examples/dcini.c +@@ -269,7 +269,7 @@ int main(int argc, char *argv[]) + int size = 4096; + int iters = 1000; + int use_event = 0; +- int use_contig_mr; ++ int use_contig_mr = 0; + int err; + struct ibv_ah_attr ah_attr; + struct dc_ctx ctx = { +-- +2.14.1 + diff --git a/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0004-Fix-clang-warnings.patch b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0004-Fix-clang-warnings.patch new file mode 100644 index 00000000..26f09e54 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/0004-Fix-clang-warnings.patch @@ -0,0 +1,56 @@ +From 08944074f9d9525a57e88a4990dd833d0999b8df Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Aug 2017 09:36:55 -0700 +Subject: [PATCH 4/4] Fix clang warnings + +../../../../../../../workspace/sources/dpdk-dev-libibverbs/examples/intf.c:1221:11: error: comparison of array 'ctx->dev_name' not equal to a null pointer is always true [-Werror,-Wtautological-pointer-compare] + if (ctx->dev_name != NULL) { + ~~~~~^~~~~~~~ ~~~~ +../../../../../../../workspace/sources/dpdk-dev-libibverbs/examples/intf.c:1893:13: error: comparison of unsigned expression < 0 is always false [-Werror,-Wtautological-compare] + if (size < 0 || size > MAX_MSG_SIZE) + ~~~~ ^ ~ +../../../../../../../workspace/sources/dpdk-dev-libibverbs/examples/intf.c:1901:12: error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare] + if (mtu < 0) + ~~~ ^ ~ + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + examples/intf.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/examples/intf.c b/examples/intf.c +index 8d158ee..1f1af50 100644 +--- a/examples/intf.c ++++ b/examples/intf.c +@@ -1218,7 +1218,7 @@ int create_resources(struct intf_context *ctx) + return 1; + } + +- if (!ctx->dev_name) { ++ if (!ctx->dev_name[0]) { + ctx->ib_dev = *dev_list; + if (!ctx->ib_dev) { + fprintf(stderr, "No IB devices found\n"); +@@ -1828,7 +1828,7 @@ int parse_input(struct intf_input *input, struct intf_input *default_input, int + char *ib_devname = NULL; + char *vrbs_intf = NULL; + char *cpus_str = NULL; +- unsigned long long size; ++ long long size; + + memcpy(input, default_input, sizeof(*input)); + +@@ -1898,7 +1898,7 @@ int parse_input(struct intf_input *input, struct intf_input *default_input, int + + case 'm': + mtu = mtu_to_enum(strtol(optarg, NULL, 0)); +- if (mtu < 0) ++ if ((int)mtu < 0) + goto print_usage; + input->ib_data.mtu = mtu; + break; +-- +2.14.1 + diff --git a/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/init_c.patch b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/init_c.patch new file mode 100644 index 00000000..a7708d7c --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk-dev-libibverbs/files/init_c.patch @@ -0,0 +1,23 @@ +dpdk-dev-libibverbs: suppress gcc7 warnings + +We know that format-truncation in init.c is okay. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater + + +--- a/src/init.c ++++ b/src/init.c +@@ -31,6 +31,11 @@ + * SOFTWARE. + */ + ++/* For this file we know we can ignore this warning. */ ++#if __GNUC__ > 6 ++#pragma GCC diagnostic ignored "-Wformat-truncation" ++#endif ++ + #if HAVE_CONFIG_H + # include + #endif /* HAVE_CONFIG_H */ diff --git a/meta-dpdk/recipes-extended/dpdk/dpdk.inc b/meta-dpdk/recipes-extended/dpdk/dpdk.inc new file mode 100644 index 00000000..ba382675 --- /dev/null +++ b/meta-dpdk/recipes-extended/dpdk/dpdk.inc @@ -0,0 +1,150 @@ +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 \ + " + +COMPATIBLE_MACHINE = "intel-corei7-64" +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('MACHINE_ARCH', True) + multiarch_options = { + "mohonpeak64": "atm", + "mohonpeak32": "atm", + "crystalforest": "ivb", + "intel_corei7_64": "atm", + } + + if target_arch in multiarch_options : + return multiarch_options[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 +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 +--- + 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 +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 +--- + 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 +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 +--- + 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 +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 +--- + 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 +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 +--- + 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 +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= to not setup +correctly when we depends on gcc to setup for GNU ld. + +Signed-off-by: Rahul Kumar Gupta +--- + 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 +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 +--- + 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 +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 +--- + 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" -- cgit v1.2.3-54-g00ecf