Re: [Mingw-w64-public] [PATCH 6/6] crt: msvcr80.def.in: Fix __fls_getvalue@4 and __fls_setvalue@8 symbols
On Mon, 22 Apr 2024, LIU Hao wrote: 在 2024-04-20 00:54, Pali Rohár 写道: Same change as in commit 9b17c3374aa9eb809938bbcf7cf37093e842a4a7 for the I386 msvcr80.def.in file. --- mingw-w64-crt/lib32/msvcr80.def.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Thanks for these patches. I have pushed them to master now. Thanks, they looked good to me too. // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 02/10] crt: Remove _getwc_nolock symbol alias
Symbol _getwc_nolock is provided via mingw-w64-crt/stdio/_getwc_nolock.c --- mingw-w64-crt/lib32/msvcr80.def.in | 1 - mingw-w64-crt/lib32/msvcr90.def.in | 1 - mingw-w64-crt/lib32/msvcr90d.def.in | 1 - mingw-w64-crt/lib64/msvcr80.def.in | 1 - mingw-w64-crt/lib64/msvcr90.def.in | 1 - mingw-w64-crt/lib64/msvcr90d.def.in | 1 - 6 files changed, 6 deletions(-) diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in index 35ff219accd9..f16d3a8f755b 100644 --- a/mingw-w64-crt/lib32/msvcr80.def.in +++ b/mingw-w64-crt/lib32/msvcr80.def.in @@ -472,7 +472,6 @@ _fdopen _fflush_nolock _fgetchar _fgetwc_nolock -_getwc_nolock == _fgetwc_nolock _fgetwchar _filbuf _filelength diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in index d563fcb1c7f0..ea0411224301 100644 --- a/mingw-w64-crt/lib32/msvcr90.def.in +++ b/mingw-w64-crt/lib32/msvcr90.def.in @@ -473,7 +473,6 @@ _fdopen _fflush_nolock _fgetchar _fgetwc_nolock -_getwc_nolock == _fgetwc_nolock _fgetwchar _filbuf _filelength diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in index 9515d40189d3..5628be3786bb 100644 --- a/mingw-w64-crt/lib32/msvcr90d.def.in +++ b/mingw-w64-crt/lib32/msvcr90d.def.in @@ -531,7 +531,6 @@ _fdopen _fflush_nolock _fgetchar _fgetwc_nolock -_getwc_nolock == _fgetwc_nolock _fgetwchar _filbuf _filelength diff --git a/mingw-w64-crt/lib64/msvcr80.def.in b/mingw-w64-crt/lib64/msvcr80.def.in index 5108e33c5462..8f1d297ef4a8 100644 --- a/mingw-w64-crt/lib64/msvcr80.def.in +++ b/mingw-w64-crt/lib64/msvcr80.def.in @@ -414,7 +414,6 @@ _fdopen _fflush_nolock _fgetchar _fgetwc_nolock -_getwc_nolock == _fgetwc_nolock _fgetwchar _filbuf _filelength diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in index 2a74ba5b4584..7f207ad81c46 100644 --- a/mingw-w64-crt/lib64/msvcr90.def.in +++ b/mingw-w64-crt/lib64/msvcr90.def.in @@ -418,7 +418,6 @@ _fdopen _fflush_nolock _fgetchar _fgetwc_nolock -_getwc_nolock == _fgetwc_nolock _fgetwchar _filbuf _filelength diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in index 62bb124f1436..b95295a8995f 100644 --- a/mingw-w64-crt/lib64/msvcr90d.def.in +++ b/mingw-w64-crt/lib64/msvcr90d.def.in @@ -470,7 +470,6 @@ _fdopen _fflush_nolock _fgetchar _fgetwc_nolock -_getwc_nolock == _fgetwc_nolock _fgetwchar _filbuf _filelength -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 01/10] crt: Remove duplicate symbol alises for strlwr and wcslwr
These aliases are automatically added by including msvcrt-common.def.in file into every msvcr*.def.in file. --- mingw-w64-crt/lib-common/msvcr120_app.def.in | 2 -- mingw-w64-crt/lib32/crtdll.def.in| 2 -- mingw-w64-crt/lib32/msvcr100.def.in | 2 -- mingw-w64-crt/lib32/msvcr110.def.in | 2 -- mingw-w64-crt/lib32/msvcr120.def.in | 2 -- mingw-w64-crt/lib32/msvcr120d.def.in | 2 -- mingw-w64-crt/lib32/msvcr80.def.in | 2 -- mingw-w64-crt/lib32/msvcr90.def.in | 2 -- mingw-w64-crt/lib32/msvcr90d.def.in | 2 -- mingw-w64-crt/lib64/msvcr100.def.in | 2 -- mingw-w64-crt/lib64/msvcr110.def.in | 2 -- mingw-w64-crt/lib64/msvcr120.def.in | 2 -- mingw-w64-crt/lib64/msvcr120d.def.in | 2 -- mingw-w64-crt/lib64/msvcr80.def.in | 2 -- mingw-w64-crt/lib64/msvcr90.def.in | 2 -- mingw-w64-crt/lib64/msvcr90d.def.in | 2 -- 16 files changed, 32 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcr120_app.def.in b/mingw-w64-crt/lib-common/msvcr120_app.def.in index 10cf84d07d45..4204c7b265b8 100644 --- a/mingw-w64-crt/lib-common/msvcr120_app.def.in +++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in @@ -1685,7 +1685,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1848,7 +1847,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_l _wcslwr -wcslwr == _wcslwr _wcslwr_l _wcslwr_s _wcslwr_s_l diff --git a/mingw-w64-crt/lib32/crtdll.def.in b/mingw-w64-crt/lib32/crtdll.def.in index e98d70d6d099..25f13931b24c 100644 --- a/mingw-w64-crt/lib32/crtdll.def.in +++ b/mingw-w64-crt/lib32/crtdll.def.in @@ -379,7 +379,6 @@ _stricmp _stricoll _strinc _strlwr -strlwr == _strlwr _strncnt _strnextc _strnicmp @@ -415,7 +414,6 @@ _wcsdup _wcsicmp _wcsicoll _wcslwr -wcslwr == _wcslwr _wcsnicmp _wcsnset _wcsrev diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index 00d99124b1a5..a747c584751e 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -1386,7 +1386,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1547,7 +1546,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_l _wcslwr -wcslwr == _wcslwr _wcslwr_l _wcslwr_s _wcslwr_s_l diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index 2045e0a5462a..b21a518202bc 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -1519,7 +1519,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1681,7 +1680,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_l _wcslwr -wcslwr == _wcslwr _wcslwr_l _wcslwr_s _wcslwr_s_l diff --git a/mingw-w64-crt/lib32/msvcr120.def.in b/mingw-w64-crt/lib32/msvcr120.def.in index d1bc9bc15d48..0287de2597dc 100644 --- a/mingw-w64-crt/lib32/msvcr120.def.in +++ b/mingw-w64-crt/lib32/msvcr120.def.in @@ -1547,7 +1547,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1708,7 +1707,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_l _wcslwr -wcslwr == _wcslwr _wcslwr_l _wcslwr_s _wcslwr_s_l diff --git a/mingw-w64-crt/lib32/msvcr120d.def.in b/mingw-w64-crt/lib32/msvcr120d.def.in index bd95baebd705..807aaacdfd7e 100644 --- a/mingw-w64-crt/lib32/msvcr120d.def.in +++ b/mingw-w64-crt/lib32/msvcr120d.def.in @@ -1607,7 +1607,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1770,7 +1769,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_l _wcslwr -wcslwr == _wcslwr _wcslwr_l _wcslwr_s _wcslwr_s_l diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in index af4ccca60456..35ff219accd9 100644 --- a/mingw-w64-crt/lib32/msvcr80.def.in +++ b/mingw-w64-crt/lib32/msvcr80.def.in @@ -1028,7 +1028,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1187,7 +1186,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_l _wcslwr -wcslwr == _wcslwr _wcslwr_l _wcslwr_s _wcslwr_s_l diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in index b0c6fb88dc43..d563fcb1c7f0 100644 --- a/mingw-w64-crt/lib32/msvcr90.def.in +++ b/mingw-w64-crt/lib32/msvcr90.def.in @@ -1024,7 +1024,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1185,7 +1184,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_l _wcslwr -wcslwr == _wcslwr _wcslwr_l _wcslwr_s _wcslwr_s_l diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in index 3cdc83708fe6..9515d40189d3 100644 --- a/mingw-w64-crt/lib32/msvcr90d.def.in +++ b/mingw-w64-crt/lib32/msvcr90d.def.in @@ -1089,7 +1089,6 @@ _stricmp_l _stricoll _stricoll_l _strlwr -strlwr == _strlwr _strlwr_l _strlwr_s _strlwr_s_l @@ -1252,7 +1251,6 @@ _wcsicmp_l _wcsicoll _wcsicoll_
[Mingw-w64-public] [PATCH 06/10] crt: Move _atoi64 and _atoi64_l aliases to def-include/msvcrt-common.def.in
Define _atoi64 and _atoi64_l aliases based on a new WITH_ATOLL_ALIAS and WITH_ATOLL_L_ALIAS macros. --- mingw-w64-crt/def-include/msvcrt-common.def.in | 8 mingw-w64-crt/lib-common/msvcrt.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr100.def.in| 4 ++-- mingw-w64-crt/lib32/msvcr110.def.in| 4 ++-- mingw-w64-crt/lib32/msvcr70.def.in | 2 +- mingw-w64-crt/lib32/msvcr71.def.in | 2 +- mingw-w64-crt/lib32/msvcr80.def.in | 3 ++- mingw-w64-crt/lib32/msvcr90.def.in | 4 ++-- mingw-w64-crt/lib32/msvcr90d.def.in| 4 ++-- mingw-w64-crt/lib64/msvcr100.def.in| 4 ++-- mingw-w64-crt/lib64/msvcr110.def.in| 4 ++-- mingw-w64-crt/lib64/msvcr80.def.in | 3 ++- mingw-w64-crt/lib64/msvcr90.def.in | 4 ++-- mingw-w64-crt/lib64/msvcr90d.def.in| 4 ++-- 14 files changed, 32 insertions(+), 22 deletions(-) diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in b/mingw-w64-crt/def-include/msvcrt-common.def.in index 6d91e760bfae..ea05823f0829 100644 --- a/mingw-w64-crt/def-include/msvcrt-common.def.in +++ b/mingw-w64-crt/def-include/msvcrt-common.def.in @@ -164,6 +164,14 @@ ADD_UNDERSCORE(vsnprintf_s) _strcmpi == _stricmp #endif +#ifdef WITH_ATOLL_ALIAS +atoll == _atoi64 +#endif + +#ifdef WITH_ATOLL_L_ALIAS +_atoll_l == _atoi64_l +#endif + ; This is list of printf/scanf symbol aliases with __ms_ prefix #ifndef UCRTBASE __ms_fprintf == fprintf diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 899a428be650..5b383dba4e52 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -3,6 +3,8 @@ EXPORTS #define PRE_C95_SWPRINTF #define NO_STRCMPI_ALIAS +#define WITH_ATOLL_ALIAS +#define WITH_ATOLL_L_ALIAS #include "func.def.in" #include "msvcrt-common.def.in" @@ -1844,12 +1846,10 @@ 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 F_NON_I386(strtoimax == _strtoi64) ; i386 strtoimax alias provided by emu diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index 1c9e79a9b029..5cd2bc809d12 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -6,6 +6,8 @@ LIBRARY "msvcr100.dll" EXPORTS +#define WITH_ATOLL_ALIAS +#define WITH_ATOLL_L_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -738,9 +740,7 @@ _atof_l _atoflt _atoflt_l _atoi64 -atoll == _atoi64 _atoi64_l -_atoll_l == _atoi64_l _atoi_l _atol_l _atoldbl diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index a40be8f1c0f4..4c714b7e5230 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -6,6 +6,8 @@ LIBRARY "MSVCR110.dll" EXPORTS +#define WITH_ATOLL_ALIAS +#define WITH_ATOLL_L_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -862,9 +864,7 @@ _atof_l _atoflt _atoflt_l _atoi64 -atoll == _atoi64 _atoi64_l -_atoll_l == _atoi64_l _atoi_l _atol_l _atoldbl diff --git a/mingw-w64-crt/lib32/msvcr70.def.in b/mingw-w64-crt/lib32/msvcr70.def.in index 49c4a6893577..266643b4d015 100644 --- a/mingw-w64-crt/lib32/msvcr70.def.in +++ b/mingw-w64-crt/lib32/msvcr70.def.in @@ -8,6 +8,7 @@ EXPORTS #define PRE_C95_SWPRINTF #define NO_STRCMPI_ALIAS +#define WITH_ATOLL_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall __non_rtti_object::__non_rtti_object(class __non_rtti_object const &) @@ -265,7 +266,6 @@ _amsg_exit _assert _atodbl _atoi64 -atoll == _atoi64 _atoldbl _beep _beginthread diff --git a/mingw-w64-crt/lib32/msvcr71.def.in b/mingw-w64-crt/lib32/msvcr71.def.in index 6b667725b86e..000a1263b580 100644 --- a/mingw-w64-crt/lib32/msvcr71.def.in +++ b/mingw-w64-crt/lib32/msvcr71.def.in @@ -8,6 +8,7 @@ EXPORTS #define PRE_C95_SWPRINTF #define NO_STRCMPI_ALIAS +#define WITH_ATOLL_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall __non_rtti_object::__non_rtti_object(class __non_rtti_object const &) @@ -258,7 +259,6 @@ _amsg_exit _assert _atodbl _atoi64 -atoll == _atoi64 _atoldbl _beep _beginthread diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in index a26bbcf7c6dc..6e925eb7c285 100644 --- a/mingw-w64-crt/lib32/msvcr80.def.in +++ b/mingw-w64-crt/lib32/msvcr80.def.in @@ -1,6 +1,8 @@ LIBRARY "MSVCR80.dll" EXPORTS +#define WITH
[Mingw-w64-public] [PATCH 00/10] crt: Move symbol aliases from CRT def files to msvcrt-common.def.in
This patch series moves all aliases defined in crtdll.def.in, and msvcr*.def.in files into one common include file msvcrt-common.def.in. It reduces duplication of symbol alias definitions by defining symbols in more declarative manner. Moving aliases to one place uncovered that some def.in files were missing some alises (mostly for __ms_* printf/scanf symbols) or some were incorrectly defined (ctime for 64-bit msvcr90d.def.in was defined as alias to _ctime32 instead of _ctime64, or _findfirst for 64-bit msvcr120.def.in was defined as alias to symbol which does _not_ use 32-bit file length). For reference what this change affects, I'm attaching a difference which was generated for each CRT def.in file by command ($PLAT: DEF_I386 DEF_X64): cpp -x c -Wp,-w -undef -P -Imingw-w64-crt/def-include -D$PLAT | sed -E 's/\s*;.*//' | LC_ALL=C sort -u --- lib32/crtdll.def.in +++ lib32/crtdll.def.in +__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 +_findfirst32 == _findfirst +_findnext32 == _findnext +_fstat32 == _fstat +_stat32 == _stat --- lib32/msvcrt.def +++ lib32/msvcrt.def +_fstat32i64 == _fstati64 +_stat32i64 == _stati64 +_wstat32i64 == _wstati64 --- lib32/msvcrt10.def.in +++ lib32/msvcrt10.def.in +__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 +_findfirst32 == _findfirst +_findnext32 == _findnext +_fstat32 == _fstat +_stat32 == _stat --- lib32/msvcrt20.def.in +++ lib32/msvcrt20.def.in +__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 +_findfirst32 == _findfirst +_findnext32 == _findnext +_fstat32 == _fstat +_stat32 == _stat +_wfindfirst32 == _wfindfirst +_wfindnext32 == _wfindnext +_wstat32 == _wstat --- lib32/msvcrt40.def.in +++ lib32/msvcrt40.def.in +__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 +_findfirst32 == _findfirst +_findfirst32i64 == _findfirsti64 +_findnext32 == _findnext +_findnext32i64 == _findnexti64 +_fstat32 == _fstat +_fstat32i64 == _fstati64 +_stat32 == _stat +_stat32i64 == _stati64 +_wfindfirst32 == _wfindfirst +_wfindfirst32i64 == _wfindfirsti64 +_wfindnext32 == _wfindnext +_wfindnext32i64 == _wfindnexti64 +_wstat32 == _wstat +_wstat32i64 == _wstati64 --- lib32/msvcr100.def.in +++ lib32/msvcr100.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf +_findfirsti64 == _findfirst32i64 +_findnexti64 == _findnext32i64 +_futime == _futime32 +_utime == _utime32 +_wfindfirsti64 == _wfindfirst32i64 +_wfindnexti64 == _wfindnext32i64 +_wutime == _wutime32 +difftime == _difftime32 --- lib32/msvcr110.def.in +++ lib32/msvcr110.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf +_findfirsti64 == _findfirst32i64 +_findnexti64 == _findnext32i64 +_futime == _futime32 +_utime == _utime32 +_wfindfirsti64 == _wfindfirst32i64 +_wfindnexti64 == _wfindnext32i64 +_wutime == _wutime32 +difftime == _difftime32 --- lib32/msvcr120d.def.in +++ lib32/msvcr120d.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf +_findfirsti64 == _findfirst32i64 +_findnexti64 == _findnext32i64 +_futime == _futime32 +_mkgmtime == _mkgmtime32 +_strcmpi == _stricmp +_utime == _utime32 +_wctime == _wctime32 +_wfindfirsti64 == _wfindfirst32i64 +_wfindnexti64 == _wfindnext32i64 +_wutime == _wutime32 +ctime == _ctime32 +difftime == _difftime32 +mktime == _mktime32 --- lib32/msvcr120.def.in +++ lib32/msvcr120.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf +_findfirsti64 == _find
[Mingw-w64-public] [PATCH 05/10] crt: Move _strcmpi alias to def-include/msvcrt-common.def.in
Define _strcmpi alias based on a new NO_STRCMPI_ALIAS macro. --- mingw-w64-crt/def-include/msvcrt-common.def.in | 8 mingw-w64-crt/lib-common/msvcr120_app.def.in | 3 +++ mingw-w64-crt/lib-common/msvcrt.def.in | 1 + mingw-w64-crt/lib-common/ucrtbase.def.in | 1 - mingw-w64-crt/lib32/crtdll.def.in | 1 + mingw-w64-crt/lib32/msvcr100.def.in| 1 - mingw-w64-crt/lib32/msvcr110.def.in| 1 - mingw-w64-crt/lib32/msvcr70.def.in | 1 + mingw-w64-crt/lib32/msvcr71.def.in | 1 + mingw-w64-crt/lib32/msvcr80.def.in | 1 - mingw-w64-crt/lib32/msvcr90.def.in | 1 - mingw-w64-crt/lib32/msvcr90d.def.in| 1 - mingw-w64-crt/lib32/msvcrt10.def.in| 1 + mingw-w64-crt/lib32/msvcrt20.def.in| 1 + mingw-w64-crt/lib32/msvcrt40.def.in| 1 + mingw-w64-crt/lib64/msvcr100.def.in| 1 - mingw-w64-crt/lib64/msvcr110.def.in| 1 - mingw-w64-crt/lib64/msvcr80.def.in | 1 - mingw-w64-crt/lib64/msvcr90.def.in | 1 - mingw-w64-crt/lib64/msvcr90d.def.in| 1 - 20 files changed, 18 insertions(+), 11 deletions(-) diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in b/mingw-w64-crt/def-include/msvcrt-common.def.in index 4285ec5d6dc0..6d91e760bfae 100644 --- a/mingw-w64-crt/def-include/msvcrt-common.def.in +++ b/mingw-w64-crt/def-include/msvcrt-common.def.in @@ -156,6 +156,14 @@ tzname DATA == _tzname ADD_UNDERSCORE(vsnprintf_s) #endif +; This is list of various symbol aliases which are needed for compatibility +; Some symbols in some version of CRT library were added and some other symbols were removed or renamed +; This list provides some level of backward and forward compatibility + +#ifndef NO_STRCMPI_ALIAS +_strcmpi == _stricmp +#endif + ; This is list of printf/scanf symbol aliases with __ms_ prefix #ifndef UCRTBASE __ms_fprintf == fprintf diff --git a/mingw-w64-crt/lib-common/msvcr120_app.def.in b/mingw-w64-crt/lib-common/msvcr120_app.def.in index 1c7c8bde4d75..1cc7548560fc 100644 --- a/mingw-w64-crt/lib-common/msvcr120_app.def.in +++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in @@ -8,6 +8,9 @@ EXPORTS #include "func.def.in" #define NO_GETPID_ALIAS +#ifdef DEF_ARM32 +#define NO_STRCMPI_ALIAS +#endif #include "msvcrt-common.def.in" #ifdef DEF_X64 diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 5085a136ef89..899a428be650 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -2,6 +2,7 @@ LIBRARY "msvcrt.dll" EXPORTS #define PRE_C95_SWPRINTF +#define NO_STRCMPI_ALIAS #include "func.def.in" #include "msvcrt-common.def.in" diff --git a/mingw-w64-crt/lib-common/ucrtbase.def.in b/mingw-w64-crt/lib-common/ucrtbase.def.in index 000861ee3889..2d0552f277ef 100644 --- a/mingw-w64-crt/lib-common/ucrtbase.def.in +++ b/mingw-w64-crt/lib-common/ucrtbase.def.in @@ -1944,7 +1944,6 @@ _stat64 _stat64i32 _statusfp F_I386(_statusfp2) -_strcmpi == _stricmp _strcoll_l _strdate _strdate_s diff --git a/mingw-w64-crt/lib32/crtdll.def.in b/mingw-w64-crt/lib32/crtdll.def.in index c4fe47ff05fc..e1093517af6b 100644 --- a/mingw-w64-crt/lib32/crtdll.def.in +++ b/mingw-w64-crt/lib32/crtdll.def.in @@ -68,6 +68,7 @@ LIBRARY "crtdll.dll" EXPORTS #define PRE_C95_SWPRINTF +#define NO_STRCMPI_ALIAS #include "msvcrt-common.def.in" ; crtdll.dll contains 3 mangled C++ symbols diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index cc1ff77aca9f..1c9e79a9b029 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -1381,7 +1381,6 @@ _strerror _strerror_s _strftime_l _stricmp -_strcmpi == _stricmp _stricmp_l _stricoll _stricoll_l diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index 477f22be24dc..a40be8f1c0f4 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -1514,7 +1514,6 @@ _strerror _strerror_s _strftime_l _stricmp -_strcmpi == _stricmp _stricmp_l _stricoll _stricoll_l diff --git a/mingw-w64-crt/lib32/msvcr70.def.in b/mingw-w64-crt/lib32/msvcr70.def.in index be830fa15dfe..49c4a6893577 100644 --- a/mingw-w64-crt/lib32/msvcr70.def.in +++ b/mingw-w64-crt/lib32/msvcr70.def.in @@ -7,6 +7,7 @@ LIBRARY "MSVCR70.dll" EXPORTS #define PRE_C95_SWPRINTF +#define NO_STRCMPI_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall __non_rtti_object::__non_rtti_object(class __non_rtti_object const &) diff --git a/mingw-w64-crt/lib32/msvcr71.def.in b/mingw-w64-crt/lib32/msvcr71.def.in index e1a7c9c3bf41..6b667725b86e 100644 --- a/mingw-w64-crt/lib32/msvcr71.def.in +++ b/mingw-w64-crt/lib32/msvcr71.def.in @@ -7,6 +7,7 @@ LIBRARY "MSVCR71.dll" EXPORTS #define PRE_C95_SWPRINTF +#define NO_STRCMPI_ALIAS #include "msvcrt-common.def.in" ; public: __this
[Mingw-w64-public] [PATCH 04/10] crt: Move __ms_* symbol aliases to def-include/msvcrt-common.def.in
def-include/msvcrt-common.def.in is included into every msvcr*.def.in file. So move them all common __ms_* symbol aliases which removes definition duplication. msvcr* library before version 8.0 have symbols swprintf/vswprintf which represents pre-C95 variants of these functions without maxlen argument. Since version 8.0, symbols swprintf/vswprintf are not present anymore, they were renamed and have have leading underscore. Distinguish aliased symbol by a new PRE_C95_SWPRINTF macro in .def.in file. --- .../def-include/msvcrt-common.def.in | 30 +++ mingw-w64-crt/lib-common/msvcr120_app.def.in | 16 -- mingw-w64-crt/lib-common/msvcrt.def.in| 21 + mingw-w64-crt/lib32/crtdll.def.in | 1 + mingw-w64-crt/lib32/msvcr100.def.in | 16 -- mingw-w64-crt/lib32/msvcr110.def.in | 16 -- mingw-w64-crt/lib32/msvcr120.def.in | 16 -- mingw-w64-crt/lib32/msvcr120d.def.in | 16 -- mingw-w64-crt/lib32/msvcr70.def.in| 1 + mingw-w64-crt/lib32/msvcr71.def.in| 1 + mingw-w64-crt/lib32/msvcr80.def.in| 18 --- mingw-w64-crt/lib32/msvcr90.def.in| 16 -- mingw-w64-crt/lib32/msvcr90d.def.in | 16 -- mingw-w64-crt/lib32/msvcrt10.def.in | 1 + mingw-w64-crt/lib32/msvcrt20.def.in | 1 + mingw-w64-crt/lib32/msvcrt40.def.in | 1 + mingw-w64-crt/lib64/msvcr100.def.in | 16 -- mingw-w64-crt/lib64/msvcr110.def.in | 16 -- mingw-w64-crt/lib64/msvcr120.def.in | 16 -- mingw-w64-crt/lib64/msvcr120d.def.in | 16 -- mingw-w64-crt/lib64/msvcr80.def.in| 18 --- mingw-w64-crt/lib64/msvcr90.def.in| 16 -- mingw-w64-crt/lib64/msvcr90d.def.in | 16 -- mingw-w64-crt/libarm32/msvcr110.def | 16 -- mingw-w64-crt/libarm32/msvcr120_clr0400.def | 16 -- 25 files changed, 37 insertions(+), 296 deletions(-) diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in b/mingw-w64-crt/def-include/msvcrt-common.def.in index 975df5da9960..4285ec5d6dc0 100644 --- a/mingw-w64-crt/def-include/msvcrt-common.def.in +++ b/mingw-w64-crt/def-include/msvcrt-common.def.in @@ -155,3 +155,33 @@ tzname DATA == _tzname ADD_UNDERSCORE(vsnprintf_s) #endif + +; This is list of printf/scanf symbol aliases with __ms_ prefix +#ifndef UCRTBASE +__ms_fprintf == fprintf +__ms_fscanf == fscanf +__ms_fwprintf == fwprintf +__ms_fwscanf == fwscanf +__ms_printf == printf +__ms_scanf == scanf +__ms_sprintf == sprintf +__ms_sscanf == sscanf +#ifdef PRE_C95_SWPRINTF +__ms_swprintf == swprintf +#else +__ms_swprintf == _swprintf +#endif +__ms_swscanf == swscanf +__ms_vfprintf == vfprintf +__ms_vfwprintf == vfwprintf +__ms_vprintf == vprintf +__ms_vsprintf == vsprintf +#ifdef PRE_C95_SWPRINTF +__ms_vswprintf == vswprintf +#else +__ms_vswprintf == _vswprintf +#endif +__ms_vwprintf == vwprintf +__ms_wprintf == wprintf +__ms_wscanf == wscanf +#endif diff --git a/mingw-w64-crt/lib-common/msvcr120_app.def.in b/mingw-w64-crt/lib-common/msvcr120_app.def.in index 4204c7b265b8..1c7c8bde4d75 100644 --- a/mingw-w64-crt/lib-common/msvcr120_app.def.in +++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in @@ -2197,7 +2197,6 @@ F_NON_I386(fmodf) fopen fopen_s fprintf -__ms_fprintf == fprintf fprintf_s fputc fputs @@ -2210,17 +2209,14 @@ 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 @@ -2347,7 +2343,6 @@ perror pow F_NON_I386(powf) printf -__ms_printf == printf printf_s putc putchar @@ -2384,7 +2379,6 @@ scalbnf scalbnl #endif scanf -__ms_scanf == scanf scanf_s setbuf F_NON_I386(setjmp) @@ -2396,13 +2390,11 @@ F_NON_I386(sinf) sinh F_NON_I386(sinhf) sprintf -__ms_sprintf == sprintf sprintf_s sqrt F_NON_I386(sqrtf) srand sscanf -__ms_sscanf == sscanf sscanf_s strcat strcat_s @@ -2441,7 +2433,6 @@ strxfrm F_ARM32(swprintf) swprintf_s swscanf -__ms_swscanf == swscanf swscanf_s F_ARM32(system) tan @@ -2468,22 +2459,18 @@ ungetc ungetwc F_ARM32(utime) vfprintf -__ms_vfprintf == vfprintf vfprintf_s F_X86_ANY(vfscanf) F_X86_ANY(vfscanf_s) vfwprintf -__ms_vfwprintf == vfwprintf vfwprintf_s F_X86_ANY(vfwscanf) F_X86_ANY(vfwscanf_s) vprintf -__ms_vprintf == vprintf vprintf_s F_X86_ANY(vscanf) F_X86_ANY(vscanf_s) vsprintf -__ms_vsprintf == vsprintf vsprintf_s F_X86_ANY(vsscanf) F_X86_ANY(vsscanf_s) @@ -2492,7 +2479,6 @@ vswprintf_s F_X86_ANY(vswscanf) F_X86_ANY(vswscanf_s) vwprintf -__ms_vwprintf == vwprintf vwprintf_s F_X86_ANY(vwscanf) F_X86_ANY(vwscanf_s) @@ -2542,8 +2528,6 @@ F_X86_ANY(wctype) F_X86_ANY(wmemcpy_s) F_X86_ANY(wmemmove_s) wprintf -__ms_wprintf == wprintf wprintf_s wscan
[Mingw-w64-public] [PATCH 07/10] crt: Move llabs and imaxabs aliases to def-include/msvcrt-common.def.in
Define llabs and imaxabs aliases based on a new WITH_LLABS_ALIAS and WITH_IMAXABS_ALIAS macros. --- mingw-w64-crt/def-include/msvcrt-common.def.in | 7 +++ mingw-w64-crt/lib-common/msvcrt.def.in | 6 -- mingw-w64-crt/lib32/msvcr100.def.in| 2 +- mingw-w64-crt/lib32/msvcr110.def.in| 2 +- mingw-w64-crt/lib32/msvcr80.def.in | 3 +-- mingw-w64-crt/lib32/msvcr90.def.in | 3 +-- mingw-w64-crt/lib32/msvcr90d.def.in| 3 +-- mingw-w64-crt/lib64/msvcr100.def.in| 2 +- mingw-w64-crt/lib64/msvcr110.def.in| 2 +- mingw-w64-crt/lib64/msvcr80.def.in | 3 +-- mingw-w64-crt/lib64/msvcr90.def.in | 3 +-- mingw-w64-crt/lib64/msvcr90d.def.in| 3 +-- 12 files changed, 21 insertions(+), 18 deletions(-) diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in b/mingw-w64-crt/def-include/msvcrt-common.def.in index ea05823f0829..d91429763f40 100644 --- a/mingw-w64-crt/def-include/msvcrt-common.def.in +++ b/mingw-w64-crt/def-include/msvcrt-common.def.in @@ -172,6 +172,13 @@ atoll == _atoi64 _atoll_l == _atoi64_l #endif +#ifdef WITH_LLABS_ALIAS +llabs == _abs64 +imaxabs == _abs64 +#elif defined(WITH_IMAXABS_ALIAS) +imaxabs == llabs +#endif + ; This is list of printf/scanf symbol aliases with __ms_ prefix #ifndef UCRTBASE __ms_fprintf == fprintf diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 5b383dba4e52..8bfb5b59bc63 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -5,6 +5,10 @@ EXPORTS #define NO_STRCMPI_ALIAS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS +#ifndef DEF_I386 +; i386 llabs and imaxabs alias provided by emu +#define WITH_LLABS_ALIAS +#endif #include "func.def.in" #include "msvcrt-common.def.in" @@ -1850,8 +1854,6 @@ _strtoimax_l == _strtoi64_l _strtoll_l == _strtoi64_l _strtoull_l == _strtoui64_l _strtoumax_l == _strtoui64_l -F_NON_I386(imaxabs == _abs64) ; i386 imaxabs alias provided by emu -F_NON_I386(llabs == _abs64) ; i386 llabs alias provided by emu F_NON_I386(strtoimax == _strtoi64) ; i386 strtoimax alias provided by emu F_NON_I386(strtoll == _strtoi64) ; i386 strtoll alias provided by emu F_NON_I386(strtoull == _strtoui64) ; i386 strtoull alias provided by emu diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index 5cd2bc809d12..4e810dd4f20a 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -8,6 +8,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS +#define WITH_IMAXABS_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -1777,7 +1778,6 @@ labs ldexp DATA ldiv llabs -imaxabs == llabs lldiv imaxdiv == lldiv localeconv diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index 4c714b7e5230..1c6b6d045154 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -8,6 +8,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS +#define WITH_IMAXABS_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -1910,7 +1911,6 @@ labs ldexp DATA ldiv llabs -imaxabs == llabs lldiv imaxdiv == lldiv localeconv diff --git a/mingw-w64-crt/lib32/msvcr80.def.in b/mingw-w64-crt/lib32/msvcr80.def.in index 6e925eb7c285..9143ac279a85 100644 --- a/mingw-w64-crt/lib32/msvcr80.def.in +++ b/mingw-w64-crt/lib32/msvcr80.def.in @@ -3,6 +3,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS +#define WITH_LLABS_ALIAS #include "msvcrt-common.def.in" ; C++ mangled symbols @@ -333,8 +334,6 @@ __wgetmainargs __winitenv DATA _abnormal_termination _abs64 -llabs == _abs64 -imaxabs == _abs64 _access _access_s _acmdln DATA diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in index bbeb8c00ff5a..63219131a765 100644 --- a/mingw-w64-crt/lib32/msvcr90.def.in +++ b/mingw-w64-crt/lib32/msvcr90.def.in @@ -8,6 +8,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS +#define WITH_LLABS_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall std::__non_rtti_object::__non_rtti_object(class std::__non_rtti_object const &) @@ -331,8 +332,6 @@ __wgetmainargs __winitenv DATA _abnormal_termination _abs64 -llabs == _abs64 -imaxabs == _abs64 _access _access_s _acmdln DATA diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in index c93c2c7133e0..071b537b2e60 100644 --- a/mingw-w64-crt/lib32/msvcr90d.def.in +++ b/mingw-w64-crt/lib32/msvcr90d.def.in @@ -8,6 +8,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS +#define WITH_LLABS_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall std::__non_rtti_object::__non_rt
[Mingw-w64-public] [PATCH 03/10] crt: Remove _fgetc_nolock symbol alias
Symbol _fgetc_nolock is provided via mingw-w64-crt/stdio/_getc_nolock.c --- mingw-w64-crt/lib32/msvcr90.def.in | 1 - mingw-w64-crt/lib32/msvcr90d.def.in | 1 - mingw-w64-crt/lib64/msvcr90.def.in | 1 - mingw-w64-crt/lib64/msvcr90d.def.in | 1 - 4 files changed, 4 deletions(-) diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in index ea0411224301..491be2a912fe 100644 --- a/mingw-w64-crt/lib32/msvcr90.def.in +++ b/mingw-w64-crt/lib32/msvcr90.def.in @@ -563,7 +563,6 @@ _get_tzname _get_unexpected _get_wpgmptr _getc_nolock -_fgetc_nolock == _getc_nolock _getch _getch_nolock _getche diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in index 5628be3786bb..f6437524b7ff 100644 --- a/mingw-w64-crt/lib32/msvcr90d.def.in +++ b/mingw-w64-crt/lib32/msvcr90d.def.in @@ -624,7 +624,6 @@ _get_tzname _get_unexpected _get_wpgmptr _getc_nolock -_fgetc_nolock == _getc_nolock _getch _getch_nolock _getche diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in index 7f207ad81c46..4a7f62476dd5 100644 --- a/mingw-w64-crt/lib64/msvcr90.def.in +++ b/mingw-w64-crt/lib64/msvcr90.def.in @@ -509,7 +509,6 @@ _get_tzname _get_unexpected _get_wpgmptr _getc_nolock -_fgetc_nolock == _getc_nolock _getch _getch_nolock _getche diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in index b95295a8995f..980773b3263d 100644 --- a/mingw-w64-crt/lib64/msvcr90d.def.in +++ b/mingw-w64-crt/lib64/msvcr90d.def.in @@ -564,7 +564,6 @@ _get_tzname _get_unexpected _get_wpgmptr _getc_nolock -_fgetc_nolock == _getc_nolock _getch _getch_nolock _getche -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 08/10] crt: Move imaxdiv alias to def-include/msvcrt-common.def.in
Define imaxdiv alias based on a new WITH_IMAXDIV_ALIAS macro. --- mingw-w64-crt/def-include/msvcrt-common.def.in | 4 mingw-w64-crt/lib32/msvcr100.def.in| 2 +- mingw-w64-crt/lib32/msvcr110.def.in| 2 +- mingw-w64-crt/lib64/msvcr100.def.in| 2 +- mingw-w64-crt/lib64/msvcr110.def.in| 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in b/mingw-w64-crt/def-include/msvcrt-common.def.in index d91429763f40..968c5f95f530 100644 --- a/mingw-w64-crt/def-include/msvcrt-common.def.in +++ b/mingw-w64-crt/def-include/msvcrt-common.def.in @@ -179,6 +179,10 @@ imaxabs == _abs64 imaxabs == llabs #endif +#ifdef WITH_IMAXDIV_ALIAS +imaxdiv == lldiv +#endif + ; This is list of printf/scanf symbol aliases with __ms_ prefix #ifndef UCRTBASE __ms_fprintf == fprintf diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index 4e810dd4f20a..863255f7b0dc 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -9,6 +9,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS #define WITH_IMAXABS_ALIAS +#define WITH_IMAXDIV_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -1779,7 +1780,6 @@ ldexp DATA ldiv llabs lldiv -imaxdiv == lldiv localeconv log DATA ; If we implement log10, we can set it to DATA only. diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index 1c6b6d045154..c5bb95e450e8 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -9,6 +9,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS #define WITH_IMAXABS_ALIAS +#define WITH_IMAXDIV_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -1912,7 +1913,6 @@ ldexp DATA ldiv llabs lldiv -imaxdiv == lldiv localeconv log DATA ; If we implement log10, we can set it to DATA only. diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in index 6f9a8865ebcc..5efc3ccb13df 100644 --- a/mingw-w64-crt/lib64/msvcr100.def.in +++ b/mingw-w64-crt/lib64/msvcr100.def.in @@ -9,6 +9,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS #define WITH_IMAXABS_ALIAS +#define WITH_IMAXDIV_ALIAS #include "msvcrt-common.def.in" $I10_OUTPUT @@ -1735,7 +1736,6 @@ ldexp DATA ldiv llabs lldiv -imaxdiv == lldiv localeconv log DATA log10 diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in index 7f86ecb7f93a..4618592bed35 100644 --- a/mingw-w64-crt/lib64/msvcr110.def.in +++ b/mingw-w64-crt/lib64/msvcr110.def.in @@ -9,6 +9,7 @@ EXPORTS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS #define WITH_IMAXABS_ALIAS +#define WITH_IMAXDIV_ALIAS #include "msvcrt-common.def.in" $I10_OUTPUT @@ -1859,7 +1860,6 @@ ldexp ldiv llabs lldiv -imaxdiv == lldiv localeconv log log10 -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 09/10] crt: Move strto[u]ll(_l)/strto[iu]max(_l) aliases to def-include/msvcrt-common.def.in
Define symbol aliases based on a new WITH_STRTO64_ALIAS and WITH_STRTO64_L_ALIAS macros. --- mingw-w64-crt/def-include/msvcrt-common.def.in | 14 ++ mingw-w64-crt/lib-common/msvcrt.def.in | 13 +++-- mingw-w64-crt/lib32/msvcr100.def.in| 10 ++ mingw-w64-crt/lib32/msvcr110.def.in| 10 ++ mingw-w64-crt/lib32/msvcr70.def.in | 5 + mingw-w64-crt/lib32/msvcr71.def.in | 5 + mingw-w64-crt/lib32/msvcr80.def.in | 6 ++ mingw-w64-crt/lib32/msvcr90.def.in | 10 ++ mingw-w64-crt/lib32/msvcr90d.def.in| 10 ++ mingw-w64-crt/lib64/msvcr100.def.in| 10 ++ mingw-w64-crt/lib64/msvcr110.def.in| 10 ++ mingw-w64-crt/lib64/msvcr80.def.in | 6 ++ mingw-w64-crt/lib64/msvcr90.def.in | 10 ++ mingw-w64-crt/lib64/msvcr90d.def.in| 10 ++ 14 files changed, 39 insertions(+), 90 deletions(-) diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in b/mingw-w64-crt/def-include/msvcrt-common.def.in index 968c5f95f530..3e2c674d3699 100644 --- a/mingw-w64-crt/def-include/msvcrt-common.def.in +++ b/mingw-w64-crt/def-include/msvcrt-common.def.in @@ -183,6 +183,20 @@ imaxabs == llabs imaxdiv == lldiv #endif +#ifdef WITH_STRTO64_ALIAS +strtoll == _strtoi64 +strtoull == _strtoui64 +strtoimax == _strtoi64 +strtoumax == _strtoui64 +#endif + +#ifdef WITH_STRTO64_L_ALIAS +_strtoll_l == _strtoi64_l +_strtoull_l == _strtoui64_l +_strtoimax_l == _strtoi64_l +_strtoumax_l == _strtoui64_l +#endif + ; This is list of printf/scanf symbol aliases with __ms_ prefix #ifndef UCRTBASE __ms_fprintf == fprintf diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 8bfb5b59bc63..4057ff749359 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -5,9 +5,12 @@ EXPORTS #define NO_STRCMPI_ALIAS #define WITH_ATOLL_ALIAS #define WITH_ATOLL_L_ALIAS +#define WITH_STRTO64_L_ALIAS #ifndef DEF_I386 ; i386 llabs and imaxabs alias provided by emu #define WITH_LLABS_ALIAS +; i386 strtoll, strtoull, strtoimax and strtoumax alias provided by emu +#define WITH_STRTO64_ALIAS #endif #include "func.def.in" #include "msvcrt-common.def.in" @@ -1849,16 +1852,6 @@ 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 -_strtoimax_l == _strtoi64_l -_strtoll_l == _strtoi64_l -_strtoull_l == _strtoui64_l -_strtoumax_l == _strtoui64_l -F_NON_I386(strtoimax == _strtoi64) ; i386 strtoimax alias provided by emu -F_NON_I386(strtoll == _strtoi64) ; i386 strtoll alias provided by emu -F_NON_I386(strtoull == _strtoui64) ; i386 strtoull alias provided by emu -F_NON_I386(strtoumax == _strtoui64) ; i386 strtoumax alias provided by emu - ; 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) diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in index 863255f7b0dc..6313239adf7d 100644 --- a/mingw-w64-crt/lib32/msvcr100.def.in +++ b/mingw-w64-crt/lib32/msvcr100.def.in @@ -10,6 +10,8 @@ EXPORTS #define WITH_ATOLL_L_ALIAS #define WITH_IMAXABS_ALIAS #define WITH_IMAXDIV_ALIAS +#define WITH_STRTO64_ALIAS +#define WITH_STRTO64_L_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -1405,18 +1407,10 @@ _strtime _strtime_s _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 diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in index c5bb95e450e8..51e64e0967d4 100644 --- a/mingw-w64-crt/lib32/msvcr110.def.in +++ b/mingw-w64-crt/lib32/msvcr110.def.in @@ -10,6 +10,8 @@ EXPORTS #define WITH_ATOLL_L_ALIAS #define WITH_IMAXABS_ALIAS #define WITH_IMAXDIV_ALIAS +#define WITH_STRTO64_ALIAS +#define WITH_STRTO64_L_ALIAS #include "msvcrt-common.def.in" ; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void)) @@ -1538,18 +1540,10 @@ _strtime _strtime_s _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 diff --git a/mingw-w64-crt/lib32/msvcr70.def.in b/mingw-w64-crt/lib32/msvcr70.def.in index 266643b4d015..f95164edac0e 100
[Mingw-w64-public] [PATCH 10/10] crt: Move find, stat and time aliases to def-include/msvcrt-common.def.in
Add 4 new macros FIXED_SIZE_SYMBOLS, NO_I64_FIXED_SIZE, NO_FIXED_SIZE_64_ALIAS and NO_TIME_ALIAS to distinguish between different crt versions. --- .../def-include/msvcrt-common.def.in | 154 ++ mingw-w64-crt/lib-common/msvcr120_app.def.in | 33 +--- mingw-w64-crt/lib-common/msvcrt.def.in| 23 +-- mingw-w64-crt/lib-common/ucrtbase.def.in | 12 -- mingw-w64-crt/lib32/crtdll.def.in | 12 +- mingw-w64-crt/lib32/msvcr100.def.in | 18 -- mingw-w64-crt/lib32/msvcr110.def.in | 18 -- mingw-w64-crt/lib32/msvcr120.def.in | 14 -- mingw-w64-crt/lib32/msvcr120d.def.in | 14 -- mingw-w64-crt/lib32/msvcr70.def.in| 12 +- mingw-w64-crt/lib32/msvcr71.def.in| 12 +- mingw-w64-crt/lib32/msvcr80.def.in| 22 --- mingw-w64-crt/lib32/msvcr90.def.in| 18 -- mingw-w64-crt/lib32/msvcr90d.def.in | 17 -- mingw-w64-crt/lib32/msvcrt10.def.in | 12 +- mingw-w64-crt/lib32/msvcrt20.def.in | 13 +- mingw-w64-crt/lib32/msvcrt40.def.in | 12 +- mingw-w64-crt/lib64/msvcr100.def.in | 18 -- mingw-w64-crt/lib64/msvcr110.def.in | 18 -- mingw-w64-crt/lib64/msvcr120.def.in | 14 -- mingw-w64-crt/lib64/msvcr120d.def.in | 13 -- mingw-w64-crt/lib64/msvcr80.def.in| 22 --- mingw-w64-crt/lib64/msvcr90.def.in| 18 -- mingw-w64-crt/lib64/msvcr90d.def.in | 18 -- 24 files changed, 169 insertions(+), 368 deletions(-) diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in b/mingw-w64-crt/def-include/msvcrt-common.def.in index 3e2c674d3699..abca29686531 100644 --- a/mingw-w64-crt/def-include/msvcrt-common.def.in +++ b/mingw-w64-crt/def-include/msvcrt-common.def.in @@ -197,6 +197,160 @@ _strtoimax_l == _strtoi64_l _strtoumax_l == _strtoui64_l #endif +; This is list of find symbol aliases, every CRT library has either find symbols with SIZE suffix or without them +#ifdef FIXED_SIZE_SYMBOLS +F32(_findfirst32 == _findfirst) +F64(_findfirst64i32 == _findfirst) +#ifndef NO_I64_FIXED_SIZE +F32(_findfirst32i64 == _findfirsti64) +#ifndef NO_FIXED_SIZE_64_ALIAS +F64(_findfirst64 == _findfirsti64) +#endif +#endif +F32(_findnext32 == _findnext) +F64(_findnext64i32 == _findnext) +#ifndef NO_I64_FIXED_SIZE +F32(_findnext32i64 == _findnexti64) +#ifndef NO_FIXED_SIZE_64_ALIAS +F64(_findnext64 == _findnexti64) +#endif +#endif +#ifndef NO_WIDE_FIXED_SIZE +F32(_wfindfirst32 == _wfindfirst) +F64(_wfindfirst64i32 == _wfindfirst) +#ifndef NO_I64_FIXED_SIZE +F32(_wfindfirst32i64 == _wfindfirsti64) +#ifndef NO_FIXED_SIZE_64_ALIAS +F64(_wfindfirst64 == _wfindfirsti64) +#endif +#endif +F32(_wfindnext32 == _wfindnext) +F64(_wfindnext64i32 == _wfindnext) +#ifndef NO_I64_FIXED_SIZE +F32(_wfindnext32i64 == _wfindnexti64) +#ifndef NO_FIXED_SIZE_64_ALIAS +F64(_wfindnext64 == _wfindnexti64) +#endif +#endif +#endif +#else +F32(_findfirst == _findfirst32) +F64(_findfirst == _findfirst64i32) +F32(_findfirsti64 == _findfirst32i64) +F64(_findfirsti64 == _findfirst64) +F32(_findnext == _findnext32) +F64(_findnext == _findnext64i32) +F32(_findnexti64 == _findnext32i64) +F64(_findnexti64 == _findnext64) +F32(_wfindfirst == _wfindfirst32) +F64(_wfindfirst == _wfindfirst64i32) +F32(_wfindfirsti64 == _wfindfirst32i64) +F64(_wfindfirsti64 == _wfindfirst64) +F32(_wfindnext == _wfindnext32) +F64(_wfindnext == _wfindnext64i32) +F32(_wfindnexti64 == _wfindnext32i64) +F64(_wfindnexti64 == _wfindnext64) +#endif + +; This is list of stat symbol aliases, every CRT library has either stat symbols with SIZE suffix or without them +#ifdef FIXED_SIZE_SYMBOLS +F32(_fstat32 == _fstat) +F64(_fstat64i32 == _fstat) +#ifndef NO_I64_FIXED_SIZE +F32(_fstat32i64 == _fstati64) +#ifndef NO_FIXED_SIZE_64_ALIAS +F64(_fstat64 == _fstati64) +#endif +#endif +F32(_stat32 == _stat) +F64(_stat64i32 == _stat) +#ifndef NO_I64_FIXED_SIZE +F32(_stat32i64 == _stati64) +#ifndef NO_FIXED_SIZE_64_ALIAS +F64(_stat64 == _stati64) +#endif +#endif +#ifndef NO_WIDE_FIXED_SIZE +F32(_wstat32 == _wstat) +F64(_wstat64i32 == _wstat) +#ifndef NO_I64_FIXED_SIZE +F32(_wstat32i64 == _wstati64) +#ifndef NO_FIXED_SIZE_64_ALIAS +F64(_wstat64 == _wstati64) +#endif +#endif +#endif +#else +F32(_fstat == _fstat32) +F64(_fstat == _fstat64i32) +F32(_fstati64 == _fstat32i64) +F64(_fstati64 == _fstat64) +F32(_stat == _stat32) +F64(_stat == _stat64i32) +F32(_stati64 == _stat32i64) +F64(_stati64 == _stat64) +F32(_wstat == _wstat32) +F64(_wstat == _wstat64i32) +F32(_wstati64 == _wstat32i64) +F64(_wstati64 == _wstat64) +#endif + +; This is list of time symbol aliases, every CRT library except msvcrt.dll has either time symbols with SIZE suffix or without them +#ifndef NO_TIME_ALIAS +#ifdef FIXED_SIZE_SYMBOLS +F32(_ctime32 == ctime) +F64(_ctime64 == ctime) +F32(_difftime32 == difftime) +F64(_difftime64 == difftime) +F32(_ftime32 == _ftime) +F64(_ftime64 == _ftime) +F32(_futime32 ==