[EXTERNAL] Re: [PATCH 1/1] buildtools: remove absolute paths from pc file
Srikanth Yalavarthi
syalavarthi at marvell.com
Mon Sep 28 13:40:22 CEST 2026
Hello Srikanth,
On Tue, 9 Jun 2026 at 10:09, Bruce Richardson
<bruce.richardson at intel.com> wrote:
>
> On Tue, Jun 09, 2026 at 08:47:33AM +0100, Bruce Richardson wrote:
> > On Tue, Jun 09, 2026 at 10:02:20AM +0530, Srikanth Yalavarthi wrote:
> > > When linking with non-versioned libraries, absolute paths
> > > of the libraries are added to libdpdk.pc. This patch replaces
> > > the absolute path with correct linker flags, -l<libname>.
> > >
> >
> > Do we need to check if we need a "-L" flag for some of these paths that are
> > stripped?
> >
> > > https://urldefense.com/v3/__https://github.com/mesonbuild/meson/issues/7766__;!!CRVmXkqW!TW48hr51E1x5ePBpkMXyMXUu-DDKqhHWPvS42CAWnlRSm4UIvshQnKcW8hH6Gt_pGrSVW4n7JPkAZg5EjZ0750GmQFBY$
> > >
> The bug report indicates that this issue only occurs for some libs which
> are missing an SONAME. Checking the .pc files generated on my own system, I
> don't see any libs listed with full paths. Out of interest, what libraries
> are causing problems? (Alternative question - how can we reproduce this
> issue to check the fix :-) )
I see no progress on this thread, can you reply to Bruce please?
We are observing the issue when compiling DPDK with TVM runtime as dependency for ml/cnxk driver.
Below is the Lib.private from libdpdk.pc file
Libs.private: -Wl,--whole-archive -L${libdir} -l:librte_common_cpt.a -l:librte_common_dpaax.a -l:librte_common_ionic.a -l:librte_common_octeontx.a -l:librte_bus_auxiliary.a -l:librte_bus_cdx.a -l:librte_bus_dpaa.a -l:librte_bus_fslmc.a -l:librte_bus_ifpga.a -l:librte_bus_pci.a -l:librte_bus_platform.a -l:librte_bus_uacce.a -l:librte_bus_vdev.a -l:librte_bus_vmbus.a -l:librte_common_cnxk.a -l:librte_common_nfp.a -l:librte_common_nitrox.a -l:librte_common_qat.a -l:librte_common_sfc_efx.a -l:librte_common_sxe2.a -l:librte_common_zsda.a -l:librte_mempool_bucket.a -l:librte_mempool_cnxk.a -l:librte_mempool_dpaa.a -l:librte_mempool_dpaa2.a -l:librte_mempool_octeontx.a -l:librte_mempool_ring.a -l:librte_mempool_stack.a -l:librte_dma_cnxk.a -l:librte_dma_dpaa.a -l:librte_dma_dpaa2.a -l:librte_dma_hisi_acc.a -l:librte_dma_hisi_pciep.a -l:librte_dma_odm.a -l:librte_dma_skeleton.a -l:librte_net_af_packet.a -l:librte_net_ark.a -l:librte_net_atlantic.a -l:librte_net_avp.a -l:librte_net_axgbe.a -l:librte_net_bnx2x.a -l:librte_net_bnxt.a -l:librte_net_bond.a -l:librte_net_cnxk.a -l:librte_net_cxgbe.a -l:librte_net_dpaa.a -l:librte_net_dpaa2.a -l:librte_net_ena.a -l:librte_net_enetc.a -l:librte_net_enetfec.a -l:librte_net_enic.a -l:librte_net_failsafe.a -l:librte_net_gve.a -l:librte_net_hinic.a -l:librte_net_hinic3.a -l:librte_net_hns3.a -l:librte_net_e1000.a -l:librte_net_fm10k.a -l:librte_net_i40e.a -l:librte_net_iavf.a -l:librte_net_ice.a -l:librte_net_idpf.a -l:librte_net_ixgbe.a -l:librte_net_cpfl.a -l:librte_net_ionic.a -l:librte_net_memif.a -l:librte_net_nbl.a -l:librte_net_netvsc.a -l:librte_net_nfp.a -l:librte_net_ngbe.a -l:librte_net_null.a -l:librte_net_octeontx.a -l:librte_net_octeon_ep.a -l:librte_net_pcap.a -l:librte_net_pfe.a -l:librte_net_qede.a -l:librte_net_r8169.a -l:librte_net_ring.a -l:librte_net_rnp.a -l:librte_net_sfc.a -l:librte_net_softnic.a -l:librte_net_sxe2.a -l:librte_net_tap.a -l:librte_net_thunderx.a -l:librte_net_txgbe.a -l:librte_net_vdev_netvsc.a -l:librte_net_vhost.a -l:librte_net_virtio.a -l:librte_net_vmxnet3.a -l:librte_net_xsc.a -l:librte_net_zxdh.a -l:librte_raw_cnxk_bphy.a -l:librte_raw_cnxk_gpio.a -l:librte_raw_cnxk_rvu_lf.a -l:librte_raw_dpaa2_cmdif.a -l:librte_raw_gdtc.a -l:librte_raw_ntb.a -l:librte_raw_skeleton.a -l:librte_crypto_armv8.a -l:librte_crypto_bcmfs.a -l:librte_crypto_caam_jr.a -l:librte_crypto_ccp.a -l:librte_crypto_cnxk.a -l:librte_crypto_dpaa_sec.a -l:librte_crypto_dpaa2_sec.a -l:librte_crypto_ionic.a -l:librte_crypto_ipsec_mb.a -l:librte_crypto_nitrox.a -l:librte_crypto_null.a -l:librte_crypto_octeontx.a -l:librte_crypto_scheduler.a -l:librte_crypto_virtio.a -l:librte_compress_nitrox.a -l:librte_compress_octeontx.a -l:librte_compress_zlib.a -l:librte_regex_cn9k.a -l:librte_ml_cnxk.a -l:librte_vdpa_ifc.a -l:librte_vdpa_nfp.a -l:librte_vdpa_sfc.a -l:librte_event_cnxk.a -l:librte_event_dpaa.a -l:librte_event_dpaa2.a -l:librte_event_dsw.a -l:librte_event_octeontx.a -l:librte_event_opdl.a -l:librte_event_skeleton.a -l:librte_event_sw.a -l:librte_baseband_acc.a -l:librte_baseband_fpga_5gnr_fec.a -l:librte_baseband_fpga_lte_fec.a -l:librte_baseband_la12xx.a -l:librte_baseband_null.a -l:librte_baseband_turbo_sw.a -l:librte_power_acpi.a -l:librte_power_amd_pstate.a -l:librte_power_cppc.a -l:librte_power_intel_pstate.a -l:librte_power_intel_uncore.a -l:librte_power_kvm_vm.a -l:librte_node.a -l:librte_graph.a -l:librte_pipeline.a -l:librte_table.a -l:librte_pdump.a -l:librte_port.a -l:librte_fib.a -l:librte_pdcp.a -l:librte_ipsec.a -l:librte_vhost.a -l:librte_stack.a -l:librte_security.a -l:librte_sched.a -l:librte_reorder.a -l:librte_rib.a -l:librte_mldev.a -l:librte_regexdev.a -l:librte_rawdev.a -l:librte_power.a -l:librte_pcapng.a -l:librte_member.a -l:librte_lpm.a -l:librte_latencystats.a -l:librte_jobstats.a -l:librte_ip_frag.a -l:librte_gso.a -l:librte_gro.a -l:librte_gpudev.a -l:librte_dispatcher.a -l:librte_eventdev.a -l:librte_efd.a -l:librte_dmadev.a -l:librte_distributor.a -l:librte_cryptodev.a -l:librte_compressdev.a -l:librte_cfgfile.a -l:librte_bpf.a -l:librte_bitratestats.a -l:librte_bbdev.a -l:librte_acl.a -l:librte_timer.a -l:librte_hash.a -l:librte_metrics.a -l:librte_cmdline.a -l:librte_pci.a -l:librte_ethdev.a -l:librte_meter.a -l:librte_net.a -l:librte_mbuf.a -l:librte_mempool.a -l:librte_rcu.a -l:librte_ring.a -l:librte_eal.a -l:librte_pmu.a -l:librte_telemetry.a -l:librte_argparse.a -l:librte_kvargs.a -l:librte_log.a -Wl,--no-whole-archive -Wl,--export-dynamic /home/syalavarthi/scratch/dpdk-cn10k/sdk-13/upstream/release-default/install/lib/libdmlc.a /home/syalavarthi/scratch/dpdk-cn10k/sdk-13/upstream/release-default/install/lib/libtvm_runtime.so -lstdc++ -lIPSec_MB -latomic
Full path is being added for libdmlc.a and libtvm_runtime.so
The patch would remove the full path from the generated .pc files
Srikanth
More information about the dev
mailing list