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@@QAAAAV0@ABV0@@Z
+; public: class bad_cast &__cdecl bad_cast::operator =(class bad_cast const &)
 ??4bad_cast@@QAAAAV0@ABV0@@Z
+; public: class bad_typeid &__cdecl bad_typeid::operator =(class bad_typeid 
const &)
 ??4bad_typeid@@QAAAAV0@ABV0@@Z
+; public: class exception &__cdecl exception::operator =(class exception const 
&)
 ??4exception@@QAAAAV0@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@@YAP6AXXZP6AXXZ@Z
+; void(__cdecl *)(void)__cdecl set_unexpected(void(__cdecl *)(void))
 ?set_unexpected@@YAP6AXXZP6AXXZ@Z
+; void __cdecl terminate(void)
 ?terminate@@YAXXZ
+; void __cdecl unexpected(void)
 ?unexpected@@YAXXZ
+; public: virtual char const *__cdecl exception::what(void)const
 ?what@exception@@UBAPBDXZ
 #endif
 
@@ -1097,7 +1142,7 @@ _wtof
 ; These symbols were added in Windows Server 2003 OS system version of 
msvcrt.dll
 ; They are not available in 32-bit Windows XP but are available in 32-bit 
Windows Vista
 F_I386(__CxxCallUnwindVecDtor)
-__CxxFrameHandler2
+F_X86_ANY(__CxxFrameHandler2)
 ___lc_collate_cp_func
 __pwctype_func
 F_NON_I386(_abs64) ; i386 _abs64 replaced by emu
@@ -1271,7 +1316,7 @@ _fprintf_p_l
 _fprintf_s_l
 _free_dbg
 _freea
-_freea_s
+F_X86_ANY(_freea_s)
 _fscanf_l
 _fscanf_s_l
 F_ARM_ANY(_fseeki64) ; i386 and x64 _fseeki64 replaced by emu
@@ -1298,12 +1343,12 @@ _get_fmode
 F_X86_ANY(_get_osplatform)
 F_X86_ANY(_get_osver)
 ; _get_output_format replaced by emu
-_get_pgmptr
+F_X86_ANY(_get_pgmptr)
 _get_wenviron
 F_X86_ANY(_get_winmajor)
 F_X86_ANY(_get_winminor)
 F_X86_ANY(_get_winver)
-_get_wpgmptr
+F_X86_ANY(_get_wpgmptr)
 _gmtime32 F_I386(== gmtime) ; i386 _gmtime32 replaced by alias
 ; _gmtime32_s replaced by emu
 ; _gmtime64_s replaced by emu
@@ -1720,6 +1765,7 @@ wprintf_s
 wscanf_s
 
 ; These symbols were added in Windows 8 OS system version of msvcrt.dll
+F_ARM_ANY(__jump_unwind)
 F_ARM_ANY(_create_locale) ; i386 and x64 _create_locale replaced by emu
 F_ARM_ANY(_free_locale) ; i386 and x64 _free_locale replaced by emu
 F_ARM_ANY(_get_current_locale) ; i386 and x64 _get_current_locale replaced by 
emu
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to