[meta-dpdk][PATCH] dpdk: fix build with GCC 11
Yu, Mingli
From: Mingli Yu <mingli.yu@...>
Fixes: | In function 'memset', | inlined from 'test_table_stub' at test_table_tables.c:151:4: | /buildarea/tmp/work/intel_x86_64-wrs-linux/dpdk/19.11.5-r0/recipe-sysroot/usr/include/bits/string_fortified.h:59:10: error: '__builtin_memset' offset [0, 31] is out of the bounds [0, 0] [-Werror=array-bounds] Signed-off-by: Mingli Yu <mingli.yu@...> --- ...001-test-table-fix-build-with-GCC-11.patch | 56 +++++++++++++++++++ recipes-extended/dpdk/dpdk_19.11.5.bb | 3 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 recipes-extended/dpdk/dpdk/0001-test-table-fix-build-with-GCC-11.patch diff --git a/recipes-extended/dpdk/dpdk/0001-test-table-fix-build-with-GCC-11.patch b/recipes-extended/dpdk/dpdk/0001-test-table-fix-build-with-GCC-11.patch new file mode 100644 index 0000000..4f76290 --- /dev/null +++ b/recipes-extended/dpdk/dpdk/0001-test-table-fix-build-with-GCC-11.patch @@ -0,0 +1,56 @@ +From 33c12ac5ba5f09727c6de807e71403dd260a7bbc Mon Sep 17 00:00:00 2001 +From: Ferruh Yigit <ferruh.yigit@...> +Date: Mon, 17 May 2021 16:57:39 +0100 +Subject: [PATCH] test/table: fix build with GCC 11 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Build error: +../app/test/test_table_tables.c: In function ‘test_table_stub’: +../app/test/test_table_tables.c:31:9: + warning: ‘memset’ offset [0, 31] is out of the bounds [0, 0] + [-Warray-bounds] + memset((uint8_t *)mbuf + sizeof(struct rte_mbuf) + 32, 0, 32); \ + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../app/test/test_table_tables.c:151:25: + note: in expansion of macro ‘PREPARE_PACKET’ + 151 | PREPARE_PACKET(mbufs[i], 0xadadadad); + | ^~~~~~~~~~~~~~ + +'key' points to mbuf header + 32 bytes, and memset clears next 32 bytes +of 'key', so overall there needs to be 64 bytes after mbuf header. +Adding a mbuf size check before memset. + +The original code has an assumption that mbuf data buffer follows mbuf +header, this patch accepts same assumption. + +Bugzilla ID: 677 +Fixes: 5205954791cb ("app/test: packet framework unit tests") +Cc: stable@... + +Upstream-Status: Backport [https://github.com/DPDK/dpdk/commit/33c12ac5ba5f09727c6de807e71403dd260a7bbc] + +Signed-off-by: Ferruh Yigit <ferruh.yigit@...> +Signed-off-by: Mingli Yu <mingli.yu@...> +--- + app/test/test_table_tables.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/app/test/test_table_tables.c b/app/test/test_table_tables.c +index 1aa269f95..4ff6ab16a 100644 +--- a/app/test/test_table_tables.c ++++ b/app/test/test_table_tables.c +@@ -28,7 +28,8 @@ table_test table_tests[] = { + APP_METADATA_OFFSET(0)); \ + key = RTE_MBUF_METADATA_UINT8_PTR(mbuf, \ + APP_METADATA_OFFSET(32)); \ +- memset(key, 0, 32); \ ++ if (mbuf->priv_size + mbuf->buf_len >= 64) \ ++ memset(key, 0, 32); \ + k32 = (uint32_t *) key; \ + k32[0] = (value); \ + *signature = pipeline_test_hash(key, NULL, 0, 0); \ +-- +2.17.1 + diff --git a/recipes-extended/dpdk/dpdk_19.11.5.bb b/recipes-extended/dpdk/dpdk_19.11.5.bb index 8410c8a..2ae9b43 100644 --- a/recipes-extended/dpdk/dpdk_19.11.5.bb +++ b/recipes-extended/dpdk/dpdk_19.11.5.bb @@ -4,7 +4,8 @@ SRC_URI += " \ 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://0001-Starting-from-Linux-5.9-get_user_pages_remote-API-do.patch \ - file://usertools-devbind-fix-binding-for-built-in-kernel-dr.patch" + file://usertools-devbind-fix-binding-for-built-in-kernel-dr.patch \ + file://0001-test-table-fix-build-with-GCC-11.patch" STABLE = "-stable" -- 2.29.2
|
|