Loading...
--- /dev/null
+++ Libc/Libc-763.11/stdlib/FreeBSD/random.c.patch
@@ -0,0 +1,56 @@
+--- random.c.bsdnew 2009-11-13 14:11:50.000000000 -0800
++++ random.c 2009-11-13 14:11:51.000000000 -0800
+@@ -33,6 +33,14 @@ static char sccsid[] = "@(#)random.c 8.2
+ #include <sys/cdefs.h>
+ __FBSDID("$FreeBSD: src/lib/libc/stdlib/random.c,v 1.25 2007/01/09 00:28:10 imp Exp $");
+
++/*
++ * We always compile with __DARWIN_UNIX03 set to one, relying on the fact that
++ * (for non-LP64) sizeof(int) == sizeof(long) == sizeof(size_t), so that we
++ * don't have to have two different versions of the prototypes. For LP64,
++ * we only support the POSIX-compatible prototypes.
++ */
++#undef __DARWIN_UNIX03
++#define __DARWIN_UNIX03 1
+ #include "namespace.h"
+ #include <sys/time.h> /* for srandomdev() */
+ #include <fcntl.h> /* for srandomdev() */
+@@ -216,7 +224,7 @@ static int rand_deg = DEG_3;
+ static int rand_sep = SEP_3;
+ static uint32_t *end_ptr = &randtbl[DEG_3 + 1];
+
+-static inline uint32_t good_rand(int32_t);
++static inline uint32_t good_rand(int32_t) __attribute__((always_inline));
+
+ static inline uint32_t good_rand (x)
+ int32_t x;
+@@ -265,7 +273,7 @@ static inline uint32_t good_rand (x)
+ */
+ void
+ srandom(x)
+- unsigned long x;
++ unsigned x;
+ {
+ int i, lim;
+
+@@ -353,9 +361,9 @@ srandomdev()
+ */
+ char *
+ initstate(seed, arg_state, n)
+- unsigned long seed; /* seed for R.N.G. */
++ unsigned seed; /* seed for R.N.G. */
+ char *arg_state; /* pointer to state array */
+- long n; /* # bytes of state info */
++ size_t n; /* # bytes of state info */
+ {
+ char *ostate = (char *)(&state[-1]);
+ uint32_t *int_arg_state = (uint32_t *)arg_state;
+@@ -421,7 +429,7 @@ initstate(seed, arg_state, n)
+ */
+ char *
+ setstate(arg_state)
+- char *arg_state; /* pointer to state array */
++ const char *arg_state; /* pointer to state array */
+ {
+ uint32_t *new_state = (uint32_t *)arg_state;
+ uint32_t type = new_state[0] % MAX_TYPES;