https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dfaba507dc4d12c1bb0fd005514f13b90a82585d

commit dfaba507dc4d12c1bb0fd005514f13b90a82585d
Author:     Timo Kreuzer <[email protected]>
AuthorDate: Tue Mar 3 19:34:23 2020 +0100
Commit:     Timo Kreuzer <[email protected]>
CommitDate: Sun Sep 13 15:37:29 2020 +0200

    [MSVCRT] Fix some architecture specific exports
---
 dll/apisets/api-ms-win-crt-private-l1-1-0.spec |  2 +-
 dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec |  3 +-
 dll/win32/msvcrt/msvcrt.spec                   | 40 ++++++++++++++++++--------
 sdk/lib/crt/except/amd64/cpp.s                 |  4 +++
 4 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/dll/apisets/api-ms-win-crt-private-l1-1-0.spec 
b/dll/apisets/api-ms-win-crt-private-l1-1-0.spec
index a0e1b339a8f..3c9758e58fd 100644
--- a/dll/apisets/api-ms-win-crt-private-l1-1-0.spec
+++ b/dll/apisets/api-ms-win-crt-private-l1-1-0.spec
@@ -18,7 +18,7 @@
 @ stub __BuildCatchObject
 @ stub __BuildCatchObjectHelper
 @ stdcall -arch=x86_64,arm __C_specific_handler() msvcrt.__C_specific_handler
-@ stdcall __CxxDetectRethrow() msvcrt.__CxxDetectRethrow
+@ stdcall -arch=i386 __CxxDetectRethrow() msvcrt.__CxxDetectRethrow
 @ stub __CxxExceptionFilter
 @ stdcall -arch=i386,x86_64 __CxxFrameHandler() msvcrt.__CxxFrameHandler
 @ stdcall -arch=i386 __CxxFrameHandler2() msvcrt.__CxxFrameHandler2
diff --git a/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec 
b/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec
index 35bdbf3ace5..4f65bb65fd4 100644
--- a/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec
+++ b/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec
@@ -39,7 +39,8 @@
 @ stdcall _errno() msvcrt._errno
 @ stub -version=0xA00+ _execute_onexit_table
 @ stdcall _exit() msvcrt._exit
-@ stdcall _fpieee_flt() msvcrt._fpieee_flt
+@ stdcall -arch=i386 _fpieee_flt() msvcrt._fpieee_flt
+@ stdcall -stub -arch=x86_64 _fpieee_flt() # ucrtbase._fpieee_flt (msvcrt x64 
doesn't have this!)
 @ stdcall _fpreset() msvcrt._fpreset
 @ stub _get_doserrno
 @ stub _get_errno
diff --git a/dll/win32/msvcrt/msvcrt.spec b/dll/win32/msvcrt/msvcrt.spec
index 8d3c2d473c4..9923d3ff9d4 100644
--- a/dll/win32/msvcrt/msvcrt.spec
+++ b/dll/win32/msvcrt/msvcrt.spec
@@ -1,5 +1,7 @@
 # msvcrt.dll - MS VC++ Run Time Library
 
+@ cdecl -arch=x86_64 -version=0x502 $I10_OUTPUT() MSVCRT_I10_OUTPUT
+
 # **************** x86 C++ functions ****************
 @ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@ABV0@@Z(ptr) 
MSVCRT___non_rtti_object_copy_ctor # public: __thiscall 
__non_rtti_object::__non_rtti_object(class __non_rtti_object const &)
 @ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@PBD@Z(ptr) 
MSVCRT___non_rtti_object_ctor # public: __thiscall 
__non_rtti_object::__non_rtti_object(char const *)
@@ -63,7 +65,9 @@
 # **************** win64 C++ functions ****************
 @ cdecl -arch=win64 ??0__non_rtti_object@@QEAA@AEBV0@@Z(ptr) 
MSVCRT___non_rtti_object_copy_ctor # public: __cdecl 
__non_rtti_object::__non_rtti_object(class __non_rtti_object const & __ptr64) 
__ptr64
 @ cdecl -arch=win64 ??0__non_rtti_object@@QEAA@PEBD@Z(ptr) 
MSVCRT___non_rtti_object_ctor # public: __cdecl 
__non_rtti_object::__non_rtti_object(char const * __ptr64) __ptr64
+@ cdecl -arch=win64 ??0bad_cast@@AAE@PBQBD@Z(ptr) MSVCRT_bad_cast_ctor # 
private: __thiscall bad_cast::bad_cast(char const near * const near *)
 @ cdecl -arch=win64 ??0bad_cast@@AEAA@PEBQEBD@Z(ptr) MSVCRT_bad_cast_ctor # 
private: __cdecl bad_cast::bad_cast(char const * __ptr64 const * __ptr64) 
__ptr64
+@ cdecl -arch=win64 ??0bad_cast@@QAE@ABQBD@Z(ptr) MSVCRT_bad_cast_ctor # 
public: __thiscall bad_cast::bad_cast(char const near * const near &)
 @ cdecl -arch=win64 ??0bad_cast@@QEAA@AEBQEBD@Z(ptr) MSVCRT_bad_cast_ctor # 
public: __cdecl bad_cast::bad_cast(char const * __ptr64 const & __ptr64) __ptr64
 @ cdecl -arch=win64 ??0bad_cast@@QEAA@AEBV0@@Z(ptr) MSVCRT_bad_cast_copy_ctor 
# public: __cdecl bad_cast::bad_cast(class bad_cast const & __ptr64) __ptr64
 @ cdecl -arch=win64 ??0bad_cast@@QEAA@PEBD@Z(ptr) MSVCRT_bad_cast_ctor_charptr 
# public: __cdecl bad_cast::bad_cast(char const * __ptr64) __ptr64
@@ -79,6 +83,7 @@
 @ cdecl -arch=win64 ??1exception@@UEAA@XZ() MSVCRT_exception_dtor # public: 
virtual __cdecl exception::~exception(void) __ptr64
 @ cdecl -arch=win64 ??1type_info@@UEAA@XZ() MSVCRT_type_info_dtor # public: 
virtual __cdecl type_info::~type_info(void) __ptr64
 @ cdecl -arch=win64 ??2@YAPEAX_K@Z(double) MSVCRT_operator_new # void * 
__ptr64 __cdecl operator new(unsigned __int64)
+@ cdecl -arch=win64 ??2@YAPEAX_KHPEBDH@Z(int64 long str long) 
MSVCRT_operator_new_dbg # void * __ptr64 __cdecl operator new(unsigned 
__int64,int,char const * __ptr64,int)
 @ cdecl -arch=win64 ??3@YAXPEAX@Z(ptr) MSVCRT_operator_delete # void __cdecl 
operator delete(void * __ptr64)
 @ cdecl -arch=win64 ??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z(ptr) 
MSVCRT___non_rtti_object_opequals # public: class __non_rtti_object & __ptr64 
__cdecl __non_rtti_object::operator=(class __non_rtti_object const & __ptr64) 
__ptr64
 @ cdecl -arch=win64 ??4bad_cast@@QEAAAEAV0@AEBV0@@Z(ptr) 
MSVCRT_bad_cast_opequals # public: class bad_cast & __ptr64 __cdecl 
bad_cast::operator=(class bad_cast const & __ptr64) __ptr64
@@ -93,6 +98,7 @@
 @ cdecl -arch=win64 ??_Fbad_cast@@QEAAXXZ() MSVCRT_bad_cast_default_ctor # 
public: void __cdecl bad_cast::`default constructor closure'(void) __ptr64
 @ cdecl -arch=win64 ??_Fbad_typeid@@QEAAXXZ() MSVCRT_bad_typeid_default_ctor # 
public: void __cdecl bad_typeid::`default constructor closure'(void) __ptr64
 @ cdecl -arch=win64 ??_U@YAPEAX_K@Z(long) MSVCRT_operator_new # void * __ptr64 
__cdecl operator new[](unsigned __int64)
+@ cdecl -arch=win64 ??_U@YAPEAX_KHPEBDH@Z(int64 long str long) 
MSVCRT_operator_new_dbg # void * __ptr64 __cdecl operator new[](unsigned 
__int64,int,char const * __ptr64,int)
 @ cdecl -arch=win64 ??_V@YAXPEAX@Z(ptr) MSVCRT_operator_delete # void __cdecl 
operator delete[](void * __ptr64)
 @ cdecl -arch=win64 __uncaught_exception(ptr) MSVCRT___uncaught_exception
 @ cdecl -arch=win64 ?_query_new_handler@@YAP6AH_K@ZXZ() 
MSVCRT__query_new_handler # int (__cdecl*__cdecl 
_query_new_handler(void))(unsigned __int64)
@@ -174,7 +180,7 @@
 
 
 # **************** Common functions ****************
-@ cdecl $I10_OUTPUT() MSVCRT_I10_OUTPUT
+@ cdecl -arch=i386 $I10_OUTPUT() MSVCRT_I10_OUTPUT
 @ cdecl -arch=i386 _CIacos()
 @ cdecl -arch=i386 _CIasin()
 @ cdecl -arch=i386 _CIatan()
@@ -201,10 +207,10 @@
 @ cdecl _XcptFilter(long ptr)
 @ stdcall -arch=x86_64,arm __C_specific_handler(ptr long ptr ptr)
 @ cdecl __CppXcptFilter(long ptr)
-# stub __CxxCallUnwindDtor
-# stub __CxxCallUnwindVecDtor
-@ cdecl __CxxDetectRethrow(ptr)
-@ cdecl __CxxExceptionFilter()
+@ stub -arch=i386 __CxxCallUnwindDtor
+@ stub -arch=i386 __CxxCallUnwindVecDtor
+@ cdecl -arch=i386 __CxxDetectRethrow(ptr)
+@ cdecl -arch=i386 __CxxExceptionFilter()
 @ cdecl -arch=i386,x86_64 -norelay __CxxFrameHandler(ptr ptr ptr ptr)
 @ cdecl -arch=i386 -norelay __CxxFrameHandler2(ptr ptr ptr ptr) 
__CxxFrameHandler
 @ cdecl -arch=arm -norelay __CxxFrameHandler3(ptr ptr ptr ptr)
@@ -292,7 +298,7 @@
 @ cdecl __wcserror(wstr)
 @ cdecl __wgetmainargs(ptr ptr ptr long ptr)
 @ extern __winitenv
-@ cdecl _abnormal_termination()
+@ cdecl -arch=i386 _abnormal_termination()
 # stub _abs64
 @ cdecl _access(str long)
 @ extern _acmdln
@@ -396,11 +402,13 @@
 @ cdecl _findnext64(long ptr)
 @ cdecl _findnexti64(long ptr)
 @ cdecl _finite(double)
+@ stub -arch=x86_64 _finitef
 @ cdecl _flsbuf(long ptr)
 @ cdecl _flushall()
 @ extern _fmode
 @ cdecl _fpclass(double)
-@ cdecl _fpieee_flt(long ptr ptr)
+@ cdecl -stub -arch=x86_64 _fpclassf(long)
+@ cdecl -arch=i386 _fpieee_flt(long ptr ptr)
 @ cdecl _fpreset()
 @ cdecl _fputchar(long)
 @ cdecl _fputwchar(long)
@@ -423,7 +431,8 @@
 @ cdecl _getcwd(str long)
 @ cdecl _getdcwd(long str long)
 @ cdecl _getdiskfree(long ptr)
-@ cdecl _getdllprocaddr(long str long)
+@ cdecl -arch=i386 _getdllprocaddr(long str long)
+@ cdecl -arch=x86_64 -version=0x502 _getdllprocaddr(long str long)
 @ cdecl _getdrive()
 @ cdecl _getdrives() kernel32.GetLogicalDrives
 @ cdecl _getmaxstdio()
@@ -440,7 +449,8 @@
 @ cdecl _heapchk()
 @ cdecl _heapmin()
 @ cdecl _heapset(long)
-@ cdecl _heapused(ptr ptr)
+@ cdecl -arch=i386 _heapused(ptr ptr)
+@ cdecl -arch=x86_64 -version=0x502 _heapused(ptr ptr)
 @ cdecl _heapwalk(ptr)
 @ cdecl _hypot(double double)
 @ cdecl -arch=x86_64,arm _hypotf(long long)
@@ -483,6 +493,7 @@
 @ cdecl _ismbslead(ptr ptr)
 @ cdecl _ismbstrail(ptr ptr)
 @ cdecl _isnan(double)
+@ stub -arch=x86_64 _isnanf
 @ cdecl _itoa(long ptr long)
 @ cdecl _itow(long ptr long)
 @ cdecl _j0(double)
@@ -490,7 +501,9 @@
 @ cdecl _jn(long double)
 @ cdecl _kbhit()
 @ cdecl _lfind(ptr ptr ptr long ptr)
-@ cdecl _loaddll(str)
+@ cdecl -arch=i386 _loaddll(str)
+@ cdecl -arch=x86_64 -version=0x502 _loaddll(str)
+@ cdecl -arch=x86_64 _local_unwind(ptr ptr)
 @ cdecl -i386 _local_unwind2(ptr long)
 @ cdecl -i386 -version=0x600+ _local_unwind4(ptr ptr long)
 @ cdecl _localtime64(ptr)
@@ -570,6 +583,7 @@
 @ cdecl _mktime64(ptr)
 @ cdecl _msize(ptr)
 @ cdecl _nextafter(double double)
+@ stub -arch=x86_64 _nextafterf
 @ cdecl _onexit(ptr)
 @ varargs _open(str long)
 @ cdecl _open_osfhandle(long long)
@@ -603,11 +617,12 @@
 @ cdecl -arch=i386 _safe_fprem()
 @ cdecl -arch=i386 _safe_fprem1()
 @ cdecl _scalb(double long)
+@ stub -arch=x86_64 _scalbf
 @ varargs _scprintf(str)
 @ varargs _scwprintf(wstr)
 @ cdecl _searchenv(str str ptr)
 @ stdcall -i386 _seh_longjmp_unwind(ptr)
-# stub _set_SSE2_enable
+@ stub -arch=i386 _set_SSE2_enable
 @ cdecl _set_error_mode(long)
 @ cdecl _set_sbh_threshold(long)
 @ cdecl _seterrormode(long)
@@ -674,7 +689,8 @@
 @ cdecl _ungetch(long)
 # stub _ungetwch
 @ cdecl _unlink(str)
-@ cdecl _unloaddll(long)
+@ cdecl -arch=i386 _unloaddll(ptr)
+@ cdecl -arch=x86_64 -version=0x502 _unloaddll(ptr)
 @ cdecl _unlock(long)
 @ cdecl _utime(str ptr)
 @ cdecl _utime64(str ptr)
diff --git a/sdk/lib/crt/except/amd64/cpp.s b/sdk/lib/crt/except/amd64/cpp.s
index 3be32c9648c..03b6d3dff9d 100644
--- a/sdk/lib/crt/except/amd64/cpp.s
+++ b/sdk/lib/crt/except/amd64/cpp.s
@@ -36,8 +36,10 @@ ENDM
 
 DEFINE_ALIAS ??3@YAXPEAX@Z, MSVCRT_operator_delete
 DEFINE_ALIAS ??_U@YAPEAX_K@Z, MSVCRT_operator_new
+DEFINE_ALIAS ??_U@YAPEAX_KHPEBDH@Z, MSVCRT_operator_new_dbg
 DEFINE_ALIAS ??_V@YAXPEAX@Z, MSVCRT_operator_delete
 DEFINE_ALIAS ??2@YAPEAX_K@Z, MSVCRT_operator_new
+DEFINE_ALIAS ??2@YAPEAX_KHPEBDH@Z, MSVCRT_operator_new_dbg
 DEFINE_ALIAS ?_query_new_handler@@YAP6AHI@ZXZ, MSVCRT__query_new_handler
 DEFINE_ALIAS ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z, MSVCRT__set_new_handler
 DEFINE_ALIAS ?set_new_handler@@YAP6AXXZP6AXXZ@Z, MSVCRT_set_new_handler
@@ -57,7 +59,9 @@ DEFINE_ALIAS ??4exception@@QEAAAEAV0@AEBV0@@Z, 
MSVCRT_exception_opequals
 DEFINE_ALIAS ??1type_info@@UEAA@XZ, MSVCRT_type_info_dtor
 DEFINE_ALIAS ??0__non_rtti_object@@QEAA@AEBV0@@Z, 
MSVCRT___non_rtti_object_copy_ctor
 DEFINE_ALIAS ??0__non_rtti_object@@QEAA@PEBD@Z, MSVCRT___non_rtti_object_ctor
+DEFINE_ALIAS ??0bad_cast@@AAE@PBQBD@Z, MSVCRT_bad_cast_ctor
 DEFINE_ALIAS ??0bad_cast@@AEAA@PEBQEBD@Z, MSVCRT_bad_cast_ctor
+DEFINE_ALIAS ??0bad_cast@@QAE@ABQBD@Z, MSVCRT_bad_cast_ctor
 DEFINE_ALIAS ??0bad_cast@@QEAA@AEBQEBD@Z, MSVCRT_bad_cast_ctor
 DEFINE_ALIAS ??0bad_cast@@QEAA@AEBV0@@Z, MSVCRT_bad_cast_copy_ctor
 DEFINE_ALIAS ??0bad_cast@@QEAA@PEBD@Z, MSVCRT_bad_cast_ctor_charptr

Reply via email to