[dpdk-dev] pkg-config file generated with meson

Luca Boccassi bluca at debian.org
Thu Nov 29 15:07:52 CET 2018


On Thu, 2018-11-29 at 14:55 +0100, David Marchand wrote:
> Hello Bruce,
> 
> I built v18.11 with meson and had a little look at the libdpdk.pc
> file.
> It looks like pkg-config works fine with --libs but is recursively
> opening
> libdpdk.pc when asking for the cflags:
> 
> $ PKG_CONFIG_PATH=build/meson-private:$PKG_CONFIG_PATH pkg-config --
> libs
> libdpdk
> -L/usr/local/lib64 -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
> 
> $ PKG_CONFIG_PATH=build/meson-private:$PKG_CONFIG_PATH pkg-config --
> cflags
> libdpdk
> Failed to open 'build/meson-private/libdpdk.pc': Too many open files
> Package 'libdpdk', required by 'DPDK', not found
> 
> $ PKG_CONFIG_PATH=build/meson-private:$PKG_CONFIG_PATH strace pkg-
> config
> --cflags libdpdk 2>&1|grep -c 'open(.*libdpdk.pc'
> 1022
> 
> I must be doing something wrong...
> I use meson 0.47.2 and dpdk is only built locally, not installed on
> the
> system.

Hi,

It's true that there is "libdpdk" in the Requires.private section, and
probably shouldn't - but at least on Debian stable with pkg-config 0.29
it works fine despite that:

$ PKG_CONFIG_PATH=/tmp pkg-config --cflags libdpdk
-include rte_config.h -march=corei7 -I/usr/include/dpdk/../x86_64-linux-gnu/dpdk -I/usr/include/dpdk

Maybe a newer pkg-config version got smarter? Regardless we should look into it

-- 
Kind regards,
Luca Boccassi


More information about the dev mailing list