mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-22 01:49:48 +00:00
- Separate ENABLE_AFL into ENABLE_FUZZING and HAVE_AFL. - Add the --disable-unicode flag required in the oss-fuzz container. - Add checking of support for C++17. - Make Kea compile with afl++. - Rotate ports in `getServerPort()` functions under an env var. - Fix some destruction issues that would result in crashes when fuzzing. - Add some checks in the UnixControlClient that prevent some crashes when fuzzing. - Add `isc::util::isSocket()` function. - Change `isc::util::file::Path` to not append a trailing slash to allow chained calls of `parentPath()`. - Add `isc::util::file::TemporaryDirectory` useful when fuzzing.
33 lines
965 B
Plaintext
33 lines
965 B
Plaintext
AC_DEFUN([AX_ISC_CPP20], [
|
|
AC_MSG_CHECKING([c++20 support])
|
|
|
|
# Save flags.
|
|
CPPFLAGS_SAVED="${CPPFLAGS}"
|
|
|
|
# Provide -std=c++20 flag temporarily.
|
|
CPPFLAGS="${CPPFLAGS} -std=c++20"
|
|
|
|
# Simulate the definition of std::derived_from.
|
|
AC_COMPILE_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[#include <concepts>
|
|
template<class Derived, class Base>
|
|
concept derived_from =
|
|
std::is_base_of_v<Base, Derived> &&
|
|
std::is_convertible_v<const volatile Derived*, const volatile Base*>;
|
|
|
|
struct BaseClass {};
|
|
struct DerivedClass : BaseClass {};
|
|
],
|
|
[static_assert(std::derived_from<BaseClass, DerivedClass> == false);
|
|
static_assert(std::derived_from<DerivedClass, BaseClass> == true);]
|
|
)],
|
|
[AC_MSG_RESULT([yes])
|
|
CPP20_SUPPORTED=true],
|
|
[AC_MSG_RESULT([no])
|
|
CPP20_SUPPORTED=false])
|
|
|
|
# Restore flags.
|
|
CPPFLAGS="${CPPFLAGS_SAVED}"
|
|
])
|