Hi,

I'm trying to run OVS-DPDK on Windows (building OVS binaries and
statically link DPDK windows library), and it doesn't work due to
rte_bus_scan() find no available devices. (However, when using
dpdk-testpmd.exe, it finds the device successfully)

I realized that the PCI bus driver calls RTE_REGISTER_BUS to
register itself, and it's a macro creating the businitfn_pci, and calls
rte_bus_register. But somehow on my system, it does not invoke
so actually the 'rte_bus_list' is empty. And I guess this is due to
"constructor" function not working correctly when I static link DPDK.

When linking DPDK using gcc, OVS passes the linker option '--whole-archive'.
https://github.com/openvswitch/ovs/blob/master/acinclude.m4#L509

I tried adding -Wl,-force_load, or -Wl,/WHOLEARCHIVE at libdpdk.pc.
So far I still couldn't get it to work. Any suggestions or comments are welcome!

Thank you
William

Reply via email to