From e2b3ee535ffbb1142b224d7f6783aca5bfa7c937 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Mon, 15 Dec 2008 16:20:08 +0100
Subject: [PATCH] msvcrt: The __p_* functions are only exported on i386.

---
 dlls/msvcr71/msvcr71.spec   | 56 ++++++++++++++++-----------------
 dlls/msvcrt/msvcrt.spec     | 56 ++++++++++++++++-----------------
 dlls/msvcrt20/msvcrt20.spec | 50 +++++++++++++++---------------
 dlls/msvcrt40/msvcrt40.spec | 52 +++++++++++++++----------------
 dlls/msvcrtd/msvcrtd.spec   | 62 ++++++++++++++++++-------------------
 include/msvcrt/malloc.h     |  4 +++
 include/msvcrt/mbctype.h    |  4 +++
 include/msvcrt/stdio.h      |  7 +----
 include/msvcrt/stdlib.h     | 56 +++++++++++++++++++++------------
 include/msvcrt/time.h       |  7 +++++
 10 files changed, 190 insertions(+), 164 deletions(-)

diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec
index 330cc420365..fc693bd82dd 100644
--- a/dlls/msvcr71/msvcr71.spec
+++ b/dlls/msvcr71/msvcr71.spec
@@ -121,35 +121,35 @@
 @ extern __lc_handle msvcrt.__lc_handle
 @ cdecl __lconv_init() msvcrt.__lconv_init
 @ extern __mb_cur_max msvcrt.__mb_cur_max
-@ cdecl __p___argc() msvcrt.__p___argc
-@ cdecl __p___argv() msvcrt.__p___argv
-@ cdecl __p___initenv() msvcrt.__p___initenv
-@ cdecl __p___mb_cur_max() msvcrt.__p___mb_cur_max
-@ cdecl __p___wargv() msvcrt.__p___wargv
-@ cdecl __p___winitenv() msvcrt.__p___winitenv
-@ cdecl __p__acmdln() msvcrt.__p__acmdln
-@ cdecl __p__amblksiz() msvcrt.__p__amblksiz
-@ cdecl __p__commode() msvcrt.__p__commode
-@ cdecl __p__daylight() msvcrt.__p__daylight
-@ cdecl __p__dstbias() msvcrt.__p__dstbias
-@ cdecl __p__environ() msvcrt.__p__environ
-@ cdecl __p__fileinfo() msvcrt.__p__fileinfo
-@ cdecl __p__fmode() msvcrt.__p__fmode
+@ cdecl -arch=i386 __p___argc() msvcrt.__p___argc
+@ cdecl -arch=i386 __p___argv() msvcrt.__p___argv
+@ cdecl -arch=i386 __p___initenv() msvcrt.__p___initenv
+@ cdecl -arch=i386 __p___mb_cur_max() msvcrt.__p___mb_cur_max
+@ cdecl -arch=i386 __p___wargv() msvcrt.__p___wargv
+@ cdecl -arch=i386 __p___winitenv() msvcrt.__p___winitenv
+@ cdecl -arch=i386 __p__acmdln() msvcrt.__p__acmdln
+@ cdecl -arch=i386 __p__amblksiz() msvcrt.__p__amblksiz
+@ cdecl -arch=i386 __p__commode() msvcrt.__p__commode
+@ cdecl -arch=i386 __p__daylight() msvcrt.__p__daylight
+@ cdecl -arch=i386 __p__dstbias() msvcrt.__p__dstbias
+@ cdecl -arch=i386 __p__environ() msvcrt.__p__environ
+@ cdecl -arch=i386 __p__fileinfo() msvcrt.__p__fileinfo
+@ cdecl -arch=i386 __p__fmode() msvcrt.__p__fmode
 @ cdecl -arch=i386 __p__iob() msvcrt.__p__iob
-@ cdecl __p__mbcasemap() msvcrt.__p__mbcasemap
-@ cdecl __p__mbctype() msvcrt.__p__mbctype
-@ cdecl __p__osver() msvcrt.__p__osver
-@ cdecl __p__pctype() msvcrt.__p__pctype
-@ cdecl __p__pgmptr() msvcrt.__p__pgmptr
-@ cdecl __p__pwctype() msvcrt.__p__pwctype
-@ cdecl __p__timezone() msvcrt.__p__timezone
-@ cdecl __p__tzname() msvcrt.__p__tzname
-@ cdecl __p__wcmdln() msvcrt.__p__wcmdln
-@ cdecl __p__wenviron() msvcrt.__p__wenviron
-@ cdecl __p__winmajor() msvcrt.__p__winmajor
-@ cdecl __p__winminor() msvcrt.__p__winminor
-@ cdecl __p__winver() msvcrt.__p__winver
-@ cdecl __p__wpgmptr() msvcrt.__p__wpgmptr
+@ cdecl -arch=i386 __p__mbcasemap() msvcrt.__p__mbcasemap
+@ cdecl -arch=i386 __p__mbctype() msvcrt.__p__mbctype
+@ cdecl -arch=i386 __p__osver() msvcrt.__p__osver
+@ cdecl -arch=i386 __p__pctype() msvcrt.__p__pctype
+@ cdecl -arch=i386 __p__pgmptr() msvcrt.__p__pgmptr
+@ cdecl -arch=i386 __p__pwctype() msvcrt.__p__pwctype
+@ cdecl -arch=i386 __p__timezone() msvcrt.__p__timezone
+@ cdecl -arch=i386 __p__tzname() msvcrt.__p__tzname
+@ cdecl -arch=i386 __p__wcmdln() msvcrt.__p__wcmdln
+@ cdecl -arch=i386 __p__wenviron() msvcrt.__p__wenviron
+@ cdecl -arch=i386 __p__winmajor() msvcrt.__p__winmajor
+@ cdecl -arch=i386 __p__winminor() msvcrt.__p__winminor
+@ cdecl -arch=i386 __p__winver() msvcrt.__p__winver
+@ cdecl -arch=i386 __p__wpgmptr() msvcrt.__p__wpgmptr
 @ cdecl __pctype_func() msvcrt.__pctype_func
 @ extern __pioinfo msvcrt.__pioinfo
 @ stub __pwctype_func
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index dcbebfccece..d8231f5c553 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -113,35 +113,35 @@
 @ extern __lc_handle MSVCRT___lc_handle
 @ cdecl __lconv_init()
 @ extern __mb_cur_max MSVCRT___mb_cur_max
-@ cdecl __p___argc()
-@ cdecl __p___argv()
-@ cdecl __p___initenv()
-@ cdecl __p___mb_cur_max() MSVCRT____mb_cur_max_func
-@ cdecl __p___wargv()
-@ cdecl __p___winitenv()
-@ cdecl __p__acmdln()
-@ cdecl __p__amblksiz()
-@ cdecl __p__commode()
-@ cdecl __p__daylight() MSVCRT___p__daylight
-@ cdecl __p__dstbias()
-@ cdecl __p__environ()
-@ stub __p__fileinfo #()
-@ cdecl __p__fmode()
+@ cdecl -arch=i386 __p___argc()
+@ cdecl -arch=i386 __p___argv()
+@ cdecl -arch=i386 __p___initenv()
+@ cdecl -arch=i386 __p___mb_cur_max() MSVCRT____mb_cur_max_func
+@ cdecl -arch=i386 __p___wargv()
+@ cdecl -arch=i386 __p___winitenv()
+@ cdecl -arch=i386 __p__acmdln()
+@ cdecl -arch=i386 __p__amblksiz()
+@ cdecl -arch=i386 __p__commode()
+@ cdecl -arch=i386 __p__daylight() MSVCRT___p__daylight
+@ cdecl -arch=i386 __p__dstbias()
+@ cdecl -arch=i386 __p__environ()
+@ stub -arch=i386 __p__fileinfo #()
+@ cdecl -arch=i386 __p__fmode()
 @ cdecl -arch=i386 __p__iob() MSVCRT___iob_func
-@ stub __p__mbcasemap #()
-@ cdecl __p__mbctype()
-@ cdecl __p__osver()
-@ cdecl __p__pctype() MSVCRT___pctype_func
-@ cdecl __p__pgmptr()
-@ stub __p__pwctype #()
-@ cdecl __p__timezone() MSVCRT___p__timezone
-@ cdecl __p__tzname()
-@ cdecl __p__wcmdln()
-@ cdecl __p__wenviron()
-@ cdecl __p__winmajor()
-@ cdecl __p__winminor()
-@ cdecl __p__winver()
-@ cdecl __p__wpgmptr()
+@ stub -arch=i386 __p__mbcasemap #()
+@ cdecl -arch=i386 __p__mbctype()
+@ cdecl -arch=i386 __p__osver()
+@ cdecl -arch=i386 __p__pctype() MSVCRT___pctype_func
+@ cdecl -arch=i386 __p__pgmptr()
+@ stub -arch=i386 __p__pwctype #()
+@ cdecl -arch=i386 __p__timezone() MSVCRT___p__timezone
+@ cdecl -arch=i386 __p__tzname()
+@ cdecl -arch=i386 __p__wcmdln()
+@ cdecl -arch=i386 __p__wenviron()
+@ cdecl -arch=i386 __p__winmajor()
+@ cdecl -arch=i386 __p__winminor()
+@ cdecl -arch=i386 __p__winver()
+@ cdecl -arch=i386 __p__wpgmptr()
 @ cdecl __pctype_func() MSVCRT___pctype_func
 @ extern __pioinfo MSVCRT___pioinfo
 @ stub __pxcptinfoptrs #()
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index 67608b86649..56f961ca3df 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -471,32 +471,32 @@
 @ cdecl __iscsymf(long) msvcrt.__iscsymf
 @ cdecl __lconv_init() msvcrt.__lconv_init
 @ extern __mb_cur_max msvcrt.__mb_cur_max
-@ cdecl __p___argc() msvcrt.__p___argc
-@ cdecl __p___argv() msvcrt.__p___argv
-@ cdecl __p___initenv() msvcrt.__p___initenv
-@ cdecl __p___mb_cur_max() msvcrt.__p___mb_cur_max
-@ cdecl __p___wargv() msvcrt.__p___wargv
-@ cdecl __p___winitenv() msvcrt.__p___winitenv
-@ cdecl __p__acmdln() msvcrt.__p__acmdln
-@ cdecl __p__amblksiz() msvcrt.__p__amblksiz
-@ cdecl __p__commode() msvcrt.__p__commode
-@ cdecl __p__daylight() msvcrt.__p__daylight
-@ cdecl __p__environ() msvcrt.__p__environ
-@ cdecl __p__fmode() msvcrt.__p__fmode
+@ cdecl -arch=i386 __p___argc() msvcrt.__p___argc
+@ cdecl -arch=i386 __p___argv() msvcrt.__p___argv
+@ cdecl -arch=i386 __p___initenv() msvcrt.__p___initenv
+@ cdecl -arch=i386 __p___mb_cur_max() msvcrt.__p___mb_cur_max
+@ cdecl -arch=i386 __p___wargv() msvcrt.__p___wargv
+@ cdecl -arch=i386 __p___winitenv() msvcrt.__p___winitenv
+@ cdecl -arch=i386 __p__acmdln() msvcrt.__p__acmdln
+@ cdecl -arch=i386 __p__amblksiz() msvcrt.__p__amblksiz
+@ cdecl -arch=i386 __p__commode() msvcrt.__p__commode
+@ cdecl -arch=i386 __p__daylight() msvcrt.__p__daylight
+@ cdecl -arch=i386 __p__environ() msvcrt.__p__environ
+@ cdecl -arch=i386 __p__fmode() msvcrt.__p__fmode
 @ cdecl -arch=i386 __p__iob() msvcrt.__p__iob
-@ cdecl __p__mbctype() msvcrt.__p__mbctype
-@ cdecl __p__osver() msvcrt.__p__osver
-@ cdecl __p__pctype() msvcrt.__p__pctype
-@ cdecl __p__pgmptr() msvcrt.__p__pgmptr
-@ cdecl __p__pwctype() msvcrt.__p__pwctype
-@ cdecl __p__timezone() msvcrt.__p__timezone
-@ cdecl __p__tzname() msvcrt.__p__tzname
-@ cdecl __p__wcmdln() msvcrt.__p__wcmdln
-@ cdecl __p__wenviron() msvcrt.__p__wenviron
-@ cdecl __p__winmajor() msvcrt.__p__winmajor
-@ cdecl __p__winminor() msvcrt.__p__winminor
-@ cdecl __p__winver() msvcrt.__p__winver
-@ cdecl __p__wpgmptr() msvcrt.__p__wpgmptr
+@ cdecl -arch=i386 __p__mbctype() msvcrt.__p__mbctype
+@ cdecl -arch=i386 __p__osver() msvcrt.__p__osver
+@ cdecl -arch=i386 __p__pctype() msvcrt.__p__pctype
+@ cdecl -arch=i386 __p__pgmptr() msvcrt.__p__pgmptr
+@ cdecl -arch=i386 __p__pwctype() msvcrt.__p__pwctype
+@ cdecl -arch=i386 __p__timezone() msvcrt.__p__timezone
+@ cdecl -arch=i386 __p__tzname() msvcrt.__p__tzname
+@ cdecl -arch=i386 __p__wcmdln() msvcrt.__p__wcmdln
+@ cdecl -arch=i386 __p__wenviron() msvcrt.__p__wenviron
+@ cdecl -arch=i386 __p__winmajor() msvcrt.__p__winmajor
+@ cdecl -arch=i386 __p__winminor() msvcrt.__p__winminor
+@ cdecl -arch=i386 __p__winver() msvcrt.__p__winver
+@ cdecl -arch=i386 __p__wpgmptr() msvcrt.__p__wpgmptr
 @ cdecl __pxcptinfoptrs() msvcrt.__pxcptinfoptrs
 @ cdecl __threadhandle() msvcrt.__threadhandle
 @ cdecl __threadid() msvcrt.__threadid
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index 00daff3a194..fd2559a7a45 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -519,33 +519,33 @@
 @ cdecl __iscsymf(long) msvcrt.__iscsymf
 @ cdecl __lconv_init() msvcrt.__lconv_init
 @ extern __mb_cur_max msvcrt.__mb_cur_max
-@ cdecl __p___argc() msvcrt.__p___argc
-@ cdecl __p___argv() msvcrt.__p___argv
-@ cdecl __p___initenv() msvcrt.__p___initenv
-@ cdecl __p___mb_cur_max() msvcrt.__p___mb_cur_max
-@ cdecl __p___wargv() msvcrt.__p___wargv
-@ cdecl __p___winitenv() msvcrt.__p___winitenv
-@ cdecl __p__acmdln() msvcrt.__p__acmdln
-@ cdecl __p__amblksiz() msvcrt.__p__amblksiz
-@ cdecl __p__commode() msvcrt.__p__commode
-@ cdecl __p__daylight() msvcrt.__p__daylight
-@ cdecl __p__dstbias() msvcrt.__p__dstbias
-@ cdecl __p__environ() msvcrt.__p__environ
-@ cdecl __p__fmode() msvcrt.__p__fmode
+@ cdecl -arch=i386 __p___argc() msvcrt.__p___argc
+@ cdecl -arch=i386 __p___argv() msvcrt.__p___argv
+@ cdecl -arch=i386 __p___initenv() msvcrt.__p___initenv
+@ cdecl -arch=i386 __p___mb_cur_max() msvcrt.__p___mb_cur_max
+@ cdecl -arch=i386 __p___wargv() msvcrt.__p___wargv
+@ cdecl -arch=i386 __p___winitenv() msvcrt.__p___winitenv
+@ cdecl -arch=i386 __p__acmdln() msvcrt.__p__acmdln
+@ cdecl -arch=i386 __p__amblksiz() msvcrt.__p__amblksiz
+@ cdecl -arch=i386 __p__commode() msvcrt.__p__commode
+@ cdecl -arch=i386 __p__daylight() msvcrt.__p__daylight
+@ cdecl -arch=i386 __p__dstbias() msvcrt.__p__dstbias
+@ cdecl -arch=i386 __p__environ() msvcrt.__p__environ
+@ cdecl -arch=i386 __p__fmode() msvcrt.__p__fmode
 @ cdecl -arch=i386 __p__iob() msvcrt.__p__iob
-@ cdecl __p__mbctype() msvcrt.__p__mbctype
-@ cdecl __p__osver() msvcrt.__p__osver
-@ cdecl __p__pctype() msvcrt.__p__pctype
-@ cdecl __p__pgmptr() msvcrt.__p__pgmptr
-@ cdecl __p__pwctype() msvcrt.__p__pwctype
-@ cdecl __p__timezone() msvcrt.__p__timezone
-@ cdecl __p__tzname() msvcrt.__p__tzname
-@ cdecl __p__wcmdln() msvcrt.__p__wcmdln
-@ cdecl __p__wenviron() msvcrt.__p__wenviron
-@ cdecl __p__winmajor() msvcrt.__p__winmajor
-@ cdecl __p__winminor() msvcrt.__p__winminor
-@ cdecl __p__winver() msvcrt.__p__winver
-@ cdecl __p__wpgmptr() msvcrt.__p__wpgmptr
+@ cdecl -arch=i386 __p__mbctype() msvcrt.__p__mbctype
+@ cdecl -arch=i386 __p__osver() msvcrt.__p__osver
+@ cdecl -arch=i386 __p__pctype() msvcrt.__p__pctype
+@ cdecl -arch=i386 __p__pgmptr() msvcrt.__p__pgmptr
+@ cdecl -arch=i386 __p__pwctype() msvcrt.__p__pwctype
+@ cdecl -arch=i386 __p__timezone() msvcrt.__p__timezone
+@ cdecl -arch=i386 __p__tzname() msvcrt.__p__tzname
+@ cdecl -arch=i386 __p__wcmdln() msvcrt.__p__wcmdln
+@ cdecl -arch=i386 __p__wenviron() msvcrt.__p__wenviron
+@ cdecl -arch=i386 __p__winmajor() msvcrt.__p__winmajor
+@ cdecl -arch=i386 __p__winminor() msvcrt.__p__winminor
+@ cdecl -arch=i386 __p__winver() msvcrt.__p__winver
+@ cdecl -arch=i386 __p__wpgmptr() msvcrt.__p__wpgmptr
 @ cdecl __pxcptinfoptrs() msvcrt.__pxcptinfoptrs
 @ cdecl __set_app_type(long) msvcrt.__set_app_type
 @ cdecl __setusermatherr(ptr) msvcrt.__setusermatherr
diff --git a/dlls/msvcrtd/msvcrtd.spec b/dlls/msvcrtd/msvcrtd.spec
index d000f331844..e65bec8d39b 100644
--- a/dlls/msvcrtd/msvcrtd.spec
+++ b/dlls/msvcrtd/msvcrtd.spec
@@ -120,38 +120,38 @@
 @ extern __lc_handle msvcrt.__lc_handle
 @ cdecl __lconv_init() msvcrt.__lconv_init
 @ extern __mb_cur_max msvcrt.__mb_cur_max
-@ cdecl __p___argc() msvcrt.__p___argc
-@ cdecl __p___argv() msvcrt.__p___argv
-@ cdecl __p___initenv() msvcrt.__p___initenv
-@ cdecl __p___mb_cur_max() msvcrt.__p___mb_cur_max
-@ cdecl __p___wargv() msvcrt.__p___wargv
-@ cdecl __p___winitenv() msvcrt.__p___winitenv
-@ cdecl __p__acmdln() msvcrt.__p__acmdln
-@ cdecl __p__amblksiz() msvcrt.__p__amblksiz
-@ cdecl __p__commode() msvcrt.__p__commode
-@ cdecl __p__crtAssertBusy()
-@ cdecl __p__crtBreakAlloc()
-@ cdecl __p__crtDbgFlag()
-@ cdecl __p__daylight() msvcrt.__p__daylight
-@ cdecl __p__dstbias() msvcrt.__p__dstbias
-@ cdecl __p__environ() msvcrt.__p__environ
-@ cdecl __p__fileinfo() msvcrt.__p__fileinfo
-@ cdecl __p__fmode() msvcrt.__p__fmode
+@ cdecl -arch=i386 __p___argc() msvcrt.__p___argc
+@ cdecl -arch=i386 __p___argv() msvcrt.__p___argv
+@ cdecl -arch=i386 __p___initenv() msvcrt.__p___initenv
+@ cdecl -arch=i386 __p___mb_cur_max() msvcrt.__p___mb_cur_max
+@ cdecl -arch=i386 __p___wargv() msvcrt.__p___wargv
+@ cdecl -arch=i386 __p___winitenv() msvcrt.__p___winitenv
+@ cdecl -arch=i386 __p__acmdln() msvcrt.__p__acmdln
+@ cdecl -arch=i386 __p__amblksiz() msvcrt.__p__amblksiz
+@ cdecl -arch=i386 __p__commode() msvcrt.__p__commode
+@ cdecl -arch=i386 __p__crtAssertBusy()
+@ cdecl -arch=i386 __p__crtBreakAlloc()
+@ cdecl -arch=i386 __p__crtDbgFlag()
+@ cdecl -arch=i386 __p__daylight() msvcrt.__p__daylight
+@ cdecl -arch=i386 __p__dstbias() msvcrt.__p__dstbias
+@ cdecl -arch=i386 __p__environ() msvcrt.__p__environ
+@ cdecl -arch=i386 __p__fileinfo() msvcrt.__p__fileinfo
+@ cdecl -arch=i386 __p__fmode() msvcrt.__p__fmode
 @ cdecl -arch=i386 __p__iob() msvcrt.__p__iob
-@ cdecl __p__mbcasemap() msvcrt.__p__mbcasemap
-@ cdecl __p__mbctype() msvcrt.__p__mbctype
-@ cdecl __p__osver() msvcrt.__p__osver
-@ cdecl __p__pctype() msvcrt.__p__pctype
-@ cdecl __p__pgmptr() msvcrt.__p__pgmptr
-@ cdecl __p__pwctype() msvcrt.__p__pwctype
-@ cdecl __p__timezone() msvcrt.__p__timezone
-@ cdecl __p__tzname() msvcrt.__p__tzname
-@ cdecl __p__wcmdln() msvcrt.__p__wcmdln
-@ cdecl __p__wenviron() msvcrt.__p__wenviron
-@ cdecl __p__winmajor() msvcrt.__p__winmajor
-@ cdecl __p__winminor() msvcrt.__p__winminor
-@ cdecl __p__winver() msvcrt.__p__winver
-@ cdecl __p__wpgmptr() msvcrt.__p__wpgmptr
+@ cdecl -arch=i386 __p__mbcasemap() msvcrt.__p__mbcasemap
+@ cdecl -arch=i386 __p__mbctype() msvcrt.__p__mbctype
+@ cdecl -arch=i386 __p__osver() msvcrt.__p__osver
+@ cdecl -arch=i386 __p__pctype() msvcrt.__p__pctype
+@ cdecl -arch=i386 __p__pgmptr() msvcrt.__p__pgmptr
+@ cdecl -arch=i386 __p__pwctype() msvcrt.__p__pwctype
+@ cdecl -arch=i386 __p__timezone() msvcrt.__p__timezone
+@ cdecl -arch=i386 __p__tzname() msvcrt.__p__tzname
+@ cdecl -arch=i386 __p__wcmdln() msvcrt.__p__wcmdln
+@ cdecl -arch=i386 __p__wenviron() msvcrt.__p__wenviron
+@ cdecl -arch=i386 __p__winmajor() msvcrt.__p__winmajor
+@ cdecl -arch=i386 __p__winminor() msvcrt.__p__winminor
+@ cdecl -arch=i386 __p__winver() msvcrt.__p__winver
+@ cdecl -arch=i386 __p__wpgmptr() msvcrt.__p__wpgmptr
 @ cdecl __pctype_func() msvcrt.__pctype_func
 @ extern __pioinfo msvcrt.__pioinfo
 @ cdecl __pxcptinfoptrs() msvcrt.__pxcptinfoptrs
diff --git a/include/msvcrt/malloc.h b/include/msvcrt/malloc.h
index cc60033f1c2..60409c8fef3 100644
--- a/include/msvcrt/malloc.h
+++ b/include/msvcrt/malloc.h
@@ -43,8 +43,12 @@ typedef struct _heapinfo
 } _HEAPINFO;
 #endif /* _HEAPINFO_DEFINED */
 
+#ifdef __i386__
 extern unsigned int* __p__amblksiz(void);
 #define _amblksiz (*__p__amblksiz());
+#else
+extern unsigned int _amblksiz;
+#endif
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/include/msvcrt/mbctype.h b/include/msvcrt/mbctype.h
index 7a51399eed6..7d387596060 100644
--- a/include/msvcrt/mbctype.h
+++ b/include/msvcrt/mbctype.h
@@ -26,8 +26,12 @@
 extern "C" {
 #endif
 
+#ifdef __i386__
 unsigned char* __p__mbctype(void);
 #define _mbctype                   (__p__mbctype())
+#else
+extern unsigned char MSVCRT_mbctype[];
+#endif
 
 #define _MS     0x01
 #define _MP     0x02
diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h
index 36087a3c792..d608fdc52fa 100644
--- a/include/msvcrt/stdio.h
+++ b/include/msvcrt/stdio.h
@@ -81,13 +81,8 @@ extern "C" {
 #endif
 
 #ifndef _STDIO_DEFINED
-# ifdef _WIN64  /* __p__iob is not exported in Win64 */
 FILE* __iob_func(void);
-#  define _iob (__iob_func())
-# else
-FILE* __p__iob(void);
-#  define _iob (__p__iob())
-# endif /* _WIN64 */
+# define _iob (__iob_func())
 #endif /* _STDIO_DEFINED */
 
 #define stdin              (_iob+STDIN_FILENO)
diff --git a/include/msvcrt/stdlib.h b/include/msvcrt/stdlib.h
index 42495c23bc1..4222697a2cb 100644
--- a/include/msvcrt/stdlib.h
+++ b/include/msvcrt/stdlib.h
@@ -76,39 +76,55 @@ typedef struct _ldiv_t {
 extern "C" {
 #endif
 
+#ifdef __i386__
+
 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())
+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);
diff --git a/include/msvcrt/time.h b/include/msvcrt/time.h
index 10446227e7f..52bbe4e07c3 100644
--- a/include/msvcrt/time.h
+++ b/include/msvcrt/time.h
@@ -60,6 +60,7 @@ struct tm {
 extern "C" {
 #endif
 
+#ifdef __i386__
 #define _daylight (*__p__daylight())
 #define _dstbias (*__p__dstbias())
 #define _timezone (*__p__timezone())
@@ -69,6 +70,12 @@ int *__p__daylight(void);
 long *__p__dstbias(void);
 long *__p__timezone(void);
 char **__p__tzname(void);
+#else
+extern int _daylight;
+extern long _dstbias;
+extern long _timezone;
+extern char *_tzname;
+#endif
 
 unsigned    _getsystime(struct tm*);
 unsigned    _setsystime(struct tm*,unsigned);
-- 
GitLab