> > > So we gain conformance with MSVC, but lose conformance with POSIX. (OTOH,
> > > our functions are named with leading underscores, which can motivate them
> > > differing.)
> >
> > AFAIK types (not even type-constness) are **not** a part of C ABI on any
> > known platform to me.
>
> I didn't say it is an ABI break - it's not. It's an API break though.

Hello, in my opinion, when compiling in POSIX compatible mode, there
should be POSIX compatible declarations. When not compiling for POSIX
then there can be MSVC compatible declarations. Names with leading
underscore are not in POSIX, so they can always have MSVC compatible
declarations.

So what about something like this?


_CRTIMP intptr_t __cdecl _execve(const char *_Filename,const char *const 
*_ArgList,const char *const *_Env);
#if defined(_POSIX) || \
    defined(_POSIX_SOURCE) || \
    defined(_POSIX_C_SOURCE) || \
    defined(_XOPEN_SOURCE) || \
    defined(_XOPEN_SOURCE_EXTENDED) || \
    defined(_BSD_SOURCE) || \
    defined(_SVID_SOURCE) || \
    defined(_GNU_SOURCE)
_CRTIMP int __cdecl execve(const char *_Filename,char *const _ArgList[],char 
*const _Env[]);
#else
_CRTIMP intptr_t __cdecl execve(const char *_Filename,const char *const 
*_ArgList,const char *const *_Env);
#endif


_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to