From 09766bc8a01d136a251b72c5850f34cde5a2c685 Mon Sep 17 00:00:00 2001 From: Jon TURNEY Date: Fri, 20 Feb 2015 12:13:59 +0000 Subject: [PATCH] 2015-02-19 Jon TURNEY * include/cygwin/stdlib.h (initstate, random, setstate, srandom): Check if __XSI_VISIBLE is set by sys/cdefs.h, rather than testing for _XOPEN_SOURCE directly, to work correctly when _GNU_SOURCE is set. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/include/cygwin/stdlib.h | 5 ++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 6eb0d1d68..23357a123 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2015-02-19 Jon TURNEY + + * include/cygwin/stdlib.h (initstate, random, setstate, srandom): + Check if __XSI_VISIBLE is set by sys/cdefs.h, rather than testing + for _XOPEN_SOURCE directly, to work correctly when _GNU_SOURCE is + set. + 2015-02-19 Corinna Vinschen * sec_acl.cc (setacl): Always grant owner FILE_WRITE_ATTRIBUTES access. diff --git a/winsup/cygwin/include/cygwin/stdlib.h b/winsup/cygwin/include/cygwin/stdlib.h index 4d652fd5f..62792cf69 100644 --- a/winsup/cygwin/include/cygwin/stdlib.h +++ b/winsup/cygwin/include/cygwin/stdlib.h @@ -11,6 +11,7 @@ details. */ #ifndef _CYGWIN_STDLIB_H #define _CYGWIN_STDLIB_H +#include #include #ifdef __cplusplus @@ -31,9 +32,7 @@ void setprogname (const char *); char *canonicalize_file_name (const char *); int unsetenv (const char *); #endif /*__STRICT_ANSI__*/ -#if !defined(__STRICT_ANSI__) \ - || (defined(_XOPEN_SOURCE) \ - && ((_XOPEN_SOURCE - 0 >= 500) || defined(_XOPEN_SOURCE_EXTENDED))) +#if !defined(__STRICT_ANSI__) || (__XSI_VISIBLE >= 500) char *initstate (unsigned seed, char *state, size_t size); long random (void); char *setstate (const char *state);