【问题标题】:DPDK built error with GCC for array boundsDPDK 使用 GCC 构建数组边界错误
【发布时间】: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_SDKRTE_TARGET 和 cd 到 RTE_TARGET 并运行 make -j 10 的步骤
  • 我已经解决了为我的虚拟机分配太少内存的问题,但我不知道如何关闭这个问题:(

标签: gcc debian dpdk


【解决方案1】:

编辑:数组绑定被忽略的唯一地方是rte_memcpy.h for

 #if (GCC_VERSION >= 90000 && GCC_VERSION < 90400)
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Warray-bounds"
 #endif

我可以同时为makemeson 构建成功

DPDK:dpdk-20.05-rc4

操作系统:4.15.0-99-generic

gcc:7.5.0

目标:x86_64-native-linuxapp-gcc

二进制:static and shared

这看起来更像是与平台和环境相关的问题。你能打开这个 DPDK Bugzilla 并通过 http://core.dpdk.org/contribute/ 共享相同的 dev@dpdk.org 吗?他们会为 CI 和 CD 配置类似的设置(因此可以更好地帮助您)

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多