On Fri, Nov 7, 2014 at 7:51 PM, Ozkan Sezer <seze...@gmail.com> wrote: > On 11/7/14, Ray Donnelly <mingw.andr...@gmail.com> wrote: >> On Fri, Nov 7, 2014 at 11:10 AM, Ozkan Sezer <seze...@gmail.com> wrote: >>> On 11/7/14, Ruben Van Boxem <vanboxem.ru...@gmail.com> wrote: >>>> 2014-11-07 9:25 GMT+01:00 Ozkan Sezer <seze...@gmail.com>: >>>> >>>>> On 11/7/14, Dongsheng Song <dongsheng.s...@gmail.com> wrote: >>>>> > If we define _POSIX_, then getpid (process.h) was hidden. >>>>> > Is it correct ? >>>>> > >>>>> > PS: MSVC 2012 is the last compiler which use _POSIX_, MSVC 2013 do not >>>>> > use _POSIX_ anymore. >>>>> > MSVC 2012/2013 guard getpid with !__STDC__. >>>>> >>>>> I believe (but not necessarily correct about iıt) that MSVC's _POSIX >>>>> symbol is intended for diffrerent purposes, i.e. windows posix >>>>> subsystem, >>>>> and I believe that we are doing a wrong thing with having those _POSIX >>>>> ifdefs in our headers.. Someone correct me if I'm wrong. >>>>> >>>> >>>> I have no idea, but be aware at least one reference in GCC showed up: >>>> https://gcc.gnu.org/bugzilla/attachment.cgi?id=20034&action=edit >>>> >>>> But maybe that's there exactly because _POSIX is in the MinGW-w64 >>>> headers... >>> >>> I remember that they defined _POSIX only because mingw-w64 headers >>> required it for certain declarations >> >> Also, should we consider renaming _POSIX to _POSIX_SOURCE? >> > > What I am saying is that those two have different meanings. > If we ever get rid of _POSIX we will possibly need to remove > certain stuff too. Things that currently are guarded by _POSIX > but should actually be guarded by _POSIX_SOURCE are there too > and they are another part of the story. >
During port libressl to Windows, I feel very painful on such macros. I want to use _POSIX_C_SOURCE to replace _POSIX, _POSIX_, _POSIX_SOURCE in all headers. The first is normalization in _mingw.h.in: --- a/mingw-w64-headers/crt/_mingw.h.in +++ b/mingw-w64-headers/crt/_mingw.h.in @@ -7,6 +7,26 @@ #ifndef _INC__MINGW_H #define _INC__MINGW_H +#if defined(_POSIX) || defined(_POSIX_) \ + || defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ + || defined(_REENTRANT) || defined(_THREAD_SAFE) || defined(_POSIX_THREAD_SAFE_FUNCTIONS) + +/* This has been superseded by _POSIX_C_SOURCE. */ +#ifndef _POSIX_SOURCE +#define _POSIX_SOURCE 1 +#endif + +/* Functions like wcscasecmp() and strnlen() were only added in POSIX.1-2008 */ +#ifndef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200809L +#endif + +#if (defined(_REENTRANT) || defined(_THREAD_SAFE)) && !defined(_POSIX_THREAD_SAFE_FUNCTIONS) +#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L +#endif + +#endif + comments ? ------------------------------------------------------------------------------ _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public