commit - 5c57fb104f2643c961f006a4c736e14f696d1689
commit + e0dbe6b8131536bc2b33808117262f5a2ba8c9c0
blob - 84d1edf62511b6c8fe5e3d39522c4a2d155dfb66
blob + 035f6b9fe817c72bef0d6f7ea84d5c83f669bb76
--- configure.ac
+++ configure.ac
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_YACC
-AC_SEARCH_LIBS([arc4random], [bsd],
- [AC_DEFINE([HAVE_ARC4RANDOM], 1, [arc4random])],
- [AC_DEFINE([HAVE_ARC4RANDOM], 0, [arc4random])])
+# Some functions can be in libbsd. Thanks to lldpb for the inspiration :)
+AC_ARG_WITH([libbsd],
+ AS_HELP_STRING([--with-libbsd], [Use libbsd @<:@default=auto@:>@]),
+ [],
+ [with_libbsd=auto])
+if test x"$with_libbsd" != x"no"; then
+ PKG_CHECK_MODULES([libbsd], [libbsd-overlay libbsd-ctor], [
+ _save_CFLAGS="$CFLAGS"
+ _save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $libbsd_CFLAGS"
+ LIBS="$LIBS $libbsd_LIBS"
+ AC_MSG_CHECKING([if libbsd can be linked correctly])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ @%:@include <sys/time.h>
+ @%:@include <sys/types.h>
+ ]], [[]])],[
+ AC_MSG_RESULT(yes)
+ LLDP_CFLAGS="$LLDP_CFLAGS $libbsd_CFLAGS"
+ LLDP_LDFLAGS="$LLDP_LDFLAGS $libbsd_LIBS"
+ with_libbsd=yes
+ ],[
+ AC_MSG_RESULT(no)
+ CFLAGS="$_save_CFLAGS"
+ LIBS="$_save_LIBS"
+ if test x"$with_libbsd" = x"yes"; then
+ AC_MSG_FAILURE([*** no libbsd support found])
+ fi
+ with_libbsd=no
+ ])
+ ], [
+ if test x"$with_libbsd" = x"yes"; then
+ AC_MSG_FAILURE([*** no libbsd support found])
+ fi
+ with_libbsd=no
+ ])
+fi
AC_REPLACE_FUNCS([
asprintf \
strtonum \
])
-AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE])
+AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE and SIMPLEQ_ENTRY])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
#include <sys/queue.h>
#include <stddef.h>
TAILQ_FOREACH_SAFE(np, &head, entries, nt) {
/* nop */ ;
}
+
+ SIMPLEQ_HEAD(listhead, q_entry) head = SIMPLEQ_HEAD_INITIALIZER(head);
+ struct q_entry {
+ SIMPLEQ_ENTRY(q_entry) entries;
+ } foo;
+
return 0;
])], [
AC_MSG_RESULT(yes)