Where in doubt, where there were non-obvious differences between the lib32 and lib64 versions, I've kept the definitions separate instead of trying to unify them too much. (This goes mostly for the *findfirst/*findnext functions.)
Some math functions with a -f suffixed float version are available on all other platforms than i386, so they are marked with F_NON_I386(). For those functions that are marked DATA on x86 (where libmingwex provides a replacement on x86), we end up with markings like "F_NON_I386(cosf F_X86_ANY(DATA))". Signed-off-by: Martin Storsjö <mar...@martin.st> --- mingw-w64-crt/Makefile.am | 2 +- mingw-w64-crt/lib-common/msvcrt.def.in | 180 ++++- mingw-w64-crt/lib32/msvcrt.def.in | 1248 -------------------------------- 3 files changed, 151 insertions(+), 1279 deletions(-) delete mode 100644 mingw-w64-crt/lib32/msvcrt.def.in diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index 0f091ca..7ce3c0e 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am @@ -443,7 +443,7 @@ lib32_libkernel32_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS) if !W32API lib32_LIBRARIES += lib32/libmsvcrt.a -lib32_libmsvcrt_a_SOURCES = $(src_msvcrt32) lib32/msvcrt.def.in +lib32_libmsvcrt_a_SOURCES = $(src_msvcrt32) lib-common/msvcrt.def.in lib32_libmsvcrt_a_AR = $(DTDEF32) lib32/msvcrt.def && $(AR) $(ARFLAGS) lib32_libmsvcrt_a_CPPFLAGS=$(CPPFLAGS32) -D__LIBMSVCRT__ $(extra_include) $(sysincludes) EXTRA_lib32_libmsvcrt_a_DEPENDENCIES=lib32/msvcrt.def diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 732cb86..c63edd2 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -4,6 +4,25 @@ EXPORTS #include "func.def.in" #include "msvcrt-common.def.in" +#ifdef DEF_I386 +_CIacos +_CIasin +_CIatan +_CIatan2 +_CIcos +_CIcosh +_CIexp +_CIfmod +_CIlog +_CIlog10 +_CIpow +_CIsin +_CIsinh +_CIsqrt +_CItan +_CItanh +#endif + #ifdef DEF_X64 $I10_OUTPUT ; public: __cdecl __non_rtti_object::__non_rtti_object(class __non_rtti_object const & __ptr64) __ptr64 @@ -208,6 +227,7 @@ _CrtSetReportHook _CrtSetReportHook2 _CrtSetReportMode _CxxThrowException +F_I386(_EH_prolog) _Getdays _Getmonths _Gettnames @@ -221,8 +241,16 @@ _XcptFilter __AdjustPointer __C_specific_handler __CppXcptFilter +__CxxCallUnwindDtor +__CxxCallUnwindVecDtor +__CxxDetectRethrow +__CxxExceptionFilter __CxxFrameHandler __CxxFrameHandler3 +F_I386(__CxxLongjmpUnwind) +__CxxQueryExceptionSize +__CxxRegisterExceptionObject +__CxxUnregisterExceptionObject __DestructExceptionObject __RTCastToVoid __RTDynamicCast @@ -237,6 +265,7 @@ ___unguarded_readlc_active_add_func __argc DATA __argv DATA __badioinfo DATA +F_I386(__buffer_overrun) __crtCompareStringA __crtCompareStringW __crtGetLocaleInfoW @@ -254,23 +283,56 @@ __iob_func __isascii __iscsym __iscsymf +__lc_clike __lc_codepage DATA __lc_collate_cp DATA __jump_unwind __lc_handle DATA __lconv_init __mb_cur_max DATA +__p___argc +__p___argv +__p___initenv +__p___mb_cur_max +__p___wargv +__p___winitenv +__p__acmdln +__p__amblksiz +__p__commode +__p__daylight +__p__dstbias +__p__environ +__p__fileinfo +__p__fmode +__p__iob +__p__mbcasemap +__p__mbctype +__p__osver +__p__pctype +__p__pgmptr +__p__pwctype +__p__timezone +__p__tzname +__p__wcmdln +__p__wenviron +__p__winmajor +__p__winminor +__p__winver +__p__wpgmptr __pctype_func __pioinfo DATA __pwctype_func __pxcptinfoptrs +__security_error_handler __set_app_type +__set_buffer_overrun_handler __setlc_active DATA __setusermatherr __strncnt __threadhandle __threadid __toascii +__uncaught_exception __unDName __unDNameEx __unguarded_readlc_active DATA @@ -280,10 +342,27 @@ __wcserror_s __wcsncnt __wgetmainargs F_X86_ANY(__winitenv DATA) +_abnormal_termination _abs64 _access ; _access_s Replaced by emu _acmdln DATA +#ifdef DEF_I386 +_adj_fdiv_m16i +_adj_fdiv_m32 +_adj_fdiv_m32i +_adj_fdiv_m64 +_adj_fdiv_r +_adj_fdivr_m16i +_adj_fdivr_m32 +_adj_fdivr_m32i +_adj_fdivr_m64 +_adj_fpatan +_adj_fprem +_adj_fprem1 +_adj_fptan +_adjust_fdiv DATA +#endif _aexit_rtn DATA _aligned_free _aligned_free_dbg @@ -324,6 +403,7 @@ _chdrive _chgsign _chgsignf _chmod +_chkesp _chsize ; _chsize_s replaced by emu _chvalidator @@ -345,6 +425,7 @@ _cprintf_p_l ; _cprintf_s_l likewise. _cputs _cputws +_CRT_RTC_INIT _creat _create_locale _crtAssertBusy @@ -358,7 +439,7 @@ _ctime32 ; _ctime32_s replaced by emu _ctime64 ; _ctime64_s replaced by emu -_ctype +_ctypea DATA _cwait _cwprintf _cwprintf_l @@ -383,6 +464,8 @@ _endthreadex F_X86_ANY(_environ DATA) _eof _errno +F_I386(_except_handler2) +F_I386(_except_handler3) _execl _execle _execlp @@ -407,20 +490,24 @@ _filelengthi64 _fileno _findclose _findfirst +F_I386(_findfirst32 == _findfirst) _findfirst64 _findfirsti64 -_findfirst64i32 == _findfirst +F_I386(_findfirst32i64 == _findfirsti64) +F_X64(_findfirst64i32 == _findfirst) _findnext +F_I386(_findnext32 == _findnext) _findnext64 _findnexti64 -_findnext64i32 == _findnext +F_I386(_findnext32i64 == _findnexti64) +F_X64(_findnext64i32 == _findnext) _finite -_finitef +F_NON_I386(_finitef) _flsbuf _flushall _fmode DATA _fpclass -_fpclassf +F_NON_I386(_fpclassf) _fpieee_flt _fpreset DATA _fprintf_l @@ -438,6 +525,7 @@ _free_locale _fseeki64 _fsopen _fstat +_fstat32 == _fstat _fstat64 _fstati64 _fstat64i32 == _fstat @@ -446,7 +534,8 @@ _ftime32 _ftime32_s _ftime64 _ftime64_s -_ftime_s == _ftime64_s +F_I386(_ftime_s == _ftime32_s) +F_X64(_ftime_s == _ftime64_s) _fullpath _fullpath_dbg _futime @@ -487,6 +576,7 @@ _getw _getwch _getwche _getws +F_I386(_global_unwind2) _gmtime32 ; _gmtime32_s replaced by emu _gmtime64 @@ -505,6 +595,9 @@ _i64tow _i64tow_s _initterm _initterm_e +F_I386(_inp) +F_I386(_inpd) +F_I386(_inpw) _invalid_parameter _iob DATA _isalnum_l @@ -605,6 +698,7 @@ _lfind _loaddll _lfind_s F_X64(_local_unwind) +F_I386(_local_unwind2) _localtime32 ; _localtime32_s replaced by emu _localtime64 @@ -612,7 +706,8 @@ _localtime64 _lock _locking _logb -_logbf +F_NON_I386(_logbf) +F_I386(_longjmpex) _lrotl _lrotr _lsearch @@ -785,6 +880,9 @@ _open _open_osfhandle _osplatform DATA _osver DATA +F_I386(_outp) +F_I386(_outpd) +F_I386(_outpw) _pclose _pctype DATA _pgmptr DATA @@ -811,6 +909,12 @@ _rotl _rotl64 _rotr _rotr64 +#ifdef DEF_I386 +_safe_fdiv +_safe_fdivr +_safe_fprem +_safe_fprem1 +#endif _scalb F_X64(_scalbf) _scanf_l @@ -823,16 +927,22 @@ _scwprintf_l _scwprintf_p_l _searchenv _searchenv_s +F_I386(_seh_longjmp_unwind) _set_controlfp _set_doserrno _set_errno _set_error_mode _set_fileinfo _set_fmode +; Does not seem to present even on Win7 msvcrt +;_set_purecall_handler _set_sbh_threshold ; _set_output_format provided by emu +_set_SSE2_enable +_set_security_error_handler _seterrormode _setjmp +F_I386(_setjmp3) _setjmpex _setmaxstdio _setmbcp @@ -878,6 +988,7 @@ _sscanf_s_l _stat _stat64 _stati64 +_stat32 == _stat _stat64i32 == _stat _statusfp _strcmpi @@ -1068,7 +1179,7 @@ _wcsupr_s _wcsupr_s_l _wcsxfrm_l _wctime -_wctime32 +_wctime32 F_I386(== _wctime) ; _wctime32_s replaced by emu _wctime64 ; _wctime64_s replaced by emu @@ -1086,13 +1197,17 @@ _wexecvp _wexecvpe _wfdopen _wfindfirst +F_I386(_wfindfirst32 == _wfindfirst) _wfindfirst64 _wfindfirsti64 -_wfindfirst64i32 == _wfindfirst +F_I386(_wfindfirst32i64 == _wfindfirsti64) +F_X64(_wfindfirst64i32 == _wfindfirst) _wfindnext +F_I386(_wfindnext32 == _wfindnext) _wfindnext64 _wfindnexti64 -_wfindnext64i32 == _wfindnext +F_I386(_wfindnext32i64 == _wfindnexti64) +F_X64(_wfindnext64i32 == _wfindnext) _wfopen _wfopen_s _wfreopen @@ -1148,6 +1263,7 @@ _wsplitpath_s _wstat _wstat64 _wstati64 +_wstat32 == _wstat _wstat64i32 == _wstat _wstrdate ; _wstrdate_s replaced by emu @@ -1176,15 +1292,15 @@ _yn abort abs acos -acosf F_X86_ANY(DATA) +F_NON_I386(acosf F_X86_ANY(DATA)) asctime ; asctime_s replaced by emu asin -asinf F_X86_ANY(DATA) +F_NON_I386(asinf F_X86_ANY(DATA)) atan atan2 F_X86_ANY(DATA) -atan2f F_X86_ANY(DATA) -atanf F_X86_ANY(DATA) +F_NON_I386(atan2f F_X86_ANY(DATA)) +F_NON_I386(atanf F_X86_ANY(DATA)) atexit DATA atof atoi @@ -1199,17 +1315,18 @@ clearerr clearerr_s clock cos F_X86_ANY(DATA) -cosf F_X86_ANY(DATA) +F_NON_I386(cosf F_X86_ANY(DATA)) cosh -coshf DATA +F_NON_I386(coshf DATA) ctime +_ctime32 == ctime difftime div exit exp F_X86_ANY(DATA) -expf F_X86_ANY(DATA) +F_NON_I386(expf F_X86_ANY(DATA)) fabs DATA -fabsf +F_NON_I386(fabsf) fclose feof ferror @@ -1220,9 +1337,9 @@ fgets fgetwc fgetws floor DATA -floorf DATA +F_NON_I386(floorf DATA) fmod F_X86_ANY(DATA) -fmodf F_X86_ANY(DATA) +F_NON_I386(fmodf F_X86_ANY(DATA)) fopen fopen_s fprintf @@ -1256,6 +1373,7 @@ gets getwc getwchar gmtime +_gmtime32 == gmtime is_wctype isalnum isalpha @@ -1287,10 +1405,11 @@ ldexp F_X86_ANY(DATA) ldiv localeconv localtime +_localtime32 == localtime log F_X86_ANY(DATA) log10 -log10f F_X86_ANY(DATA) -logf F_X86_ANY(DATA) +F_NON_I386(log10f F_X86_ANY(DATA)) +F_NON_I386(logf F_X86_ANY(DATA)) longjmp malloc mblen @@ -1310,11 +1429,12 @@ memmove ; memmove_s replaced by emu memset mktime +_mktime32 == mktime modf DATA -modff DATA +F_NON_I386(modff DATA) perror pow F_X86_ANY(DATA) -powf F_X86_ANY(DATA) +F_NON_I386(powf F_X86_ANY(DATA)) printf printf_s putc @@ -1339,14 +1459,14 @@ setlocale setvbuf signal sin F_X86_ANY(DATA) -sinf F_X86_ANY(DATA) +F_NON_I386(sinf F_X86_ANY(DATA)) ; if we implement sinh, we can set it DATA only. sinh -sinhf DATA +F_NON_I386(sinhf DATA) sprintf ; sprintf_s replaced by emu sqrt DATA -sqrtf DATA +F_NON_I386(sqrtf DATA) srand sscanf sscanf_s @@ -1384,11 +1504,11 @@ swscanf swscanf_s system tan -tanf F_X86_ANY(DATA) +F_NON_I386(tanf F_X86_ANY(DATA)) ; if we implement tanh, we can set it to DATA only. tanh -tanhf -time == _time64 +F_NON_I386(tanhf) +time F_NON_I386(== _time64) tmpfile tmpfile_s tmpnam diff --git a/mingw-w64-crt/lib32/msvcrt.def.in b/mingw-w64-crt/lib32/msvcrt.def.in deleted file mode 100644 index 51f62cb..0000000 -- 2.7.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public