Symbols __CxxFrameHandler2, _freea_s, _get_pgmptr and _get_wpgmptr are not
present in Windows RT 8.0 and neither in 8.1 versions of msvcrt.dll
library. So mark them as X86-only.
And additional symbol __jump_unwind is present in Windows RT 8.0 and 8.1,
so put it into Windows 8 section as ARM-only.
Also update comment about ARM32 C++ symbols, they fully matches Windows RT
8.0 and 8.1 versions.
Inspected Windows RT 8.0 msvcrt.dll ARM32 has version string 7.0.9200.16384.
And Windows RT 8.1 msvcrt.dll ARM32 has version string 7.0.9468.0.
---
mingw-w64-crt/lib-common/msvcrt.def.in | 58 +++---
1 file changed, 52 insertions(+), 6 deletions(-)
diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in
b/mingw-w64-crt/lib-common/msvcrt.def.in
index 05b0f394713f..00162754e807 100644
--- a/mingw-w64-crt/lib-common/msvcrt.def.in
+++ b/mingw-w64-crt/lib-common/msvcrt.def.in
@@ -218,54 +218,99 @@ EXPORTS
?what@exception@@UEBAPEBDXZ
#endif
-; List of ARM32 C++ mangled symbols
-; TODO: Verify if this list is correct and contains all symbols from the first
ARM32 version of msvcrt.dll
+; List of ARM32 C++ mangled symbols which matches the first ARM32 version of
msvcrt.dll (Windows RT 8.0)
#ifdef DEF_ARM32
+; public: __cdecl __non_rtti_object::__non_rtti_object(class __non_rtti_object
const &)
??0__non_rtti_object@@QAA@ABV0@@Z
+; public: __cdecl __non_rtti_object::__non_rtti_object(char const *)
??0__non_rtti_object@@QAA@PBD@Z
+; private: __cdecl bad_cast::bad_cast(char const *const *)
??0bad_cast@@AAA@PBQBD@Z
+; public: __cdecl bad_cast::bad_cast(class bad_cast const &)
??0bad_cast@@QAA@ABV0@@Z
+; public: __cdecl bad_cast::bad_cast(char const *)
??0bad_cast@@QAA@PBD@Z
+; public: __cdecl bad_typeid::bad_typeid(class bad_typeid const &)
??0bad_typeid@@QAA@ABV0@@Z
+; public: __cdecl bad_typeid::bad_typeid(char const *)
??0bad_typeid@@QAA@PBD@Z
+; public: __cdecl exception::exception(char const *const &)
??0exception@@QAA@ABQBD@Z
+; public: __cdecl exception::exception(char const *const &,int)
??0exception@@QAA@ABQBDH@Z
+; public: __cdecl exception::exception(class exception const &)
??0exception@@QAA@ABV0@@Z
+; public: __cdecl exception::exception(void)
??0exception@@QAA@XZ
+; public: virtual __cdecl __non_rtti_object::~__non_rtti_object(void)
??1__non_rtti_object@@UAA@XZ
+; public: virtual __cdecl bad_cast::~bad_cast(void)
??1bad_cast@@UAA@XZ
+; public: virtual __cdecl bad_typeid::~bad_typeid(void)
??1bad_typeid@@UAA@XZ
+; public: virtual __cdecl exception::~exception(void)
??1exception@@UAA@XZ
+; public: virtual __cdecl type_info::~type_info(void)
??1type_info@@UAA@XZ
+; void *__cdecl operator new(unsigned int)
??2@YAPAXI@Z
+; void *__cdecl operator new(unsigned int,int,char const *,int)
??2@YAPAXIHPBDH@Z
+; void __cdecl operator delete(void *)
??3@YAXPAX@Z
+; public: class __non_rtti_object &__cdecl __non_rtti_object::operator =(class
__non_rtti_object const &)
??4__non_rtti_object@@QV0@ABV0@@Z
+; public: class bad_cast &__cdecl bad_cast::operator =(class bad_cast const &)
??4bad_cast@@QV0@ABV0@@Z
+; public: class bad_typeid &__cdecl bad_typeid::operator =(class bad_typeid
const &)
??4bad_typeid@@QV0@ABV0@@Z
+; public: class exception &__cdecl exception::operator =(class exception const
&)
??4exception@@QV0@ABV0@@Z
+; public: int __cdecl type_info::operator ==(class type_info const &)const
??8type_info@@QBAHABV0@@Z
+; public: int __cdecl type_info::operator !=(class type_info const &)const
??9type_info@@QBAHABV0@@Z
+; const __non_rtti_object::$vftable
??_7__non_rtti_object@@6B@ DATA
+; const bad_cast::$vftable
??_7bad_cast@@6B@ DATA
+; const bad_typeid::$vftable
??_7bad_typeid@@6B@ DATA
+; const exception::$vftable
??_7exception@@6B@ DATA
+; public: void __cdecl bad_cast::__dflt_ctor_closure(void)
??_Fbad_cast@@QAAXXZ
+; public: void __cdecl bad_typeid::__dflt_ctor_closure(void)
??_Fbad_typeid@@QAAXXZ
+; void *__cdecl operator new[](unsigned int)
??_U@YAPAXI@Z
+; void *__cdecl operator new[](unsigned int,int,char const *,int)
??_U@YAPAXIHPBDH@Z
+; void __cdecl operator delete[](void *)
??_V@YAXPAX@Z
+; int(__cdecl *)(unsigned int)__cdecl _query_new_handler(void)
?_query_new_handler@@YAP6AHI@ZXZ
+; int(__cdecl *)(unsigned int)__cdecl _set_new_handler(int(__cdecl *)(unsigned
int))
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
+; int __cdecl _set_new_mode(int)
?_set_new_mode@@YAHH@Z
+; void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *)__cdecl
_set_se_translator(void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *))
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z
+; public: int __cdecl type_info::before(class type_info const &)const
?before@type_info@@QBAHABV1@@Z
+; public: char const *__cdecl type_info::name(void)const
?name@type_info@@QBAPBDXZ
+; public: char const *__cdecl type_info::raw_name(void)const
?raw_name@type_info@@QBAPBDXZ
+; void(__cdecl *)(void)__cdecl set_terminate(void(__cdecl *)(void))
?set_terminate