datapath: Tolerate backporting of rtnl_link_stats64 (as in RHEL 6).
[sliver-openvswitch.git] / m4 / openvswitch.m4
index 6dda350..e6d03a6 100644 (file)
@@ -1,6 +1,6 @@
 # -*- autoconf -*-
 
-# Copyright (c) 2008, 2009, 2010 Nicira Networks.
+# Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -46,6 +46,25 @@ AC_DEFUN([OVS_CHECK_NDEBUG],
      [ndebug=false])
    AM_CONDITIONAL([NDEBUG], [test x$ndebug = xtrue])])
 
+dnl Checks for struct rtnl_link_stats64.
+dnl
+dnl (OVS checks for this structure in both kernel and userspace headers.  This
+dnl is not redundant, because the kernel and userspace builds have completely
+dnl different include paths.  It is possible for the kernel to have this
+dnl structure but not userspace, and vice versa.)
+AC_DEFUN([OVS_CHECK_RTNL_LINK_STATS64],
+  [AC_REQUIRE([OVS_CHECK_NETLINK])
+   if test $HAVE_NETLINK = yes; then
+     AC_CHECK_MEMBER(
+       [struct rtnl_link_stats64.tx_packets],
+       [AC_DEFINE([HAVE_RTNL_LINK_STATS64], [1],
+                  [Define to 1 if <linux/if_link.h> defines
+                   struct rtnl_link_stats64.])],
+       [], [#include <sys/socket.h>     /* Provides sa_family_t. */
+#include <linux/if_link.h>
+])
+   fi])
+
 dnl Checks for Netlink support.
 AC_DEFUN([OVS_CHECK_NETLINK],
   [AC_CHECK_HEADER([linux/netlink.h],
@@ -202,21 +221,8 @@ AC_DEFUN([OVS_CHECK_DOT],
        ovs_cv_dot=yes
      else
        ovs_cv_dot=no
-     fi])])
-
-dnl Check whether to build E-R diagrams.
-AC_DEFUN([OVS_CHECK_ER_DIAGRAMS],
-  [AC_REQUIRE([OVS_CHECK_DOT])
-   AC_REQUIRE([OVS_CHECK_PYTHON])
-   AC_CACHE_CHECK(
-    [whether to build E-R diagrams for database],
-    [ovs_cv_er_diagrams],
-    [if test $ovs_cv_dot != no && test $ovs_cv_python != no; then
-       ovs_cv_er_diagrams=yes
-     else
-       ovs_cv_er_diagrams=no
      fi])
-   AM_CONDITIONAL([BUILD_ER_DIAGRAMS], [test $ovs_cv_er_diagrams = yes])])
+   AM_CONDITIONAL([HAVE_DOT], [test "$ovs_cv_dot" = yes])])
 
 dnl Checks for pyuic4.
 AC_DEFUN([OVS_CHECK_PYUIC4],