Hi Vipin, I tried using `-Wl,--whole-archive` and `-Wl,--no-whole-archive ` option with my necessary libraries but it does not seem to help as well.
Below is the makefile log for my app: g++ -shared -Wl,--export-dynamic packet_generator.o -L/mnt/data/dchitkara/DPDK_2020_01_30_x86/x86_64-native-linux-icc/lib -Wl,--whole-archive -Wl,-lrte_mempool_ring -Wl,-lrte_member -Wl,-lrte_eventdev -Wl,-lrte_pmd_pcap -Wl,-lrte_pdump -Wl,-lrte_bus_vmbus -Wl,-lrte_pci -Wl,-lrte_bus_pci -Wl,-lrte_bus_vdev -Wl,-lrte_net -Wl,-lrte_distributor -Wl,-lrte_reorder -Wl,-lrte_kni -Wl,-lrte_pipeline -Wl,-lrte_table -Wl,-lrte_port -Wl,-lrte_timer -Wl,-lrte_hash -Wl,-lrte_jobstats -Wl,-lrte_lpm -Wl,-lrte_power -Wl,-lrte_acl -Wl,-lrte_meter -Wl,-lrte_sched -Wl,-lm -Wl,-lrt -Wl,-lrte_vhost -Wl,--start-group -Wl,-lrte_kvargs -Wl,-lrte_mbuf -Wl,-lrte_ip_frag -Wl,-lrte_ethdev -Wl,-lrte_cryptodev -Wl,-lrte_mempool -Wl,-lrte_ring -Wl,-lrte_eal -Wl,-lrte_cmdline -Wl,-lrte_cfgfile -Wl,-lrte_pmd_bond -Wl,-lrte_pmd_vmxnet3_uio -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_cxgbe -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_fm10k -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ring -Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_null -Wl,-lrt -Wl,-lm -Wl,-ldl -Wl,--end-group -Wl,--no-whole-archive -o ../../../COMMON/../bin/PACKET_GENERATOR_TEST_MOD.so Thanks, Dikshant -----Original Message----- From: Varghese, Vipin <vipin.vargh...@intel.com> Sent: 29 July 2020 06:30 To: Dikshant Chitkara <dchitk...@airspan.com>; Stephen Hemminger <step...@networkplumber.org> Cc: us...@dpdk.org; dev@dpdk.org; Amir Ilan <ai...@airspan.com>; Veeresh Patil <vpa...@airspan.com> Subject: RE: [dpdk-dev] DPDK PDUMP Issue NOT FROM AIRSPAN - Caution - External from: vipin.vargh...@intel.com Snipped > Hi Team, > > With fix suggest in prev mail thread at testpmd side, PDUMP works with > testpmd. > > However when we try to run our own primary app with PDUMP as a > secondary process, PDUMP console comes up, however it does not capture any > packets. > > Changes made at primary app side: > 1. PDUMP initialised just after rte eal init: > > ret_pdump = rte_pdump_init(); > if (ret_pdump < 0) { > printf("rte_pdump_init failed\n"); > } > else > { > printf("rte_pdump_init success\n"); > } > > 2. Makefile modified to add all relevant files to be linked: > > LIB_SO =-L$(DPDK_LIB) -lrte_mbuf -lrte_eal -lnuma -lrte_pmd_pcap - > lrte_pdump -lrte_pmd_i40e -lrte_eal -lrte_ring -lrte_mempool > -lrte_cryptodev -lrte_ethdev -lrte_mbuf -lrte_mempool_ring -lrte_member > -lrte_eventdev - > lrte_bus_vmbus -lrte_pci -lrte_bus_pci -lrte_bus_vdev -lrte_net - > lrte_distributor -lrte_reorder -lrte_kni -lrte_pipeline > -lrte_table -lrte_timer - lrte_hash -lrte_jobstats -lrte_lpm > -lrte_power -lrte_acl -lrte_meter -lrte_sch > > Even tried to link final DPDK lib so as well: > LIB_SO =-L$(DPDK_LIB) -Wl,--whole-archive -ldpdk -Wl,--no-whole-archive - > L/usr/lib/x86_64-linux-gnu/ -fPIC Ok, I think I have seen similar outcomes in custom Makefiles. Can you execute with `make -n` with the master Makefile and cross the necessary libraries are in bound between `-Wl,--whole-archive` and `-Wl,--no-whole-archive ` (specically for shared libraries). snipped