The function eth_dev_pci_specific_init is missing a typecast to (struct rte_pci_device *) for the input argument bus_device. This causes build issues in the GNU C++ compiler.
[CXX] g++ -o utils/pcap_handle.o -c utils/pcap_handle.cc -g3· -ggdb3 -mcpu=native -mtune=native -isystem· /home/rchirra/gen/io/ppc64include -std=gnu++11 -flax-vector-conversions· -Werror -isystem /home/rchirra/gen/io In file included from drivers/pmd.cc:7:0: /home/rchirra/gen/io/deps/dpdk/build/include/rte_ethdev_pci.h: In function ‘int eth_dev_pci_specific_init(rte_eth_dev*, void*)’: /home/rchirra/gen/io/deps/dpdk/build/include/rte_ethdev_pci.h:75:35:· error: invalid conversion from ‘void*’ to ‘rte_pci_device*’ [-fpermissive] struct rte_pci_device *pci_dev = bus_device; ^~~~~~~~~~ make[1]: *** [drivers/pmd.o] Error 1 $ g++ --version g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 Cc: sta...@dpdk.org Signed-off-by: David Christensen <d...@linux.vnet.ibm.com> Tested-by: Radhika Chirra <radhika.chi...@ibm.com> --- v2: * Mmodified subject line to indicate a C++ compiler issue * Added error output from the compiler lib/librte_ethdev/rte_ethdev_pci.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_ethdev/rte_ethdev_pci.h b/lib/librte_ethdev/rte_ethdev_pci.h index 23257e9..a325311 100644 --- a/lib/librte_ethdev/rte_ethdev_pci.h +++ b/lib/librte_ethdev/rte_ethdev_pci.h @@ -72,7 +72,7 @@ static inline int eth_dev_pci_specific_init(struct rte_eth_dev *eth_dev, void *bus_device) { - struct rte_pci_device *pci_dev = bus_device; + struct rte_pci_device *pci_dev = (struct rte_pci_device *)bus_device; if (!pci_dev) return -ENODEV; -- 1.8.3.1