[Pkg-dpdk-devel] Bug#917984: Bug#917984: Can not link ODP with newer DPDK

Luca Boccassi bluca at debian.org
Wed Jan 2 11:49:52 GMT 2019


On Wed, 2019-01-02 at 01:43 +0300, Dmitry Eremin-Solenikov wrote:
> Package: libdpdk-dev
> Version: 18.11-3
> Severity: important
> 
> Hello,
> 
> I've tried using migrated DPDK to build ODP. Unfortunately, ODP uses
> libtool and libtool likes to rearrange linking options (see below).
> Thus
> linked ODP library/app doesn't get all necessary PMDs.
> 
> Linking in an old way also doesn't seem possible because you've
> stopped
> providing libdpdk.a script (which is still included in the DPDK
> installation BTW, if build/install cycle is done using make).
> 
> $ pkg-config --libs libdpdk --static
> -lrte_telemetry -lrte_bpf -lrte_flow_classify -lrte_pipeline
> -lrte_table -lrte_port -lrte_vhost -lrte_security -lrte_sched
> -lrte_reorder -lrte_rawdev -lrte_pdump -lrte_power -lrte_meter
> -lrte_member -lrte_lpm -lrte_latencystats -lrte_kni -lrte_jobstats
> -lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd
> -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile
> -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash
> -lrte_metrics -lrte_pci -lrte_ethdev -lrte_net -lrte_mbuf
> -lrte_mempool -lrte_ring -lrte_eal -lrte_kvargs -lrte_cmdline
> -lrte_kvargs -lrte_eal -lrte_ring -lrte_mempool -lrte_mbuf -lrte_pci
> -lrte_cryptodev -lrte_net -lrte_cmdline -lrte_ethdev -lrte_hash
> -lrte_timer -lrte_common_dpaax -lrte_eventdev -lrte_rawdev
> -lrte_bus_dpaa -lrte_bus_fslmc -lrte_bus_pci -lrte_common_octeontx
> -lrte_bus_vdev -lrte_meter -lrte_sched -lrte_ip_frag -lz
> -lrte_mempool_dpaa -lrte_mempool_dpaa2 -lrte_vhost -lrte_security
> -lrte_kni -lmnl -lmlx4 -libverbs -lmnl -lmlx5 -libverbs
> -lrte_bus_vmbus -lrte_mempool_octeontx -lpcap -lrte_port -lrte_lpm
> -lrte_acl -lrte_table -lrte_pipeline -lrte_gso -lIPSec_MB
> -lrte_common_cpt -lrte_reorder -lrte_compressdev -lrte_pmd_dpaa
> -lrte_pmd_dpaa2 -lrte_pmd_dpaa2_sec -lrte_pmd_octeontx -lrte_bbdev
> -lrte_bus_ifpga -Wl,--whole-archive -lrte_mempool_bucket
> -lrte_mempool_ring -lrte_mempool_stack -lrte_pmd_af_packet
> -lrte_pmd_ark -lrte_pmd_atlantic -lrte_pmd_avf -lrte_pmd_avp
> -lrte_pmd_axgbe -lrte_pmd_bond -lrte_pmd_bnx2x -lrte_pmd_bnxt
> -lrte_pmd_cxgbe -lrte_pmd_e1000 -lrte_pmd_ena -lrte_pmd_enetc
> -lrte_pmd_enic -lrte_pmd_failsafe -lrte_pmd_fm10k -lrte_pmd_i40e
> -lrte_pmd_ifc -lrte_pmd_ixgbe -lrte_pmd_kni -lrte_pmd_liquidio
> -lrte_pmd_mlx4 -lrte_pmd_mlx5 -lrte_pmd_netvsc -lrte_pmd_nfp
> -lrte_pmd_null -lrte_pmd_pcap -lrte_pmd_qede -lrte_pmd_ring
> -lrte_pmd_sfc -lrte_pmd_softnic -lrte_pmd_tap -lrte_pmd_thunderx
> -lrte_pmd_vdev_netvsc -lrte_pmd_vhost -lrte_pmd_virtio
> -lrte_pmd_vmxnet3 -lrte_pmd_aesni_gcm -lrte_pmd_aesni_mb
> -lrte_pmd_caam_jr -lrte_pmd_ccp -lrte_pmd_dpaa_sec
> -lrte_pmd_null_crypto -lrte_pmd_octeontx_crypto -lrte_pmd_openssl
> -lrte_pmd_crypto_scheduler -lrte_pmd_virtio_crypto
> -lrte_pmd_octeontx_compress -lrte_pmd_qat -lrte_pmd_zlib
> -lrte_pmd_dpaa_event -lrte_pmd_dpaa2_event -lrte_pmd_octeontx_event
> -lrte_pmd_opdl_event -lrte_pmd_skeleton_event -lrte_pmd_sw_event
> -lrte_pmd_dsw_event -lrte_pmd_bbdev_null -lrte_pmd_skeleton_rawdev
> -lrte_pmd_dpaa2_cmdif -lrte_pmd_dpaa2_qdma -lrte_pmd_ifpga_rawdev
> -Wl,--no-whole-archive -Wl,-Bdynamic -Wl,--no-as-needed -pthread -lm
> -ldl -lnuma -lbsd -lpcap -lcrypto -lz -lcrypto -ldl -pthread -lz
> 
> $ libtool --mode=link gcc /tmp/test.c -o /tmp/tes `pkg-config --libs
> libdpdk --static`
> libtool: link: gcc /tmp/test.c -o /tmp/tes -Wl,--whole-archive -Wl,
> --no-whole-archive -Wl,-Bdynamic -Wl,--no-as-needed -pthread
> -pthread  -lrte_telemetry -lrte_bpf -lrte_flow_classify -lrte_pdump
> -lrte_power -lrte_member -lrte_latencystats -lrte_jobstats -lrte_gro
> -lrte_efd -lrte_distributor -lrte_cfgfile -lrte_bitratestats
> -lrte_metrics -lrte_kvargs -lrte_eal -lrte_ring -lrte_mempool
> -lrte_mbuf -lrte_pci -lrte_cryptodev -lrte_net -lrte_cmdline
> -lrte_ethdev -lrte_hash -lrte_timer -lrte_common_dpaax -lrte_eventdev
> -lrte_rawdev -lrte_bus_dpaa -lrte_bus_fslmc -lrte_bus_pci
> -lrte_common_octeontx -lrte_bus_vdev -lrte_meter -lrte_sched
> -lrte_ip_frag -lrte_mempool_dpaa -lrte_mempool_dpaa2 -lrte_vhost
> -lrte_security -lrte_kni -lmlx4 -lmnl -lmlx5 -libverbs
> -lrte_bus_vmbus -lrte_mempool_octeontx -lrte_port -lrte_lpm -lrte_acl
> -lrte_table -lrte_pipeline -lrte_gso -lIPSec_MB -lrte_common_cpt
> -lrte_reorder -lrte_compressdev -lrte_pmd_dpaa -lrte_pmd_dpaa2
> -lrte_pmd_dpaa2_sec -lrte_pmd_octeontx -lrte_bbdev -lrte_bus_ifpga
> -lrte_mempool_bucket -lrte_mempool_ring -lrte_mempool_stack
> -lrte_pmd_af_packet -lrte_pmd_ark -lrte_pmd_atlantic -lrte_pmd_avf
> -lrte_pmd_avp -lrte_pmd_axgbe -lrte_pmd_bond -lrte_pmd_bnx2x
> -lrte_pmd_bnxt -lrte_pmd_cxgbe -lrte_pmd_e1000 -lrte_pmd_ena
> -lrte_pmd_enetc -lrte_pmd_enic -lrte_pmd_failsafe -lrte_pmd_fm10k
> -lrte_pmd_i40e -lrte_pmd_ifc -lrte_pmd_ixgbe -lrte_pmd_kni
> -lrte_pmd_liquidio -lrte_pmd_mlx4 -lrte_pmd_mlx5 -lrte_pmd_netvsc
> -lrte_pmd_nfp -lrte_pmd_null -lrte_pmd_pcap -lrte_pmd_qede
> -lrte_pmd_ring -lrte_pmd_sfc -lrte_pmd_softnic -lrte_pmd_tap
> -lrte_pmd_thunderx -lrte_pmd_vdev_netvsc -lrte_pmd_vhost
> -lrte_pmd_virtio -lrte_pmd_vmxnet3 -lrte_pmd_aesni_gcm
> -lrte_pmd_aesni_mb -lrte_pmd_caam_jr -lrte_pmd_ccp -lrte_pmd_dpaa_sec
> -lrte_pmd_null_crypto -lrte_pmd_octeontx_crypto -lrte_pmd_openssl
> -lrte_pmd_crypto_scheduler -lrte_pmd_virtio_crypto
> -lrte_pmd_octeontx_compress -lrte_pmd_qat -lrte_pmd_zlib
> -lrte_pmd_dpaa_event -lrte_pmd_dpaa2_event -lrte_pmd_octeontx_event
> -lrte_pmd_opdl_event -lrte_pmd_skeleton_event -lrte_pmd_sw_event
> -lrte_pmd_dsw_event -lrte_pmd_bbdev_null -lrte_pmd_skeleton_rawdev
> -lrte_pmd_dpaa2_cmdif -lrte_pmd_dpaa2_qdma -lrte_pmd_ifpga_rawdev -lm
> -lnuma -lbsd -lpcap -lcrypto -ldl -lz -pthread

Hi,

Strange that libtool is messing things up, I've used the same pkgconfig
file in a few different projects that use autoconf/automake and I
haven't seen this issue.

I had a look on github, and it does not seem that odp is currently
using pkg-config, but rather doing some manual check - is there a
branch in a fork or a patch you could point me to so that I can try to
reproduce?

-- 
Kind regards,
Luca Boccassi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/pkg-dpdk-devel/attachments/20190102/74f9dc9a/attachment-0001.sig>


More information about the Pkg-dpdk-devel mailing list