David, Again, This has nothing to do with POSIX. mingw *DOES* define this constant in *WINDOWS*.
We do not want to have a different constants (and different values) at the MSVC and mingw build. Build should be consistent when possible, but not override environment SDK. Anyway, If this will not enter here it will enter my rewrite... I thought it is better to do this sooner than later. The definition of PLATFORM_X_OK will be moved to autoconf. Alon. On Mon, Feb 20, 2012 at 6:06 PM, David Sommerseth <openvpn.l...@topphemmelig.net> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 20/02/12 15:45, Alon Bar-Lev wrote: >> Reported by Heiko Hund. Reference [1]. >> >> Replaces 4ebc587eab73e03ef64d344a5707d84e7f8d875a >> >> [1] >> http://msdn.microsoft.com/en-us/library/1w06ktdy%28v=vs.100%29.aspx >> >> Signed-off-by: Alon Bar-Lev <alon.bar...@gmail.com> --- options.c >> | 38 ++++++++++++++++++++++---------------- win/config.h.in | 2 >> +- 2 files changed, 23 insertions(+), 17 deletions(-) >> >> diff --git a/options.c b/options.c > > I'm not convinced about this at all. It *is* the proper way to do it, > from an intellectual point of view. But this complicates the reading of > the code in places where I don't see it really improve any thing else - > except of being pedantically correct. > > The reason for this argument is that the following lines of code is in > the source tree already: > > (win/config.h.in) > #ifndef X_OK > #define X_OK 0 > #endif > > This is *well contained* inside the build tree which MSVS depends on. > This build-platform does not define these macros at all. [RWX]_OK are > all defined in unistd.h, which is non-existent in non-POSIX compliant > environment (basically what MSVS falls in under). > > So my point of view is that win/config.h.in covers the definition of the > required macros which MSVS is lacking. Of course, it can be argued that > such declarations should be in compat.h - as it a compatibility issue. > For me that's a slightly different discussion. > > The OpenVPN code base is primarily written for the POSIX platform. MSVS > is not a really POSIX friendly platform and mingw is somewhere in between > - - but seems to be far more POSIX oriented than MSVS. We should focus on > keeping the POSIX part of OpenVPN as pure as possible, from a POSIX point > of view. And to be fair, the compat.[ch] files exists purely because of > the issues we have with MSVS. > > Bottom line is that I'm NACKing this patch, as it complicates things more > than make things more clear. I do admit it is a more correct approach in > its principles, but I don't like the complication it implies by > "recasting" well defined POSIX macros. > > > kind regards, > > David Sommerseth > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.11 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iEYEARECAAYFAk9Cb38ACgkQDC186MBRfrqKhwCghAxMG/X+xKZdiy6gU9FR8Yhf > n7oAnjxkrDDjpQngfM1TwTZgLkKVlmdH > =Vupy > -----END PGP SIGNATURE-----