]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Merge pull request #8122 from pieterlexis/bail-out-on-no-context
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 12 Aug 2019 12:37:47 +0000 (14:37 +0200)
committerGitHub <noreply@github.com>
Mon, 12 Aug 2019 12:37:47 +0000 (14:37 +0200)
Bail out when no Context library is available

pdns/recursordist/configure.ac

index eb775912a8b4f96bb26c974b24ba3ed3186fe2ec..acdbea9f1d41571b9917d557490c68d4e76d41f3 100644 (file)
@@ -51,11 +51,15 @@ BOOST_FIND_HEADER([boost/container/flat_set.hpp], [AC_MSG_NOTICE([boost::contain
 
 # Boost Context was introduced in 1.51 (Aug 2012), but there was an immediate
 # API break in 1.52 (Nov 2012), so we only support that, and later.
-pdns_context_library="System V ucontexts"
+pdns_context_library=""
 AS_IF([test $boost_major_version -ge 152], [BOOST_CONTEXT([], [no])])
+AS_IF([test x"$boost_cv_lib_context" = "xyes"], [
+  pdns_context_library="Boost Context"
+], [
+  AC_CHECK_FUNCS([getcontext makecontext swapcontext], [pdns_context_library="System V ucontexts"])
+])
 AC_MSG_CHECKING([what context library to use for MTasker])
-AS_IF([test x"$boost_cv_lib_context" = "xyes"], [pdns_context_library="Boost Context"])
-AC_MSG_RESULT([$pdns_context_library])
+AS_IF([test -n "$pdns_context_library"], [AC_MSG_RESULT([$pdns_context_library])], [AC_MSG_ERROR([neither boost::context nor System V ucontexts available])])
 
 PDNS_ENABLE_UNIT_TESTS
 PDNS_ENABLE_REPRODUCIBLE