On 04.11.2017 23:03, [email protected] wrote:
> The Buildbot has detected a new failure on builder apr-x64-macosx-trunk while
> building . Full details are available at:
> https://ci.apache.org/builders/apr-x64-macosx-trunk/builds/49
>
> Buildbot URL: https://ci.apache.org/
>
> Buildslave for this Build: svn-x64-macosx-dgvrs
>
> Build Reason: The AnyBranchScheduler scheduler named 'on-apr-commit'
> triggered this build
> Build Source Stamp: [branch apr/apr/trunk] 1814326
> Blamelist: ylavic
>
> BUILD FAILED: failed Build
>
> Sincerely,
> -The Buildbot
>From the buildbot log:
...
checking for getrandom... no
...
checking whether SYS_getrandom is declared... no
checking for arc4random_buf... yes
checking for entropy source... arc4random
...
/bin/sh /Volumes/apr-x64-macosx-trunk/libtool --silent --mode=compile clang -g
-O2 -DHAVE_CONFIG_H -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10
-I./include -I/srv/buildbot/slave/apr-x64-macosx-trunk/build/include/arch/unix
-I./include/arch/unix
-I/srv/buildbot/slave/apr-x64-macosx-trunk/build/include/arch/unix
-I/srv/buildbot/slave/apr-x64-macosx-trunk/build/include
-I/srv/buildbot/slave/apr-x64-macosx-trunk/build/include/private
-I/Volumes/apr-x64-macosx-trunk/include/private -o misc/unix/start.lo -c
/srv/buildbot/slave/apr-x64-macosx-trunk/build/misc/unix/start.c && touch
misc/unix/start.lo
/srv/buildbot/slave/apr-x64-macosx-trunk/build/misc/unix/rand.c:117:14:
warning: implicit declaration of function 'getrandom' is invalid in C99
[-Wimplicit-function-declaration]
rc = getrandom(buf, length, GRND_NONBLOCK);
^
/srv/buildbot/slave/apr-x64-macosx-trunk/build/misc/unix/rand.c:117:37: error:
use of undeclared identifier 'GRND_NONBLOCK'
rc = getrandom(buf, length, GRND_NONBLOCK);
^
1 warning and 1 error generated.
>From apr_private.h:
#define HAVE_ARC4RANDOM_BUF 1
...
#define HAVE_DECL_SYS_GETRANDOM 0
...
/* #undef HAVE_GETRANDOM */
This looks like fallout from r1814326. This part is clearly wrong:
http://svn.apache.org/viewvc/apr/apr/trunk/misc/unix/rand.c?r1=1814326&r2=1814325&pathrev=1814326
The presence of the <sys/random.h> header does *not* mean that you can
use getrandom(); you always have to check HAVE_GETRANDOM explicitly. The
correct check is probably this:
#if defined(HAVE_SYS_RANDOM_H) && HAVE_GETRANDOM
#include <sys/random.h>
#define USE_GETRANDOM
#else ...
Interestingly enough, if this check were correct, APR would choose
arc4random_buf() on OSX 10.12, i.e., it would make use of stsp's patch.
-- Brane