]> git.ipfire.org Git - thirdparty/ipset.git/blobdiff - configure.ac
Backport "netfilter: add helper function to set up the nfnetlink header and use it"
[thirdparty/ipset.git] / configure.ac
index 0167374554e5d580abdfa5cc1de0ffca9e3e3644..9aea0049d174bd2a1297f9596a5b068e390c18f9 100644 (file)
@@ -1,5 +1,5 @@
 dnl Boilerplate
-AC_INIT([ipset], [7.6], [kadlec@netfilter.org])
+AC_INIT([ipset], [7.11], [kadlec@netfilter.org])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CANONICAL_HOST
 AC_CONFIG_MACRO_DIR([m4])
@@ -207,13 +207,27 @@ if test "$BUILDKMOD" == "yes"
 then
 dnl Check kernel incompatibilities... Ugly like hell
 
+AC_MSG_CHECKING([kernel source for INIT_DEFERRABLE_WORK])
+if test -f $ksourcedir/include/linux/workqueue.h && \
+   $GREP -q 'INIT_DEFERRABLE_WORK' $ksourcedir/include/linux/workqueue.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_INIT_DEFERRABLE_WORK, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_INIT_DEFERRABLE_WORK, undef)
+fi
+
 AC_MSG_CHECKING([kernel source for system_power_efficient_wq])
 if test -f $ksourcedir/include/linux/workqueue.h && \
    $GREP -q 'system_power_efficient_wq' $ksourcedir/include/linux/workqueue.h; then
        AC_MSG_RESULT(yes)
-else
+       AC_SUBST(HAVE_SYSTEM_POWER_EFFICIENT_WQ, define)
+elif test -f $ksourcedir/include/linux/workqueue.h && \
+   $GREP -q 'system_wq' $ksourcedir/include/linux/workqueue.h; then
        AC_MSG_RESULT(no)
-       AC_MSG_ERROR([Kernel source tree is too old, at least v3.11 is required])
+       AC_SUBST(HAVE_SYSTEM_POWER_EFFICIENT_WQ, undef)
+else
+       AC_MSG_ERROR([Kernel source tree is too old, at least v2.36 is required])
 fi
 
 AC_MSG_CHECKING([kernel source for struct xt_action_param])
@@ -305,9 +319,13 @@ elif test -f $ksourcedir/include/linux/netlink.h && \
    $AWK '/ netlink_dump_start\(/,/\)/' $ksourcedir/include/linux/netlink.h | $GREP -q 'min_dump_alloc.*;'; then
        AC_MSG_RESULT(6 args)
        AC_SUBST(HAVE_NETLINK_DUMP_START_ARGS, 6)
-else
+elif test -f $ksourcedir/include/linux/netlink.h && \
+   $AWK '/^struct netlink_dump_control {/,/\}/' $ksourcedir/include/linux/netlink.h | $GREP -q '\(\*start\)'; then
        AC_MSG_RESULT(4 args)
        AC_SUBST(HAVE_NETLINK_DUMP_START_ARGS, 4)
+else
+       AC_MSG_RESULT(7 fake args)
+       AC_SUBST(HAVE_NETLINK_DUMP_START_ARGS, 7)
 fi
 
 AC_MSG_CHECKING([kernel source for ns_capable])
@@ -707,6 +725,16 @@ else
        AC_SUBST(HAVE_LOCKDEP_NFNL_IS_HELD, undef)
 fi
 
+AC_MSG_CHECKING([kernel source for nla_strscpy() in netlink.h])
+if test -f $ksourcedir/include/net/netlink.h && \
+   $GREP -q ' nla_strscpy' $ksourcedir/include/net/netlink.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_NLA_STRSCPY, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_NLA_STRSCPY, undef)
+fi
+
 AC_MSG_CHECKING([kernel source for strscpy() in string.h])
 if test -f $ksourcedir/include/linux/timer.h && \
    $GREP -q ' strscpy' $ksourcedir/include/linux/string.h; then
@@ -728,6 +756,66 @@ else
        AC_SUBST(HAVE_SYNCHRONIZE_RCU_BH, undef)
 fi
 
+AC_MSG_CHECKING([kernel source for the fourth arg of list_for_each_entry_rcu() in rculist.h])
+if test -f $ksourcedir/include/linux/rculist.h && \
+   $GREP -q 'define list_for_each_entry_rcu(pos, head, member, cond' $ksourcedir/include/linux/rculist.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_LIST_FOR_EACH_ENTRY_RCU_FOUR_ARGS, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_LIST_FOR_EACH_ENTRY_RCU_FOUR_ARGS, undef)
+fi
+
+AC_MSG_CHECKING([kernel source for skb_protocol() in if_vlan.h])
+if test -f $ksourcedir/include/linux/if_vlan.h && \
+   $GREP -q 'static inline __be16 skb_protocol' $ksourcedir/include/linux/if_vlan.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_SKB_PROTOCOL, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_SKB_PROTOCOL, undef)
+fi
+
+AC_MSG_CHECKING([kernel source for NLA_POLICY_EXACT_LEN() in netlink.h])
+if test -f $ksourcedir/include/net/netlink.h && \
+   $GREP -q 'define NLA_POLICY_EXACT_LEN' $ksourcedir/include/net/netlink.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_NLA_POLICY_EXACT_LEN, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_NLA_POLICY_EXACT_LEN, undef)
+fi
+
+AC_MSG_CHECKING([kernel source for nfnl_msg_put() in nfnetlink.h])
+if test -f $ksourcedir/include/linux/netfilter/nfnetlink.h && \
+   $GREP -q 'nfnl_msg_put' $ksourcedir/include/linux/netfilter/nfnetlink.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_NFNL_MSG_PUT, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_NFNL_MSG_PUT, undef)
+fi
+
+AC_MSG_CHECKING([kernel source for kvzalloc() in mm.h])
+if test -f $ksourcedir/include/linux/mm.h && \
+   $GREP -q 'static inline void \*kvzalloc(' $ksourcedir/include/linux/mm.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_KVZALLOC, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_KVZALLOC, undef)
+fi
+
+AC_MSG_CHECKING([kernel source for GFP_KERNEL_ACCOUNT in gfp.h])
+if test -f $ksourcedir/include/linux/gfp.h && \
+   $GREP -q 'define GFP_KERNEL_ACCOUNT' $ksourcedir/include/linux/gfp.h; then
+       AC_MSG_RESULT(yes)
+       AC_SUBST(HAVE_GFP_KERNEL_ACCOUNT, define)
+else
+       AC_MSG_RESULT(no)
+       AC_SUBST(HAVE_GFP_KERNEL_ACCOUNT, undef)
+fi
+
 AC_MSG_CHECKING([kernel source for struct net_generic])
 if test -f $ksourcedir/include/net/netns/generic.h && \
    $GREP -q 'struct net_generic' $ksourcedir/include/net/netns/generic.h; then
@@ -783,7 +871,8 @@ dnl Checks for library functions.
 dnl Generate output
 AC_CONFIG_FILES([Makefile include/libipset/Makefile
        lib/Makefile lib/libipset.pc src/Makefile utils/Makefile
-       kernel/include/linux/netfilter/ipset/ip_set_compat.h])
+       kernel/include/linux/netfilter/ipset/ip_set_compat.h
+       kernel/include/linux/netfilter/ipset/ip_set_compiler.h])
 AC_OUTPUT
 
 dnl Summary