bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

stdlib: provide random_data for mingw


From: Simon Josefsson
Subject: stdlib: provide random_data for mingw
Date: Sun, 26 Oct 2008 11:06:58 +0100
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux)

Building the random_r module fails because the stdlib module does not
provide a definition of struct random_data on e.g. mingw:

random_r.c:173: warning: ‘struct random_data’ declared inside parameter list
random_r.c:174: error: conflicting types for ‘srandom_r’
./stdlib.h:260: error: previous declaration of ‘srandom_r’ was here
...

The patch below fixes this, I have pushed it.

/Simon

>From fd3784cec9020789823de5d21dac19f3061ba0fd Mon Sep 17 00:00:00 2001
From: Simon Josefsson <address@hidden>
Date: Sun, 26 Oct 2008 11:04:17 +0100
Subject: [PATCH] stdlib: Provide struct random_data.
 * m4/stdlib_h.m4: Check for struct random_data.  Initialize and
 substitute HAVE_STRUCT_RANDOM_DATA.
 * lib/stdlib.in.h [!HAVE_STRUCT_RANDOM_DATA]: Provide struct
 random_data.
 * modules/stdlib (Makefile.am): Substitute
 HAVE_STRUCT_RANDOM_DATA.

---
 ChangeLog       |    9 +++++++++
 lib/stdlib.in.h |   15 ++++++++++++++-
 m4/stdlib_h.m4  |    4 +++-
 modules/stdlib  |    1 +
 4 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d8cc5c3..eb48f2e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2008-10-26  Simon Josefsson  <address@hidden>
 
+       * m4/stdlib_h.m4: Check for struct random_data.  Initialize and
+       substitute HAVE_STRUCT_RANDOM_DATA.
+       * lib/stdlib.in.h [!HAVE_STRUCT_RANDOM_DATA]: Provide struct
+       random_data.
+       * modules/stdlib (Makefile.am): Substitute
+       HAVE_STRUCT_RANDOM_DATA.
+
+2008-10-26  Simon Josefsson  <address@hidden>
+
        * doc/gnulib.texi (@copying): Use GFDLv1.2+.
        * doc/gnulib-intro.texi (Copyright): Likewise.
 
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index 8d0add6..f6ebe25 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -41,10 +41,23 @@
 # include <sys/loadavg.h>
 #endif
 
-#if @GNULIB_RANDOM_R@
+#if @GNULIB_RANDOM_R@ || address@hidden@
 # include <stdint.h>
 #endif
 
+#if address@hidden@
+struct random_data
+{
+  int32_t *fptr;               /* Front pointer.  */
+  int32_t *rptr;               /* Rear pointer.  */
+  int32_t *state;              /* Array of state values.  */
+  int rand_type;               /* Type of random number generator.  */
+  int rand_deg;                /* Degree of random number generator.  */
+  int rand_sep;                /* Distance between front and rear.  */
+  int32_t *end_ptr;            /* Pointer behind state table.  */
+};
+#endif
+
 /* The definition of GL_LINK_WARNING is copied here.  */
 
 
diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4
index 3702d16..1574af0 100644
--- a/m4/stdlib_h.m4
+++ b/m4/stdlib_h.m4
@@ -1,4 +1,4 @@
-# stdlib_h.m4 serial 11
+# stdlib_h.m4 serial 12
 dnl Copyright (C) 2007, 2008 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,6 +8,7 @@ AC_DEFUN([gl_STDLIB_H],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   gl_CHECK_NEXT_HEADERS([stdlib.h])
+  AC_CHECK_TYPES([struct random_data], [], [], [[#include <stdlib.h>]])
 ])
 
 AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
@@ -48,6 +49,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   HAVE_STRTOD=1;          AC_SUBST([HAVE_STRTOD])
   HAVE_STRTOLL=1;         AC_SUBST([HAVE_STRTOLL])
   HAVE_STRTOULL=1;        AC_SUBST([HAVE_STRTOULL])
+  HAVE_STRUCT_RANDOM_DATA=0;   AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
   HAVE_SYS_LOADAVG_H=0;   AC_SUBST([HAVE_SYS_LOADAVG_H])
   HAVE_UNSETENV=1;        AC_SUBST([HAVE_UNSETENV])
   HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
diff --git a/modules/stdlib b/modules/stdlib
index 715feea..edd9e45 100644
--- a/modules/stdlib
+++ b/modules/stdlib
@@ -52,6 +52,7 @@ stdlib.h: stdlib.in.h
              -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
              -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
              -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
+             -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' 
\
              -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
              -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
              -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
-- 
1.5.6.5





reply via email to

[Prev in Thread] Current Thread [Next in Thread]