Library msvcrt.dll was used by Visual C++ versions 4.2 - 6.0 and is also part of the Windows system starting with NT 4.0 and 98.
Currently the file msvcrt.def.in contains mix of all symbols in semi alphabetical order, with ad-hoc symbol aliases which some are not exported by any msvcrt.dll version (but needed for mingw-w64). Cleanup symbol definitions, reorder them into chronological order according to released msvcrt.dll versions and add exhausting comments explaining from which msvcrt.dll version is symbol present and also if it is being replaced by other symbol at linking time for backward version compatibility reasons. If there is a comment "replaced by" at a symbol line, it means that the symbol is present since particular msvcrt.dll version, but mingw-w64 is unconditionally replacing it by its own implementation. If there is a comment "provided by" at a symbol line, it means that the symbol for some architecture is not present in any version of msvcrt.dll and mingw-w64 is providing own implementation. In future this change allows to easily figure out if specific operating system or Visual C++ version has support for particular function symbol and if mingw-w64 is going to use that symbol or is replacing it by its own implementation. Chronological order of msvcrt.dll versions in which were changes is: - Visual C++ 4.2 / Windows NT 4.0 - Visual C++ 5.0 SP1 / Windows 98 First Edition - Visual C++ 6.0 / Windows 98 Second Edition - Windows 2000 / Windows ME - Windows 2000 SP4 (*) - Windows XP - Windows XP SP3 - Windows Server 2003 - Windows Server 2003 SP1 / Windows XP x64 - Windows Vista - Windows 8 - Windows 8.1 (*) there is a small exception, new Windows 2000 SP4 symbols are not in Windows XP until SP3. msvcrt.def.in currently does not define symbols which were introduced in Windows 10 (or new) version of msvcrt.dll. There is a TODO comment for it. Also there is a TODO comment for future cleanup/documentation of ARM symbols, as this change targets only I386 and X64 versions of msvcrt.dll. This change as is does not introduce or remove any existing symbol in msvcrt.def.in. It can be verified by comparing output of the following command. Replace $PLAT with one of: DEF_I386 DEF_X64 DEF_ARM32 DEF_ARM64 cpp -x c mingw-w64-crt/lib-common/msvcrt.def.in -Wp,-w -undef -P -Imingw-w64-crt/def-include -D$PLAT | sed -E 's/\s*;.*//' | LC_ALL=C sort -u --- mingw-w64-crt/lib-common/msvcrt.def.in | 1737 ++++++++++++------------ 1 file changed, 900 insertions(+), 837 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index cb9b25dd854f..0b516aec9da1 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -4,6 +4,7 @@ EXPORTS #include "func.def.in" #include "msvcrt-common.def.in" +; List of I386 C++ mangled symbols which matches the first I386 version of msvcrt.dll (Microsoft Visual C++ 4.2) #ifdef DEF_I386 ; public: __thiscall __non_rtti_object::__non_rtti_object(class __non_rtti_object const &) ??0__non_rtti_object@@QAE@ABV0@@Z ; has WINAPI (@4) @@ -101,48 +102,10 @@ EXPORTS ?unexpected@@YAXXZ ; public: virtual char const *__thiscall exception::what(void)const ?what@exception@@UBEPBDXZ -; void *__cdecl operator new[](unsigned int) -??_U@YAPAXI@Z -; void __cdecl operator delete[](void *) -??_V@YAXPAX@Z -; private: __thiscall bad_cast::bad_cast(char const *const *) -??0bad_cast@@AAE@PBQBD@Z ; has WINAPI (@4) -; public: __thiscall bad_cast::bad_cast(char const *) -??0bad_cast@@QAE@PBD@Z ; has WINAPI (@4) -; public: void __thiscall bad_cast::__dflt_ctor_closure(void) -??_Fbad_cast@@QAEXXZ -; public: void __thiscall bad_typeid::__dflt_ctor_closure(void) -??_Fbad_typeid@@QAEXXZ -; public: __thiscall exception::exception(char const *const &,int) -??0exception@@QAE@ABQBDH@Z ; has WINAPI (@8) -; void *__cdecl operator new(unsigned int,int,char const *,int) -??2@YAPAXIHPBDH@Z -; void *__cdecl operator new[](unsigned int,int,char const *,int) -??_U@YAPAXIHPBDH@Z -$I10_OUTPUT -#endif - -#ifdef DEF_I386 -_CIacos -_CIasin -_CIatan -_CIatan2 -_CIcos -_CIcosh -_CIexp -_CIfmod -_CIlog -_CIlog10 -_CIpow -_CIsin -_CIsinh -_CIsqrt -_CItan -_CItanh #endif +; List of X64 C++ mangled symbols which matches the first X64 version of msvcrt.dll (Windows Server 2003 SP1 / Windows XP x64) #ifdef DEF_X64 -; $I10_OUTPUT is available in Windows XP x64, but was removed in Windows Vista x64 ; public: __cdecl __non_rtti_object::__non_rtti_object(class __non_rtti_object const & __ptr64) __ptr64 ; GCC = __ZN17__non_rtti_objectC2ERKS_ ??0__non_rtti_object@@QEAA@AEBV0@@Z @@ -253,16 +216,10 @@ _CItanh ?unexpected@@YAXXZ ; public: virtual char const * __ptr64 __cdecl exception::what(void)const __ptr64 ?what@exception@@UEBAPEBDXZ -; private: __thiscall bad_cast::bad_cast(char const *const *) -??0bad_cast@@AAE@PBQBD@Z -; public: __thiscall bad_cast::bad_cast(char const *const &) -??0bad_cast@@QAE@ABQBD@Z -; void *__ptr64 __cdecl operator new(unsigned __int64,int,char const *__ptr64,int) -??2@YAPEAX_KHPEBDH@Z -; void *__ptr64 __cdecl operator new[](unsigned __int64,int,char const *__ptr64,int) -??_U@YAPEAX_KHPEBDH@Z #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 #ifdef DEF_ARM32 ??0__non_rtti_object@@QAA@ABV0@@Z ??0__non_rtti_object@@QAA@PBD@Z @@ -312,38 +269,31 @@ _CItanh ?what@exception@@UBAPBDXZ #endif -_CrtCheckMemory -_CrtDbgBreak -_CrtDbgReport -_CrtDbgReportV -_CrtDbgReportW -_CrtDbgReportWV -_CrtDoForAllClientObjects -_CrtDumpMemoryLeaks -_CrtIsMemoryBlock -_CrtIsValidHeapPointer -_CrtIsValidPointer -_CrtMemCheckpoint -_CrtMemDifference -_CrtMemDumpAllObjectsSince -_CrtMemDumpStatistics -_CrtReportBlockType -_CrtSetAllocHook -_CrtSetBreakAlloc -_CrtSetDbgBlockType -_CrtSetDbgFlag -_CrtSetDumpClient -_CrtSetReportFile -_CrtSetReportHook -_CrtSetReportHook2 -_CrtSetReportMode +; List of ARM64 C++ mangled symbols +; TODO: Fill this list with all symbols from the first ARM64 version of msvcrt.dll -F_I386(_CallMemberFunction0@8) -F_ARM32(_CallMemberFunction0) -F_I386(_CallMemberFunction1@12) -F_ARM32(_CallMemberFunction1) -F_I386(_CallMemberFunction2@16) -F_ARM32(_CallMemberFunction2) + +; This is list of symbols available in the original Microsoft Visual C++ 4.2 version of msvcrt.dll +; Same set of symbols are available in Windows NT 4.0 OS system version of msvcrt.dll +F_I386($I10_OUTPUT) ; $I10_OUTPUT is available also in Windows XP x64, but was removed in Windows Vista x64 +#ifdef DEF_I386 +_CIacos +_CIasin +_CIatan +_CIatan2 +_CIcos +_CIcosh +_CIexp +_CIfmod +_CIlog +_CIlog10 +_CIpow +_CIsin +_CIsinh +_CIsqrt +_CItan +_CItanh +#endif F_I386(_CxxThrowException@8) F_NON_I386(_CxxThrowException) F_I386(_EH_prolog) @@ -352,109 +302,30 @@ _Getmonths _Gettnames _HUGE DATA _Strftime -_W_Getdays -_W_Getmonths -_W_Gettnames -_Wcsftime _XcptFilter -__AdjustPointer -F_NON_I386(__C_specific_handler) -__CppXcptFilter -F_X86_ANY(__CxxCallUnwindDelDtor) -F_I386(__CxxCallUnwindDtor) -F_I386(__CxxCallUnwindVecDtor) -F_I386(__CxxDetectRethrow) -F_I386(__CxxExceptionFilter) F_X86_ANY(__CxxFrameHandler) -__CxxFrameHandler2 -__CxxFrameHandler3 F_I386(__CxxLongjmpUnwind@4) -F_I386(__CxxQueryExceptionSize) -F_I386(__CxxRegisterExceptionObject) -F_I386(__CxxUnregisterExceptionObject) -__DestructExceptionObject -__ExceptionPtrAssign -__ExceptionPtrCompare -__ExceptionPtrCopy -__ExceptionPtrCopyException -__ExceptionPtrCreate -__ExceptionPtrCurrentException -__ExceptionPtrDestroy -__ExceptionPtrRethrow -__ExceptionPtrSwap -__ExceptionPtrToBool __RTCastToVoid __RTDynamicCast __RTtypeid __STRINGTOLD -F_NON_I386(___lc_codepage_func) -___lc_collate_cp_func -___lc_handle_func -; ___mb_cur_max_func exists (on all archs) since XP. Earlier, this function -; was never used, but the __mb_cur_max data symbol was accessed instead. -; For i386 we provide this function as a statically linked helper, that uses -; __mb_cur_max, to avoid forcing a dependency on XP here. -F_NON_I386(___mb_cur_max_func) -F_X86_ANY(___setlc_active_func) -F_X86_ANY(___unguarded_readlc_active_add_func) __argc DATA __argv DATA __badioinfo DATA __crtCompareStringA -__crtCompareStringW __crtGetLocaleInfoW -__crtGetStringTypeW __crtLCMapStringA -__crtLCMapStringW -__daylight __dllonexit __doserrno -__dstbias __fpecode __getmainargs F_X86_ANY(__initenv DATA) -__iob_func __isascii __iscsym __iscsymf F_X86_ANY(__lc_codepage DATA) -F_X86_ANY(__lc_collate_cp DATA) __lc_handle DATA __lconv_init -#ifdef DEF_I386 -__libm_sse2_acos -__libm_sse2_acosf -__libm_sse2_asin -__libm_sse2_asinf -__libm_sse2_atan -__libm_sse2_atan2 -__libm_sse2_atanf -__libm_sse2_cos -__libm_sse2_cosf -__libm_sse2_exp -__libm_sse2_expf -__libm_sse2_log -__libm_sse2_log10 -__libm_sse2_log10f -__libm_sse2_logf -__libm_sse2_pow -__libm_sse2_powf -__libm_sse2_sin -__libm_sse2_sinf -__libm_sse2_tan -__libm_sse2_tanf -_libm_sse2_acos_precise -_libm_sse2_asin_precise -_libm_sse2_atan_precise -_libm_sse2_cos_precise -_libm_sse2_exp_precise -_libm_sse2_log10_precise -_libm_sse2_log_precise -_libm_sse2_pow_precise -_libm_sse2_sin_precise -_libm_sse2_sqrt_precise -_libm_sse2_tan_precise -#endif __mb_cur_max DATA #ifdef DEF_I386 __p___argc @@ -472,7 +343,6 @@ __p__environ __p__fileinfo __p__fmode __p__iob -__p__mbcasemap __p__mbctype __p__osver __p__pctype @@ -487,33 +357,21 @@ __p__winminor __p__winver __p__wpgmptr #endif -__pctype_func __pioinfo DATA -__pwctype_func __pxcptinfoptrs __set_app_type F_X86_ANY(__setlc_active DATA) __setusermatherr -__strncnt F_X86_ANY(__threadhandle) F_X86_ANY(__threadid) __toascii -__uncaught_exception __unDName -__unDNameEx F_X86_ANY(__unguarded_readlc_active DATA) __wargv DATA -__wcserror -__wcserror_s -__wcsncnt __wgetmainargs F_X86_ANY(__winitenv DATA) F_I386(_abnormal_termination) -F_NON_I386(_abs64) -F_NON_I386(llabs == _abs64) -F_NON_I386(imaxabs == _abs64) _access -; _access_s Replaced by emu _acmdln DATA #ifdef DEF_I386 _adj_fdiv_m16i@4 @@ -532,111 +390,49 @@ _adj_fptan _adjust_fdiv DATA #endif _aexit_rtn DATA -_aligned_free -_aligned_free_dbg -_aligned_malloc -_aligned_malloc_dbg -_aligned_offset_malloc -_aligned_offset_malloc_dbg -_aligned_offset_realloc -_aligned_offset_realloc_dbg -_aligned_realloc -_aligned_realloc_dbg _amsg_exit _assert _atodbl -_atodbl_l -_atof_l -_atoflt_l _atoi64 -atoll == _atoi64 -_atoi64_l -_atoll_l == _atoi64_l -_atoi_l -_atol_l _atoldbl -_atoldbl_l F_X86_ANY(_beep) _beginthread _beginthreadex _c_exit _cabs DATA _callnewh -_calloc_dbg _cexit _cgets -; _cgets_s replaced by emu -_cgetws -; _cgetws_s replaced by emu _chdir _chdrive _chgsign -F_NON_I386(_chgsignf) _chmod -F_I386(_chkesp) _chsize -; _chsize_s replaced by emu -_chvalidator -_chvalidator_l _clearfp _close _commit _commode DATA _control87 _controlfp -; _controlfp_s replaced by emu _copysign -F_NON_I386(_copysignf) _cprintf -_cprintf_l -_cprintf_p -_cprintf_p_l -; _cprintf_s Replaced by emu -; _cprintf_s_l likewise. _cputs -_cputws _creat -F_ARM_ANY(_create_locale) -_crtAssertBusy -_crtBreakAlloc -_crtDbgFlag _cscanf -_cscanf_l -_cscanf_s -_cscanf_s_l -F_ARM_ANY(_ctime32) -F_I386(_ctime32 == ctime) -; _ctime32_s replaced by emu -_ctime64 -; _ctime64_s replaced by emu _ctype F_I386(DATA) _cwait -_cwprintf -_cwprintf_l -_cwprintf_p -_cwprintf_p_l -; _cwprintf_s Replaced by emu -; _cwprintf_s_l Likewise. -_cwscanf -_cwscanf_l -_cwscanf_s -_cwscanf_s_l -F_X86_ANY(_dstbias DATA) _daylight DATA -_difftime32 F_I386(== difftime) -_difftime64 +F_X86_ANY(_dstbias DATA) _dup _dup2 _ecvt -_ecvt_s -_endthread -_endthreadex +_endthread ; In Windows XP and Windows XP SP1 OS system version of msvcrt.dll this symbol has name _endthread@4, in all other versions (including XP SP3) it has standard name +_endthreadex ; In Windows XP and Windows XP SP1 OS system version of msvcrt.dll this symbol has name _endthreadex@4, in all other versions (including XP SP3) it has standard name F_X86_ANY(_environ DATA) _eof _errno F_I386(_except_handler2) F_I386(_except_handler3) -F_I386(_except_handler4_common) _execl _execle _execlp @@ -647,10 +443,8 @@ _execvp _execvpe _exit _expand -_expand_dbg _fcloseall _fcvt -_fcvt_s _fdopen _fgetchar _fgetwchar @@ -661,90 +455,29 @@ _filelengthi64 _fileno _findclose _findfirst -F32(_findfirst32 == _findfirst) -_findfirst64 _findfirsti64 -F32(_findfirst32i64 == _findfirsti64) -F64(_findfirst64i32 == _findfirst) _findnext -F32(_findnext32 == _findnext) -_findnext64 _findnexti64 -F32(_findnext32i64 == _findnexti64) -F64(_findnext64i32 == _findnext) _finite -F_NON_I386(_finitef) _flsbuf _flushall _fmode DATA _fpclass -F_X64(_fpclassf) F_I386(_fpieee_flt) F_ARM_ANY(_fpieee_flt) _fpreset DATA -_fprintf_l -_fprintf_p -_fprintf_p_l -_fprintf_s_l _fputchar _fputwchar -_free_dbg -F_ARM_ANY(_free_locale) -_freea -_freea_s -_fscanf_l -_fscanf_s_l -_fseeki64 _fsopen _fstat -F32(_fstat32 == _fstat) -_fstat64 _fstati64 -F64(_fstat64i32 == _fstat) _ftime -F_I386(_ftime32 == _ftime) -F_NON_I386(_ftime32) -_ftime32_s -_ftime64 -_ftime64_s -F32(_ftime_s == _ftime32_s) -F64(_ftime_s == _ftime64_s) F_I386(_ftol) -F_I386(_ftol2) -F_I386(_ftol2_sse) -F_I386(_ftol2_sse_excpt) _fullpath -_fullpath_dbg _futime -F_I386(_futime32 == _futime) -F_NON_I386(_futime32) -_futime64 -_fwprintf_l -_fwprintf_p -_fwprintf_p_l -_fwprintf_s_l -_fwscanf_l -_fwscanf_s_l _gcvt -_gcvt_s -F_ARM_ANY(_get_current_locale) -_get_doserrno -_get_environ -_get_errno -_get_fileinfo -_get_fmode -F_X86_ANY(_get_heap_handle) _get_osfhandle -F_X86_ANY(_get_osplatform) -F_X86_ANY(_get_osver) -;_get_output_format provided by emu -_get_pgmptr F_X86_ANY(_get_sbh_threshold) -_get_wenviron -F_X86_ANY(_get_winmajor) -F_X86_ANY(_get_winminor) -F_X86_ANY(_get_winver) -_get_wpgmptr _getch _getche _getcwd @@ -758,14 +491,8 @@ _getmbcp F_X86_ANY(_getpid) F_X86_ANY(_getsystime) _getw -_getwch -_getwche F_X86_ANY(_getws) F_I386(_global_unwind2) -_gmtime32 F_I386(== gmtime) -; _gmtime32_s replaced by emu -_gmtime64 -; _gmtime64_s replaced by emu F_X86_ANY(_heapadd) _heapchk _heapmin @@ -773,300 +500,129 @@ F_X86_ANY(_heapset) F_X86_ANY(_heapused) _heapwalk _hypot -F_NON_I386(_hypotf) _i64toa -_i64toa_s _i64tow -_i64tow_s _initterm -_initterm_e F_I386(_inp) F_I386(_inpd) F_I386(_inpw) -_invalid_parameter _iob DATA -_isalnum_l -_isalpha_l _isatty -_iscntrl_l _isctype -_isctype_l -_isdigit_l -_isgraph_l -_isleadbyte_l -_islower_l _ismbbalnum -_ismbbalnum_l _ismbbalpha -_ismbbalpha_l _ismbbgraph -_ismbbgraph_l _ismbbkalnum -_ismbbkalnum_l _ismbbkana -_ismbbkana_l _ismbbkprint -_ismbbkprint_l _ismbbkpunct -_ismbbkpunct_l _ismbblead -_ismbblead_l _ismbbprint -_ismbbprint_l _ismbbpunct -_ismbbpunct_l _ismbbtrail -_ismbbtrail_l _ismbcalnum -_ismbcalnum_l _ismbcalpha -_ismbcalpha_l _ismbcdigit -_ismbcdigit_l _ismbcgraph -_ismbcgraph_l _ismbchira -_ismbchira_l _ismbckata -_ismbckata_l _ismbcl0 -_ismbcl0_l _ismbcl1 -_ismbcl1_l _ismbcl2 -_ismbcl2_l _ismbclegal -_ismbclegal_l _ismbclower -_ismbclower_l _ismbcprint -_ismbcprint_l _ismbcpunct -_ismbcpunct_l _ismbcspace -_ismbcspace_l _ismbcsymbol -_ismbcsymbol_l _ismbcupper -_ismbcupper_l _ismbslead -_ismbslead_l _ismbstrail -_ismbstrail_l _isnan -F_X64(_isnanf) -_isprint_l -_isspace_l -_isupper_l -_iswalnum_l -_iswalpha_l -_iswcntrl_l -_iswctype_l -_iswdigit_l -_iswgraph_l -_iswlower_l -_iswprint_l -_iswpunct_l -_iswspace_l -_iswupper_l -_iswxdigit_l -_isxdigit_l _itoa -_itoa_s _itow -_itow_s _j0 _j1 _jn _kbhit _lfind F_X86_ANY(_loaddll) -_lfind_s -F_X64(_local_unwind) F_I386(_local_unwind2) -F_I386(_local_unwind4) -_localtime32 F_I386(== localtime) -; _localtime32_s replaced by emu -_localtime64 -; _localtime64_s replaced by emu _lock _locking _logb -F_NON_I386(_logbf) F_I386(_longjmpex) _lrotl _lrotr _lsearch -_lsearch_s _lseek _lseeki64 _ltoa -_ltoa_s _ltow -_ltow_s _makepath -_makepath_s -_malloc_dbg _mbbtombc -_mbbtombc_l _mbbtype -_mbcasemap F_NON_I386(DATA) _mbccpy -_mbccpy_l -_mbccpy_s -_mbccpy_s_l _mbcjistojms -_mbcjistojms_l _mbcjmstojis -_mbcjmstojis_l _mbclen -_mbclen_l _mbctohira -_mbctohira_l _mbctokata -_mbctokata_l _mbctolower -_mbctolower_l _mbctombb -_mbctombb_l _mbctoupper -_mbctoupper_l _mbctype DATA -_mblen_l _mbsbtype -_mbsbtype_l _mbscat -_mbscat_s -_mbscat_s_l _mbschr -_mbschr_l _mbscmp -_mbscmp_l _mbscoll -_mbscoll_l _mbscpy -_mbscpy_s -_mbscpy_s_l _mbscspn -_mbscspn_l _mbsdec -_mbsdec_l _mbsdup _mbsicmp -_mbsicmp_l _mbsicoll -_mbsicoll_l _mbsinc -_mbsinc_l _mbslen -_mbslen_l _mbslwr -_mbslwr_l -_mbslwr_s -_mbslwr_s_l _mbsnbcat -_mbsnbcat_l -_mbsnbcat_s -_mbsnbcat_s_l _mbsnbcmp -_mbsnbcmp_l _mbsnbcnt -_mbsnbcnt_l _mbsnbcoll -_mbsnbcoll_l _mbsnbcpy -_mbsnbcpy_l -_mbsnbcpy_s -_mbsnbcpy_s_l _mbsnbicmp -_mbsnbicmp_l _mbsnbicoll -_mbsnbicoll_l _mbsnbset -_mbsnbset_l -_mbsnbset_s -_mbsnbset_s_l _mbsncat -_mbsncat_l -_mbsncat_s -_mbsncat_s_l _mbsnccnt -_mbsnccnt_l _mbsncmp -_mbsncmp_l _mbsncoll -_mbsncoll_l _mbsncpy -_mbsncpy_l -_mbsncpy_s -_mbsncpy_s_l _mbsnextc -_mbsnextc_l _mbsnicmp -_mbsnicmp_l _mbsnicoll -_mbsnicoll_l _mbsninc -_mbsninc_l -_mbsnlen -_mbsnlen_l _mbsnset -_mbsnset_l -_mbsnset_s -_mbsnset_s_l _mbspbrk -_mbspbrk_l _mbsrchr -_mbsrchr_l _mbsrev -_mbsrev_l _mbsset -_mbsset_l -_mbsset_s -_mbsset_s_l _mbsspn -_mbsspn_l _mbsspnp -_mbsspnp_l _mbsstr -_mbsstr_l _mbstok -_mbstok_l -_mbstok_s -_mbstok_s_l -_mbstowcs_l -_mbstowcs_s_l _mbstrlen -_mbstrlen_l -_mbstrnlen -_mbstrnlen_l _mbsupr -_mbsupr_l -_mbsupr_s -_mbsupr_s_l -_mbtowc_l _memccpy -F_ARM_ANY(_memcpy_strict_align) _memicmp -_memicmp_l _mkdir -_mkgmtime -_mkgmtime32 -_mkgmtime64 _mktemp -; _mktemp_s replaced by emu -F_I386(_mktime32 == mktime) -F_ARM_ANY(_mktime32) -_mktime64 _msize -F_NON_I386(_msize_dbg) -F_I386(_msize_debug) _nextafter -F_X64(_nextafterf) _onexit _open _open_osfhandle -F_X86_ANY(_osplatform DATA) _osver DATA F_I386(_outp) F_I386(_outpd) @@ -1076,27 +632,17 @@ _pctype DATA _pgmptr DATA _pipe _popen -_printf_l -_printf_p -_printf_p_l -_printf_s_l _purecall _putch _putenv -_putenv_s _putw -_putwch _putws _pwctype DATA _read -_realloc_dbg -_resetstkoflw _rmdir _rmtmp _rotl -F_NON_I386(_rotl64) _rotr -F_NON_I386(_rotr64) #ifdef DEF_I386 _safe_fdiv _safe_fdivr @@ -1104,58 +650,21 @@ _safe_fprem _safe_fprem1 #endif _scalb -F_X64(_scalbf) -_scanf_l -_scanf_s_l -F_NON_I386(_scprintf) ; i386 _scprintf replaced by emu -_scprintf_l -_scprintf_p_l -_scwprintf -_scwprintf_l -_scwprintf_p_l _searchenv -_searchenv_s F_I386(_seh_longjmp_unwind@4) -F_I386(_seh_longjmp_unwind4@4) -_set_controlfp -_set_doserrno -F_ARM_ANY(_set_errno) _set_error_mode -_set_fileinfo -_set_fmode F_X86_ANY(_set_sbh_threshold) -; _set_output_format provided by emu -F_I386(_set_SSE2_enable) F_X86_ANY(_seterrormode) _setjmp F_I386(_setjmp3) -F_NON_I386(_setjmpex) F_X86_ANY(_setmaxstdio) _setmbcp _setmode F_X86_ANY(_setsystime) F_X86_ANY(_sleep) _snprintf -_snprintf_c -_snprintf_c_l -_snprintf_l -_snprintf_s -_snprintf_s_l -_snscanf -_snscanf_l -_snscanf_s -_snscanf_s_l _snwprintf -snwprintf == _snwprintf -_snwprintf_l -_snwprintf_s -_snwprintf_s_l -_snwscanf -_snwscanf_l -_snwscanf_s -_snwscanf_s_l _sopen -; _sopen_s replaced by emu _spawnl _spawnle _spawnlp @@ -1165,224 +674,65 @@ _spawnve _spawnvp _spawnvpe _splitpath -_splitpath_s -_sprintf_l -_sprintf_p_l -_sprintf_s_l -_sscanf_l -_sscanf_s_l _stat -_stat64 _stati64 -F32(_stat32 == _stat) -F64(_stat64i32 == _stat) _statusfp _strcmpi -_strcoll_l _strdate -; _strdate_s replaced by emu _strdup -_strdup_dbg _strerror -_strerror_s _stricmp -_stricmp_l _stricoll -_stricoll_l _strlwr -_strlwr_l -_strlwr_s -_strlwr_s_l _strncoll -_strncoll_l _strnicmp -_strnicmp_l _strnicoll -_strnicoll_l _strnset -_strnset_s _strrev _strset -_strset_s _strtime -; _strtime_s replaced by emu -_strtod_l -_strtoi64 -strtoll == _strtoi64 -strtoimax == _strtoi64 -_strtoi64_l -_strtoll_l == _strtoi64_l -_strtoimax_l == _strtoi64_l -_strtol_l -_strtoui64 -strtoull == _strtoui64 -strtoumax == _strtoui64 -_strtoui64_l -_strtoull_l == _strtoui64_l -_strtoumax_l == _strtoui64_l -_strtoul_l _strupr -_strupr_l -_strupr_s -_strupr_s_l -_strxfrm_l _swab -_swprintf == swprintf -_swprintf_c -_swprintf_c_l -_swprintf_p_l -_swprintf_s_l -_swscanf_l -_swscanf_s_l _sys_errlist DATA _sys_nerr DATA _tell _telli64 _tempnam -_tempnam_dbg -F_I386(_time32 == time) -F_ARM_ANY(_time32) -_time64 _timezone DATA _tolower -_tolower_l _toupper -_toupper_l -_towlower_l -_towupper_l _tzname DATA _tzset _ui64toa -_ui64toa_s _ui64tow -_ui64tow_s _ultoa -_ultoa_s _ultow -_ultow_s _umask -; _umask_s replaced by emu _ungetch -_ungetwch _unlink F_X86_ANY(_unloaddll) _unlock _utime -F_I386(_utime32 == _utime) -F_NON_I386(_utime32) -_utime64 -_vcprintf -_vcprintf_l -_vcprintf_p -_vcprintf_p_l -; _vcprintf_s Replaced by emu -; _vcprintf_s_l Likewise. -_vcwprintf -_vcwprintf_l -_vcwprintf_p -_vcwprintf_p_l -; _vcwprintf_s Replaced by emu -; _vcwprintf_s_l Likewise. -_vfprintf_l -_vfprintf_p -_vfprintf_p_l -_vfprintf_s_l -_vfwprintf_l -_vfwprintf_p -_vfwprintf_p_l -_vfwprintf_s_l -_vprintf_l -_vprintf_p -_vprintf_p_l -_vprintf_s_l -F_NON_I386(_vscprintf) ; i386 _vscprintf replaced by emu -_vscprintf_l -_vscprintf_p_l -_vscwprintf -_vscwprintf_l -_vscwprintf_p_l _vsnprintf -_vsnprintf_c -_vsnprintf_c_l -_vsnprintf_l -_vsnprintf_s -_vsnprintf_s_l _vsnwprintf -vsnwprintf == _vsnwprintf -_vsnwprintf_l -_vsnwprintf_s -_vsnwprintf_s_l -_vsprintf_l -_vsprintf_p -_vsprintf_p_l -_vsprintf_s_l -_vswprintf F_I386(== vswprintf) -_vswprintf_c -_vswprintf_c_l -_vswprintf_l -_vswprintf_p_l -_vswprintf_s_l -_vwprintf_l -_vwprintf_p -_vwprintf_p_l -_vwprintf_s_l _waccess -; _waccess_s Replaced by emu _wasctime -; _wasctime_s Replaced by emu -F_NON_I386(_wassert) _wchdir _wchmod _wcmdln DATA _wcreat -_wcscoll_l _wcsdup -_wcsdup_dbg -_wcserror -_wcserror_s -_wcsftime_l _wcsicmp -_wcsicmp_l _wcsicoll -_wcsicoll_l _wcslwr -_wcslwr_l -_wcslwr_s -_wcslwr_s_l _wcsncoll -_wcsncoll_l _wcsnicmp -_wcsnicmp_l _wcsnicoll -_wcsnicoll_l _wcsnset -_wcsnset_s _wcsrev _wcsset -_wcsset_s -_wcstod_l -_wcstoi64 -_wcstoi64_l -_wcstol_l -_wcstombs_l -_wcstombs_s_l -_wcstoui64 -_wcstoui64_l -_wcstoul_l _wcsupr -_wcsupr_l -_wcsupr_s -_wcsupr_s_l -_wcsxfrm_l _wctime -F_I386(_wctime32 == _wctime) -F_ARM_ANY(_wctime32) -; _wctime32_s replaced by emu -_wctime64 -; _wctime64_s replaced by emu -_wctomb_l -_wctomb_s_l -_wctype F_X86_ANY(_wenviron DATA) _wexecl _wexecle @@ -1394,59 +744,34 @@ _wexecvp _wexecvpe _wfdopen _wfindfirst -F32(_wfindfirst32 == _wfindfirst) -_wfindfirst64 _wfindfirsti64 -F32(_wfindfirst32i64 == _wfindfirsti64) -F64(_wfindfirst64i32 == _wfindfirst) _wfindnext -F32(_wfindnext32 == _wfindnext) -_wfindnext64 _wfindnexti64 -F32(_wfindnext32i64 == _wfindnexti64) -F64(_wfindnext64i32 == _wfindnext) _wfopen -_wfopen_s _wfreopen -_wfreopen_s _wfsopen _wfullpath -_wfullpath_dbg _wgetcwd _wgetdcwd _wgetenv -_wgetenv_s _winmajor DATA _winminor DATA -_winput_s F_X86_ANY(_winver DATA) _wmakepath -_wmakepath_s _wmkdir _wmktemp -; _wmktemp_s replaced by emu _wopen -_woutput_s _wperror _wpgmptr DATA _wpopen -_wprintf_l -_wprintf_p -_wprintf_p_l -_wprintf_s_l _wputenv -_wputenv_s _wremove _wrename _write _wrmdir -_wscanf_l -_wscanf_s_l _wsearchenv -_wsearchenv_s _wsetlocale _wsopen -_wsopen_s _wspawnl _wspawnle _wspawnlp @@ -1456,81 +781,45 @@ _wspawnve _wspawnvp _wspawnvpe _wsplitpath -_wsplitpath_s _wstat -_wstat64 _wstati64 -F32(_wstat32 == _wstat) -F64(_wstat64i32 == _wstat) _wstrdate -; _wstrdate_s replaced by emu _wstrtime -; _wstrtime_s replaced by emu _wsystem _wtempnam -_wtempnam_dbg _wtmpnam -_wtmpnam_s -_wtof -_wtof_l _wtoi _wtoi64 -_wtoi64_l -_wtoi_l _wtol -_wtol_l _wunlink _wutime -F_I386(_wutime32 == _wutime) -F_NON_I386(_wutime32) -_wutime64 _y0 _y1 _yn abort abs acos -F_NON_I386(acosf F_X86_ANY(DATA)) -F_ARM_ANY(acosl == acos) asctime -; asctime_s replaced by emu asin -F_NON_I386(asinf F_X86_ANY(DATA)) -F_ARM_ANY(asinl == asin) atan atan2 F_X86_ANY(DATA) -F_NON_I386(atan2f F_X86_ANY(DATA)) -F_ARM_ANY(atan2l == atan2) -F_NON_I386(atanf F_X86_ANY(DATA)) -F_ARM_ANY(atanl == atan) atexit DATA atof atoi atol bsearch -bsearch_s -F_ARM_ANY(btowc) calloc ceil F_X86_ANY(DATA) -F_NON_I386(ceilf F_X86_ANY(DATA)) -F_ARM_ANY(ceill == ceil) clearerr -clearerr_s clock cos F_X86_ANY(DATA) -F_NON_I386(cosf F_X86_ANY(DATA)) -F_ARM_ANY(cosl == cos) cosh -F_NON_I386(coshf DATA) ctime difftime div exit exp F_X86_ANY(DATA) -F_NON_I386(expf F_X86_ANY(DATA)) -F_ARM_ANY(expl == exp) fabs DATA -F_ARM_ANY(fabsf) fclose feof ferror @@ -1541,16 +830,9 @@ fgets fgetwc fgetws floor F_X86_ANY(DATA) -F_NON_I386(floorf F_X86_ANY(DATA)) -F_ARM_ANY(floorl == floor) fmod F_X86_ANY(DATA) -F_NON_I386(fmodf F_X86_ANY(DATA)) -F_ARM_ANY(fmodl == fmod) fopen -fopen_s fprintf -__ms_fprintf == fprintf -fprintf_s fputc fputs fputwc @@ -1558,25 +840,17 @@ fputws fread free freopen -freopen_s frexp DATA fscanf -__ms_fscanf == fscanf -fscanf_s fseek fsetpos ftell fwprintf -__ms_fwprintf == fwprintf -fwprintf_s fwrite fwscanf -__ms_fwscanf == fwscanf -fwscanf_s getc getchar getenv -getenv_s F_X86_ANY(gets) getwc getwchar @@ -1614,184 +888,973 @@ localeconv localtime log F_X86_ANY(DATA) log10 -F_NON_I386(log10f F_X86_ANY(DATA)) -F_ARM_ANY(log10l == log10) -F_NON_I386(logf F_X86_ANY(DATA)) -F_ARM_ANY(logl == log) longjmp malloc mblen -F_ARM_ANY(mbrlen) -F_ARM_ANY(mbrtowc) -mbsdup_dbg -F_ARM_ANY(mbsrtowcs) -mbsrtowcs_s mbstowcs -mbstowcs_s mbtowc memchr memcmp memcpy -; memcpy_s replaced by emu memmove -; memmove_s replaced by emu memset mktime modf DATA -F_NON_I386(modff DATA) perror pow DATA -F_NON_I386(powf DATA) printf -__ms_printf == printf -printf_s putc putchar puts putwc putwchar qsort -qsort_s raise rand -; rand_s replaced by emu realloc remove rename rewind scanf -__ms_scanf == scanf -scanf_s setbuf -F_NON_I386(setjmp) setlocale setvbuf signal sin F_X86_ANY(DATA) -F_NON_I386(sinf F_X86_ANY(DATA)) -F_ARM_ANY(sinl == sin) -; if we implement sinh, we can set it DATA only. -sinh -F_NON_I386(sinhf DATA) +sinh ; if we implement sinh, we can set it DATA only. sprintf -__ms_sprintf == sprintf -; sprintf_s replaced by emu sqrt DATA -F_NON_I386(sqrtf DATA) srand sscanf -__ms_sscanf == sscanf -sscanf_s strcat -strcat_s strchr strcmp strcoll strcpy -strcpy_s strcspn strerror -; strerror_s replaced by emu strftime strlen strncat -strncat_s strncmp strncpy -strncpy_s -; strnlen replaced by emu strpbrk strrchr strspn strstr strtod strtok -strtok_s strtol strtoul strxfrm swprintf -__ms_swprintf == swprintf -swprintf_s swscanf -__ms_swscanf == swscanf -swscanf_s system tan -F_NON_I386(tanf F_X86_ANY(DATA)) -F_ARM_ANY(tanl == tan) -; if we implement tanh, we can set it to DATA only. -tanh -F_ARM_ANY(tanhf) +tanh ; if we implement tanh, we can set it to DATA only. time F_NON_I386(== _time64) tmpfile -tmpfile_s tmpnam -tmpnam_s tolower toupper towlower towupper ungetc ungetwc -F_ARM_ANY(utime) vfprintf -__ms_vfprintf == vfprintf -vfprintf_s vfwprintf -__ms_vfwprintf == vfwprintf -vfwprintf_s vprintf -__ms_vprintf == vprintf -vprintf_s vsprintf -__ms_vsprintf == vsprintf -; vsprintf_s replaced by emu vswprintf -__ms_vswprintf == vswprintf -vswprintf_s vwprintf -__ms_vwprintf == vwprintf -vwprintf_s -F_ARM_ANY(wcrtomb) -wcrtomb_s wcscat -wcscat_s wcschr wcscmp wcscoll wcscpy -wcscpy_s wcscspn wcsftime wcslen wcsncat -wcsncat_s wcsncmp wcsncpy -wcsncpy_s -; We provide replacement implementation in libmingwex -F_ARM_ANY(wcsnlen) wcspbrk wcsrchr -F_ARM_ANY(wcsrtombs) -wcsrtombs_s wcsspn wcsstr wcstod wcstok -wcstok_s wcstol wcstombs -wcstombs_s wcstoul wcsxfrm -F_ARM_ANY(wctob) wctomb -wctomb_s wprintf -__ms_wprintf == wprintf -wprintf_s wscanf -__ms_wscanf == wscanf -wscanf_s + +; These symbols were added in Microsoft Visual C++ 5.0 SP1 and Windows 98 First Edition OS system versions of msvcrt.dll +; They are not available in Microsoft Visual C++ 4.2, nor in 5.0 and neither in Windows NT 4.0 OS system version +F_I386(__p__mbcasemap) +_mbcasemap F_NON_I386(DATA) + +; These symbols were added in Microsoft Visual C++ 6.0 and Windows 98 Second Edition OS system versions of msvcrt.dll +F_X86_ANY(__lc_collate_cp DATA) +__unDNameEx +F_I386(_chkesp) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; This is end of the list of symbols available in the original Microsoft Visual C++ versions of msvcrt.dll ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +; These symbols were added in Windows ME and Windows 2000 OS system versions of msvcrt.dll +#ifdef DEF_I386 +; void *__cdecl operator new[](unsigned int) +??_U@YAPAXI@Z +; void __cdecl operator delete[](void *) +??_V@YAXPAX@Z +#endif +_ctime64 +_findfirst64 +_findnext64 +_fstat64 +_ftime64 +_futime64 +_gmtime64 +_localtime64 +_mktime64 +F_X86_ANY(_osplatform DATA) +_stat64 +_time64 +_utime64 +_wctime64 +_wfindfirst64 +_wfindnext64 +_wstat64 +_wutime64 + +; These symbols were added in Windows 2000 SP4 OS system version of msvcrt.dll +F_X86_ANY(_get_heap_handle) ; _get_heap_handle is not available in Windows XP and Windows XP SP1 OS system versions of msvcrt.dll, but is in XP SP3 + +; These symbols were added in Windows XP OS system version of msvcrt.dll +#ifdef DEF_I386 +; private: __thiscall bad_cast::bad_cast(char const *const *) +??0bad_cast@@AAE@PBQBD@Z ; has WINAPI (@4) +; public: __thiscall bad_cast::bad_cast(char const *) +??0bad_cast@@QAE@PBD@Z ; has WINAPI (@4) +; public: void __thiscall bad_cast::__dflt_ctor_closure(void) +??_Fbad_cast@@QAEXXZ +; public: void __thiscall bad_typeid::__dflt_ctor_closure(void) +??_Fbad_typeid@@QAEXXZ +#endif +__uncaught_exception +F_I386(__CxxCallUnwindDtor) +F_I386(__CxxDetectRethrow) +F_I386(__CxxExceptionFilter) +F_I386(__CxxQueryExceptionSize) +F_I386(__CxxRegisterExceptionObject) +F_I386(__CxxUnregisterExceptionObject) +__DestructExceptionObject +F_NON_I386(___lc_codepage_func) ; i386 ___lc_codepage_func replaced by emu +___lc_handle_func +F_NON_I386(___mb_cur_max_func) ; i386 ___mb_cur_max_func replaced by emu +F_X86_ANY(___setlc_active_func) +F_X86_ANY(___unguarded_readlc_active_add_func) +__crtCompareStringW +__crtGetStringTypeW +__crtLCMapStringW +__iob_func +__pctype_func +__wcserror +_aligned_free +_aligned_malloc +_aligned_offset_malloc +_aligned_offset_realloc +_aligned_realloc +_cgetws +_cputws +_cwprintf +_cwscanf +_getwch +_getwche +_putwch +_resetstkoflw +F_NON_I386(_scprintf) ; i386 _scprintf replaced by emu +_scwprintf +F_I386(_set_SSE2_enable) +_snscanf +_snwscanf +_strtoi64 +_strtoui64 +_ungetwch +F_NON_I386(_vscprintf) ; i386 _vscprintf replaced by emu +_vscwprintf +_wcserror +_wcstoi64 +_wcstoui64 +_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 +___lc_collate_cp_func +__pwctype_func +F_NON_I386(_abs64) ; i386 _abs64 replaced by emu +_mkgmtime +_mkgmtime64 +F_NON_I386(_rotl64) ; i386 _rotl64 replaced by emu +F_NON_I386(_rotr64) ; i386 _rotr64 replaced by emu +_wctype + +; These symbols were added in Windows Server 2003 SP1 and Windows XP x64 OS system version of msvcrt.dll +#ifdef DEF_I386 +; public: __thiscall exception::exception(char const *const &,int) +??0exception@@QAE@ABQBDH@Z ; has WINAPI (@8) +#endif +F_NON_I386(__C_specific_handler) +__CppXcptFilter +F_NON_I386(_chgsignf) +F_NON_I386(_copysignf) +F_NON_I386(_finitef) +F_X64(_fpclassf) +F_NON_I386(_hypotf) +F_X64(_isnanf) +F_X64(_local_unwind) +F_NON_I386(_logbf) +F_X64(_nextafterf) +F_X64(_scalbf) +F_NON_I386(_setjmpex) +F_NON_I386(acosf F_X86_ANY(DATA)) ; i386 acosf provided by emu +F_NON_I386(asinf F_X86_ANY(DATA)) ; i386 asinf provided by emu +F_NON_I386(atan2f F_X86_ANY(DATA)) ; i386 atan2f provided by emu +F_NON_I386(atanf F_X86_ANY(DATA)) ; i386 atanf provided by emu +F_NON_I386(ceilf F_X86_ANY(DATA)) ; i386 ceilf provided by emu +F_NON_I386(cosf F_X86_ANY(DATA)) ; i386 cosf provided by emu +F_NON_I386(coshf DATA) ; i386 coshf provided by emu +F_NON_I386(expf F_X86_ANY(DATA)) ; i386 expf provided by emu +F_NON_I386(floorf F_X86_ANY(DATA)) ; i386 floorf provided by emu +F_NON_I386(fmodf F_X86_ANY(DATA)) ; i386 fmodf provided by emu +F_NON_I386(log10f F_X86_ANY(DATA)) ; i386 log10f provided by emu +F_NON_I386(logf F_X86_ANY(DATA)) ; i386 logf provided by emu +F_NON_I386(modff DATA) ; i386 modff provided by emu +F_NON_I386(powf DATA) ; i386 powf provided by emu +F_NON_I386(setjmp) +F_NON_I386(sinf F_X86_ANY(DATA)) ; i386 sinf provided by emu +F_NON_I386(sinhf DATA) ; i386 sinhf provided by emu +F_NON_I386(sqrtf DATA) ; i386 sqrtf provided by emu +F_NON_I386(tanf F_X86_ANY(DATA)) ; i386 tanf provided by emu + +; These symbols were added in Windows Vista OS system version of msvcrt.dll +#ifdef DEF_I386 +; void *__cdecl operator new(unsigned int,int,char const *,int) +??2@YAPAXIHPBDH@Z +; void *__cdecl operator new[](unsigned int,int,char const *,int) +??_U@YAPAXIHPBDH@Z +#endif +#ifdef DEF_X64 +; private: __thiscall bad_cast::bad_cast(char const *const *) +??0bad_cast@@AAE@PBQBD@Z +; public: __thiscall bad_cast::bad_cast(char const *const &) +??0bad_cast@@QAE@ABQBD@Z +; void *__ptr64 __cdecl operator new(unsigned __int64,int,char const *__ptr64,int) +??2@YAPEAX_KHPEBDH@Z +; void *__ptr64 __cdecl operator new[](unsigned __int64,int,char const *__ptr64,int) +??_U@YAPEAX_KHPEBDH@Z +#endif +_CrtCheckMemory +_CrtDbgBreak +_CrtDbgReport +_CrtDbgReportV +_CrtDbgReportW +_CrtDbgReportWV +_CrtDoForAllClientObjects +_CrtDumpMemoryLeaks +_CrtIsMemoryBlock +_CrtIsValidHeapPointer +_CrtIsValidPointer +_CrtMemCheckpoint +_CrtMemDifference +_CrtMemDumpAllObjectsSince +_CrtMemDumpStatistics +_CrtReportBlockType +_CrtSetAllocHook +_CrtSetBreakAlloc +_CrtSetDbgBlockType +_CrtSetDbgFlag +_CrtSetDumpClient +_CrtSetReportFile +_CrtSetReportHook +_CrtSetReportHook2 +_CrtSetReportMode +F_X86_ANY(__CxxCallUnwindDelDtor) +__CxxFrameHandler3 +__daylight +__dstbias +#ifdef DEF_I386 +__libm_sse2_acos +__libm_sse2_acosf +__libm_sse2_asin +__libm_sse2_asinf +__libm_sse2_atan +__libm_sse2_atan2 +__libm_sse2_atanf +__libm_sse2_cos +__libm_sse2_cosf +__libm_sse2_exp +__libm_sse2_expf +__libm_sse2_log +__libm_sse2_log10 +__libm_sse2_log10f +__libm_sse2_logf +__libm_sse2_pow +__libm_sse2_powf +__libm_sse2_sin +__libm_sse2_sinf +__libm_sse2_tan +__libm_sse2_tanf +#endif +__strncnt +__wcserror_s +__wcsncnt +; _access_s replaced by emu +_aligned_free_dbg +_aligned_malloc_dbg +_aligned_offset_malloc_dbg +_aligned_offset_realloc_dbg +_aligned_realloc_dbg +_atodbl_l +_atof_l +_atoflt_l +_atoi64_l +_atoi_l +_atol_l +_atoldbl_l +_calloc_dbg +; _cgets_s replaced by emu +; _cgetws_s replaced by emu +; _chsize_s replaced by emu +_chvalidator +_chvalidator_l +; _controlfp_s replaced by emu +_cprintf_l +_cprintf_p +_cprintf_p_l +; _cprintf_s replaced by emu +; _cprintf_s_l replaced by emu +_crtAssertBusy +_crtBreakAlloc +_crtDbgFlag +_cscanf_l +_cscanf_s +_cscanf_s_l +; _ctime32 replaced by below aliases +F_ARM_ANY(_ctime32) +F_I386(_ctime32 == ctime) +; _ctime32_s replaced by emu +; _ctime64_s replaced by emu +_cwprintf_l +_cwprintf_p +_cwprintf_p_l +; _cwprintf_s replaced by emu +; _cwprintf_s_l replaced by emu +_cwscanf_l +_cwscanf_s +_cwscanf_s_l +_difftime32 F_I386(== difftime) ; i386 _difftime32 replaced by alias +_difftime64 +_ecvt_s +F_I386(_except_handler4_common) +_expand_dbg +_fcvt_s +_fprintf_l +_fprintf_p +_fprintf_p_l +_fprintf_s_l +_free_dbg +_freea +_freea_s +_fscanf_l +_fscanf_s_l +_fseeki64 +_ftime32 F_I386(== _ftime) ; i386 _ftime32 replaced by alias +_ftime32_s +_ftime64_s +F_I386(_ftol2) +F_I386(_ftol2_sse) +F_I386(_ftol2_sse_excpt) +_fullpath_dbg +_futime32 F_I386(== _futime) ; i386 _futime32 replaced by alias +_fwprintf_l +_fwprintf_p +_fwprintf_p_l +_fwprintf_s_l +_fwscanf_l +_fwscanf_s_l +_gcvt_s +_get_doserrno +_get_environ +_get_errno +_get_fileinfo +_get_fmode +F_X86_ANY(_get_osplatform) +F_X86_ANY(_get_osver) +; _get_output_format replaced by emu +_get_pgmptr +_get_wenviron +F_X86_ANY(_get_winmajor) +F_X86_ANY(_get_winminor) +F_X86_ANY(_get_winver) +_get_wpgmptr +_gmtime32 F_I386(== gmtime) ; i386 _gmtime32 replaced by alias +; _gmtime32_s replaced by emu +; _gmtime64_s replaced by emu +_i64toa_s +_i64tow_s +_initterm_e +_invalid_parameter +_isalnum_l +_isalpha_l +_iscntrl_l +_isctype_l +_isdigit_l +_isgraph_l +_isleadbyte_l +_islower_l +_ismbbalnum_l +_ismbbalpha_l +_ismbbgraph_l +_ismbbkalnum_l +_ismbbkana_l +_ismbbkprint_l +_ismbbkpunct_l +_ismbblead_l +_ismbbprint_l +_ismbbpunct_l +_ismbbtrail_l +_ismbcalnum_l +_ismbcalpha_l +_ismbcdigit_l +_ismbcgraph_l +_ismbchira_l +_ismbckata_l +_ismbcl0_l +_ismbcl1_l +_ismbcl2_l +_ismbclegal_l +_ismbclower_l +_ismbcprint_l +_ismbcpunct_l +_ismbcspace_l +_ismbcsymbol_l +_ismbcupper_l +_ismbslead_l +_ismbstrail_l +_isprint_l +_isspace_l +_isupper_l +_iswalnum_l +_iswalpha_l +_iswcntrl_l +_iswctype_l +_iswdigit_l +_iswgraph_l +_iswlower_l +_iswprint_l +_iswpunct_l +_iswspace_l +_iswupper_l +_iswxdigit_l +_isxdigit_l +_itoa_s +_itow_s +_lfind_s +F_I386(_local_unwind4) +_localtime32 F_I386(== localtime) ; i386 _localtime32 replaced by alias +; _localtime32_s replaced by emu +; _localtime64_s replaced by emu +_lsearch_s +_ltoa_s +_ltow_s +_makepath_s +_malloc_dbg +_mbbtombc_l +_mbccpy_l +_mbccpy_s +_mbccpy_s_l +_mbcjistojms_l +_mbcjmstojis_l +_mbclen_l +_mbctohira_l +_mbctokata_l +_mbctolower_l +_mbctombb_l +_mbctoupper_l +_mblen_l +_mbsbtype_l +_mbscat_s +_mbscat_s_l +_mbschr_l +_mbscmp_l +_mbscoll_l +_mbscpy_s +_mbscpy_s_l +_mbscspn_l +_mbsdec_l +_mbsicmp_l +_mbsicoll_l +_mbsinc_l +_mbslen_l +_mbslwr_l +_mbslwr_s +_mbslwr_s_l +_mbsnbcat_l +_mbsnbcat_s +_mbsnbcat_s_l +_mbsnbcmp_l +_mbsnbcnt_l +_mbsnbcoll_l +_mbsnbcpy_l +_mbsnbcpy_s +_mbsnbcpy_s_l +_mbsnbicmp_l +_mbsnbicoll_l +_mbsnbset_l +_mbsnbset_s +_mbsnbset_s_l +_mbsncat_l +_mbsncat_s +_mbsncat_s_l +_mbsnccnt_l +_mbsncmp_l +_mbsncoll_l +_mbsncpy_l +_mbsncpy_s +_mbsncpy_s_l +_mbsnextc_l +_mbsnicmp_l +_mbsnicoll_l +_mbsninc_l +_mbsnlen_l +_mbsnset_l +_mbsnset_s +_mbsnset_s_l +_mbspbrk_l +_mbsrchr_l +_mbsrev_l +_mbsset_l +_mbsset_s +_mbsset_s_l +_mbsspn_l +_mbsspnp_l +_mbsstr_l +_mbstok_l +_mbstok_s +_mbstok_s_l +_mbstowcs_l +_mbstowcs_s_l +_mbstrlen_l +_mbstrnlen_l +_mbsupr_l +_mbsupr_s +_mbsupr_s_l +_mbtowc_l +_mbsnlen +_mbstrnlen +_memicmp_l +_mkgmtime32 +; _mktemp_s replaced by emu +; _mktime32 replaced by below aliases +F_I386(_mktime32 == mktime) +F_ARM_ANY(_mktime32) +F_NON_I386(_msize_dbg) +F_I386(_msize_debug) +_printf_l +_printf_p +_printf_p_l +_printf_s_l +_putenv_s +_realloc_dbg +_scanf_l +_scanf_s_l +_scprintf_l +_scprintf_p_l +_scwprintf_l +_scwprintf_p_l +_searchenv_s +F_I386(_seh_longjmp_unwind4@4) +_set_controlfp +_set_doserrno +F_ARM_ANY(_set_errno) ; i386 and x64 _set_errno replaced by emu +_set_fileinfo +_set_fmode +; _set_output_format replaced by emu +_snprintf_c +_snprintf_c_l +_snprintf_l +_snprintf_s +_snprintf_s_l +_snscanf_l +_snscanf_s +_snscanf_s_l +_snwprintf_l +_snwprintf_s +_snwprintf_s_l +_snwscanf_l +_snwscanf_s +_snwscanf_s_l +; _sopen_s replaced by emu +_splitpath_s +_sprintf_l +_sprintf_p_l +_sprintf_s_l +_sscanf_l +_sscanf_s_l +_strcoll_l +; _strdate_s replaced by emu +_strdup_dbg +_strerror_s +_stricmp_l +_stricoll_l +_strlwr_l +_strlwr_s +_strlwr_s_l +_strncoll_l +_strnicmp_l +_strnicoll_l +_strnset_s +_strset_s +; _strtime_s replaced by emu +_strtod_l +_strtoi64_l +_strtol_l +_strtoui64_l +_strtoul_l +_strupr_l +_strupr_s +_strupr_s_l +_strxfrm_l +_swprintf == swprintf ; replaced by alias to swprintf +_swprintf_c +_swprintf_c_l +_swprintf_p_l +_swprintf_s_l +_swscanf_l +_swscanf_s_l +_tempnam_dbg +; _time32 replaced by below aliases +F_I386(_time32 == time) +F_ARM_ANY(_time32) +_tolower_l +_toupper_l +_towlower_l +_towupper_l +_ui64toa_s +_ui64tow_s +_ultoa_s +_ultow_s +; _umask_s replaced by emu +_utime32 F_I386(== _utime) ; i386 _utime32 replaced by alias +_vcprintf +_vcprintf_l +_vcprintf_p +_vcprintf_p_l +; _vcprintf_s replaced by emu +; _vcprintf_s_l replaced by emu +_vcwprintf +_vcwprintf_l +_vcwprintf_p +_vcwprintf_p_l +; _vcwprintf_s replaced by emu +; _vcwprintf_s_l replaced by emu +_vfprintf_l +_vfprintf_p +_vfprintf_p_l +_vfprintf_s_l +_vfwprintf_l +_vfwprintf_p +_vfwprintf_p_l +_vfwprintf_s_l +_vprintf_l +_vprintf_p +_vprintf_p_l +_vprintf_s_l +_vscprintf_l +_vscprintf_p_l +_vscwprintf_l +_vscwprintf_p_l +_vsnprintf_c +_vsnprintf_c_l +_vsnprintf_l +_vsnprintf_s +_vsnprintf_s_l +_vsnwprintf_l +_vsnwprintf_s +_vsnwprintf_s_l +_vsprintf_l +_vsprintf_p +_vsprintf_p_l +_vsprintf_s_l +_vswprintf F_I386(== vswprintf) ; i386 _vswprintf replaced by alias +_vswprintf_c +_vswprintf_c_l +_vswprintf_l +_vswprintf_p_l +_vswprintf_s_l +_vwprintf_l +_vwprintf_p +_vwprintf_p_l +_vwprintf_s_l +; _waccess_s replaced by emu +; _wasctime_s replaced by emu +F_NON_I386(_wassert) ; i386 _wassert replaced by emu +_wcscoll_l +_wcsdup_dbg +_wcserror_s +_wcsftime_l +_wcsicmp_l +_wcsicoll_l +_wcslwr_l +_wcslwr_s +_wcslwr_s_l +_wcsncoll_l +_wcsnicmp_l +_wcsnicoll_l +_wcsnset_s +_wcsset_s +_wcstoi64_l +_wcstol_l +_wcstombs_l +_wcstombs_s_l +_wcstoui64_l +_wcstoul_l +_wcsupr_l +_wcsupr_s +_wcsupr_s_l +_wcsxfrm_l +; _wctime32 replaced by below aliases +F_I386(_wctime32 == _wctime) +F_ARM_ANY(_wctime32) +; _wctime32_s replaced by emu +; _wctime64_s replaced by emu +_wctomb_l +_wctomb_s_l +_wfopen_s +_wfreopen_s +_wfullpath_dbg +_wgetenv_s +_winput_s +_wmakepath_s +; _wmktemp_s replaced by emu +_woutput_s +_wprintf_l +_wprintf_p +_wprintf_p_l +_wprintf_s_l +_wputenv_s +_wscanf_l +_wscanf_s_l +_wsearchenv_s +_wsopen_s +_wsplitpath_s +; _wstrdate_s replaced by emu +; _wstrtime_s replaced by emu +_wtempnam_dbg +_wtmpnam_s +_wtof_l +_wtoi64_l +_wtoi_l +_wtol_l +_wutime32 F_I386(== _wutime) ; i386 _wutime32 replaced by alias +; asctime_s replaced by emu +bsearch_s +F_ARM_ANY(btowc) ; i386 and x64 btowc replaced by emu +clearerr_s +fopen_s +fprintf_s +freopen_s +fscanf_s +fwprintf_s +fwscanf_s +getenv_s +F_ARM_ANY(mbrlen) ; i386 and x64 mbrlen replaced by emu +F_ARM_ANY(mbrtowc) ; i386 and x64 mbrtowc replaced by emu +mbsdup_dbg +F_ARM_ANY(mbsrtowcs) ; i386 and x64 mbsrtowcs replaced by emu +mbsrtowcs_s +mbstowcs_s +; memcpy_s replaced by emu +; memmove_s replaced by emu +printf_s +qsort_s +; rand_s replaced by emu +scanf_s +; sprintf_s replaced by emu +sscanf_s +strcat_s +strcpy_s +; strerror_s replaced by emu +strncat_s +strncpy_s +; strnlen replaced by emu +strtok_s +swprintf_s +swscanf_s +F_ARM_ANY(tanhf) ; i386 tanhf provided by emu and x64 tanhf replaced by emu +tmpfile_s +tmpnam_s +F_ARM_ANY(utime) ; i386 and x64 utime replaced by alias in msvcrt-common.def.in +vfprintf_s +vfwprintf_s +vprintf_s +; vsnprintf replaced by emu +; vsprintf_s replaced by emu +vswprintf_s +vwprintf_s +F_ARM_ANY(wcrtomb) ; i386 and x64 wcrtomb replaced by emu +wcrtomb_s +wcscat_s +wcscpy_s +wcsncat_s +wcsncpy_s +F_ARM_ANY(wcsnlen) ; i386 and x64 wcsnlen replaced by emu +F_ARM_ANY(wcsrtombs) ; i386 and x64 wcsrtombs replaced by emu +wcsrtombs_s +wcstok_s +wcstombs_s +F_ARM_ANY(wctob) ; i386 and x64 wctob replaced by emu +wctomb_s +wprintf_s +wscanf_s + +; These symbols were added in Windows 8 OS system version of msvcrt.dll +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 +_wcstod_l + +; These symbols were added in Windows 8.1 OS system version of msvcrt.dll +F_I386(_CallMemberFunction0@8) +F_ARM32(_CallMemberFunction0) +F_I386(_CallMemberFunction1@12) +F_ARM32(_CallMemberFunction1) +F_I386(_CallMemberFunction2@16) +F_ARM32(_CallMemberFunction2) +__ExceptionPtrAssign +__ExceptionPtrCompare +__ExceptionPtrCopy +__ExceptionPtrCopyException +__ExceptionPtrCreate +__ExceptionPtrCurrentException +__ExceptionPtrDestroy +__ExceptionPtrRethrow +__ExceptionPtrSwap +__ExceptionPtrToBool +_W_Getdays +_W_Getmonths +_W_Gettnames +_Wcsftime +__AdjustPointer +#ifdef DEF_I386 +_libm_sse2_acos_precise +_libm_sse2_asin_precise +_libm_sse2_atan_precise +_libm_sse2_cos_precise +_libm_sse2_exp_precise +_libm_sse2_log10_precise +_libm_sse2_log_precise +_libm_sse2_pow_precise +_libm_sse2_sin_precise +_libm_sse2_sqrt_precise +_libm_sse2_tan_precise +#endif + +; These symbols were added in Windows 10 OS system version of msvcrt.dll +; TODO: fill them + +; This is list of some symbols not available on X86 but are available in some ARM version of msvcrt.dll +; TODO: move them to appropriate OS system version section (version in which they were introduced) +F_ARM_ANY(_memcpy_strict_align) +F_ARM_ANY(fabsf) ; i386 and x64 fabsf provided by emu + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; This is end of the list of symbols available in the Windows OS system versions of msvcrt.dll ; +; All symbols defined below this line are not available in any version of msvcrt.dll library ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +; This is list of some symbols added in msvcr80.dll which can be defined as aliases to some msvcrt.dll symbols +F32(_findfirst32 == _findfirst) +F32(_findfirst32i64 == _findfirsti64) +F64(_findfirst64i32 == _findfirst) +F32(_findnext32 == _findnext) +F32(_findnext32i64 == _findnexti64) +F64(_findnext64i32 == _findnext) +F32(_fstat32 == _fstat) +F64(_fstat64i32 == _fstat) +F32(_stat32 == _stat) +F64(_stat64i32 == _stat) +F32(_wfindfirst32 == _wfindfirst) +F32(_wfindfirst32i64 == _wfindfirsti64) +F64(_wfindfirst64i32 == _wfindfirst) +F32(_wfindnext32 == _wfindnext) +F32(_wfindnext32i64 == _wfindnexti64) +F64(_wfindnext64i32 == _wfindnext) +F32(_wstat32 == _wstat) +F64(_wstat64i32 == _wstat) + +; This is list of some symbols added in msvcr120.dll which can be defined as aliases to some msvcrt.dll symbols +_atoll_l == _atoi64_l +_strtoimax_l == _strtoi64_l +_strtoll_l == _strtoi64_l +_strtoull_l == _strtoui64_l +_strtoumax_l == _strtoui64_l +atoll == _atoi64 +F_NON_I386(imaxabs == _abs64) ; i386 imaxabs alias provided by emu +F_NON_I386(llabs == _abs64) ; i386 llabs alias provided by emu +strtoimax == _strtoi64 +strtoll == _strtoi64 +strtoull == _strtoui64 +strtoumax == _strtoui64 + +; This is list of internal symbol aliases for printf/scanf functions used by mingw +__ms_fprintf == fprintf +__ms_fscanf == fscanf +__ms_fwprintf == fwprintf +__ms_fwscanf == fwscanf +__ms_printf == printf +__ms_scanf == scanf +__ms_sprintf == sprintf +__ms_sscanf == sscanf +__ms_swprintf == swprintf +__ms_swscanf == swscanf +__ms_vfprintf == vfprintf +__ms_vfwprintf == vfwprintf +__ms_vprintf == vprintf +__ms_vsprintf == vsprintf +__ms_vswprintf == vswprintf +__ms_vwprintf == vwprintf +__ms_wprintf == wprintf +__ms_wscanf == wscanf + +; This is list of additional symbol aliases not available in any CRT library +; FIXME: check if these really are needed +F32(_ftime_s == _ftime32_s) +F64(_ftime_s == _ftime64_s) +snwprintf == _snwprintf +vsnwprintf == _vsnwprintf + +; This is list of ARM long double symbols defined as alias to regular double symbols as on ARM, long double is equal to regular double +F_ARM_ANY(acosl == acos) +F_ARM_ANY(asinl == asin) +F_ARM_ANY(atan2l == atan2) +F_ARM_ANY(atanl == atan) +F_ARM_ANY(ceill == ceil) +F_ARM_ANY(cosl == cos) +F_ARM_ANY(expl == exp) +F_ARM_ANY(floorl == floor) +F_ARM_ANY(fmodl == fmod) +F_ARM_ANY(log10l == log10) +F_ARM_ANY(logl == log) +F_ARM_ANY(sinl == sin) +F_ARM_ANY(tanl == tan) -- 2.20.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public