LibreSSL does not provide the RAND_egd() function. This patch adds a configure check to allow building mod_ssl with LibreSSL.
Index: modules/ssl/config.m4 =================================================================== --- modules/ssl/config.m4 (revision 1673798) +++ modules/ssl/config.m4 (working copy) @@ -44,6 +44,12 @@ # structure, so ask libtool to hide everything else: APR_ADDTO(MOD_SSL_LDADD, [-export-symbols-regex ssl_module]) fi + + have_rand_egd="no" + AC_CHECK_LIB(crypto, RAND_egd, [have_rand_egd="yes"]) + if test "$have_rand_egd" = "yes"; then + AC_DEFINE([HAVE_RAND_EGD], [1], [Define if RAND_egd exists.]) + fi else enable_ssl=no fi Index: modules/ssl/ssl_engine_rand.c =================================================================== --- modules/ssl/ssl_engine_rand.c (revision 1673798) +++ modules/ssl/ssl_engine_rand.c (working copy) @@ -86,6 +86,7 @@ nDone += ssl_rand_feedfp(p, fp, pRandSeed->nBytes); ssl_util_ppclose(s, p, fp); } +#ifdef HAVE_RAND_EGD else if (pRandSeed->nSrc == SSL_RSSRC_EGD) { /* * seed in contents provided by the external @@ -95,6 +96,7 @@ continue; nDone += n; } +#endif else if (pRandSeed->nSrc == SSL_RSSRC_BUILTIN) { struct { time_t t;