reassign 815302 src:openntpd found 815302 openntpd/1:5.7p4-2 severity 815302 important tags 815302 + patch user debian-...@lists.debian.org usertags 815302 + kfreebsd thanks
Hi, (hope it's okay I reassign this bug as a FTBFS, instead of a removal) Andreas Beckmann wrote: > openntpd FTBFS on kfreebsd which is no longer a supported platform in > the current release: > > CC libcompat_la-arc4random.lo > In file included from arc4random.c:65:0: > arc4random.h:25:2: error: #error "No arc4random hooks defined for this > platform." Upstream recently updated their arc4random. It does support the FreeBSD kernel and GNU libc; we already have a working implementation of that code packaged in libbsd. The attached patch fixes this quite simply in openntpd. Thank you, Regards, -- Steven Chamberlain ste...@pyro.eu.org
Subject: add support for GNU/kFreeBSD From: Steven Chamberlain <ste...@pyro.eu.org> Date: Sun, 21 Feb 2016 02:05:49 +0000 --- a/compat/arc4random.h +++ b/compat/arc4random.h @@ -3,7 +3,7 @@ #include <sys/param.h> -#if defined(__FreeBSD__) +#if defined(__FreeBSD_kernel__) #include "arc4random_freebsd.h" #elif defined(__linux__) --- a/configure.ac +++ b/configure.ac @@ -37,6 +37,11 @@ AC_DEFINE(YYSTYPE_IS_DECLARED,[], [Broken bison]) AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV]) ;; + kfreebsd*) + HOST_OS=freebsd + CFLAGS="$CFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE" + AC_SUBST([PROG_LDADD], ['-lpthread']) + ;; *freebsd*) HOST_OS=freebsd AC_SUBST([PROG_LDADD], ['-lthr']) --- a/compat/arc4random_freebsd.h +++ b/compat/arc4random_freebsd.h @@ -32,6 +32,11 @@ #define _ARC4_LOCK() pthread_mutex_lock(&arc4random_mtx) #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx) +#ifdef __GLIBC__ +extern void *__dso_handle; +extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *); +#define _ARC4_ATFORK(f) __register_atfork(NULL, NULL, (f), __dso_handle) +#else /* * Unfortunately, pthread_atfork() is broken on FreeBSD (at least 9 and 10) if * a program does not link to -lthr. Callbacks registered with pthread_atfork() @@ -39,6 +44,7 @@ * wraparound. */ #define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f)) +#endif static inline void _getentropy_fail(void)
signature.asc
Description: Digital signature