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