I am trying to containerize a dpdk app on coreOS and have issues getting stock dpdk compiled.
igb_uio custom module which gets built as part of dpdk fails to compile, complaining about missing header files.
Appreciate any help to get past this hurdle.
coreos_developer_container dpdk-1.6.0r2 # make config T=x86_64-default-linuxapp-gcc install
make[3]: Nothing to be done for 'depdirs'.
Configuration done
================== Installing x86_64-default-linuxapp-gcc
== Build scripts
== Build scripts/testhost
== Build lib
== Build lib/librte_eal
== Build lib/librte_eal/common
== Build lib/librte_eal/linuxapp
== Build lib/librte_eal/linuxapp/igb_uio
/usr/src/linux-4.7.3-coreos-r3/Makefile:690: Cannot use CONFIG_KCOV: -fsanitize-coverage=trace-pc is not supported by compiler
WARNING: Symbol version dump ./Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] /root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c: In function 'store_max_vfs':
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:139:2: error: implicit declaration of function 'strict_strtoul' [-Werror=implicit-function-declaration]
if (0 != strict_strtoul(buf, 0, &max_vfs))
^
In file included from ./include/linux/list.h:8:0,
from ./include/linux/kobject.h:20,
from ./include/linux/device.h:17,
from /root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:25:
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c: In function 'igbuio_set_interrupt_mask':
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:228:34: error: 'struct pci_dev' has no member named 'msi_list'
list_for_each_entry(desc, &pdev->msi_list, list) {
^
./include/linux/kernel.h:831:49: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
./include/linux/list.h:363:2: note: in expansion of macro 'list_entry'
list_entry((ptr)->next, type, member)
^
./include/linux/list.h:447:13: note: in expansion of macro 'list_first_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:228:3: note: in expansion of macro 'list_for_each_entry'
list_for_each_entry(desc, &pdev->msi_list, list) {
^
In file included from ./include/linux/kobject.h:20:0,
from ./include/linux/device.h:17,
from /root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:25:
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:228:34: error: 'struct pci_dev' has no member named 'msi_list'
list_for_each_entry(desc, &pdev->msi_list, list) {
^
./include/linux/list.h:448:24: note: in definition of macro 'list_for_each_entry'
&pos->member != (head); \
^
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c: In function 'igbuio_dom0_mmap_phys':
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:331:30: error: '_PAGE_IOMAP' undeclared (first use in this function)
vma->vm_page_prot.pgprot |= _PAGE_IOMAP;
^
/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:331:30: note: each undeclared identifier is reported only once for each function it appears in
cc1: all warnings being treated as errors
scripts/Makefile.build:295: recipe for target '/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o' failed
make[10]: *** [/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o] Error 1
/usr/src/linux-4.7.3-coreos-r3/Makefile:1458: recipe for target '_module_/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio' failed
make[9]: *** [_module_/root/dpdk-1.6.0r2/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio] Error 2
Makefile:150: recipe for target 'sub-make' failed
make[8]: *** [sub-make] Error 2
make[7]: *** [igb_uio.ko] Error 2
make[6]: *** [igb_uio] Error 2
make[5]: *** [linuxapp] Error 2
make[4]: *** [librte_eal] Error 2
make[3]: *** [lib] Error 2
make[2]: *** [all] Error 2
/root/dpdk-1.6.0r2/mk/
rte.sdkinstall.mk:58: recipe for target 'x86_64-default-linuxapp-gcc_install' failed
make[1]: *** [x86_64-default-linuxapp-gcc_install] Error 2
make: *** [install] Error 2
coreos_developer_container dpdk-1.6.0r2 #