Hello all,

I'm currently adding (some basic) MinGW support to the D code which
was recently merged into GCC9. The D runtime library already has full
windows support, developed by DMD and LLVM D compiler devs. However,
this needs MSVC runtime versions >= 120. So I'm now trying to add
proper support for targeting newer MSVC libs to the GCC/MinGW ecosystem. 

It turns out libgomp uses _ftime, but this symbol is only exposed for
msvcrt.dll and I get linker errors for any other MSVC version.
Therefore this patch adds the _ftime aliases to all msvcr .def
files. According to timeb.h, there should be a _ftime symbol which
maps to _ftime64 on _WIN64 and _ftime32 for anything else.

This is my first MinGW patch, so please feel free to point out if
there's anything wrong with the patch.
BTW: How do you handle branches for the patches? The attached patch
is against the v6.x branch.

Best regards,
Johannes

Signed-off-by: Johannes Pfau <johannesp...@gmail.com>
---
 mingw-w64-crt/lib32/msvcr100.def.in         | 1 +
 mingw-w64-crt/lib32/msvcr110.def.in         | 1 +
 mingw-w64-crt/lib32/msvcr120.def.in         | 1 +
 mingw-w64-crt/lib32/msvcr120_app.def.in     | 1 +
 mingw-w64-crt/lib32/msvcr120d.def.in        | 1 +
 mingw-w64-crt/lib32/msvcr90.def.in          | 1 +
 mingw-w64-crt/lib32/msvcr90d.def.in         | 1 +
 mingw-w64-crt/lib64/msvcr100.def.in         | 1 +
 mingw-w64-crt/lib64/msvcr110.def.in         | 1 +
 mingw-w64-crt/lib64/msvcr120.def.in         | 1 +
 mingw-w64-crt/lib64/msvcr120_app.def.in     | 1 +
 mingw-w64-crt/lib64/msvcr120d.def.in        | 1 +
 mingw-w64-crt/lib64/msvcr90.def.in          | 1 +
 mingw-w64-crt/lib64/msvcr90d.def.in         | 1 +
 mingw-w64-crt/libarm32/msvcr110.def         | 1 +
 mingw-w64-crt/libarm32/msvcr120_clr0400.def | 1 +
 16 files changed, 16 insertions(+)

diff --git a/mingw-w64-crt/lib32/msvcr100.def.in 
b/mingw-w64-crt/lib32/msvcr100.def.in
index d103a2b0..53ccd37b 100644
--- a/mingw-w64-crt/lib32/msvcr100.def.in
+++ b/mingw-w64-crt/lib32/msvcr100.def.in
@@ -896,6 +896,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _ftol
 _fullpath
 _futime32
diff --git a/mingw-w64-crt/lib32/msvcr110.def.in 
b/mingw-w64-crt/lib32/msvcr110.def.in
index 7296955b..920677bc 100644
--- a/mingw-w64-crt/lib32/msvcr110.def.in
+++ b/mingw-w64-crt/lib32/msvcr110.def.in
@@ -1019,6 +1019,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _ftol
 _fullpath
 _futime32
diff --git a/mingw-w64-crt/lib32/msvcr120.def.in 
b/mingw-w64-crt/lib32/msvcr120.def.in
index 57122cbf..c1e2af84 100644
--- a/mingw-w64-crt/lib32/msvcr120.def.in
+++ b/mingw-w64-crt/lib32/msvcr120.def.in
@@ -1042,6 +1042,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _ftol
 _fullpath
 _futime32
diff --git a/mingw-w64-crt/lib32/msvcr120_app.def.in 
b/mingw-w64-crt/lib32/msvcr120_app.def.in
index 0c5aaff9..b13d9a66 100644
--- a/mingw-w64-crt/lib32/msvcr120_app.def.in
+++ b/mingw-w64-crt/lib32/msvcr120_app.def.in
@@ -654,6 +654,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _ftol
 _fullpath
 _futime32
diff --git a/mingw-w64-crt/lib32/msvcr120d.def.in 
b/mingw-w64-crt/lib32/msvcr120d.def.in
index 194a0d24..385d4913 100644
--- a/mingw-w64-crt/lib32/msvcr120d.def.in
+++ b/mingw-w64-crt/lib32/msvcr120d.def.in
@@ -1098,6 +1098,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _ftol
 _fullpath
 _fullpath_dbg
diff --git a/mingw-w64-crt/lib32/msvcr90.def.in 
b/mingw-w64-crt/lib32/msvcr90.def.in
index 861ce56c..69765e53 100644
--- a/mingw-w64-crt/lib32/msvcr90.def.in
+++ b/mingw-w64-crt/lib32/msvcr90.def.in
@@ -523,6 +523,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _ftol
 _fullpath
 _futime32
diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in 
b/mingw-w64-crt/lib32/msvcr90d.def.in
index 419c65ce..2fe211dd 100644
--- a/mingw-w64-crt/lib32/msvcr90d.def.in
+++ b/mingw-w64-crt/lib32/msvcr90d.def.in
@@ -583,6 +583,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _ftol
 _fullpath
 _fullpath_dbg
diff --git a/mingw-w64-crt/lib64/msvcr100.def.in 
b/mingw-w64-crt/lib64/msvcr100.def.in
index b3be3024..b1e3e073 100644
--- a/mingw-w64-crt/lib64/msvcr100.def.in
+++ b/mingw-w64-crt/lib64/msvcr100.def.in
@@ -853,6 +853,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime64
 _fullpath
 _futime32
 _futime64
diff --git a/mingw-w64-crt/lib64/msvcr110.def.in 
b/mingw-w64-crt/lib64/msvcr110.def.in
index 59868920..a4129975 100644
--- a/mingw-w64-crt/lib64/msvcr110.def.in
+++ b/mingw-w64-crt/lib64/msvcr110.def.in
@@ -978,6 +978,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime64
 _fullpath
 _futime32
 _futime64
diff --git a/mingw-w64-crt/lib64/msvcr120.def.in 
b/mingw-w64-crt/lib64/msvcr120.def.in
index 0ec1dc48..38d5af29 100644
--- a/mingw-w64-crt/lib64/msvcr120.def.in
+++ b/mingw-w64-crt/lib64/msvcr120.def.in
@@ -998,6 +998,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime64
 _fullpath
 _futime32
 _futime64
diff --git a/mingw-w64-crt/lib64/msvcr120_app.def.in 
b/mingw-w64-crt/lib64/msvcr120_app.def.in
index b829b841..a5f6f777 100644
--- a/mingw-w64-crt/lib64/msvcr120_app.def.in
+++ b/mingw-w64-crt/lib64/msvcr120_app.def.in
@@ -611,6 +611,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime64
 _fullpath
 _futime32
 _futime64
diff --git a/mingw-w64-crt/lib64/msvcr120d.def.in 
b/mingw-w64-crt/lib64/msvcr120d.def.in
index f5304d45..df0425af 100644
--- a/mingw-w64-crt/lib64/msvcr120d.def.in
+++ b/mingw-w64-crt/lib64/msvcr120d.def.in
@@ -1052,6 +1052,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime64
 _fullpath
 _fullpath_dbg
 _futime32
diff --git a/mingw-w64-crt/lib64/msvcr90.def.in 
b/mingw-w64-crt/lib64/msvcr90.def.in
index f18166aa..72f30700 100644
--- a/mingw-w64-crt/lib64/msvcr90.def.in
+++ b/mingw-w64-crt/lib64/msvcr90.def.in
@@ -470,6 +470,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime64
 _fullpath
 _futime32
 _futime64
diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in 
b/mingw-w64-crt/lib64/msvcr90d.def.in
index 07755389..99b167ee 100644
--- a/mingw-w64-crt/lib64/msvcr90d.def.in
+++ b/mingw-w64-crt/lib64/msvcr90d.def.in
@@ -524,6 +524,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime64
 _fullpath
 _fullpath_dbg
 _futime32
diff --git a/mingw-w64-crt/libarm32/msvcr110.def 
b/mingw-w64-crt/libarm32/msvcr110.def
index 40a40937..9ce6a8ac 100644
--- a/mingw-w64-crt/libarm32/msvcr110.def
+++ b/mingw-w64-crt/libarm32/msvcr110.def
@@ -635,6 +635,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _fullpath
 _futime32
 _futime64
diff --git a/mingw-w64-crt/libarm32/msvcr120_clr0400.def 
b/mingw-w64-crt/libarm32/msvcr120_clr0400.def
index 32d7965f..84f768a5 100644
--- a/mingw-w64-crt/libarm32/msvcr120_clr0400.def
+++ b/mingw-w64-crt/libarm32/msvcr120_clr0400.def
@@ -634,6 +634,7 @@ _ftime32
 _ftime32_s
 _ftime64
 _ftime64_s
+_ftime == _ftime32
 _fullpath
 _futime32
 _futime64
-- 
2.19.2



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to