crt: Define and use __p_ function for _osplatform

Global variable _osplatform for i386 is provided in new versions of
msvcrt.dll and then also in msvcr70.dll, msvcr71.dll and msvcr80.dll.
For x64 it is provided in all msvcrt.dll and msvcr80.dll versions.

Function __p__osplatform() which returns pointer to global variable
_osplatform is provided only in i386 and x64 versions of msvcr80.dll.

On ARM systems there is no _osplatform platform variable and neither
__p__osplatform() function. UCRT does not provide them for any arch.

Provide missing function __p__osplatform() for i386 and x64 versions of
msvcrt.dll, then for i386 msvcr70.dll and msvcr71.dll and change definition
of _osplatform in header file to use __p__osplatform() function.

This aligns definition with msvc and avoid referencing another global
variable from mingw-w64 header files.

Signed-off-by: Martin Storsjö <martin@martin.st>
3 files changed