---
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

Reply via email to