Instead of using pkg-config to query the version of the libbpf library,
search for symbols in the library and use their presence or absence to
determine what version of the library is being linked.

Suggested-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
Signed-off-by: Ciara Loftus <ciara.lof...@intel.com>
---
 drivers/net/af_xdp/meson.build | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
index c90ab10a7b..d91545f9c3 100644
--- a/drivers/net/af_xdp/meson.build
+++ b/drivers/net/af_xdp/meson.build
@@ -15,8 +15,12 @@ xdp_dep = dependency('libxdp', version : '>=1.2.2', 
required: false, method: 'pk
 bpf_dep = dependency('libbpf', required: false, method: 'pkg-config')
 if not bpf_dep.found()
     bpf_dep = cc.find_library('bpf', required: false)
-else
-    bpf_ver_dep = dependency('libbpf', version : '>=0.7.0', required: false, 
method: 'pkg-config')
+endif
+
+libbpf070 = false
+
+if bpf_dep.found() and cc.has_header('bpf/bpf.h') and 
cc.has_header_symbol('bpf/bpf.h', 'bpf_btf_load')
+    libbpf070 = true
 endif
 
 if cc.has_header('linux/if_xdp.h')
@@ -26,7 +30,7 @@ if cc.has_header('linux/if_xdp.h')
             cflags += ['-DRTE_NET_AF_XDP_SHARED_UMEM']
             ext_deps += xdp_dep
             ext_deps += bpf_dep
-            if bpf_ver_dep.found()
+            if libbpf070
                 cflags += ['-DRTE_NET_AF_XDP_LIBBPF_OBJ_OPEN']
             endif
         else
@@ -36,11 +40,10 @@ if cc.has_header('linux/if_xdp.h')
     elif bpf_dep.found() and cc.has_header('bpf/xsk.h') and 
cc.has_header('bpf/bpf.h')
         # libxdp not found. Rely solely on libbpf for xsk functionality
         # which is only available in versions < v0.7.0.
-        if not bpf_ver_dep.found()
+        if not libbpf070
             ext_deps += bpf_dep
-            bpf_shumem_ver_dep = dependency('libbpf', version : '>=0.2.0',
-                            required: false, method: 'pkg-config')
-            if bpf_shumem_ver_dep.found()
+            bpf_shumem_ver_dep = cc.has_header_symbol('bpf/bpf.h', 
'bpf_prog_bind_map')
+            if bpf_shumem_ver_dep
                 cflags += ['-DRTE_NET_AF_XDP_SHARED_UMEM']
             endif
         else
-- 
2.25.1

Reply via email to