[Top][All Lists]
[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
- stdlib: provide random_data for mingw,
Simon Josefsson <=