From: Bruno Haible Date: Sun, 13 May 2018 13:49:40 +0000 (+0200) Subject: random: Fix compilation error on Android. X-Git-Tag: v1.0~5612 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=3c82739c334a42470f2b3bbbada10138f04813b1;p=gnulib.git random: Fix compilation error on Android. * m4/random.m4 (gl_FUNC_RANDOM): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. --- diff --git a/ChangeLog b/ChangeLog index 2c6eab808c..908d4ea4dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-05-13 Bruno Haible + + random: Fix compilation error on Android. + * m4/random.m4 (gl_FUNC_RANDOM): Use AC_LINK_IFELSE instead of + AC_CHECK_FUNC. + 2018-05-13 Bruno Haible grantpt: Fix compilation error on Android. diff --git a/m4/random.m4 b/m4/random.m4 index ba9cf3b609..dd4d6fedbc 100644 --- a/m4/random.m4 +++ b/m4/random.m4 @@ -1,4 +1,4 @@ -# random.m4 serial 2 +# random.m4 serial 3 dnl Copyright (C) 2012-2018 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -8,8 +8,18 @@ AC_DEFUN([gl_FUNC_RANDOM], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_CHECK_FUNCS([random]) - if test $ac_cv_func_random = no; then + dnl We can't use AC_CHECK_FUNC here, because random() is defined as a + dnl static inline function when compiling for Android 4.4 or older. + AC_CACHE_CHECK([for random], [gl_cv_func_random], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[return random() == 0;]]) + ], + [gl_cv_func_random=yes], + [gl_cv_func_random=no]) + ]) + if test $gl_cv_func_random = no; then HAVE_RANDOM=0 fi