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 == _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/msvcr70.def.in +++ lib32/msvcr70.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/msvcr71.def.in +++ lib32/msvcr71.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/msvcr80.def.in +++ lib32/msvcr80.def.in +_atoll_l == _atoi64_l +_findfirsti64 == _findfirst32i64 +_findnexti64 == _findnext32i64 -_getwc_nolock == _fgetwc_nolock +_strtoimax_l == _strtoi64_l +_strtoll_l == _strtoi64_l +_strtoull_l == _strtoui64_l +_strtoumax_l == _strtoui64_l +_wfindfirsti64 == _wfindfirst32i64 +_wfindnexti64 == _wfindnext32i64 --- lib32/msvcr90d.def.in +++ lib32/msvcr90d.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf -_fgetc_nolock == _getc_nolock +_findfirsti64 == _findfirst32i64 +_findnexti64 == _findnext32i64 +_futime == _futime32 -_getwc_nolock == _fgetwc_nolock +_utime == _utime32 +_wfindfirsti64 == _wfindfirst32i64 +_wfindnext == _wfindnext32 +_wfindnexti64 == _wfindnext32i64 +_wutime == _wutime32 +difftime == _difftime32 --- lib32/msvcr90.def.in +++ lib32/msvcr90.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf -_fgetc_nolock == _getc_nolock +_findfirsti64 == _findfirst32i64 +_findnexti64 == _findnext32i64 +_futime == _futime32 -_getwc_nolock == _fgetwc_nolock +_utime == _utime32 +_wfindfirsti64 == _wfindfirst32i64 +_wfindnexti64 == _wfindnext32i64 +_wutime == _wutime32 +difftime == _difftime32 --- lib64/msvcr100.def.in +++ lib64/msvcr100.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf +_findfirsti64 == _findfirst64 +_findnexti64 == _findnext64 +_futime == _futime64 +_utime == _utime64 +_wfindfirsti64 == _wfindfirst64 +_wfindnexti64 == _wfindnext64 +_wutime == _wutime64 +difftime == _difftime64 --- lib64/msvcr110.def.in +++ lib64/msvcr110.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf +_findfirsti64 == _findfirst64 +_findnexti64 == _findnext64 +_futime == _futime64 +_utime == _utime64 +_wfindfirsti64 == _wfindfirst64 +_wfindnexti64 == _wfindnext64 +_wutime == _wutime64 +difftime == _difftime64 --- lib64/msvcr120d.def.in +++ lib64/msvcr120d.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf -_findfirst == _findfirst64 +_findfirst == _findfirst64i32 -_findnext == _findnext64 +_findfirsti64 == _findfirst64 +_findnext == _findnext64i32 +_findnexti64 == _findnext64 +_futime == _futime64 +_mkgmtime == _mkgmtime64 +_strcmpi == _stricmp +_utime == _utime64 +_wctime == _wctime64 +_wfindfirsti64 == _wfindfirst64 +_wfindnexti64 == _wfindnext64 +_wutime == _wutime64 +ctime == _ctime64 +difftime == _difftime64 +mktime == _mktime64 +time == _time64 --- lib64/msvcr120.def.in +++ lib64/msvcr120.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf -_findfirst == _findfirst64 +_findfirst == _findfirst64i32 -_findnext == _findnext64 +_findfirsti64 == _findfirst64 +_findnext == _findnext64i32 +_findnexti64 == _findnext64 +_futime == _futime64 +_mkgmtime == _mkgmtime64 +_strcmpi == _stricmp +_utime == _utime64 +_wctime == _wctime64 +_wfindfirsti64 == _wfindfirst64 +_wfindnexti64 == _wfindnext64 +_wutime == _wutime64 +ctime == _ctime64 +difftime == _difftime64 +mktime == _mktime64 --- lib64/msvcr80.def.in +++ lib64/msvcr80.def.in +_atoll_l == _atoi64_l +_findfirsti64 == _findfirst64 +_findnexti64 == _findnext64 -_getwc_nolock == _fgetwc_nolock +_strtoimax_l == _strtoi64_l +_strtoll_l == _strtoi64_l +_strtoull_l == _strtoui64_l +_strtoumax_l == _strtoui64_l +_wfindfirsti64 == _wfindfirst64 +_wfindnexti64 == _wfindnext64 --- lib64/msvcr90d.def.in +++ lib64/msvcr90d.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf -_fgetc_nolock == _getc_nolock +_findfirsti64 == _findfirst64 +_findnexti64 == _findnext64 +_futime == _futime64 -_getwc_nolock == _fgetwc_nolock +_utime == _utime64 +_wfindfirsti64 == _wfindfirst64 +_wfindnexti64 == _wfindnext64 +_wutime == _wutime64 -ctime == _ctime32 +ctime == _ctime64 +difftime == _difftime64 --- lib64/msvcr90.def.in +++ lib64/msvcr90.def.in +__ms_swprintf == _swprintf +__ms_vswprintf == _vswprintf -_fgetc_nolock == _getc_nolock +_findfirsti64 == _findfirst64 +_findnexti64 == _findnext64 +_futime == _futime64 -_getwc_nolock == _fgetwc_nolock +_utime == _utime64 +_wfindfirsti64 == _wfindfirst64 +_wfindnexti64 == _wfindnext64 +_wutime == _wutime64 +difftime == _difftime64 Pali Rohár (10): crt: Remove duplicate symbol alises for strlwr and wcslwr crt: Remove _getwc_nolock symbol alias crt: Remove _fgetc_nolock symbol alias crt: Move __ms_* symbol aliases to def-include/msvcrt-common.def.in crt: Move _strcmpi alias to def-include/msvcrt-common.def.in crt: Move _atoi64 and _atoi64_l aliases to def-include/msvcrt-common.def.in crt: Move llabs and imaxabs aliases to def-include/msvcrt-common.def.in crt: Move imaxdiv alias to def-include/msvcrt-common.def.in crt: Move strto[u]ll(_l)/strto[iu]max(_l) aliases to def-include/msvcrt-common.def.in crt: Move find, stat and time aliases to def-include/msvcrt-common.def.in .../def-include/msvcrt-common.def.in | 225 ++++++++++++++++++ mingw-w64-crt/lib-common/msvcr120_app.def.in | 54 +---- mingw-w64-crt/lib-common/msvcrt.def.in | 68 ++---- mingw-w64-crt/lib-common/ucrtbase.def.in | 13 - mingw-w64-crt/lib32/crtdll.def.in | 16 +- mingw-w64-crt/lib32/msvcr100.def.in | 55 +---- mingw-w64-crt/lib32/msvcr110.def.in | 55 +---- mingw-w64-crt/lib32/msvcr120.def.in | 32 --- mingw-w64-crt/lib32/msvcr120d.def.in | 32 --- mingw-w64-crt/lib32/msvcr70.def.in | 21 +- mingw-w64-crt/lib32/msvcr71.def.in | 21 +- mingw-w64-crt/lib32/msvcr80.def.in | 56 +---- mingw-w64-crt/lib32/msvcr90.def.in | 56 +---- mingw-w64-crt/lib32/msvcr90d.def.in | 55 +---- mingw-w64-crt/lib32/msvcrt10.def.in | 14 +- mingw-w64-crt/lib32/msvcrt20.def.in | 15 +- mingw-w64-crt/lib32/msvcrt40.def.in | 14 +- mingw-w64-crt/lib64/msvcr100.def.in | 55 +---- mingw-w64-crt/lib64/msvcr110.def.in | 55 +---- mingw-w64-crt/lib64/msvcr120.def.in | 32 --- mingw-w64-crt/lib64/msvcr120d.def.in | 31 --- mingw-w64-crt/lib64/msvcr80.def.in | 56 +---- mingw-w64-crt/lib64/msvcr90.def.in | 56 +---- mingw-w64-crt/lib64/msvcr90d.def.in | 56 +---- mingw-w64-crt/libarm32/msvcr110.def | 16 -- mingw-w64-crt/libarm32/msvcr120_clr0400.def | 16 -- 26 files changed, 324 insertions(+), 851 deletions(-) -- 2.20.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public