commit d882ba5fd50d04c1508e00046c2e875cf4f02b3d
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Tue Jun 26 12:16:04 2018 -0400
configury: add --without-bpf configure option
Fully autoconf'ing bpf capabilities is error-prone, so provide a blunt
instrument.
diff --git a/configure b/configure
index 1864edd..df512e7 100755
--- a/configure
+++ b/configure
@@ -917,6 +917,7 @@ with_dyninst
enable_virt
with_python2_probes
with_python3_probes
+with_bpf
with_selinux
with_java
with_extra_version
@@ -1639,6 +1640,7 @@ Optional Packages:
--without-python3-probes
Disable building python version 3 probe support,
even if it is available
+ --without-bpf Do not try to build BPF components
--without-selinux Do not use libselinux even if present
--with-java=DIRECTORY Specify JDK directory to compile libHelperSDT.so
against (default is /usr/lib/jvm/java)
@@ -12306,9 +12308,16 @@ if test $stap_cv_sectionq = yes; then
fi
-$as_echo "#define HAVE_BPF_DECLS 0" >>confdefs.h
-ac_fn_c_check_decl "$LINENO" "BPF_PROG_TYPE_PERF_EVENT" "ac_cv_have_decl_BPF_PROG_TYPE_PERF_EVENT" "#include <linux/bpf.h>
+# Check whether --with-bpf was given.
+if test "${with_bpf+set}" = set; then :
+ withval=$with_bpf;
+fi
+
+
+if test "x$with_bpf" != "xno"; then :
+
+ ac_fn_c_check_decl "$LINENO" "BPF_PROG_TYPE_PERF_EVENT" "ac_cv_have_decl_BPF_PROG_TYPE_PERF_EVENT" "#include <linux/bpf.h>
"
if test "x$ac_cv_have_decl_BPF_PROG_TYPE_PERF_EVENT" = xyes; then :
ac_have_decl=1
@@ -12320,10 +12329,13 @@ cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_BPF_PROG_TYPE_PERF_EVENT $ac_have_decl
_ACEOF
if test $ac_have_decl = 1; then :
- $as_echo "#define HAVE_BPF_DECLS 1" >>confdefs.h
+
+$as_echo "#define HAVE_BPF_DECLS 1" >>confdefs.h
fi
+
+fi
if test "x$ac_cv_have_decl_BPF_PROG_TYPE_PERF_EVENT" == "xyes"; then
HAVE_BPF_DECLS_TRUE=
HAVE_BPF_DECLS_FALSE='#'
@@ -12332,7 +12344,6 @@ else
HAVE_BPF_DECLS_FALSE=
fi
-
ac_config_files="$ac_config_files includes/sys/sdt-config.h po/Makefile.in"
diff --git a/configure.ac b/configure.ac
index 9d14db5..f541473 100644
--- a/configure.ac
+++ b/configure.ac
@@ -796,14 +796,20 @@ if test $stap_cv_sectionq = yes; then
support_section_question=1
fi
-dnl Check if we have <linux/bpf.h> for bpf backend.
-AC_DEFINE([HAVE_BPF_DECLS], [0], [Define to 1 if you have the necessary declarations in bpf.h])
-AC_CHECK_DECLS([BPF_PROG_TYPE_PERF_EVENT],
- [AC_DEFINE([HAVE_BPF_DECLS], [1])],
+
+AC_ARG_WITH([bpf],
+ AS_HELP_STRING([--without-bpf],[Do not try to build BPF components]))
+
+dnl Allow --without-bpf to disable this autodetection, as some kernels
+dnl have some headers but missing some decls like __NR_bpf. Too hard
+dnl to detect all the prereqs here.
+AS_IF([test "x$with_bpf" != "xno"], [
+ AC_CHECK_DECLS([BPF_PROG_TYPE_PERF_EVENT],
+ [AC_DEFINE([HAVE_BPF_DECLS], [1], [Define to 1 if you have the necessary declarations in bpf.h])],
[],
[#include <linux/bpf.h>])
+ ])
AM_CONDITIONAL(HAVE_BPF_DECLS, [test "x$ac_cv_have_decl_BPF_PROG_TYPE_PERF_EVENT" == "xyes"])
-
AC_CONFIG_FILES([includes/sys/sdt-config.h po/Makefile.in])
if test $build_elfutils = yes -a $enable_translator = yes; then