Created attachment 272 [details] Compilation errors for t2.c and t3.c A BPF needs to include the header <rte_mbuf_core.h> to access struct rte_mbuf. But the current version of the header <rte_mbuf_core.h> cannot be included in a BPF. The attached file shows the errors one gets while compiling the files examples/bpf/t2.c and examples/bpf/t3.c.
(In reply to Michel Machado from comment #0) > Created attachment 272 [details] > Compilation errors for t2.c and t3.c > > A BPF needs to include the header <rte_mbuf_core.h> to access struct > rte_mbuf. But the current version of the header <rte_mbuf_core.h> cannot be > included in a BPF. The attached file shows the errors one gets while > compiling the files examples/bpf/t2.c and examples/bpf/t3.c. a bug was fixed where rte_arch_bswap16 was being hidden except when RTE_FORCE_INTRINSICS was defined. i suspect -t bpf should likely define RTE_FORCE_INTRINSICS since it seems generally unreasonable to have x86 inline asm in a bpf translation unit. if there are problems with RTE_FORCE_INTRINSICS they'll have to be addressed as separate bugs.
Adding "-D RTE_FORCE_INTRINSICS" to the parameters of clang works around the problem. This is a reasonable workaround while the headers are being patched to identify -t bpf. Thank you, Tyler, for the suggestion.