Author: tkreuzer
Date: Sun Feb 2 19:05:01 2014
New Revision: 61925
URL:
http://svn.reactos.org/svn/reactos?rev=61925&view=rev
Log:
[CRT]
- add missing __CxxFrameHandler (stub)
- Add missing c++ aliases for x64
[MSVCRT]
- Update exports on x64
Modified:
trunk/reactos/dll/win32/msvcrt/msvcrt.spec
trunk/reactos/lib/sdk/crt/except/amd64/cpp.s
trunk/reactos/lib/sdk/crt/except/amd64/ehandler.c
Modified: trunk/reactos/dll/win32/msvcrt/msvcrt.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msvcrt/msvcrt.sp…
==============================================================================
--- trunk/reactos/dll/win32/msvcrt/msvcrt.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msvcrt/msvcrt.spec [iso-8859-1] Sun Feb 2 19:05:01 2014
@@ -2,49 +2,68 @@
@ cdecl $I10_OUTPUT() MSVCRT_I10_OUTPUT
@ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@ABV0@@Z(ptr)
__thiscall_MSVCRT___non_rtti_object_copy_ctor
+@ cdecl -arch=win64 -norelay ??0__non_rtti_object@@QEAA@AEBV0@@Z(ptr)
MSVCRT___non_rtti_object_copy_ctor
@ cdecl -i386 -norelay ??0__non_rtti_object@@QAE@PBD@Z(ptr)
__thiscall_MSVCRT___non_rtti_object_ctor
+@ cdecl -arch=win64 -norelay ??0__non_rtti_object@@QEAA@PEBD@Z(ptr)
MSVCRT___non_rtti_object_ctor
@ cdecl -i386 -norelay ??0bad_cast@@AAE@PBQBD@Z(ptr) __thiscall_MSVCRT_bad_cast_ctor
+@ cdecl -arch=win64 -norelay ??0bad_cast@@AEAA@PEBQEBD@Z(ptr) MSVCRT_bad_cast_ctor
@ cdecl -i386 -norelay ??0bad_cast@@QAE@ABQBD@Z(ptr) __thiscall_MSVCRT_bad_cast_ctor
+@ cdecl -arch=win64 -norelay ??0bad_cast@@QEAA@AEBQEBD@Z(ptr) MSVCRT_bad_cast_ctor
@ cdecl -i386 -norelay ??0bad_cast@@QAE@ABV0@@Z(ptr)
__thiscall_MSVCRT_bad_cast_copy_ctor
+@ cdecl -arch=win64 -norelay ??0bad_cast@@QEAA@AEBV0@@Z(ptr) MSVCRT_bad_cast_copy_ctor
@ cdecl -i386 -norelay ??0bad_cast@@QAE@PBD@Z(ptr)
__thiscall_MSVCRT_bad_cast_ctor_charptr
+@ cdecl -arch=win64 -norelay ??0bad_cast@@QEAA@PEBD@Z(ptr) MSVCRT_bad_cast_ctor_charptr
@ cdecl -i386 -norelay ??0bad_typeid@@QAE@ABV0@@Z(ptr)
__thiscall_MSVCRT_bad_typeid_copy_ctor
+@ cdecl -arch=win64 -norelay ??0bad_typeid@@QEAA@AEBV0@@Z(ptr)
MSVCRT_bad_typeid_copy_ctor
@ cdecl -i386 -norelay ??0bad_typeid@@QAE@PBD@Z(ptr) __thiscall_MSVCRT_bad_typeid_ctor
+@ cdecl -arch=win64 -norelay ??0bad_typeid@@QEAA@PEBD@Z(ptr) MSVCRT_bad_typeid_ctor
@ cdecl -i386 -norelay ??0exception@@QAE@ABQBD@Z(ptr) __thiscall_MSVCRT_exception_ctor
-@ cdecl -arch=x86_64 -stub -norelay ??0exception@@QEAA@AEBQEBD@Z(ptr)
+@ cdecl -arch=win64 -norelay ??0exception@@QEAA@AEBQEBD@Z(ptr) MSVCRT_exception_ctor
@ cdecl -i386 -norelay ??0exception@@QAE@ABQBDH@Z(ptr long)
__thiscall_MSVCRT_exception_ctor_noalloc
-@ cdecl -arch=x86_64 -stub -norelay ??0exception@@QEAA@AEBQEBDH@Z(ptr long)
+@ cdecl -arch=win64 -norelay ??0exception@@QEAA@AEBQEBDH@Z(ptr long)
MSVCRT_exception_ctor_noalloc
@ cdecl -i386 -norelay ??0exception@@QAE@ABV0@@Z(ptr)
__thiscall_MSVCRT_exception_copy_ctor
-@ cdecl -arch=x86_64 -stub -norelay ??0exception@@QEAA@AEBV0@@Z(ptr)
+@ cdecl -arch=win64 -norelay ??0exception@@QEAA@AEBV0@@Z(ptr) MSVCRT_exception_copy_ctor
@ cdecl -i386 -norelay ??0exception@@QAE@XZ() __thiscall_MSVCRT_exception_default_ctor
-@ cdecl -arch=x86_64 -stub -norelay ??0exception@@QEAA@XZ()
+@ cdecl -arch=win64 -norelay ??0exception@@QEAA@XZ() MSVCRT_exception_default_ctor
@ cdecl -i386 -norelay ??1__non_rtti_object@@UAE@XZ()
__thiscall_MSVCRT___non_rtti_object_dtor
+@ cdecl -arch=win64 -norelay ??1__non_rtti_object@@UEAA@XZ()
MSVCRT___non_rtti_object_dtor
@ cdecl -i386 -norelay ??1bad_cast@@UAE@XZ() __thiscall_MSVCRT_bad_cast_dtor
+@ cdecl -arch=win64 -norelay ??1bad_cast@@UEAA@XZ() MSVCRT_bad_cast_dtor
@ cdecl -i386 -norelay ??1bad_typeid@@UAE@XZ() __thiscall_MSVCRT_bad_typeid_dtor
+@ cdecl -arch=win64 -norelay ??1bad_typeid@@UEAA@XZ() MSVCRT_bad_typeid_dtor
@ cdecl -i386 -norelay ??1exception@@UAE@XZ() __thiscall_MSVCRT_exception_dtor
-@ cdecl -arch=x86_64 -stub -norelay ??1exception@@UEAA@XZ()
__thiscall_MSVCRT_exception_dtor
+@ cdecl -arch=win64 -norelay ??1exception@@UEAA@XZ() MSVCRT_exception_dtor
@ cdecl -i386 -norelay ??1type_info@@UAE@XZ() __thiscall_MSVCRT_type_info_dtor
-@ cdecl -arch=x86_64 -stub ??1type_info@@UEAA@XZ() __thiscall_MSVCRT_type_info_dtor
+@ cdecl -arch=win64 -norelay ??1type_info@@UEAA@XZ() MSVCRT_type_info_dtor
@ cdecl -arch=win32 ??2@YAPAXI@Z(long) MSVCRT_operator_new
@ cdecl -arch=win64 ??2@YAPEAX_K@Z(double) MSVCRT_operator_new
# @ cdecl ??2@YAPAXIHPBDH@Z(long long str long) MSVCRT_operator_new_dbg
@ cdecl -arch=win32 ??3@YAXPAX@Z(ptr) MSVCRT_operator_delete
@ cdecl -arch=win64 ??3@YAXPEAX@Z(ptr) MSVCRT_operator_delete
@ cdecl -i386 -norelay ??4__non_rtti_object@@QAEAAV0@ABV0@@Z(ptr)
__thiscall_MSVCRT___non_rtti_object_opequals
+@ cdecl -arch=win64 -norelay ??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z(ptr)
MSVCRT___non_rtti_object_opequals
@ cdecl -i386 -norelay ??4bad_cast@@QAEAAV0@ABV0@@Z(ptr)
__thiscall_MSVCRT_bad_cast_opequals
+@ cdecl -arch=win64 -norelay ??4bad_cast@@QEAAAEAV0@AEBV0@@Z(ptr)
MSVCRT_bad_cast_opequals
@ cdecl -i386 -norelay ??4bad_typeid@@QAEAAV0@ABV0@@Z(ptr)
__thiscall_MSVCRT_bad_typeid_opequals
+@ cdecl -arch=win64 -norelay ??4bad_typeid@@QEAAAEAV0@AEBV0@@Z(ptr)
MSVCRT_bad_typeid_opequals
@ cdecl -i386 -norelay ??4exception@@QAEAAV0@ABV0@@Z(ptr)
__thiscall_MSVCRT_exception_opequals
+@ cdecl -arch=win64 -norelay ??4exception@@QEAAAEAV0@AEBV0@@Z(ptr)
MSVCRT_exception_opequals
@ cdecl -i386 -norelay ??8type_info@@QBEHABV0@@Z(ptr)
__thiscall_MSVCRT_type_info_opequals_equals
+@ cdecl -arch=win64 -norelay ??8type_info@@QEBAHAEBV0@@Z(ptr)
MSVCRT_type_info_opequals_equals
@ cdecl -i386 -norelay ??9type_info@@QBEHABV0@@Z(ptr)
__thiscall_MSVCRT_type_info_opnot_equals
-@ extern -i386 ??_7__non_rtti_object@@6B@ MSVCRT___non_rtti_object_vtable
-@ extern -i386 ??_7bad_cast@@6B@ MSVCRT_bad_cast_vtable
-@ extern -i386 ??_7bad_typeid@@6B@ MSVCRT_bad_typeid_vtable
-@ extern -i386 ??_7exception@@6B@ MSVCRT_exception_vtable
+@ cdecl -arch=win64 -norelay ??9type_info@@QEBAHAEBV0@@Z(ptr)
MSVCRT_type_info_opnot_equals
+@ extern ??_7__non_rtti_object@@6B@ MSVCRT___non_rtti_object_vtable
+@ extern ??_7bad_cast@@6B@ MSVCRT_bad_cast_vtable
+@ extern ??_7bad_typeid@@6B@ MSVCRT_bad_typeid_vtable
+@ extern ??_7exception@@6B@ MSVCRT_exception_vtable
@ cdecl -i386 -norelay ??_E__non_rtti_object@@UAEPAXI@Z(long)
__thiscall_MSVCRT___non_rtti_object_vector_dtor
@ cdecl -i386 -norelay ??_Ebad_cast@@UAEPAXI@Z(long)
__thiscall_MSVCRT_bad_cast_vector_dtor
@ cdecl -i386 -norelay ??_Ebad_typeid@@UAEPAXI@Z(long)
__thiscall_MSVCRT_bad_typeid_vector_dtor
@ cdecl -i386 -norelay ??_Eexception@@UAEPAXI@Z(long)
__thiscall_MSVCRT_exception_vector_dtor
@ cdecl -i386 -norelay ??_Fbad_cast@@QAEXXZ() __thiscall_MSVCRT_bad_cast_default_ctor
+@ cdecl -arch=win64 -norelay ??_Fbad_cast@@QEAAXXZ() MSVCRT_bad_cast_default_ctor
@ cdecl -i386 -norelay ??_Fbad_typeid@@QAEXXZ()
__thiscall_MSVCRT_bad_typeid_default_ctor
+@ cdecl -arch=win64 -norelay ??_Fbad_typeid@@QEAAXXZ()
@ cdecl -i386 -norelay ??_G__non_rtti_object@@UAEPAXI@Z(long)
__thiscall_MSVCRT___non_rtti_object_scalar_dtor
@ cdecl -i386 -norelay ??_Gbad_cast@@UAEPAXI@Z(long)
__thiscall_MSVCRT_bad_cast_scalar_dtor
@ cdecl -i386 -norelay ??_Gbad_typeid@@UAEPAXI@Z(long)
__thiscall_MSVCRT_bad_typeid_scalar_dtor
@@ -54,14 +73,21 @@
# @ cdecl ??_U@YAPAXIHPBDH@Z(long long str long) MSVCRT_operator_new_dbg
@ cdecl -arch=win32 ??_V@YAXPAX@Z(ptr) MSVCRT_operator_delete
@ cdecl -arch=win64 ??_V@YAXPEAX@Z(ptr) MSVCRT_operator_delete
-@ cdecl ?_query_new_handler@@YAP6AHI@ZXZ() MSVCRT__query_new_handler
+@ cdecl -arch=win64 -norelay __uncaught_exception(ptr)
+@ cdecl -arch=win32 -norelay ?_query_new_handler@@YAP6AHI@ZXZ()
MSVCRT__query_new_handler
+@ cdecl -arch=win64 -norelay ?_query_new_handler@@YAP6AH_K@ZXZ()
MSVCRT__query_new_handler
@ cdecl ?_query_new_mode@@YAHXZ() MSVCRT__query_new_mode
-@ cdecl ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z(ptr) MSVCRT__set_new_handler
+@ cdecl -arch=win32 -norelay ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z(ptr)
MSVCRT__set_new_handler
+@ cdecl -arch=win64 -norelay ?_set_new_handler@@YAP6AH_K@ZP6AH0@Z@Z(ptr)
MSVCRT__set_new_handler
@ cdecl ?_set_new_mode@@YAHH@Z(long) MSVCRT__set_new_mode
-@ cdecl ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z(ptr)
MSVCRT__set_se_translator
+@ cdecl -arch=win32 -norelay
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z(ptr)
MSVCRT__set_se_translator
+@ cdecl -arch=win64 -norelay
?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z(ptr)
MSVCRT__set_se_translator
@ cdecl -i386 -norelay ?before@type_info@@QBEHABV1@@Z(ptr)
__thiscall_MSVCRT_type_info_before
+@ cdecl -arch=win64 -norelay ?before@type_info@@QEBAHAEBV1@@Z(ptr)
MSVCRT_type_info_before
@ cdecl -i386 -norelay ?name@type_info@@QBEPBDXZ() __thiscall_MSVCRT_type_info_name
+@ cdecl -arch=win64 -norelay ?name@type_info@@QEBAPEBDXZ() MSVCRT_type_info_name
@ cdecl -i386 -norelay ?raw_name@type_info@@QBEPBDXZ()
__thiscall_MSVCRT_type_info_raw_name
+@ cdecl -arch=win64 -norelay ?raw_name@type_info@@QEBAPEBDXZ() MSVCRT_type_info_raw_name
@ cdecl ?set_new_handler@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_new_handler
@ cdecl ?set_terminate@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_terminate
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ@Z(ptr) MSVCRT_set_unexpected
@@ -118,6 +144,7 @@
@ extern _HUGE
@ cdecl _Strftime(str long str ptr ptr)
@ cdecl _XcptFilter(long ptr)
+@ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr)
@ cdecl __CppXcptFilter(long ptr)
# stub __CxxCallUnwindDelDtor
# stub __CxxCallUnwindDtor
@@ -125,13 +152,12 @@
@ cdecl __CxxDetectRethrow(ptr)
# stub __CxxExceptionFilter
@ cdecl -arch=i386,x86_64 -norelay __CxxFrameHandler(ptr ptr ptr ptr)
-@ cdecl -arch=i386,x86_64 -norelay __CxxFrameHandler2(ptr ptr ptr ptr) __CxxFrameHandler
-@ cdecl -arch=i386,x86_64 -norelay __CxxFrameHandler3(ptr ptr ptr ptr) __CxxFrameHandler
-@ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr)
+@ cdecl -arch=i386 -norelay __CxxFrameHandler2(ptr ptr ptr ptr) __CxxFrameHandler
+@ cdecl -arch=i386 -norelay __CxxFrameHandler3(ptr ptr ptr ptr) __CxxFrameHandler
@ stdcall -i386 __CxxLongjmpUnwind(ptr)
-@ cdecl __CxxQueryExceptionSize()
-# stub __CxxRegisterExceptionObject
-# stub __CxxUnregisterExceptionObject
+@ cdecl -i386 __CxxQueryExceptionSize()
+# stub -i386 __CxxRegisterExceptionObject
+# stub -i386 __CxxUnregisterExceptionObject
# stub __DestructExceptionObject
@ cdecl __RTCastToVoid(ptr) MSVCRT___RTCastToVoid
@ cdecl __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast
Modified: trunk/reactos/lib/sdk/crt/except/amd64/cpp.s
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/except/amd64/c…
==============================================================================
--- trunk/reactos/lib/sdk/crt/except/amd64/cpp.s [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/except/amd64/cpp.s [iso-8859-1] Sun Feb 2 19:05:01 2014
@@ -18,7 +18,7 @@
MACRO(DEFINE_EXCEPTION_VTABLE, shortname, cxxname)
START_VTABLE shortname, cxxname
- EXTERN MSVCRT_what_exception:PROC
+ EXTERN MSVCRT_what_exception:ABS
.double MSVCRT_what_exception
ENDM
@@ -48,6 +48,38 @@
DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, MSVCRT_set_unexpected
DEFINE_ALIAS ?terminate@@YAXXZ, MSVCRT_terminate
DEFINE_ALIAS ?unexpected@@YAXXZ, MSVCRT_unexpected
+DEFINE_ALIAS ?what@exception@@UEBAPEBDXZ, MSVCRT_what_exception
+DEFINE_ALIAS ??0exception@@QEAA@AEBQEBDH@Z, MSVCRT_exception_ctor_noalloc
+DEFINE_ALIAS ??0exception@@QEAA@AEBV0@@Z, MSVCRT_exception_copy_ctor
+DEFINE_ALIAS ??0exception@@QEAA@XZ, MSVCRT_exception_default_ctor
+DEFINE_ALIAS ??1exception@@UEAA@XZ, MSVCRT_exception_dtor
+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@@AEAA@PEBQEBD@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
+DEFINE_ALIAS ??0bad_typeid@@QEAA@AEBV0@@Z, MSVCRT_bad_typeid_copy_ctor
+DEFINE_ALIAS ??0bad_typeid@@QEAA@PEBD@Z, MSVCRT_bad_typeid_ctor
+DEFINE_ALIAS ??0exception@@QEAA@AEBQEBD@Z, MSVCRT_exception_ctor
+DEFINE_ALIAS ??1__non_rtti_object@@UEAA@XZ, MSVCRT___non_rtti_object_dtor
+DEFINE_ALIAS ??1bad_cast@@UEAA@XZ, MSVCRT_bad_cast_dtor
+DEFINE_ALIAS ??1bad_typeid@@UEAA@XZ, MSVCRT_bad_typeid_dtor
+DEFINE_ALIAS ??4bad_cast@@QEAAAEAV0@AEBV0@@Z, MSVCRT_bad_cast_opequals
+DEFINE_ALIAS ??4bad_typeid@@QEAAAEAV0@AEBV0@@Z, MSVCRT_bad_typeid_opequals
+DEFINE_ALIAS ??8type_info@@QEBAHAEBV0@@Z, MSVCRT_type_info_opequals_equals
+DEFINE_ALIAS ??9type_info@@QEBAHAEBV0@@Z, MSVCRT_type_info_opnot_equals
+DEFINE_ALIAS ??_Fbad_cast@@QEAAXXZ, MSVCRT_bad_cast_default_ctor
+DEFINE_ALIAS ??_Fbad_typeid@@QEAAXXZ, MSVCRT_bad_typeid_default_ctor
+DEFINE_ALIAS ?_query_new_handler@@YAP6AH_K@ZXZ, MSVCRT__query_new_handler
+DEFINE_ALIAS ?_set_new_handler@@YAP6AH_K@ZP6AH0@Z@Z, MSVCRT__set_new_handler
+DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z,
MSVCRT__set_se_translator
+DEFINE_ALIAS ?before@type_info@@QEBAHAEBV1@@Z, MSVCRT_type_info_before
+DEFINE_ALIAS ?name@type_info@@QEBAPEBDXZ, MSVCRT_type_info_name
+DEFINE_ALIAS ?raw_name@type_info@@QEBAPEBDXZ, MSVCRT_type_info_raw_name
+DEFINE_ALIAS ??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z, MSVCRT___non_rtti_object_opequals
END
Modified: trunk/reactos/lib/sdk/crt/except/amd64/ehandler.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/except/amd64/e…
==============================================================================
--- trunk/reactos/lib/sdk/crt/except/amd64/ehandler.c [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/except/amd64/ehandler.c [iso-8859-1] Sun Feb 2 19:05:01
2014
@@ -12,6 +12,19 @@
struct _DISPATCHER_CONTEXT *_DispatcherContext)
{
UNIMPLEMENTED;
+ __debugbreak();
return 0;
}
+DWORD
+__CxxFrameHandler(
+ PEXCEPTION_RECORD rec,
+ EXCEPTION_REGISTRATION_RECORD* ExceptionRegistrationFrame,
+ PCONTEXT context,
+ EXCEPTION_REGISTRATION_RECORD** _ExceptionRecord)
+{
+ UNIMPLEMENTED;
+ __debugbreak();
+ return 0;
+}
+