--- config.h.in +++ config.h.in @@ -215,4 +215,7 @@ #undef HAVE_LIBIDN +/* Defined if economical random device is available. */ +#undef HAVE_DEV_ERANDOM + /* Define if inlined system calls are available. */ #undef HAVE_INLINED_SYSCALLS --- configure.in +++ configure.in @@ -264,4 +264,11 @@ AC_SUBST(all_warnings) +dnl See whether the user wants to disable checking for /dev/erandom +AC_ARG_ENABLE([dev-erandom], + AC_HELP_STRING([--disable-dev-erandom], + [disable testing for /dev/erandom]), + [try_dev_erandom=$enableval], + [try_dev_erandom=yes]) + AC_CANONICAL_HOST @@ -1974,4 +1981,19 @@ AC_SUBST(sizeof_long_double) +dnl check whether we have an economical random device +if test "$try_dev_erandom" = yes ; then + AC_CACHE_CHECK(for economical random device, ac_cv_have_dev_random, + [if test -r "/dev/erandom" ; then + ac_cv_have_dev_erandom=yes; else ac_cv_have_dev_erandom=no; fi]) + if test "$ac_cv_have_dev_erandom" = yes; then + AC_DEFINE(HAVE_DEV_ERANDOM,1, + [defined if the system supports an economical random device]) + fi +else + AC_MSG_CHECKING(for economical random device) + ac_cv_have_dev_erandom=no + AC_MSG_RESULT(has been disabled) +fi + ### End of automated tests. ### Now run sysdeps configure fragments. --- configure +++ configure @@ -884,6 +884,7 @@ --enable-kernel=VERSION compile for compatibility with kernel not older than VERSION --enable-all-warnings enable all useful warnings gcc can issue + --disable-dev-erandom disable testing for /dev/erandom Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1697,6 +1698,14 @@ fi; +# Check whether --enable-dev-erandom or --disable-dev-erandom was given. +if test "${enable_dev_erandom+set}" = set; then + enableval="$enable_dev_erandom" + try_dev_erandom=$enableval +else + try_dev_erandom=yes +fi; + # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 @@ -7449,6 +7458,32 @@ sizeof_long_double=$ac_cv_sizeof_long_double +if test "$try_dev_erandom" = yes ; then + echo "$as_me:$LINENO: checking for economical random device" >&5 +echo $ECHO_N "checking for economical random device... $ECHO_C" >&6 +if test "${ac_cv_have_dev_random+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -r "/dev/erandom" ; then + ac_cv_have_dev_erandom=yes; else ac_cv_have_dev_erandom=no; fi +fi +echo "$as_me:$LINENO: result: $ac_cv_have_dev_random" >&5 +echo "${ECHO_T}$ac_cv_have_dev_random" >&6 + if test "$ac_cv_have_dev_erandom" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DEV_ERANDOM 1 +_ACEOF + + fi +else + echo "$as_me:$LINENO: checking for economical random device" >&5 +echo $ECHO_N "checking for economical random device... $ECHO_C" >&6 + ac_cv_have_dev_erandom=no + echo "$as_me:$LINENO: result: has been disabled" >&5 +echo "${ECHO_T}has been disabled" >&6 +fi + ### End of automated tests. ### Now run sysdeps configure fragments.