build: skip detecting libpcap via pcap-config
authorBruce Richardson <bruce.richardson@intel.com>
Fri, 9 Oct 2020 14:19:14 +0000 (15:19 +0100)
committerDavid Marchand <david.marchand@redhat.com>
Mon, 12 Oct 2020 14:59:23 +0000 (16:59 +0200)
When compiling for a slightly different architecture, e.g. 32-bit on 64-bit
systems using CFLAGS rather than a cross-file, the pcap-config utility can
often return parameters that are unusable for the build in question, i.e.
providing the native 64-bit library paths rather than checking for 32-bit
equivalent.

Since many distros now include a version of libpcap with a
pkg-config file, and for those that don't find-library should work ok as a
fallback, we can explicitly just use pkg-config in the dependency search,
causing meson to skip trying to use pcap-config.

Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Luca Boccassi <bluca@debian.org>
Tested-by: David Marchand <david.marchand@redhat.com>
config/meson.build

index 69f2aeb..9fb903c 100644 (file)
@@ -163,11 +163,9 @@ if libbsd.found()
 endif
 
 # check for pcap
-pcap_dep = dependency('pcap', required: false)
-if pcap_dep.found()
-       # pcap got a pkg-config file only in 1.9.0 and before that meson uses
-       # an internal pcap-config finder, which is not compatible with
-       # cross-compilation, so try to fallback to find_library
+pcap_dep = dependency('libpcap', required: false, method: 'pkg-config')
+if not pcap_dep.found()
+       # pcap got a pkg-config file only in 1.9.0
        pcap_dep = cc.find_library('pcap', required: false)
 endif
 if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep)