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
signature.asc
Description: This is a digitally signed message part