> > > 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