Don't try to use rand_s on CYGWIN
authorJanne Blomqvist <jb@gcc.gnu.org>
Mon, 27 Feb 2017 11:13:49 +0000 (13:13 +0200)
committerJanne Blomqvist <jb@gcc.gnu.org>
Mon, 27 Feb 2017 11:13:49 +0000 (13:13 +0200)
CYGWIN seems to include _mingw.h and thus __MINGW64_VERSION_MAJOR is
defined even though rand_s is not available. Thus add an extra check
for __CYGWIN__.

2017-02-27  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsics/random.c (getosrandom): Don't try to use rand_s on
CYGWIN.

From-SVN: r245755

libgfortran/ChangeLog
libgfortran/intrinsics/random.c

index 4cdb3b4f2521b3ba6411c0f03d9ccb961fb371d7..0485e6f698bee1a4a2f872fdb7ac4c464f895b94 100644 (file)
@@ -1,3 +1,8 @@
+2017-02-27  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * intrinsics/random.c (getosrandom): Don't try to use rand_s on
+       CYGWIN.
+
 2017-02-16  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/79382
index d4f5b82f0b490ab358de8b6939e60ecb560dac3f..38036879362892e110266408b721e5c0833d5fca 100644 (file)
@@ -304,7 +304,7 @@ static int
 getosrandom (void *buf, size_t buflen)
 {
   /* rand_s is available in MinGW-w64 but not plain MinGW.  */
-#ifdef __MINGW64_VERSION_MAJOR
+#if defined(__MINGW64_VERSION_MAJOR) && !defined(__CYGWIN__)
   unsigned int* b = buf;
   for (unsigned i = 0; i < buflen / sizeof (unsigned int); i++)
     rand_s (&b[i]);