DPDK-Replay icon indicating copy to clipboard operation
DPDK-Replay copied to clipboard

dpdk-18.07 does not compile with kernel version 4.4.6

Open krisk0 opened this issue 8 years ago • 0 comments

I tried to install with current kernel

export RTE_KERNELDIR=/tmp/linux-4.4.6
...
make install V=1 T=$RTE_TARGET

Got compilation errors

gcc -Wp,-MD,/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/.igb_param.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include -I/tmp/linux-4.4.6/arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated  -I/tmp/linux-4.4.6/include -Iinclude -I/tmp/linux-4.4.6/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/tmp/linux-4.4.6/include/uapi -Iinclude/generated/uapi -include /tmp/linux-4.4.6/include/linux/kconfig.h   -I/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO   -I/tmp/dpdk-1.8.0/lib/librte_eal/linuxapp/kni --param max-inline-insns-single=50   -I/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/include   -I/tmp/dpdk-1.8.0/lib/librte_eal/linuxapp/kni/ethtool/ixgbe   -I/tmp/dpdk-1.8.0/lib/librte_eal/linuxapp/kni/ethtool/igb -include /tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/include/rte_config.h -Wall -Werror  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(igb_param)"  -D"KBUILD_MODNAME=KBUILD_STR(rte_kni)" -c -o /tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/.tmp_igb_param.o /tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_param.c

/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c: In function 'igb_ndo_bridge_getlink':
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2262:9: error: too few arguments to function 'ndo_dflt_bridge_getlink'
  return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode);
         ^
In file included from /tmp/linux-4.4.6/include/net/gen_stats.h:6:0,
                 from /tmp/linux-4.4.6/include/net/sch_generic.h:11,
                 from /tmp/linux-4.4.6/include/linux/filter.h:16,
                 from /tmp/linux-4.4.6/include/net/sock.h:62,
                 from /tmp/linux-4.4.6/include/linux/tcp.h:22,
                 from /tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:34:
/tmp/linux-4.4.6/include/linux/rtnetlink.h:115:12: note: declared here
 extern int ndo_dflt_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
            ^
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c: At top level:
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2307:18: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .ndo_fdb_add  = igb_ndo_fdb_add,
                  ^
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2307:18: note: (near initialization for 'igb_netdev_ops.ndo_fdb_add')
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2314:24: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .ndo_bridge_setlink = igb_ndo_bridge_setlink,
                        ^
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2314:24: note: (near initialization for 'igb_netdev_ops.ndo_bridge_setlink')
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2315:24: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .ndo_bridge_getlink = igb_ndo_bridge_getlink,
                        ^
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2315:24: note: (near initialization for 'igb_netdev_ops.ndo_bridge_getlink')
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c: In function 'igb_xmit_frame_ring':
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:5475:6: error: implicit declaration of function 'vlan_tx_tag_present' [-Werror=implicit-function-declaration]
  if (vlan_tx_tag_present(skb)) {
      ^
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:5477:16: error: implicit declaration of function 'vlan_tx_tag_get' [-Werror=implicit-function-declaration]
   tx_flags |= (vlan_tx_tag_get(skb) << IGB_TX_FLAGS_VLAN_SHIFT);
                ^
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c: In function 'igb_ndo_bridge_getlink':
/tmp/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2263:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1: all warnings being treated as errors

IMHO the errors are due to an interface change in kernel source.

krisk0 avatar May 02 '17 14:05 krisk0