about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2021-04-03 23:11:43 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2021-04-03 23:11:43 +0000
commitacd20a2d8df3068d32381978026c427116a2f8b4 (patch)
treed7faae76f5dc8738c17cce2ccbec2f9df39c5be6
parentb19bd437731a20d67007d69e38c284775ae0c71d (diff)
downloadnetpbm-mirror-acd20a2d8df3068d32381978026c427116a2f8b4.tar.gz
netpbm-mirror-acd20a2d8df3068d32381978026c427116a2f8b4.tar.xz
netpbm-mirror-acd20a2d8df3068d32381978026c427116a2f8b4.zip
Use 'rand' instead of 'random' on Windows
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@4083 9d0c8265-081b-0410-96cb-a4ca84ce46f8
-rw-r--r--doc/HISTORY3
-rw-r--r--lib/util/randsysrandom.c5
-rw-r--r--pm_config.in.h10
3 files changed, 18 insertions, 0 deletions
diff --git a/doc/HISTORY b/doc/HISTORY
index 32d5da11..2990736b 100644
--- a/doc/HISTORY
+++ b/doc/HISTORY
@@ -6,6 +6,9 @@ CHANGE HISTORY
 
 not yet  BJH  Release 10.95.00
 
+              Build: Fix build failure due to missing 'random' function on
+              Mingw platform.  Bug introduced in Netpbm 10.94 (March 2021).
+
               Build: Don't attempt to build 'pamexec' on systems without
               Unix process management.  Bug introduced in Netpbm 10.94
               (March 2021).
diff --git a/lib/util/randsysrandom.c b/lib/util/randsysrandom.c
index 3e38b0ae..f26bb18d 100644
--- a/lib/util/randsysrandom.c
+++ b/lib/util/randsysrandom.c
@@ -1,9 +1,14 @@
+/* Implementation note: Mingw/Windows does not provide POSIX 'random', so
+   netpbm/pm_config.h makes that a macro for POSIX 'rand' on that platform
+*/
+
 #define _DEFAULT_SOURCE /* New name for SVID & BSD source defines */
 #define _XOPEN_SOURCE 500  /* Make sure random() is in stdlib.h */
 #define _BSD_SOURCE  /* Make sure random() is in stdlib.h */
 
 #include <stdlib.h>
 
+#include "netpbm/pm_config.h"
 #include "netpbm/rand.h"
 
 static void
diff --git a/pm_config.in.h b/pm_config.in.h
index b30bccfe..7ba51454 100644
--- a/pm_config.in.h
+++ b/pm_config.in.h
@@ -167,6 +167,16 @@
 #define lstat stat
 #endif
 
+/* Mingw provides much of POSIX, but does not provide 'random' (and a
+   discussion on the Mingw mailing list in March 2021 shows that the
+   developers want it that way).  MSVCRT itself has a sufficient 'rand',
+   though, so we use that for 'random'.
+*/
+#if MSVCRT
+#define random rand
+#define srandom srand
+#endif
+
 /*  CONFIGURE: Netpbm uses __inline__ to declare functions that should
     be compiled as inline code.  GNU C recognizes the __inline__ keyword.
     If your compiler recognizes any other keyword for this, you can set