msvcrt: The __p_* functions are only exported on i386.
diff --git a/include/msvcrt/stdlib.h b/include/msvcrt/stdlib.h
index 42495c2..4222697 100644
--- a/include/msvcrt/stdlib.h
+++ b/include/msvcrt/stdlib.h
@@ -76,39 +76,55 @@
extern "C" {
#endif
-extern unsigned int* __p__osver(void);
-extern unsigned int* __p__winver(void);
-extern unsigned int* __p__winmajor(void);
-extern unsigned int* __p__winminor(void);
-#define _osver (*__p__osver())
-#define _winver (*__p__winver())
-#define _winmajor (*__p__winmajor())
-#define _winminor (*__p__winminor())
+#ifdef __i386__
+extern unsigned int* __p__osver(void);
+#define _osver (*__p__osver())
+extern unsigned int* __p__winver(void);
+#define _winver (*__p__winver())
+extern unsigned int* __p__winmajor(void);
+#define _winmajor (*__p__winmajor())
+extern unsigned int* __p__winminor(void);
+#define _winminor (*__p__winminor())
extern int* __p___argc(void);
+#define __argc (*__p___argc())
extern char*** __p___argv(void);
-extern wchar_t*** __p___wargv(void);
+#define __argv (*__p___argv())
+extern wchar_t*** __p___wargv(void);
+#define __wargv (*__p___wargv())
extern char*** __p__environ(void);
-extern wchar_t*** __p__wenviron(void);
-extern int* ___mb_cur_max_func(void);
-extern unsigned long* __doserrno(void);
+#define _environ (*__p__environ())
+extern wchar_t*** __p__wenviron(void);
+#define _wenviron (*__p__wenviron())
extern unsigned int* __p__fmode(void);
+#define _fmode (*__p__fmode())
+
+#else /* __i386__ */
+
+extern unsigned int _osver;
+extern unsigned int _winver;
+extern unsigned int _winmajor;
+extern unsigned int _winminor;
+extern int __argc;
+extern char **__argv;
+extern wchar_t **__wargv;
+extern char **_environ;
+extern wchar_t **_wenviron;
+extern unsigned int _fmode;
+
+#endif /* __i386__ */
+
+extern int* ___mb_cur_max_func(void);
+#define __mb_cur_max (*___mb_cur_max_func())
+extern unsigned long* __doserrno(void);
+#define _doserrno (*__doserrno())
+extern int* _errno(void);
+#define errno (*_errno())
+
/* FIXME: We need functions to access these:
* int _sys_nerr;
* char** _sys_errlist;
*/
-#define __argc (*__p___argc())
-#define __argv (*__p___argv())
-#define __wargv (*__p___wargv())
-#define _environ (*__p__environ())
-#define _wenviron (*__p__wenviron())
-#define __mb_cur_max (*___mb_cur_max_func())
-#define _doserrno (*__doserrno())
-#define _fmode (*_fmode)
-
-
-extern int* _errno(void);
-#define errno (*_errno())
typedef int (*_onexit_t)(void);