Hi,

I am trying to containerize a dpdk app on coreOS and have issues getting 
stock dpdk compiled.
I followed these steps to build a custom kernel 
module: https://coreos.com/os/docs/latest/kernel-modules.html

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 # uname -r
4.7.3-coreos-r3
coreos_developer_container dpdk-1.6.0r2 # cat  /usr/share/coreos/release
COREOS_RELEASE_VERSION=1235.12.0
COREOS_RELEASE_BOARD=amd64-usr

Thanks

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
/root/dpdk-1.6.0r2/mk/rte.module.mk:79: recipe for target 'igb_uio.ko' 
failed
make[7]: *** [igb_uio.ko] Error 2
/root/dpdk-1.6.0r2/mk/rte.subdir.mk:61: recipe for target 'igb_uio' failed
make[6]: *** [igb_uio] Error 2
/root/dpdk-1.6.0r2/mk/rte.subdir.mk:61: recipe for target 'linuxapp' failed
make[5]: *** [linuxapp] Error 2
/root/dpdk-1.6.0r2/mk/rte.subdir.mk:61: recipe for target 'librte_eal' 
failed
make[4]: *** [librte_eal] Error 2
/root/dpdk-1.6.0r2/mk/rte.sdkbuild.mk:93: recipe for target 'lib' failed
make[3]: *** [lib] Error 2
/root/dpdk-1.6.0r2/mk/rte.sdkroot.mk:120: recipe for target 'all' failed
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
/root/dpdk-1.6.0r2/mk/rte.sdkroot.mk:102: recipe for target 'install' failed
make: *** [install] Error 2
coreos_developer_container dpdk-1.6.0r2 #

Reply via email to