The "old-school" mingw has an #if around the definitions for
#if __MSVCRT_VERSION__ >= 0x800
_set_abort_behavior
_WRITE_ABORT_MSG
_CALL_REPORTFAULT
_set_invalid_parameter_handler
#endif
mingw-w64-headers lacks this check (or an equivalent check) in stdlib.h.
Hence when compiling some software you'll get undefined references, depending on how you check for _set_invalid_parameter_handler.
For instance, and this is how I noticed, libuv:
http://git.io/nDrtew
libuv checks if _WRITE_ABORT_MSG to determine if _set_invalid_parameter_handler is present.
While this is clearly not a very good solution, it should IMO work.
Expected:
- Hide the _set_invalid_parameter_handler and corresponding defined when not __MSVCRT_VERSION__ >= 0x800
Issue got fixed. Therefore close bug as fixed