CRT header files ensures that time symbols without 32/64 suffixes are not
emitted. And linker always sees time symbols with explicit 32 or 64 suffix
name.
When CRT header files are not included then 32-bit MSVC compiler + linker
treats symbols without "64" suffix name as functions which use 32-bit
time_t, even for UCRT builds.
Do some in mingw-w64, change I386 time symbol aliases which do not have
"64" in symbol name, to point to symbols which use 32-bit time_t type.
With this change, time symbols on I386 have same meaning across all CRT
libraries provided by mingw-w64. For example symbol "time" points to
function "time" function which always takes 32-bit time_t.
This change fixes previous commits 42aa3325fcfee934d7b706b701e49ee7a3c94982
and e37b315bc039a10507c5cb1046d6b891506022be
---
mingw-w64-crt/Makefile.am | 8 ++--
.../api-ms-win-crt-filesystem-l1-1-0.def.in | 4 +-
def => api-ms-win-crt-time-l1-1-0.def.in} | 35 --
mingw-w64-crt/lib-common/ucrtbase.def.in | 37 ---
4 files changed, 54 insertions(+), 30 deletions(-)
rename mingw-w64-crt/lib-common/{api-ms-win-crt-time-l1-1-0.def =>
api-ms-win-crt-time-l1-1-0.def.in} (60%)
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 97ba61e7a213..08f5055e9303 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -1114,7 +1114,7 @@ processed_defs += lib32/crtdll.def lib32/msvcrt10.def
lib32/msvcrt20.def lib32/m
lib32/msvcr80.def lib32/msvcr90.def
lib32/msvcr90d.def lib32/msvcr100.def lib32/msvcr110.def lib32/msvcr120.def
lib32/msvcr120d.def \
lib32/msvcr120_app.def lib32/msvcp120_app.def
lib32/ucrtbase.def \
lib32/api-ms-win-crt-math-l1-1-0.def
lib32/api-ms-win-crt-private-l1-1-0.def lib32/api-ms-win-crt-runtime-l1-1-0.def
\
- lib32/api-ms-win-crt-filesystem-l1-1-0.def \
+ lib32/api-ms-win-crt-filesystem-l1-1-0.def
lib32/api-ms-win-crt-time-l1-1-0.def \
lib32/vcruntime140_app.def
endif
@@ -1491,7 +1491,7 @@ processed_defs += lib64/msvcrt.def lib64/msvcr80.def
lib64/msvcr90.def lib64/msv
lib64/advapi32.def lib64/clbcatq.def
lib64/kernel32.def lib64/ole32.def \
lib64/oleaut32.def lib64/user32.def
lib64/ws2_32.def \
lib64/api-ms-win-crt-math-l1-1-0.def
lib64/api-ms-win-crt-private-l1-1-0.def lib64/api-ms-win-crt-runtime-l1-1-0.def
\
- lib64/api-ms-win-crt-filesystem-l1-1-0.def \
+ lib64/api-ms-win-crt-filesystem-l1-1-0.def
lib64/api-ms-win-crt-time-l1-1-0.def \
lib64/vcruntime140_app.def
endif
@@ -1834,7 +1834,7 @@ processed_defs += libarm32/msvcrt.def
libarm32/msvcr80.def libarm32/msvcr90.def
libarm32/advapi32.def libarm32/clbcatq.def
libarm32/kernel32.def libarm32/ole32.def libarm32/oleaut32.def \
libarm32/user32.def libarm32/ws2_32.def \
libarm32/api-ms-win-crt-math-l1-1-0.def
libarm32/api-ms-win-crt-private-l1-1-0.def
libarm32/api-ms-win-crt-runtime-l1-1-0.def \
- libarm32/api-ms-win-crt-filesystem-l1-1-0.def
\
+ libarm32/api-ms-win-crt-filesystem-l1-1-0.def
libarm32/api-ms-win-crt-time-l1-1-0.def \
libarm32/vcruntime140_app.def
endif
@@ -2129,7 +2129,7 @@ processed_defs += libarm64/msvcrt.def
libarm64/ucrtbase.def \
libarm64/advapi32.def libarm64/clbcatq.def
libarm64/kernel32.def libarm64/ole32.def libarm64/oleaut32.def \
libarm64/user32.def libarm64/ws2_32.def \
libarm64/api-ms-win-crt-math-l1-1-0.def
libarm64/api-ms-win-crt-private-l1-1-0.def
libarm64/api-ms-win-crt-runtime-l1-1-0.def \
- libarm64/api-ms-win-crt-filesystem-l1-1-0.def
\
+ libarm64/api-ms-win-crt-filesystem-l1-1-0.def
libarm64/api-ms-win-crt-time-l1-1-0.def \
libarm64/vcruntime140_app.def
endif
diff --git a/mingw-w64-crt/lib-common/api-ms-win-crt-filesystem-l1-1-0.def.in
b/mingw-w64-crt/lib-common/api-ms-win-crt-filesystem-l1-1-0.def.in
index 219361b7047f..d676251b4aea 100644
--- a/mingw-w64-crt/lib-common/api-ms-win-crt-filesystem-l1-1-0.def.in
+++ b/mingw-w64-crt/lib-common/api-ms-win-crt-filesystem-l1-1-0.def.in
@@ -14,13 +14,13 @@ _chdrive
_chmod
chmod == _chmod
_findclose
-F32(_findfirst == _findfirst64)
+F32(_findfirst == _findfirst32)
F64(_findfirst == _findfirst64i32)
_findfirst32
_findfirst32i64
_findfirst64
_findfirst64i32
-F32(_findnext ==