From 00893e79fc62966067af1a106567db96bd170338 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 3 Mar 2024 19:11:32 +0100 Subject: New upstream version 1.2 --- gnulib-m4/random.m4 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 gnulib-m4/random.m4 (limited to 'gnulib-m4/random.m4') diff --git a/gnulib-m4/random.m4 b/gnulib-m4/random.m4 new file mode 100644 index 00000000..911c5d0e --- /dev/null +++ b/gnulib-m4/random.m4 @@ -0,0 +1,79 @@ +# random.m4 serial 8 +dnl Copyright (C) 2012-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_RANDOM], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + + 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]) + ]) + gl_CHECK_FUNCS_ANDROID([initstate], [[#include ]]) + gl_CHECK_FUNCS_ANDROID([setstate], [[#include ]]) + if test $gl_cv_func_random = no; then + HAVE_RANDOM=0 + HAVE_INITSTATE=0 + HAVE_SETSTATE=0 + else + if test $ac_cv_func_initstate = no; then + HAVE_INITSTATE=0 + fi + if test $ac_cv_func_setstate = no; then + HAVE_SETSTATE=0 + fi + fi + if test $HAVE_INITSTATE = 0; then + case "$gl_cv_onwards_func_initstate" in + future*) REPLACE_INITSTATE=1 ;; + esac + fi + if test $HAVE_SETSTATE = 0; then + case "$gl_cv_onwards_func_setstate" in + future*) REPLACE_SETSTATE=1 ;; + esac + fi + dnl On several platforms, random() is not multithread-safe. + if test $ac_cv_func_initstate = no || test $ac_cv_func_setstate = no \ + || case "$host_os" in \ + darwin* | freebsd* | solaris* | cygwin* | haiku*) true ;; \ + *) false ;; \ + esac + then + dnl In order to define initstate or setstate, we need to define all the + dnl functions at once. + REPLACE_RANDOM=1 + if test $ac_cv_func_initstate = yes; then + REPLACE_INITSTATE=1 + fi + if test $ac_cv_func_setstate = yes; then + REPLACE_SETSTATE=1 + fi + fi + + AC_CHECK_DECLS_ONCE([initstate]) + if test $ac_cv_have_decl_initstate = no; then + HAVE_DECL_INITSTATE=0 + fi + + AC_CHECK_DECLS_ONCE([setstate]) + if test $ac_cv_have_decl_setstate = no; then + HAVE_DECL_SETSTATE=0 + fi +]) + +# Prerequisites of lib/random.c. +AC_DEFUN([gl_PREREQ_RANDOM], [ + : +]) -- cgit v1.2.3