Enable underscored fpreset alias for ARM targets in crt-aliases.def.in include file, which is automatically included into all msvcr*.def.in and ucrt*.def.in files.
Underscored alias is still present in api-ms-win-crt-runtime-l1-1-0.def.in file as api-ms-win-crt*.def.in files do not use crt-aliases.def.in yet. This change fixes more issues with commit 87ec8e6c5a62 ("crt: Use .def files for fpreset and _fpreset on ARM targets.") which: - enabled underscored alias also for i386 and x64 msvcr120_app.dll builds - forgot to add underscored alias for arm32 msvcr110.dll builds - added duplicated code into individual msvcr*.def.in files, which was already de-duplicated - removed comment about DATA keywords (manually added needs to be revisited) --- mingw-w64-crt/def-include/crt-aliases.def.in | 4 ++++ mingw-w64-crt/lib-common/api-ms-win-crt-runtime-l1-1-0.def.in | 3 +-- mingw-w64-crt/lib-common/msvcr120_app.def.in | 1 - mingw-w64-crt/lib-common/msvcrt.def.in | 1 - mingw-w64-crt/lib-common/ucrtbase-common.def.in | 3 +-- mingw-w64-crt/libarm32/msvcr110d.def.in | 1 - mingw-w64-crt/libarm32/msvcr120.def.in | 1 - mingw-w64-crt/libarm32/msvcr120d.def.in | 1 - 8 files changed, 6 insertions(+), 9 deletions(-) --- Now when I'm looking at this change, I think that there is another problem with _fpreset in some *cr* builds. It is needed to add "DATA" keyword into all i386 and x64 definitions of _fpreset. And seems that the mingw-w64-crt/crt/CRT_fp8.c file should be completely removed as it looks like that its symbols are in direct conflict with fp10.c symbols and symbols in individual def files. What do you think about these two followup changes? --- diff --git a/mingw-w64-crt/def-include/crt-aliases.def.in b/mingw-w64-crt/def-include/crt-aliases.def.in index 06526dde56e3..144fafa558a5 100644 --- a/mingw-w64-crt/def-include/crt-aliases.def.in +++ b/mingw-w64-crt/def-include/crt-aliases.def.in @@ -208,7 +208,11 @@ ADD_UNDERSCORE(write) ; This is list of symbol aliases added in the Visual C++ 2.0 oldnames.lib library ; All these symbols with leading underscore are present also in pre-2.0 CRT versions: crtdll.dll and msvcrt10.dll ; ADD_UNDERSCORE(control87) +#if __SIZEOF_LONG_DOUBLE__ == __SIZEOF_DOUBLE__ +ADD_UNDERSCORE(fpreset) +#else ; ADD_UNDERSCORE(fpreset) ; Alias fpreset is set in CRT_fp10.c and CRT_fp8.c +#endif ADD_UNDERSCORE(wcsdup) ADD_UNDERSCORE(wcsicmp) ADD_UNDERSCORE(wcsicoll) diff --git a/mingw-w64-crt/lib-common/api-ms-win-crt-runtime-l1-1-0.def.in b/mingw-w64-crt/lib-common/api-ms-win-crt-runtime-l1-1-0.def.in index d747fafc5fc4..06a8f3790bf6 100644 --- a/mingw-w64-crt/lib-common/api-ms-win-crt-runtime-l1-1-0.def.in +++ b/mingw-w64-crt/lib-common/api-ms-win-crt-runtime-l1-1-0.def.in @@ -44,7 +44,7 @@ _errno _execute_onexit_table _exit _fpieee_flt -_fpreset F_LD80(DATA) +_fpreset F_LD80(DATA) ; DATA added manually _get_doserrno _get_errno _get_initial_narrow_environment @@ -108,7 +108,6 @@ fesetenv DATA fesetexceptflag DATA fesetround DATA fetestexcept DATA -F_LD64(fpreset == _fpreset) perror quick_exit raise diff --git a/mingw-w64-crt/lib-common/msvcr120_app.def.in b/mingw-w64-crt/lib-common/msvcr120_app.def.in index eccf24885d50..86747ec4e887 100644 --- a/mingw-w64-crt/lib-common/msvcr120_app.def.in +++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in @@ -2019,7 +2019,6 @@ fmod F_NON_I386(fmodf) fopen fopen_s -fpreset == _fpreset fprintf fprintf_s fputc diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 772b567c94e7..7a029b8d423a 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -968,7 +968,6 @@ fgetws floor F_X86_ANY(DATA) fmod F_X86_ANY(DATA) fopen -F_LD64(fpreset == _fpreset) fprintf fputc fputs diff --git a/mingw-w64-crt/lib-common/ucrtbase-common.def.in b/mingw-w64-crt/lib-common/ucrtbase-common.def.in index c6f602e851a0..7a4997608b57 100644 --- a/mingw-w64-crt/lib-common/ucrtbase-common.def.in +++ b/mingw-w64-crt/lib-common/ucrtbase-common.def.in @@ -388,7 +388,7 @@ _flushall _fpclass F_X64(_fpclassf) _fpieee_flt -_fpreset F_LD80(DATA) +_fpreset F_LD80(DATA) ; DATA added manually _fputc_nolock _fputchar _fputwc_nolock @@ -2378,7 +2378,6 @@ fmod F_NON_I386(fmodf) fopen fopen_s -F_LD64(fpreset == _fpreset) fputc fputs fputwc diff --git a/mingw-w64-crt/libarm32/msvcr110d.def.in b/mingw-w64-crt/libarm32/msvcr110d.def.in index ec4736cc1221..66a344ce887f 100644 --- a/mingw-w64-crt/libarm32/msvcr110d.def.in +++ b/mingw-w64-crt/libarm32/msvcr110d.def.in @@ -1819,7 +1819,6 @@ fmod fmodf fopen fopen_s -fpreset == _fpreset fprintf fprintf_s fputc diff --git a/mingw-w64-crt/libarm32/msvcr120.def.in b/mingw-w64-crt/libarm32/msvcr120.def.in index ec6643da5a06..0f5c42508a2c 100644 --- a/mingw-w64-crt/libarm32/msvcr120.def.in +++ b/mingw-w64-crt/libarm32/msvcr120.def.in @@ -1902,7 +1902,6 @@ fmod fmodf fopen fopen_s -fpreset == _fpreset fprintf fprintf_s fputc diff --git a/mingw-w64-crt/libarm32/msvcr120d.def.in b/mingw-w64-crt/libarm32/msvcr120d.def.in index b79ecdcb3454..7241a9e7ba7e 100644 --- a/mingw-w64-crt/libarm32/msvcr120d.def.in +++ b/mingw-w64-crt/libarm32/msvcr120d.def.in @@ -1967,7 +1967,6 @@ fmod fmodf fopen fopen_s -fpreset == _fpreset fprintf fprintf_s fputc -- 2.20.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public