【发布时间】:2020-09-12 22:19:35
【问题描述】:
当我将 dpdk 安装到我的 Debian 服务器时
make install T=x86_64-native-linux-gcc
会有一个错误:
error: array subscript is above array bounds [-Werror=array-bounds]
rte_mov32((uint8_t *)dst + 2 * 32, (const uint8_t *)src + 2 * 32)
那么,如何解决它,为什么会发生在 dpdk 上? 谢谢!
操作系统:x86_64 GNU/Linux 4.14.52.bm.6-amd64
Gcc 版本:6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
DPDK 版本:20.05-4c
错误信息:
In file included from /root/zeh/dpdk/x86_64-native-linux-gcc/include/rte_ether.h:21:0,
from /root/zeh/dpdk/drivers/net/ena/ena_ethdev.c:7:
/root/zeh/dpdk/drivers/net/ena/ena_ethdev.c:
In function ‘ena_rss_key_fill’:/root/zeh/dpdk/x86_64-native-linux-gcc/include/rte_memcpy.h:343:2: error: array subscript is above array bounds [-Werror=array-bounds]
rte_mov32((uint8_t *)dst + 2 * 32, (const uint8_t *)src + 2 * 32);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/zeh/dpdk/x86_64-native-linux-gcc/include/rte_memcpy.h:344:2: error: array subscript is above array bounds [-Werror=array-bounds]
rte_mov32((uint8_t *)dst + 3 * 32, (const uint8_t *)src + 3 * 32);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/zeh/dpdk/drivers/net/ena/ena_ethdev.c: At top level:
cc1: error: unrecognized command line option ‘-Wno-address-of-packed-member’ [-Werror]
我可以使用 DPDK-19.11 安装成功。
【问题讨论】:
-
请添加详细信息,例如操作系统版本、GCC 版本、DPDK 版本、编译器错误、CPU 详细信息
-
如果
drivers/net/ena/不是您的目标PMD,您可以尝试在/root/zeh/dpdk/x86_64-native-linux-gcc/.config中禁用ENA并重建吗?构建集RTE_SDK和RTE_TARGET和 cd 到 RTE_TARGET 并运行make -j 10的步骤 -
我已经解决了为我的虚拟机分配太少内存的问题,但我不知道如何关闭这个问题:(