--- v3: Addressed review comments and slightly simplified by wrapping only DATA in F_LD80 macro.
mingw-w64-crt/Makefile.am | 4 ++-- mingw-w64-crt/def-include/func.def.in | 8 ++++++++ .../lib-common/api-ms-win-crt-runtime-l1-1-0.def.in | 4 ++-- mingw-w64-crt/lib-common/msvcr120_app.def.in | 1 + mingw-w64-crt/lib-common/msvcrt.def.in | 3 ++- 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 + 9 files changed, 20 insertions(+), 6 deletions(-) diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index 5ba88097b..f2f1e6f81 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am @@ -2146,7 +2146,7 @@ libarm32_liblargeint_a_CPPFLAGS=$(CPPFLAGSARM32) $(sysincludes) libarm32_LIBRARIES += libarm32/libmingw32.a libarm32_libmingw32_a_CPPFLAGS=$(CPPFLAGSARM32) -D_SYSCRT=1 $(extra_include) $(AM_CPPFLAGS) -libarm32_libmingw32_a_SOURCES = $(src_libmingw32) crt/CRT_fp8.c +libarm32_libmingw32_a_SOURCES = $(src_libmingw32) libarm32_LIBRARIES += libarm32/libmingwex.a libarm32_libmingwex_a_CPPFLAGS=$(CPPFLAGSARM32) $(extra_include) $(AM_CPPFLAGS) @@ -2468,7 +2468,7 @@ libarm64_liblargeint_a_CPPFLAGS=$(CPPFLAGSARM64) $(sysincludes) libarm64_LIBRARIES += libarm64/libmingw32.a libarm64_libmingw32_a_CPPFLAGS=$(CPPFLAGSARM64) -D_SYSCRT=1 $(extra_include) $(AM_CPPFLAGS) -libarm64_libmingw32_a_SOURCES = $(src_libmingw32) crt/CRT_fp8.c +libarm64_libmingw32_a_SOURCES = $(src_libmingw32) libarm64_LIBRARIES += libarm64/libmingwex.a libarm64_libmingwex_a_CPPFLAGS=$(CPPFLAGSARM64) $(extra_include) $(AM_CPPFLAGS) diff --git a/mingw-w64-crt/def-include/func.def.in b/mingw-w64-crt/def-include/func.def.in index 77540bb31..1d542a1f4 100644 --- a/mingw-w64-crt/def-include/func.def.in +++ b/mingw-w64-crt/def-include/func.def.in @@ -80,4 +80,12 @@ #define FASTCALL_DECORATED_EXPORT(symbol) symbol == symbol #endif +#if __SIZEOF_LONG_DOUBLE__ == __SIZEOF_DOUBLE__ +#define F_LD64(x) x +#define F_LD80(x) +#else +#define F_LD64(x) +#define F_LD80(x) x +#endif + #endif // FUNC_DEF_IN 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 ea310d426..06fc1aa45 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,8 +44,7 @@ _errno _execute_onexit_table _exit F_NON_I386(_fpieee_flt) -; DATA added manually -_fpreset DATA +_fpreset F_LD80(DATA) _get_doserrno _get_errno _get_initial_narrow_environment @@ -109,6 +108,7 @@ 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 86747ec4e..eccf24885 100644 --- a/mingw-w64-crt/lib-common/msvcr120_app.def.in +++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in @@ -2019,6 +2019,7 @@ 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 ff9e6a635..772b567c9 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -603,7 +603,7 @@ _flushall _fmode DATA _fpclass F_NON_X64(_fpieee_flt) -_fpreset DATA +_fpreset F_LD80(DATA) _fputchar _fputwchar _fsopen @@ -968,6 +968,7 @@ 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 7af5acde8..c6f602e85 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 DATA ; DATA added manually +_fpreset F_LD80(DATA) _fputc_nolock _fputchar _fputwc_nolock @@ -2378,6 +2378,7 @@ 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 66a344ce8..ec4736cc1 100644 --- a/mingw-w64-crt/libarm32/msvcr110d.def.in +++ b/mingw-w64-crt/libarm32/msvcr110d.def.in @@ -1819,6 +1819,7 @@ 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 0f5c42508..ec6643da5 100644 --- a/mingw-w64-crt/libarm32/msvcr120.def.in +++ b/mingw-w64-crt/libarm32/msvcr120.def.in @@ -1902,6 +1902,7 @@ 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 7241a9e7b..b79ecdcb3 100644 --- a/mingw-w64-crt/libarm32/msvcr120d.def.in +++ b/mingw-w64-crt/libarm32/msvcr120d.def.in @@ -1967,6 +1967,7 @@ fmod fmodf fopen fopen_s +fpreset == _fpreset fprintf fprintf_s fputc -- 2.48.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public