Generate af_xdp_autoconf.h which contains the different features detected by the meson build instead of using cflags.
Suggested-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru> Signed-off-by: Ciara Loftus <ciara.lof...@intel.com> --- drivers/net/af_xdp/compat.h | 8 +++++--- drivers/net/af_xdp/meson.build | 15 ++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/net/af_xdp/compat.h b/drivers/net/af_xdp/compat.h index 28ea64aeaa..e1f8ead7c8 100644 --- a/drivers/net/af_xdp/compat.h +++ b/drivers/net/af_xdp/compat.h @@ -2,7 +2,9 @@ * Copyright(c) 2020 Intel Corporation. */ -#ifdef RTE_NET_AF_XDP_LIBXDP +#include "af_xdp_autoconf.h" + +#ifdef HAVE_LIBXDP #include <xdp/xsk.h> #else #include <bpf/xsk.h> @@ -12,7 +14,7 @@ #include <poll.h> #if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE && \ - defined(RTE_NET_AF_XDP_SHARED_UMEM) + defined(HAVE_LIBBPF_SHARED_UMEM) #define ETH_AF_XDP_SHARED_UMEM 1 #endif @@ -60,7 +62,7 @@ tx_syscall_needed(struct xsk_ring_prod *q __rte_unused) } #endif -#ifdef RTE_NET_AF_XDP_LIBBPF_OBJ_OPEN +#ifdef HAVE_LIBBPF_OBJ_OPEN static int load_program(const char *prog_path, struct bpf_object **obj) { struct bpf_program *prog; diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build index d91545f9c3..d1f6febbca 100644 --- a/drivers/net/af_xdp/meson.build +++ b/drivers/net/af_xdp/meson.build @@ -23,15 +23,17 @@ if bpf_dep.found() and cc.has_header('bpf/bpf.h') and cc.has_header_symbol('bpf/ libbpf070 = true endif +config = configuration_data() + if cc.has_header('linux/if_xdp.h') if xdp_dep.found() and cc.has_header('xdp/xsk.h') if bpf_dep.found() and cc.has_header('bpf/bpf.h') - cflags += ['-DRTE_NET_AF_XDP_LIBXDP'] - cflags += ['-DRTE_NET_AF_XDP_SHARED_UMEM'] + config.set('HAVE_LIBXDP', 1) + config.set('HAVE_LIBBPF_SHARED_UMEM', 1) ext_deps += xdp_dep ext_deps += bpf_dep if libbpf070 - cflags += ['-DRTE_NET_AF_XDP_LIBBPF_OBJ_OPEN'] + config.set('HAVE_LIBBPF_OBJ_OPEN', 1) endif else build = false @@ -42,10 +44,7 @@ if cc.has_header('linux/if_xdp.h') # which is only available in versions < v0.7.0. if not libbpf070 ext_deps += bpf_dep - 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 + config.set('HAVE_LIBBPF_SHARED_UMEM', cc.has_header_symbol('bpf/bpf.h', 'bpf_prog_bind_map')) else build = false reason = 'missing dependency, "libxdp" or "libbpf <= v0.6.0"' @@ -58,3 +57,5 @@ else build = false reason = 'missing header, "linux/if_xdp.h"' endif + +configure_file(output : 'af_xdp_autoconf.h', configuration : config) -- 2.25.1