https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dfaba507dc4d12c1bb0fd…
commit dfaba507dc4d12c1bb0fd005514f13b90a82585d
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Tue Mar 3 19:34:23 2020 +0100
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
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