Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
configure.ac | 87 ----------------------------------------------------
meson.build | 72 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 72 insertions(+), 87 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4a40f3fc34e..1ffa4f931ee 100644
--- a/configure.ac
+++ b/configure.ac
@@ -207,9 +207,6 @@ LIBVIRT_CHECK_YAJL
AC_CHECK_SIZEOF([long])
-dnl Check whether endian provides handy macros.
-AC_CHECK_DECLS([htole64], [], [], [[#include <endian.h>]])
-
AC_CHECK_TYPE([struct ifreq],
[AC_DEFINE([HAVE_STRUCT_IFREQ],[1],
[Defined if struct ifreq exists in net/if.h])],
@@ -223,16 +220,6 @@ AC_CHECK_TYPE([struct sockpeercred],
[], [[#include <sys/socket.h>
]])
-AC_CHECK_DECLS([ETH_FLAG_TXVLAN, ETH_FLAG_NTUPLE, ETH_FLAG_RXHASH, ETH_FLAG_LRO,
- ETHTOOL_GGSO, ETHTOOL_GGRO, ETHTOOL_GFLAGS, ETHTOOL_GFEATURES,
- ETHTOOL_SCOALESCE, ETHTOOL_GCOALESCE],
- [], [], [[#include <linux/ethtool.h>
- ]])
-
-AC_CHECK_DECLS([SEEK_HOLE], [], [],
- [#include <sys/types.h>
- #include <unistd.h>])
-
AC_CHECK_LIB([intl],[gettext],[])
AC_CHECK_LIB([util],[openpty],[])
@@ -407,27 +394,6 @@ if test $with_storage = yes; then
fi
AM_CONDITIONAL([WITH_STORAGE], [test "$with_storage" = "yes"])
-dnl
-dnl check for DEVLINK_CMD_ESWITCH_GET
-dnl
-dnl Assume DEVLINK_ESWITCH_MODE_SWITCHDEV is also
-dnl available, as it was introudced in kernel 4.8
-dnl along with the original spelling of this constant
-dnl (DEVLINK_CMD_ESWITCH_MODE_GET, not supported by libvirt)
-dnl
-if test "$with_linux" = "yes"; then
- AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET], [], [],
- [[#include <linux/devlink.h>]])
-fi
-
-dnl
-dnl check for VHOST_VSOCK_SET_GUEST_CID
-dnl
-if test "$with_linux" = "yes"; then
- AC_CHECK_DECLS([VHOST_VSOCK_SET_GUEST_CID], [], [],
- [[#include <linux/vhost.h>]])
-fi
-
dnl Allow perl/python overrides
AC_PATH_PROGS([PYTHON], [python3])
if test -z "$PYTHON"; then
@@ -478,9 +444,6 @@ then
fi
AM_CONDITIONAL([WITH_NODE_DEVICES], [test "$with_nodedev" = "yes"])
-dnl GET_VLAN_VID_CMD is required for virNetDevGetVLanID
-AC_CHECK_DECLS([GET_VLAN_VID_CMD], [], [], [[#include <linux/if_vlan.h>]])
-
# Check for Linux vs. BSD ifreq members
AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
struct ifreq.ifr_ifindex,
@@ -491,41 +454,6 @@ AC_CHECK_MEMBERS([struct ifreq.ifr_newname,
#include <net/if.h>
])
-# Check for BSD approach for setting MAC addr
-AC_LINK_IFELSE([AC_LANG_PROGRAM(
- [[
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <net/if_dl.h>
- ]],
- [[
- link_addr(0, 0)]])],
- [AC_DEFINE([HAVE_DECL_LINK_ADDR],
- [1],
- [whether link_addr is available])])
-
-# Check for BSD approach for bridge management
-AC_CHECK_DECLS([BRDGSFD, BRDGADD, BRDGDEL],
- [AC_DEFINE([HAVE_BSD_BRIDGE_MGMT],
- [1],
- [whether BSD style bridge management is available])],
- [],
- [#include <stdint.h>
- #include <net/if.h>
- #include <net/ethernet.h>
- #include <net/if_bridgevar.h>
- ])
-
-# Check for BSD CPU affinity availability
-AC_CHECK_DECLS([cpuset_getaffinity],
- [AC_DEFINE([HAVE_BSD_CPU_AFFINITY],
- [1],
- [whether BSD CPU affinity management is available])],
- [],
- [#include <sys/param.h>
- #include <sys/cpuset.h>
- ])
-
# Check for BSD kvm (kernel memory interface)
if test $with_freebsd = yes; then
AC_CHECK_LIB([kvm], [kvm_getprocs], [],
@@ -533,21 +461,6 @@ if test $with_freebsd = yes; then
)
fi
-AC_CHECK_DECLS([clock_serv_t, host_get_clock_service, clock_get_time],
- [AC_DEFINE([HAVE_MACH_CLOCK_ROUTINES],
- [1],
- [whether Mach clock routines are available])],
- [],
- [#include <mach/clock.h>
- #include <mach/mach.h>
- ])
-
-# Check if we have new enough kernel to support BPF devices for cgroups v2
-if test "$with_linux" = "yes"; then
- AC_CHECK_DECLS([BPF_PROG_QUERY, BPF_CGROUP_DEVICE],
- [], [], [#include <linux/bpf.h>])
-fi
-
# Check if we need to look for ifconfig
if test "$want_ifconfig" = "yes"; then
AC_PATH_PROG([IFCONFIG_PATH], [ifconfig])
diff --git a/meson.build b/meson.build
index 62e51230888..c79d557b289 100644
--- a/meson.build
+++ b/meson.build
@@ -736,6 +736,78 @@ if host_machine.system() == 'linux'
endif
+# check various symbols
+
+symbols = [
+ # Check whether endian provides handy macros.
+ [ 'endian.h', 'htole64' ],
+
+ [ 'linux/ethtool.h', 'ETH_FLAG_TXVLAN' ],
+ [ 'linux/ethtool.h', 'ETH_FLAG_NTUPLE' ],
+ [ 'linux/ethtool.h', 'ETH_FLAG_RXHASH' ],
+ [ 'linux/ethtool.h', 'ETH_FLAG_LRO' ],
+ [ 'linux/ethtool.h', 'ETHTOOL_GGSO' ],
+ [ 'linux/ethtool.h', 'ETHTOOL_GGRO' ],
+ [ 'linux/ethtool.h', 'ETHTOOL_GFLAGS' ],
+ [ 'linux/ethtool.h', 'ETHTOOL_GFEATURES' ],
+ [ 'linux/ethtool.h', 'ETHTOOL_SCOALESCE' ],
+ [ 'linux/ethtool.h', 'ETHTOOL_GCOALESCE' ],
+
+ # GET_VLAN_VID_CMD is required for virNetDevGetVLanID
+ [ 'linux/if_vlan.h', 'GET_VLAN_VID_CMD' ],
+
+ [ 'unistd.h', 'SEEK_HOLE' ],
+
+ # GET_VLAN_VID_CMD is required for virNetDevGetVLanID
+ [ 'linux/if_vlan.h', 'GET_VLAN_VID_CMD' ],
+
+ # Check for BSD approach for setting MAC addr
+ [ 'net/if_dl.h', 'link_addr' ],
+]
+
+if host_machine.system() == 'linux'
+ symbols += [
+ # check for DEVLINK_CMD_ESWITCH_GET
+ # Assume DEVLINK_ESWITCH_MODE_SWITCHDEV is also available, as it was
+ # introudced in kernel 4.8 along with the original spelling of this
+ # constant (DEVLINK_CMD_ESWITCH_MODE_GET, not supported by libvirt).
+ [ 'linux/devlink.h', 'DEVLINK_CMD_ESWITCH_GET' ],
+
+ # check for VHOST_VSOCK_SET_GUEST_CID
+ [ 'linux/vhost.h', 'VHOST_VSOCK_SET_GUEST_CID' ],
+
+ # Check if we have new enough kernel to support BPF devices for cgroups v2
+ [ 'linux/bpf.h', 'BPF_PROG_QUERY' ],
+ [ 'linux/bpf.h', 'BPF_CGROUP_DEVICE' ],
+ ]
+endif
+
+foreach symbol : symbols
+ if cc.has_header_symbol(symbol[0], symbol[1])
+ conf.set('HAVE_DECL_@0(a)'.format(symbol[1].to_upper()), 1)
+ endif
+endforeach
+
+# Check for BSD approach for bridge management
+if (cc.has_header_symbol('net/if_bridgevar.h', 'BRDGSFD') and
+ cc.has_header_symbol('net/if_bridgevar.h', 'BRDGADD') and
+ cc.has_header_symbol('net/if_bridgevar.h', 'BRDGDEL'))
+ conf.set('HAVE_BSD_BRIDGE_MGMT', 1)
+endif
+
+# Check for BSD CPU affinity availability
+if cc.has_header_symbol('sys/cpuset.h', 'cpuset_getaffinity')
+ conf.set('HAVE_BSD_CPU_AFFINITY', 1)
+endif
+
+# whether Mach clock routines are available
+if (cc.has_header_symbol('mach/clock.h', 'clock_serv_t') and
+ cc.has_header_symbol('mach/clock.h', 'host_get_clock_service') and
+ cc.has_header_symbol('mach/clock.h', 'clock_get_time'))
+ conf.set('HAVE_MACH_CLOCK_ROUTINES', 1)
+endif
+
+
# define top include directory
top_inc_dir = include_directories('.')
--
2.26.2