Hi Dikshant, Looks like the custom Makefile log is quite different in passing DPDK CFLAGS and LDFLAGS. Also here are couple of surprises for me
1. Unable to find `make -n` logs 2. presence of g++ is present in each line 3. unable to find include option 4. request was to run `make -n` and cross the relevant libraries are bound within the `-Wl,--whole-archive` and `-Wl,--no-whole-archive `. 5. Unable to find `-Wl,-lpcap` passed for `-Wl,-lrte_pmd_pcap -Wl,-lrte_pdump` Hint: I normally take up sample like example/l2fwd and work towards to removing unwanted libraries while keeping the content and format intact for my custom makefile. > -----Original Message----- > From: Dikshant Chitkara <dchitk...@airspan.com> > Sent: Wednesday, July 29, 2020 2:44 PM > To: Varghese, Vipin <vipin.vargh...@intel.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 > > 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 > g++ -L/mnt/data/dchitkara/DPDK_2020_01_30_x86/x86_64-native-linux-icc/li > g++ b -Wl,--whole-archive -Wl,-lrte_mempool_ring -Wl,-lrte_member > g++ -Wl,-lrte_eventdev -Wl,-lrte_pmd_pcap -Wl,-lrte_pdump > g++ -Wl,-lrte_bus_vmbus -Wl,-lrte_pci -Wl,-lrte_bus_pci > g++ -Wl,-lrte_bus_vdev -Wl,-lrte_net -Wl,-lrte_distributor > g++ -Wl,-lrte_reorder -Wl,-lrte_kni -Wl,-lrte_pipeline -Wl,-lrte_table > g++ -Wl,-lrte_port -Wl,-lrte_timer -Wl,-lrte_hash -Wl,-lrte_jobstats > g++ -Wl,-lrte_lpm -Wl,-lrte_power -Wl,-lrte_acl -Wl,-lrte_meter > g++ -Wl,-lrte_sched -Wl,-lm -Wl,-lrt -Wl,-lrte_vhost -Wl,--start-group > g++ -Wl,-lrte_kvargs -Wl,-lrte_mbuf -Wl,-lrte_ip_frag -Wl,-lrte_ethdev > g++ -Wl,-lrte_cryptodev -Wl,-lrte_mempool -Wl,-lrte_ring -Wl,-lrte_eal > g++ -Wl,-lrte_cmdline -Wl,-lrte_cfgfile -Wl,-lrte_pmd_bond > g++ -Wl,-lrte_pmd_vmxnet3_uio -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_cxgbe > g++ -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_fm10k > g++ -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ring > g++ -Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_null -Wl,-lrt -Wl,-lm -Wl,-ldl > g++ -Wl,--end-group -Wl,--no-whole-archive -o > g++ ../../../COMMON/../bin/PACKET_GENERATOR_TEST_MOD.so > > > Thanks, > Dikshant > > 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