When I am compiling tldk an error occured: dereferencing pointer to incomplete type . Does this mean there is a problem with the source code?

Viewed 38

When I compiled it following the TLDK installation instructions, an error occurred. The following is error.

In file included from /root/tldk/lib/libtle_l4p/ctx.c:23:
/root/tldk/lib/libtle_l4p/stream.h: In function ‘stream_get_dest’:
/root/tldk/lib/libtle_l4p/stream.h:156:6: error: dereferencing pointer to incomplete type ‘struct rte_ipv4_hdr’
   l3h->src_addr = dev->prm.local_addr4.s_addr;
      ^~
/root/tldk/lib/libtle_l4p/stream.h:161:17: error: dereferencing pointer to incomplete type ‘struct rte_ipv6_hdr’
   rte_memcpy(l3h->src_addr, &dev->prm.local_addr6,
                 ^~
In file included from /root/tldk/lib/libtle_l4p/ctx.c:24:
/root/tldk/lib/libtle_l4p/misc.h: At top level:
/root/tldk/lib/libtle_l4p/misc.h:210:32: warning: ‘struct rte_ipv4_hdr’ declared inside parameter list will not be visible outside of this definition or declaration
 _ipv4x_phdr_cksum(const struct rte_ipv4_hdr *ipv4_hdr, size_t ipv4h_len,
                                ^~~~~~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: In function ‘_ipv4x_phdr_cksum’:
/root/tldk/lib/libtle_l4p/misc.h:215:15: error: dereferencing pointer to incomplete type ‘const struct rte_ipv4_hdr’
  s0 = ipv4_hdr->src_addr;
               ^~
/root/tldk/lib/libtle_l4p/misc.h: At top level:
/root/tldk/lib/libtle_l4p/misc.h:246:15: warning: ‘struct rte_ipv4_hdr’ declared inside parameter list will not be visible outside of this definition or declaration
  const struct rte_ipv4_hdr *ipv4_hdr)
               ^~~~~~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: In function ‘_ipv4_udptcp_mbuf_cksum’:
/root/tldk/lib/libtle_l4p/misc.h:250:28: warning: passing argument 1 of ‘_ipv4x_phdr_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
  cksum = _ipv4x_phdr_cksum(ipv4_hdr, mb->l3_len, 0);
                            ^~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h:210:46: note: expected ‘const struct rte_ipv4_hdr *’ but argument is of type ‘const struct rte_ipv4_hdr *’
 _ipv4x_phdr_cksum(const struct rte_ipv4_hdr *ipv4_hdr, size_t ipv4h_len,
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: At top level:
/root/tldk/lib/libtle_l4p/misc.h:270:15: warning: ‘struct rte_ipv6_hdr’ declared inside parameter list will not be visible outside of this definition or declaration
  const struct rte_ipv6_hdr *ipv6_hdr)
               ^~~~~~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: In function ‘_ipv6_udptcp_mbuf_cksum’:
/root/tldk/lib/libtle_l4p/misc.h:274:30: warning: passing argument 1 of ‘rte_ipv6_phdr_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
  cksum = rte_ipv6_phdr_cksum(ipv6_hdr, 0);
                              ^~~~~~~~
In file included from /root/tldk/lib/libtle_l4p/ctx.c:21:
/root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ip.h:390:44: note: expected ‘const struct ipv6_hdr *’ but argument is of type ‘const struct rte_ipv6_hdr *’
 rte_ipv6_phdr_cksum(const struct ipv6_hdr *ipv6_hdr, uint64_t ol_flags)
                     ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /root/tldk/lib/libtle_l4p/ctx.c:24:
/root/tldk/lib/libtle_l4p/misc.h: In function ‘check_pkt_csum’:
/root/tldk/lib/libtle_l4p/misc.h:322:44: error: dereferencing pointer to incomplete type ‘const struct rte_ipv4_hdr’
  if (fl3 == PKT_RX_IP_CKSUM_UNKNOWN && l3h4->hdr_checksum != 0) {
                                            ^~
/root/tldk/lib/libtle_l4p/misc.h:336:39: error: dereferencing pointer to incomplete type ‘const struct rte_udp_hdr’
    csum = (proto == IPPROTO_UDP && l4h->dgram_cksum == 0) ?
                                       ^~
/root/tldk/lib/libtle_l4p/misc.h:338:28: warning: passing argument 3 of ‘_ipv4_udptcp_mbuf_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
     m->l2_len + m->l3_len, l3h4);
                            ^~~~
/root/tldk/lib/libtle_l4p/misc.h:246:29: note: expected ‘const struct rte_ipv4_hdr *’ but argument is of type ‘const struct rte_ipv4_hdr *’
  const struct rte_ipv4_hdr *ipv4_hdr)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h:341:28: warning: passing argument 3 of ‘_ipv6_udptcp_mbuf_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
     m->l2_len + m->l3_len, l3h6);
                            ^~~~
/root/tldk/lib/libtle_l4p/misc.h:270:29: note: expected ‘const struct rte_ipv6_hdr *’ but argument is of type ‘const struct rte_ipv6_hdr *’
  const struct rte_ipv6_hdr *ipv6_hdr)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/root/tldk/lib/libtle_l4p/ctx.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’
make[3]: *** [/root/dpdk/mk/internal/rte.compile-pre.mk:116: ctx.o] Error 1
make[2]: *** [/root/tldk/mk/tle.lib.mk:27: all] Error 2
make[1]: *** [/root/tldk/mk/tle.subdir.mk:23: libtle_l4p] Error 2
make: *** [Makefile:44: lib] Error 2

Environment:

system version: debian 10.2
linux kernel version: 4.19.249-2
gcc version: 8.3.0
make version: 4.2.1
dpdk version: 18.11.11

Environment variables have been configured.

0 Answers
Related