m4: macroize union bpf_attr field checks
* m4/st_bpf.m4: New file. * configure.ac: Use st_CHECK_UNION_BPF_ATTR.
This commit is contained in:
parent
a300de56c1
commit
4577bb6c89
36
configure.ac
36
configure.ac
@ -428,39 +428,9 @@ AC_CHECK_HEADERS([linux/input.h], [
|
||||
])
|
||||
|
||||
AC_CHECK_HEADERS([linux/bpf.h], [
|
||||
AC_CACHE_CHECK([whether union bpf_attr.log_buf initialization works],
|
||||
[st_cv_have_union_bpf_attr_log_buf],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <linux/bpf.h>]],
|
||||
[[union bpf_attr a = { .log_buf = 0 };]])],
|
||||
[st_cv_have_union_bpf_attr_log_buf=yes],
|
||||
[st_cv_have_union_bpf_attr_log_buf=no])])
|
||||
if test $st_cv_have_union_bpf_attr_log_buf = yes; then
|
||||
AC_DEFINE(HAVE_UNION_BPF_ATTR_LOG_BUF, [1],
|
||||
[Define to 1 if union bpf_attr.log_buf initialization works])
|
||||
fi
|
||||
AC_CACHE_CHECK([whether union bpf_attr.bpf_fd initialization works],
|
||||
[st_cv_have_union_bpf_attr_bpf_fd],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <linux/bpf.h>]],
|
||||
[[union bpf_attr a = { .bpf_fd = 0 };]])],
|
||||
[st_cv_have_union_bpf_attr_bpf_fd=yes],
|
||||
[st_cv_have_union_bpf_attr_bpf_fd=no])])
|
||||
if test $st_cv_have_union_bpf_attr_bpf_fd = yes; then
|
||||
AC_DEFINE(HAVE_UNION_BPF_ATTR_BPF_FD, [1],
|
||||
[Define to 1 if union bpf_attr.bpf_fd initialization works])
|
||||
fi
|
||||
AC_CACHE_CHECK([whether union bpf_attr.attach_flags initialization works],
|
||||
[st_cv_have_union_bpf_attr_attach_flags],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <linux/bpf.h>]],
|
||||
[[union bpf_attr a = { .attach_flags = 0 };]])],
|
||||
[st_cv_have_union_bpf_attr_attach_flags=yes],
|
||||
[st_cv_have_union_bpf_attr_attach_flags=no])])
|
||||
if test $st_cv_have_union_bpf_attr_attach_flags = yes; then
|
||||
AC_DEFINE(HAVE_UNION_BPF_ATTR_ATTACH_FLAGS, [1],
|
||||
[Define to 1 if union bpf_attr.attach_flags initialization works])
|
||||
fi
|
||||
st_CHECK_UNION_BPF_ATTR([log_buf])
|
||||
st_CHECK_UNION_BPF_ATTR([bpf_fd])
|
||||
st_CHECK_UNION_BPF_ATTR([attach_flags])
|
||||
])
|
||||
|
||||
AC_CHECK_TYPES([struct statfs], [
|
||||
|
50
m4/st_bpf.m4
Normal file
50
m4/st_bpf.m4
Normal file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/m4
|
||||
#
|
||||
# Copyright (c) 2015-2017 Dmitry V. Levin <ldv@altlinux.org>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the author may not be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
AC_DEFUN([st_CHECK_UNION_BPF_ATTR],[
|
||||
|
||||
pushdef([ATTR_NAME], translit([$1], [a-z], [A-Z]))
|
||||
pushdef([attr_text], [union bpf_attr.][$1])
|
||||
pushdef([have_attr], [st_cv_member_union_bpf_attr_][$1])
|
||||
|
||||
AC_CACHE_CHECK([whether attr_text initialization works],
|
||||
[have_attr],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <linux/bpf.h>]],
|
||||
[union bpf_attr a = { .$1 = 0 };])],
|
||||
[have_attr=yes],
|
||||
[have_attr=no])])
|
||||
|
||||
if test $have_attr = yes; then
|
||||
AC_DEFINE([HAVE_UNION_BPF_ATTR_]ATTR_NAME, [1],
|
||||
[Define to 1 if attr_text initialization works])
|
||||
fi
|
||||
|
||||
popdef([have_attr])
|
||||
popdef([attr_text])
|
||||
popdef([ATTR_NAME])
|
||||
])
|
Loading…
Reference in New Issue
Block a user